From f80f4281850e7d4ad89640136a6dbb96c55701dd Mon Sep 17 00:00:00 2001 From: Roger Wang Date: Fri, 9 Mar 2018 21:16:18 +0800 Subject: [PATCH 1/2] nwjs master --- common.gypi | 200 +- config.gypi | 41 + deps/cares/cares.gyp | 4 + deps/cares/src/ares_create_query.c | 9 + deps/cares/src/ares_process.c | 2 +- deps/http_parser/http_parser.c | 2 +- deps/http_parser/http_parser.gyp | 13 +- deps/nghttp2/nghttp2.gyp | 2 +- deps/npm/.github/CODEOWNERS | 1 - deps/npm/.github/issue_template.md | 69 - deps/npm/.mailmap | 67 - deps/npm/.npmignore | 34 - deps/npm/.travis.yml | 38 - deps/npm/AUTHORS | 538 - deps/npm/CHANGELOG.md | 1488 -- deps/npm/CONTRIBUTING.md | 82 - deps/npm/LICENSE | 235 - deps/npm/Makefile | 190 - deps/npm/README.md | 169 - deps/npm/TROUBLESHOOTING.md | 192 - deps/npm/appveyor.yml | 34 - deps/npm/bin/node-gyp-bin/node-gyp | 6 - deps/npm/bin/node-gyp-bin/node-gyp.cmd | 5 - deps/npm/bin/npm | 34 - deps/npm/bin/npm-cli.js | 92 - deps/npm/bin/npm.cmd | 19 - deps/npm/bin/npx | 34 - deps/npm/bin/npx-cli.js | 8 - deps/npm/bin/npx.cmd | 19 - deps/npm/changelogs/CHANGELOG-1.md | 743 - deps/npm/changelogs/CHANGELOG-2.md | 5344 ------- deps/npm/changelogs/CHANGELOG-3.md | 5245 ------- deps/npm/changelogs/CHANGELOG-4.md | 1566 -- deps/npm/configure | 33 - deps/npm/doc/cli/npm-access.md | 76 - deps/npm/doc/cli/npm-adduser.md | 85 - deps/npm/doc/cli/npm-bin.md | 19 - deps/npm/doc/cli/npm-bugs.md | 43 - deps/npm/doc/cli/npm-build.md | 25 - deps/npm/doc/cli/npm-bundle.md | 14 - deps/npm/doc/cli/npm-cache.md | 83 - deps/npm/doc/cli/npm-completion.md | 31 - deps/npm/doc/cli/npm-config.md | 73 - deps/npm/doc/cli/npm-dedupe.md | 55 - deps/npm/doc/cli/npm-deprecate.md | 26 - deps/npm/doc/cli/npm-dist-tag.md | 88 - deps/npm/doc/cli/npm-docs.md | 44 - deps/npm/doc/cli/npm-doctor.md | 102 - deps/npm/doc/cli/npm-edit.md | 37 - deps/npm/doc/cli/npm-explore.md | 39 - deps/npm/doc/cli/npm-help-search.md | 34 - deps/npm/doc/cli/npm-help.md | 38 - deps/npm/doc/cli/npm-init.md | 38 - deps/npm/doc/cli/npm-install-test.md | 25 - deps/npm/doc/cli/npm-install.md | 444 - deps/npm/doc/cli/npm-link.md | 74 - deps/npm/doc/cli/npm-logout.md | 45 - deps/npm/doc/cli/npm-ls.md | 111 - deps/npm/doc/cli/npm-outdated.md | 112 - deps/npm/doc/cli/npm-owner.md | 39 - deps/npm/doc/cli/npm-pack.md | 27 - deps/npm/doc/cli/npm-ping.md | 24 - deps/npm/doc/cli/npm-prefix.md | 23 - deps/npm/doc/cli/npm-profile.md | 74 - deps/npm/doc/cli/npm-prune.md | 26 - deps/npm/doc/cli/npm-publish.md | 73 - deps/npm/doc/cli/npm-rebuild.md | 19 - deps/npm/doc/cli/npm-repo.md | 27 - deps/npm/doc/cli/npm-restart.md | 40 - deps/npm/doc/cli/npm-root.md | 19 - deps/npm/doc/cli/npm-run-script.md | 78 - deps/npm/doc/cli/npm-search.md | 106 - deps/npm/doc/cli/npm-shrinkwrap.md | 25 - deps/npm/doc/cli/npm-star.md | 22 - deps/npm/doc/cli/npm-stars.md | 21 - deps/npm/doc/cli/npm-start.md | 24 - deps/npm/doc/cli/npm-stop.md | 18 - deps/npm/doc/cli/npm-team.md | 55 - deps/npm/doc/cli/npm-test.md | 20 - deps/npm/doc/cli/npm-token.md | 59 - deps/npm/doc/cli/npm-uninstall.md | 53 - deps/npm/doc/cli/npm-unpublish.md | 43 - deps/npm/doc/cli/npm-update.md | 149 - deps/npm/doc/cli/npm-version.md | 119 - deps/npm/doc/cli/npm-view.md | 96 - deps/npm/doc/cli/npm-whoami.md | 17 - deps/npm/doc/cli/npm.md | 165 - deps/npm/doc/files/npm-folders.md | 213 - deps/npm/doc/files/npm-package-locks.md | 145 - deps/npm/doc/files/npm-shrinkwrap.json.md | 27 - deps/npm/doc/files/npmrc.md | 90 - deps/npm/doc/files/package-lock.json.md | 132 - deps/npm/doc/files/package.json.md | 785 - deps/npm/doc/misc/npm-coding-style.md | 192 - deps/npm/doc/misc/npm-config.md | 1185 -- deps/npm/doc/misc/npm-developers.md | 233 - deps/npm/doc/misc/npm-disputes.md | 130 - deps/npm/doc/misc/npm-index.md | 303 - deps/npm/doc/misc/npm-orgs.md | 90 - deps/npm/doc/misc/npm-registry.md | 92 - deps/npm/doc/misc/npm-scope.md | 113 - deps/npm/doc/misc/npm-scripts.md | 266 - deps/npm/doc/misc/removing-npm.md | 54 - deps/npm/doc/misc/semver.md | 366 - deps/npm/doc/spec/file-specifiers.md | 154 - deps/npm/doc/spec/package-lock.md | 276 - deps/npm/html/doc/README.html | 131 - deps/npm/html/doc/cli/npm-access.html | 90 - deps/npm/html/doc/cli/npm-adduser.html | 85 - deps/npm/html/doc/cli/npm-bin.html | 39 - deps/npm/html/doc/cli/npm-bugs.html | 59 - deps/npm/html/doc/cli/npm-build.html | 44 - deps/npm/html/doc/cli/npm-bundle.html | 35 - deps/npm/html/doc/cli/npm-cache.html | 93 - deps/npm/html/doc/cli/npm-completion.html | 47 - deps/npm/html/doc/cli/npm-config.html | 72 - deps/npm/html/doc/cli/npm-dedupe.html | 65 - deps/npm/html/doc/cli/npm-deprecate.html | 42 - deps/npm/html/doc/cli/npm-dist-tag.html | 92 - deps/npm/html/doc/cli/npm-docs.html | 60 - deps/npm/html/doc/cli/npm-doctor.html | 106 - deps/npm/html/doc/cli/npm-edit.html | 53 - deps/npm/html/doc/cli/npm-explore.html | 53 - deps/npm/html/doc/cli/npm-help-search.html | 49 - deps/npm/html/doc/cli/npm-help.html | 54 - deps/npm/html/doc/cli/npm-init.html | 52 - deps/npm/html/doc/cli/npm-install-test.html | 46 - deps/npm/html/doc/cli/npm-install.html | 373 - deps/npm/html/doc/cli/npm-link.html | 78 - deps/npm/html/doc/cli/npm-logout.html | 55 - deps/npm/html/doc/cli/npm-ls.html | 114 - deps/npm/html/doc/cli/npm-outdated.html | 120 - deps/npm/html/doc/cli/npm-owner.html | 58 - deps/npm/html/doc/cli/npm-pack.html | 45 - deps/npm/html/doc/cli/npm-ping.html | 40 - deps/npm/html/doc/cli/npm-prefix.html | 42 - deps/npm/html/doc/cli/npm-profile.html | 93 - deps/npm/html/doc/cli/npm-prune.html | 44 - deps/npm/html/doc/cli/npm-publish.html | 89 - deps/npm/html/doc/cli/npm-rebuild.html | 39 - deps/npm/html/doc/cli/npm-repo.html | 45 - deps/npm/html/doc/cli/npm-restart.html | 57 - deps/npm/html/doc/cli/npm-root.html | 39 - deps/npm/html/doc/cli/npm-run-script.html | 84 - deps/npm/html/doc/cli/npm-search.html | 113 - deps/npm/html/doc/cli/npm-shrinkwrap.html | 45 - deps/npm/html/doc/cli/npm-star.html | 40 - deps/npm/html/doc/cli/npm-stars.html | 40 - deps/npm/html/doc/cli/npm-start.html | 43 - deps/npm/html/doc/cli/npm-stop.html | 38 - deps/npm/html/doc/cli/npm-team.html | 71 - deps/npm/html/doc/cli/npm-test.html | 40 - deps/npm/html/doc/cli/npm-token.html | 76 - deps/npm/html/doc/cli/npm-uninstall.html | 67 - deps/npm/html/doc/cli/npm-unpublish.html | 55 - deps/npm/html/doc/cli/npm-update.html | 122 - deps/npm/html/doc/cli/npm-version.html | 124 - deps/npm/html/doc/cli/npm-view.html | 90 - deps/npm/html/doc/cli/npm-whoami.html | 37 - deps/npm/html/doc/cli/npm.html | 154 - deps/npm/html/doc/files/npm-folders.html | 185 - deps/npm/html/doc/files/npm-global.html | 185 - deps/npm/html/doc/files/npm-json.html | 607 - .../npm/html/doc/files/npm-package-locks.html | 148 - .../html/doc/files/npm-shrinkwrap.json.html | 45 - deps/npm/html/doc/files/npmrc.html | 89 - .../npm/html/doc/files/package-lock.json.html | 127 - deps/npm/html/doc/files/package.json.html | 607 - deps/npm/html/doc/index.html | 176 - deps/npm/html/doc/misc/npm-coding-style.html | 157 - deps/npm/html/doc/misc/npm-config.html | 1028 -- deps/npm/html/doc/misc/npm-developers.html | 208 - deps/npm/html/doc/misc/npm-disputes.html | 138 - deps/npm/html/doc/misc/npm-index.html | 176 - deps/npm/html/doc/misc/npm-orgs.html | 90 - deps/npm/html/doc/misc/npm-registry.html | 94 - deps/npm/html/doc/misc/npm-scope.html | 103 - deps/npm/html/doc/misc/npm-scripts.html | 243 - deps/npm/html/doc/misc/removing-npm.html | 61 - deps/npm/html/doc/misc/semver.html | 340 - deps/npm/html/docfoot.html | 13 - deps/npm/html/dochead.html | 11 - deps/npm/html/favicon.ico | Bin 7094 -> 0 bytes deps/npm/html/index.html | 93 - deps/npm/html/static/style.css | 336 - deps/npm/html/static/toc.js | 29 - deps/npm/lib/access.js | 129 - deps/npm/lib/adduser.js | 49 - deps/npm/lib/auth/legacy.js | 57 - deps/npm/lib/auth/oauth.js | 7 - deps/npm/lib/auth/saml.js | 7 - deps/npm/lib/auth/sso.js | 59 - deps/npm/lib/bin.js | 23 - deps/npm/lib/bugs.js | 32 - deps/npm/lib/build.js | 140 - deps/npm/lib/cache.js | 136 - deps/npm/lib/completion.js | 248 - deps/npm/lib/config.js | 280 - deps/npm/lib/config/bin-links.js | 32 - .../lib/config/clear-credentials-by-uri.js | 16 - deps/npm/lib/config/cmd-list.js | 119 - deps/npm/lib/config/core.js | 431 - deps/npm/lib/config/defaults.js | 430 - deps/npm/lib/config/fetch-opts.js | 77 - deps/npm/lib/config/gentle-fs.js | 32 - deps/npm/lib/config/get-credentials-by-uri.js | 72 - deps/npm/lib/config/lifecycle.js | 31 - deps/npm/lib/config/load-cafile.js | 32 - deps/npm/lib/config/load-prefix.js | 51 - deps/npm/lib/config/load-uid.js | 15 - deps/npm/lib/config/nerf-dart.js | 23 - deps/npm/lib/config/pacote.js | 139 - deps/npm/lib/config/reg-client.js | 29 - deps/npm/lib/config/set-credentials-by-uri.js | 39 - deps/npm/lib/config/set-user.js | 29 - deps/npm/lib/dedupe.js | 160 - deps/npm/lib/deprecate.js | 54 - deps/npm/lib/dist-tag.js | 158 - deps/npm/lib/docs.js | 42 - deps/npm/lib/doctor.js | 113 - deps/npm/lib/doctor/check-files-permission.js | 57 - deps/npm/lib/doctor/check-ping.js | 12 - deps/npm/lib/doctor/get-git-path.js | 13 - .../lib/doctor/get-latest-nodejs-version.js | 27 - deps/npm/lib/doctor/get-latest-npm-version.js | 14 - deps/npm/lib/doctor/verify-cached-files.js | 19 - deps/npm/lib/edit.js | 35 - deps/npm/lib/explore.js | 59 - deps/npm/lib/fetch-package-metadata.js | 118 - deps/npm/lib/fetch-package-metadata.md | 37 - deps/npm/lib/get.js | 12 - deps/npm/lib/help-search.js | 212 - deps/npm/lib/help.js | 247 - deps/npm/lib/init.js | 41 - deps/npm/lib/install-test.js | 26 - deps/npm/lib/install.js | 959 -- deps/npm/lib/install/access-error.js | 8 - deps/npm/lib/install/action/build.js | 13 - deps/npm/lib/install/action/extract-worker.js | 18 - deps/npm/lib/install/action/extract.js | 160 - deps/npm/lib/install/action/fetch.js | 16 - deps/npm/lib/install/action/finalize.js | 106 - deps/npm/lib/install/action/global-install.js | 17 - deps/npm/lib/install/action/global-link.js | 8 - deps/npm/lib/install/action/install.js | 8 - deps/npm/lib/install/action/move.js | 96 - deps/npm/lib/install/action/postinstall.js | 8 - deps/npm/lib/install/action/preinstall.js | 8 - deps/npm/lib/install/action/prepare.js | 27 - .../install/action/refresh-package-json.js | 45 - deps/npm/lib/install/action/remove.js | 85 - deps/npm/lib/install/action/unbuild.js | 16 - deps/npm/lib/install/actions.js | 192 - .../lib/install/and-add-parent-to-errors.js | 13 - deps/npm/lib/install/and-finish-tracker.js | 16 - deps/npm/lib/install/and-ignore-errors.js | 9 - deps/npm/lib/install/check-permissions.js | 69 - deps/npm/lib/install/copy-tree.js | 31 - deps/npm/lib/install/decompose-actions.js | 72 - deps/npm/lib/install/deps.js | 742 - deps/npm/lib/install/diff-trees.js | 244 - deps/npm/lib/install/exists.js | 27 - deps/npm/lib/install/flatten-tree.js | 42 - deps/npm/lib/install/get-requested.js | 12 - deps/npm/lib/install/inflate-bundled.js | 18 - deps/npm/lib/install/inflate-shrinkwrap.js | 206 - deps/npm/lib/install/is-dev-dep.js | 8 - deps/npm/lib/install/is-extraneous.js | 27 - .../npm/lib/install/is-fs-access-available.js | 22 - deps/npm/lib/install/is-only-dev.js | 35 - deps/npm/lib/install/is-only-optional.js | 18 - deps/npm/lib/install/is-opt-dep.js | 8 - deps/npm/lib/install/is-prod-dep.js | 9 - deps/npm/lib/install/module-staging-path.js | 8 - .../lib/install/mutate-into-logical-tree.js | 140 - deps/npm/lib/install/node.js | 77 - deps/npm/lib/install/read-shrinkwrap.js | 58 - .../install/realize-shrinkwrap-specifier.js | 22 - .../lib/install/report-optional-failure.js | 31 - deps/npm/lib/install/save.js | 187 - deps/npm/lib/install/update-package-json.js | 56 - deps/npm/lib/install/validate-args.js | 73 - deps/npm/lib/install/validate-tree.js | 95 - deps/npm/lib/install/writable.js | 35 - deps/npm/lib/link.js | 197 - deps/npm/lib/logout.js | 43 - deps/npm/lib/ls.js | 548 - deps/npm/lib/npm.js | 480 - deps/npm/lib/outdated.js | 425 - deps/npm/lib/owner.js | 277 - deps/npm/lib/pack.js | 232 - deps/npm/lib/ping.js | 27 - deps/npm/lib/prefix.js | 15 - deps/npm/lib/profile.js | 314 - deps/npm/lib/prune.js | 66 - deps/npm/lib/publish.js | 200 - deps/npm/lib/rebuild.js | 78 - deps/npm/lib/repo.js | 51 - deps/npm/lib/restart.js | 1 - deps/npm/lib/root.js | 15 - deps/npm/lib/run-script.js | 181 - deps/npm/lib/search.js | 108 - deps/npm/lib/search/all-package-metadata.js | 313 - deps/npm/lib/search/all-package-search.js | 50 - deps/npm/lib/search/esearch.js | 64 - deps/npm/lib/search/format-package-stream.js | 172 - deps/npm/lib/search/package-filter.js | 41 - deps/npm/lib/set.js | 13 - deps/npm/lib/shrinkwrap.js | 252 - deps/npm/lib/star.js | 45 - deps/npm/lib/stars.js | 47 - deps/npm/lib/start.js | 1 - deps/npm/lib/stop.js | 1 - deps/npm/lib/substack.js | 22 - deps/npm/lib/team.js | 55 - deps/npm/lib/test.js | 15 - deps/npm/lib/token.js | 211 - deps/npm/lib/unbuild.js | 132 - deps/npm/lib/uninstall.js | 79 - deps/npm/lib/unpublish.js | 118 - deps/npm/lib/update.js | 72 - deps/npm/lib/utils/ansi-trim.js | 7 - deps/npm/lib/utils/child-path.js | 10 - deps/npm/lib/utils/completion.sh | 61 - .../lib/utils/completion/file-completion.js | 24 - .../lib/utils/completion/installed-deep.js | 52 - .../lib/utils/completion/installed-shallow.js | 87 - deps/npm/lib/utils/correct-mkdir.js | 123 - deps/npm/lib/utils/deep-sort-object.js | 14 - deps/npm/lib/utils/depr-check.js | 23 - deps/npm/lib/utils/did-you-mean.js | 20 - deps/npm/lib/utils/error-handler.js | 252 - deps/npm/lib/utils/error-message.js | 335 - deps/npm/lib/utils/escape-arg.js | 27 - deps/npm/lib/utils/escape-exec-path.js | 30 - deps/npm/lib/utils/gently-rm.js | 21 - deps/npm/lib/utils/get-publish-config.js | 29 - deps/npm/lib/utils/git.js | 50 - deps/npm/lib/utils/gunzip-maybe.js | 22 - deps/npm/lib/utils/is-registry.js | 11 - deps/npm/lib/utils/is-windows-bash.js | 3 - deps/npm/lib/utils/is-windows-shell.js | 4 - deps/npm/lib/utils/is-windows.js | 2 - deps/npm/lib/utils/lifecycle-cmd.js | 18 - deps/npm/lib/utils/lifecycle.js | 14 - deps/npm/lib/utils/link.js | 8 - deps/npm/lib/utils/locker.js | 73 - deps/npm/lib/utils/map-to-registry.js | 103 - deps/npm/lib/utils/metrics-launch.js | 39 - deps/npm/lib/utils/metrics.js | 73 - deps/npm/lib/utils/module-name.js | 31 - deps/npm/lib/utils/move.js | 12 - .../lib/utils/no-progress-while-running.js | 23 - deps/npm/lib/utils/output.js | 8 - deps/npm/lib/utils/package-id.js | 15 - deps/npm/lib/utils/parse-json.js | 24 - deps/npm/lib/utils/perf.js | 27 - .../pick-manifest-from-registry-metadata.js | 26 - deps/npm/lib/utils/pulse-till-done.js | 38 - deps/npm/lib/utils/read-local-package.js | 12 - deps/npm/lib/utils/read-user-info.js | 65 - deps/npm/lib/utils/save-stack.js | 16 - deps/npm/lib/utils/spawn.js | 50 - deps/npm/lib/utils/temp-filename.js | 7 - deps/npm/lib/utils/umask.js | 17 - deps/npm/lib/utils/unix-format-path.js | 5 - deps/npm/lib/utils/unsupported.js | 52 - deps/npm/lib/utils/usage.js | 27 - deps/npm/lib/utils/warn-deprecated.js | 23 - deps/npm/lib/version.js | 334 - deps/npm/lib/view.js | 337 - deps/npm/lib/visnup.js | 43 - deps/npm/lib/whoami.js | 47 - deps/npm/lib/xmas.js | 59 - deps/npm/make.bat | 3 - deps/npm/man/man1/npm-README.1 | 178 - deps/npm/man/man1/npm-access.1 | 92 - deps/npm/man/man1/npm-adduser.1 | 103 - deps/npm/man/man1/npm-bin.1 | 30 - deps/npm/man/man1/npm-bugs.1 | 60 - deps/npm/man/man1/npm-build.1 | 41 - deps/npm/man/man1/npm-bundle.1 | 17 - deps/npm/man/man1/npm-cache.1 | 96 - deps/npm/man/man1/npm-completion.1 | 42 - deps/npm/man/man1/npm-config.1 | 97 - deps/npm/man/man1/npm-dedupe.1 | 71 - deps/npm/man/man1/npm-deprecate.1 | 37 - deps/npm/man/man1/npm-dist-tag.1 | 109 - deps/npm/man/man1/npm-docs.1 | 60 - deps/npm/man/man1/npm-doctor.1 | 113 - deps/npm/man/man1/npm-edit.1 | 50 - deps/npm/man/man1/npm-explore.1 | 55 - deps/npm/man/man1/npm-help-search.1 | 43 - deps/npm/man/man1/npm-help.1 | 54 - deps/npm/man/man1/npm-init.1 | 49 - deps/npm/man/man1/npm-install-test.1 | 33 - deps/npm/man/man1/npm-install.1 | 524 - deps/npm/man/man1/npm-link.1 | 102 - deps/npm/man/man1/npm-logout.1 | 57 - deps/npm/man/man1/npm-ls.1 | 153 - deps/npm/man/man1/npm-outdated.1 | 151 - deps/npm/man/man1/npm-owner.1 | 53 - deps/npm/man/man1/npm-pack.1 | 37 - deps/npm/man/man1/npm-ping.1 | 39 - deps/npm/man/man1/npm-prefix.1 | 34 - deps/npm/man/man1/npm-profile.1 | 91 - deps/npm/man/man1/npm-prune.1 | 34 - deps/npm/man/man1/npm-publish.1 | 88 - deps/npm/man/man1/npm-rebuild.1 | 26 - deps/npm/man/man1/npm-repo.1 | 36 - deps/npm/man/man1/npm-restart.1 | 61 - deps/npm/man/man1/npm-root.1 | 30 - deps/npm/man/man1/npm-run-script.1 | 101 - deps/npm/man/man1/npm-search.1 | 138 - deps/npm/man/man1/npm-shrinkwrap.1 | 38 - deps/npm/man/man1/npm-star.1 | 30 - deps/npm/man/man1/npm-stars.1 | 30 - deps/npm/man/man1/npm-start.1 | 34 - deps/npm/man/man1/npm-stop.1 | 28 - deps/npm/man/man1/npm-team.1 | 64 - deps/npm/man/man1/npm-test.1 | 30 - deps/npm/man/man1/npm-token.1 | 73 - deps/npm/man/man1/npm-uninstall.1 | 75 - deps/npm/man/man1/npm-unpublish.1 | 52 - deps/npm/man/man1/npm-update.1 | 167 - deps/npm/man/man1/npm-version.1 | 162 - deps/npm/man/man1/npm-view.1 | 146 - deps/npm/man/man1/npm-whoami.1 | 26 - deps/npm/man/man1/npm.1 | 205 - deps/npm/man/man1/npx.1 | 167 - deps/npm/man/man5/npm-folders.5 | 226 - deps/npm/man/man5/npm-global.5 | 226 - deps/npm/man/man5/npm-json.5 | 951 -- deps/npm/man/man5/npm-package-locks.5 | 183 - deps/npm/man/man5/npm-shrinkwrap.json.5 | 32 - deps/npm/man/man5/npmrc.5 | 109 - deps/npm/man/man5/package-lock.json.5 | 144 - deps/npm/man/man5/package.json.5 | 951 -- deps/npm/man/man7/npm-coding-style.7 | 222 - deps/npm/man/man7/npm-config.7 | 1615 -- deps/npm/man/man7/npm-developers.7 | 292 - deps/npm/man/man7/npm-disputes.7 | 150 - deps/npm/man/man7/npm-index.7 | 229 - deps/npm/man/man7/npm-orgs.7 | 147 - deps/npm/man/man7/npm-registry.7 | 97 - deps/npm/man/man7/npm-scope.7 | 137 - deps/npm/man/man7/npm-scripts.7 | 323 - deps/npm/man/man7/removing-npm.7 | 78 - deps/npm/man/man7/semver.7 | 458 - deps/npm/node_modules/JSONStream/.npmignore | 2 - deps/npm/node_modules/JSONStream/.travis.yml | 6 - .../node_modules/JSONStream/LICENSE.APACHE2 | 15 - deps/npm/node_modules/JSONStream/LICENSE.MIT | 24 - .../JSONStream/examples/all_docs.js | 13 - deps/npm/node_modules/JSONStream/index.js | 252 - .../node_modules/jsonparse/.npmignore | 1 - .../JSONStream/node_modules/jsonparse/LICENSE | 24 - .../node_modules/jsonparse/README.markdown | 10 - .../node_modules/jsonparse/bench.js | 26 - .../jsonparse/examples/twitterfeed.js | 30 - .../node_modules/jsonparse/jsonparse.js | 413 - .../node_modules/jsonparse/package.json | 58 - .../jsonparse/samplejson/basic.json | 167 - .../jsonparse/samplejson/basic2.json | 180 - .../node_modules/jsonparse/test/big-token.js | 24 - .../node_modules/jsonparse/test/boundary.js | 110 - .../node_modules/jsonparse/test/offset.js | 67 - .../node_modules/jsonparse/test/primitives.js | 57 - .../node_modules/jsonparse/test/surrogate.js | 25 - .../node_modules/jsonparse/test/unvalid.js | 15 - .../node_modules/jsonparse/test/utf8.js | 38 - .../node_modules/through/.travis.yml | 5 - .../node_modules/through/LICENSE.APACHE2 | 15 - .../node_modules/through/LICENSE.MIT | 24 - .../JSONStream/node_modules/through/index.js | 107 - .../node_modules/through/package.json | 72 - .../node_modules/through/readme.markdown | 64 - .../node_modules/through/test/async.js | 28 - .../node_modules/through/test/auto-destroy.js | 29 - .../node_modules/through/test/buffering.js | 71 - .../node_modules/through/test/end.js | 45 - .../node_modules/through/test/index.js | 133 - deps/npm/node_modules/JSONStream/package.json | 75 - .../node_modules/JSONStream/readme.markdown | 206 - deps/npm/node_modules/JSONStream/test/bool.js | 41 - .../node_modules/JSONStream/test/browser.js | 18 - .../JSONStream/test/destroy_missing.js | 27 - .../JSONStream/test/disabled/doubledot1.js | 29 - .../JSONStream/test/disabled/doubledot2.js | 29 - .../npm/node_modules/JSONStream/test/empty.js | 44 - .../JSONStream/test/error_contents.js | 45 - .../JSONStream/test/fixtures/all_npm.json | 4030 ----- .../test/fixtures/couch_sample.json | 18 - .../JSONStream/test/fixtures/depth.json | 15 - .../JSONStream/test/fixtures/error.json | 1 - .../test/fixtures/header_footer.json | 19 - deps/npm/node_modules/JSONStream/test/fn.js | 39 - deps/npm/node_modules/JSONStream/test/gen.js | 135 - .../JSONStream/test/header_footer.js | 55 - .../node_modules/JSONStream/test/issues.js | 34 - deps/npm/node_modules/JSONStream/test/keys.js | 105 - deps/npm/node_modules/JSONStream/test/map.js | 39 - .../JSONStream/test/multiple_objects.js | 36 - .../JSONStream/test/multiple_objects_error.js | 29 - deps/npm/node_modules/JSONStream/test/null.js | 28 - .../node_modules/JSONStream/test/parsejson.js | 25 - .../node_modules/JSONStream/test/stringify.js | 41 - .../JSONStream/test/stringify_object.js | 47 - deps/npm/node_modules/JSONStream/test/test.js | 35 - .../npm/node_modules/JSONStream/test/test2.js | 29 - .../node_modules/JSONStream/test/two-ways.js | 41 - deps/npm/node_modules/abbrev/LICENSE | 46 - deps/npm/node_modules/abbrev/README.md | 23 - deps/npm/node_modules/abbrev/abbrev.js | 61 - deps/npm/node_modules/abbrev/package.json | 59 - deps/npm/node_modules/ansi-regex/index.js | 10 - deps/npm/node_modules/ansi-regex/license | 9 - deps/npm/node_modules/ansi-regex/package.json | 86 - deps/npm/node_modules/ansi-regex/readme.md | 46 - deps/npm/node_modules/ansicolors/LICENSE | 23 - deps/npm/node_modules/ansicolors/README.md | 62 - .../npm/node_modules/ansicolors/ansicolors.js | 65 - deps/npm/node_modules/ansicolors/package.json | 60 - .../ansicolors/test/ansicolors.js | 71 - deps/npm/node_modules/ansistyles/LICENSE | 23 - deps/npm/node_modules/ansistyles/README.md | 71 - .../npm/node_modules/ansistyles/ansistyles.js | 38 - deps/npm/node_modules/ansistyles/package.json | 60 - .../ansistyles/test/ansistyles.js | 15 - deps/npm/node_modules/aproba/LICENSE | 14 - deps/npm/node_modules/aproba/README.md | 94 - deps/npm/node_modules/aproba/index.js | 105 - deps/npm/node_modules/aproba/package.json | 68 - deps/npm/node_modules/archy/.travis.yml | 4 - deps/npm/node_modules/archy/LICENSE | 18 - deps/npm/node_modules/archy/README.markdown | 88 - deps/npm/node_modules/archy/examples/beep.js | 24 - .../node_modules/archy/examples/multi_line.js | 25 - deps/npm/node_modules/archy/index.js | 35 - deps/npm/node_modules/archy/package.json | 87 - deps/npm/node_modules/archy/test/beep.js | 40 - .../npm/node_modules/archy/test/multi_line.js | 45 - .../node_modules/archy/test/non_unicode.js | 40 - deps/npm/node_modules/bin-links/CHANGELOG.md | 22 - deps/npm/node_modules/bin-links/LICENSE | 235 - deps/npm/node_modules/bin-links/README.md | 47 - deps/npm/node_modules/bin-links/index.js | 187 - deps/npm/node_modules/bin-links/package.json | 77 - deps/npm/node_modules/bluebird/LICENSE | 21 - deps/npm/node_modules/bluebird/README.md | 51 - deps/npm/node_modules/bluebird/changelog.md | 1 - .../bluebird/js/browser/bluebird.core.js | 3781 ----- .../bluebird/js/browser/bluebird.core.min.js | 31 - .../bluebird/js/browser/bluebird.js | 5623 ------- .../bluebird/js/browser/bluebird.min.js | 31 - .../node_modules/bluebird/js/release/any.js | 21 - .../bluebird/js/release/assert.js | 55 - .../node_modules/bluebird/js/release/async.js | 161 - .../node_modules/bluebird/js/release/bind.js | 67 - .../bluebird/js/release/bluebird.js | 11 - .../bluebird/js/release/call_get.js | 123 - .../bluebird/js/release/cancel.js | 129 - .../bluebird/js/release/catch_filter.js | 42 - .../bluebird/js/release/context.js | 69 - .../bluebird/js/release/debuggability.js | 919 -- .../bluebird/js/release/direct_resolve.js | 46 - .../node_modules/bluebird/js/release/each.js | 29 - .../bluebird/js/release/errors.js | 116 - .../node_modules/bluebird/js/release/es5.js | 80 - .../bluebird/js/release/filter.js | 12 - .../bluebird/js/release/finally.js | 146 - .../bluebird/js/release/generators.js | 223 - .../node_modules/bluebird/js/release/join.js | 168 - .../node_modules/bluebird/js/release/map.js | 168 - .../bluebird/js/release/method.js | 55 - .../bluebird/js/release/nodeback.js | 51 - .../bluebird/js/release/nodeify.js | 58 - .../bluebird/js/release/promise.js | 775 - .../bluebird/js/release/promise_array.js | 185 - .../bluebird/js/release/promisify.js | 313 - .../node_modules/bluebird/js/release/props.js | 118 - .../node_modules/bluebird/js/release/queue.js | 73 - .../node_modules/bluebird/js/release/race.js | 49 - .../bluebird/js/release/reduce.js | 172 - .../bluebird/js/release/schedule.js | 61 - .../bluebird/js/release/settle.js | 43 - .../node_modules/bluebird/js/release/some.js | 148 - .../js/release/synchronous_inspection.js | 103 - .../bluebird/js/release/thenables.js | 86 - .../bluebird/js/release/timers.js | 93 - .../node_modules/bluebird/js/release/using.js | 226 - .../node_modules/bluebird/js/release/util.js | 380 - deps/npm/node_modules/bluebird/package.json | 106 - deps/npm/node_modules/cacache/CHANGELOG.md | 453 - deps/npm/node_modules/cacache/LICENSE.md | 16 - deps/npm/node_modules/cacache/README.es.md | 628 - deps/npm/node_modules/cacache/README.md | 624 - deps/npm/node_modules/cacache/en.js | 3 - deps/npm/node_modules/cacache/es.js | 3 - deps/npm/node_modules/cacache/get.js | 190 - deps/npm/node_modules/cacache/index.js | 3 - .../node_modules/cacache/lib/content/path.js | 26 - .../node_modules/cacache/lib/content/read.js | 115 - .../node_modules/cacache/lib/content/rm.js | 21 - .../node_modules/cacache/lib/content/write.js | 162 - .../node_modules/cacache/lib/entry-index.js | 224 - .../node_modules/cacache/lib/memoization.js | 69 - .../cacache/lib/util/fix-owner.js | 44 - .../cacache/lib/util/hash-to-segments.js | 11 - .../cacache/lib/util/move-file.js | 51 - deps/npm/node_modules/cacache/lib/util/tmp.js | 32 - deps/npm/node_modules/cacache/lib/util/y.js | 25 - deps/npm/node_modules/cacache/lib/verify.js | 213 - deps/npm/node_modules/cacache/locales/en.js | 44 - deps/npm/node_modules/cacache/locales/en.json | 6 - deps/npm/node_modules/cacache/locales/es.js | 46 - deps/npm/node_modules/cacache/locales/es.json | 6 - deps/npm/node_modules/cacache/ls.js | 6 - .../cacache/node_modules/ssri/CHANGELOG.md | 190 - .../cacache/node_modules/ssri/LICENSE.md | 16 - .../cacache/node_modules/ssri/README.md | 462 - .../cacache/node_modules/ssri/index.js | 334 - .../cacache/node_modules/ssri/package.json | 89 - .../cacache/node_modules/y18n/LICENSE | 13 - .../cacache/node_modules/y18n/README.md | 91 - .../cacache/node_modules/y18n/index.js | 172 - .../cacache/node_modules/y18n/package.json | 65 - deps/npm/node_modules/cacache/package.json | 129 - deps/npm/node_modules/cacache/put.js | 71 - deps/npm/node_modules/cacache/rm.js | 28 - deps/npm/node_modules/cacache/verify.js | 3 - deps/npm/node_modules/call-limit/README.md | 85 - .../npm/node_modules/call-limit/call-limit.js | 86 - deps/npm/node_modules/call-limit/package.json | 57 - deps/npm/node_modules/chownr/LICENSE | 15 - deps/npm/node_modules/chownr/README.md | 3 - deps/npm/node_modules/chownr/chownr.js | 52 - deps/npm/node_modules/chownr/package.json | 62 - deps/npm/node_modules/cli-table2/.npmignore | 5 - deps/npm/node_modules/cli-table2/.travis.yml | 6 - deps/npm/node_modules/cli-table2/README.md | 215 - .../node_modules/cli-table2/advanced-usage.md | 246 - .../node_modules/cli-table2/basic-usage.md | 145 - .../examples/basic-usage-examples.js | 222 - .../examples/col-and-row-span-examples.js | 358 - .../screenshots/basic-usage-with-colors.png | Bin 6265 -> 0 bytes .../screenshots/multi-line-colors.png | Bin 13063 -> 0 bytes .../screenshots/truncation-with-colors.png | Bin 5018 -> 0 bytes deps/npm/node_modules/cli-table2/gulpfile.js | 73 - deps/npm/node_modules/cli-table2/index.js | 1 - .../cli-table2/lib/print-example.js | 123 - .../cli-table2/node_modules/colors/LICENSE | 23 - .../cli-table2/node_modules/colors/ReadMe.md | 178 - .../colors/examples/normal-usage.js | 74 - .../colors/examples/safe-string.js | 73 - .../node_modules/colors/lib/colors.js | 187 - .../node_modules/colors/lib/custom/trap.js | 45 - .../node_modules/colors/lib/custom/zalgo.js | 104 - .../colors/lib/extendStringPrototype.js | 113 - .../node_modules/colors/lib/index.js | 12 - .../node_modules/colors/lib/maps/america.js | 12 - .../node_modules/colors/lib/maps/rainbow.js | 12 - .../node_modules/colors/lib/maps/random.js | 8 - .../node_modules/colors/lib/maps/zebra.js | 5 - .../node_modules/colors/lib/styles.js | 77 - .../colors/lib/system/supports-colors.js | 61 - .../node_modules/colors/package.json | 61 - .../cli-table2/node_modules/colors/safe.js | 9 - .../colors/themes/generic-logging.js | 12 - .../cli-table2/node_modules/lodash/LICENSE | 22 - .../cli-table2/node_modules/lodash/README.md | 121 - .../cli-table2/node_modules/lodash/array.js | 44 - .../node_modules/lodash/array/chunk.js | 46 - .../node_modules/lodash/array/compact.js | 30 - .../node_modules/lodash/array/difference.js | 29 - .../node_modules/lodash/array/drop.js | 39 - .../node_modules/lodash/array/dropRight.js | 40 - .../lodash/array/dropRightWhile.js | 59 - .../node_modules/lodash/array/dropWhile.js | 59 - .../node_modules/lodash/array/fill.js | 44 - .../node_modules/lodash/array/findIndex.js | 53 - .../lodash/array/findLastIndex.js | 53 - .../node_modules/lodash/array/first.js | 22 - .../node_modules/lodash/array/flatten.js | 32 - .../node_modules/lodash/array/flattenDeep.js | 21 - .../node_modules/lodash/array/head.js | 1 - .../node_modules/lodash/array/indexOf.js | 53 - .../node_modules/lodash/array/initial.js | 20 - .../node_modules/lodash/array/intersection.js | 58 - .../node_modules/lodash/array/last.js | 19 - .../node_modules/lodash/array/lastIndexOf.js | 60 - .../node_modules/lodash/array/object.js | 1 - .../node_modules/lodash/array/pull.js | 52 - .../node_modules/lodash/array/pullAt.js | 40 - .../node_modules/lodash/array/remove.js | 64 - .../node_modules/lodash/array/rest.js | 21 - .../node_modules/lodash/array/slice.js | 30 - .../node_modules/lodash/array/sortedIndex.js | 53 - .../lodash/array/sortedLastIndex.js | 25 - .../node_modules/lodash/array/tail.js | 1 - .../node_modules/lodash/array/take.js | 39 - .../node_modules/lodash/array/takeRight.js | 40 - .../lodash/array/takeRightWhile.js | 59 - .../node_modules/lodash/array/takeWhile.js | 59 - .../node_modules/lodash/array/union.js | 24 - .../node_modules/lodash/array/uniq.js | 71 - .../node_modules/lodash/array/unique.js | 1 - .../node_modules/lodash/array/unzip.js | 47 - .../node_modules/lodash/array/unzipWith.js | 41 - .../node_modules/lodash/array/without.js | 27 - .../node_modules/lodash/array/xor.js | 35 - .../node_modules/lodash/array/zip.js | 21 - .../node_modules/lodash/array/zipObject.js | 43 - .../node_modules/lodash/array/zipWith.js | 36 - .../cli-table2/node_modules/lodash/chain.js | 16 - .../node_modules/lodash/chain/chain.js | 35 - .../node_modules/lodash/chain/commit.js | 1 - .../node_modules/lodash/chain/concat.js | 1 - .../node_modules/lodash/chain/lodash.js | 125 - .../node_modules/lodash/chain/plant.js | 1 - .../node_modules/lodash/chain/reverse.js | 1 - .../node_modules/lodash/chain/run.js | 1 - .../node_modules/lodash/chain/tap.js | 29 - .../node_modules/lodash/chain/thru.js | 26 - .../node_modules/lodash/chain/toJSON.js | 1 - .../node_modules/lodash/chain/toString.js | 1 - .../node_modules/lodash/chain/value.js | 1 - .../node_modules/lodash/chain/valueOf.js | 1 - .../node_modules/lodash/chain/wrapperChain.js | 32 - .../lodash/chain/wrapperCommit.js | 32 - .../lodash/chain/wrapperConcat.js | 34 - .../node_modules/lodash/chain/wrapperPlant.js | 45 - .../lodash/chain/wrapperReverse.js | 43 - .../lodash/chain/wrapperToString.js | 17 - .../node_modules/lodash/chain/wrapperValue.js | 20 - .../node_modules/lodash/collection.js | 44 - .../node_modules/lodash/collection/all.js | 1 - .../node_modules/lodash/collection/any.js | 1 - .../node_modules/lodash/collection/at.js | 29 - .../node_modules/lodash/collection/collect.js | 1 - .../lodash/collection/contains.js | 1 - .../node_modules/lodash/collection/countBy.js | 54 - .../node_modules/lodash/collection/detect.js | 1 - .../node_modules/lodash/collection/each.js | 1 - .../lodash/collection/eachRight.js | 1 - .../node_modules/lodash/collection/every.js | 66 - .../node_modules/lodash/collection/filter.js | 61 - .../node_modules/lodash/collection/find.js | 56 - .../lodash/collection/findLast.js | 25 - .../lodash/collection/findWhere.js | 37 - .../node_modules/lodash/collection/foldl.js | 1 - .../node_modules/lodash/collection/foldr.js | 1 - .../node_modules/lodash/collection/forEach.js | 37 - .../lodash/collection/forEachRight.js | 26 - .../node_modules/lodash/collection/groupBy.js | 59 - .../node_modules/lodash/collection/include.js | 1 - .../lodash/collection/includes.js | 57 - .../node_modules/lodash/collection/indexBy.js | 53 - .../node_modules/lodash/collection/inject.js | 1 - .../node_modules/lodash/collection/invoke.js | 42 - .../node_modules/lodash/collection/map.js | 68 - .../node_modules/lodash/collection/max.js | 1 - .../node_modules/lodash/collection/min.js | 1 - .../lodash/collection/partition.js | 66 - .../node_modules/lodash/collection/pluck.js | 31 - .../node_modules/lodash/collection/reduce.js | 44 - .../lodash/collection/reduceRight.js | 29 - .../node_modules/lodash/collection/reject.js | 50 - .../node_modules/lodash/collection/sample.js | 50 - .../node_modules/lodash/collection/select.js | 1 - .../node_modules/lodash/collection/shuffle.js | 24 - .../node_modules/lodash/collection/size.js | 30 - .../node_modules/lodash/collection/some.js | 67 - .../node_modules/lodash/collection/sortBy.js | 71 - .../lodash/collection/sortByAll.js | 52 - .../lodash/collection/sortByOrder.js | 55 - .../node_modules/lodash/collection/sum.js | 1 - .../node_modules/lodash/collection/where.js | 37 - .../cli-table2/node_modules/lodash/date.js | 3 - .../node_modules/lodash/date/now.js | 24 - .../node_modules/lodash/function.js | 28 - .../node_modules/lodash/function/after.js | 48 - .../node_modules/lodash/function/ary.js | 34 - .../node_modules/lodash/function/backflow.js | 1 - .../node_modules/lodash/function/before.js | 42 - .../node_modules/lodash/function/bind.js | 56 - .../node_modules/lodash/function/bindAll.js | 50 - .../node_modules/lodash/function/bindKey.js | 66 - .../node_modules/lodash/function/compose.js | 1 - .../node_modules/lodash/function/curry.js | 51 - .../lodash/function/curryRight.js | 48 - .../node_modules/lodash/function/debounce.js | 181 - .../node_modules/lodash/function/defer.js | 25 - .../node_modules/lodash/function/delay.js | 26 - .../node_modules/lodash/function/flow.js | 25 - .../node_modules/lodash/function/flowRight.js | 25 - .../node_modules/lodash/function/memoize.js | 80 - .../node_modules/lodash/function/modArgs.js | 58 - .../node_modules/lodash/function/negate.js | 32 - .../node_modules/lodash/function/once.js | 24 - .../node_modules/lodash/function/partial.js | 43 - .../lodash/function/partialRight.js | 42 - .../node_modules/lodash/function/rearg.js | 40 - .../node_modules/lodash/function/restParam.js | 58 - .../node_modules/lodash/function/spread.js | 44 - .../node_modules/lodash/function/throttle.js | 62 - .../node_modules/lodash/function/wrap.js | 33 - .../cli-table2/node_modules/lodash/index.js | 12351 ---------------- .../lodash/internal/LazyWrapper.js | 26 - .../lodash/internal/LodashWrapper.js | 21 - .../node_modules/lodash/internal/MapCache.js | 24 - .../node_modules/lodash/internal/SetCache.js | 29 - .../lodash/internal/arrayConcat.js | 25 - .../node_modules/lodash/internal/arrayCopy.js | 20 - .../node_modules/lodash/internal/arrayEach.js | 22 - .../lodash/internal/arrayEachRight.js | 21 - .../lodash/internal/arrayEvery.js | 23 - .../lodash/internal/arrayExtremum.js | 30 - .../lodash/internal/arrayFilter.js | 25 - .../node_modules/lodash/internal/arrayMap.js | 21 - .../node_modules/lodash/internal/arrayPush.js | 20 - .../lodash/internal/arrayReduce.js | 26 - .../lodash/internal/arrayReduceRight.js | 24 - .../node_modules/lodash/internal/arraySome.js | 23 - .../node_modules/lodash/internal/arraySum.js | 20 - .../lodash/internal/assignDefaults.js | 13 - .../lodash/internal/assignOwnDefaults.js | 26 - .../lodash/internal/assignWith.js | 32 - .../lodash/internal/baseAssign.js | 19 - .../node_modules/lodash/internal/baseAt.js | 32 - .../lodash/internal/baseCallback.js | 35 - .../node_modules/lodash/internal/baseClone.js | 128 - .../lodash/internal/baseCompareAscending.js | 34 - .../node_modules/lodash/internal/baseCopy.js | 23 - .../lodash/internal/baseCreate.js | 23 - .../node_modules/lodash/internal/baseDelay.js | 21 - .../lodash/internal/baseDifference.js | 55 - .../node_modules/lodash/internal/baseEach.js | 15 - .../lodash/internal/baseEachRight.js | 15 - .../node_modules/lodash/internal/baseEvery.js | 22 - .../lodash/internal/baseExtremum.js | 29 - .../node_modules/lodash/internal/baseFill.js | 31 - .../lodash/internal/baseFilter.js | 22 - .../node_modules/lodash/internal/baseFind.js | 25 - .../lodash/internal/baseFindIndex.js | 23 - .../lodash/internal/baseFlatten.js | 41 - .../node_modules/lodash/internal/baseFor.js | 17 - .../node_modules/lodash/internal/baseForIn.js | 17 - .../lodash/internal/baseForOwn.js | 17 - .../lodash/internal/baseForOwnRight.js | 17 - .../lodash/internal/baseForRight.js | 15 - .../lodash/internal/baseFunctions.js | 27 - .../node_modules/lodash/internal/baseGet.js | 29 - .../lodash/internal/baseIndexOf.js | 27 - .../lodash/internal/baseIsEqual.js | 28 - .../lodash/internal/baseIsEqualDeep.js | 102 - .../lodash/internal/baseIsFunction.js | 15 - .../lodash/internal/baseIsMatch.js | 52 - .../lodash/internal/baseLodash.js | 10 - .../node_modules/lodash/internal/baseMap.js | 23 - .../lodash/internal/baseMatches.js | 30 - .../lodash/internal/baseMatchesProperty.js | 45 - .../node_modules/lodash/internal/baseMerge.js | 56 - .../lodash/internal/baseMergeDeep.js | 67 - .../lodash/internal/baseProperty.js | 14 - .../lodash/internal/basePropertyDeep.js | 19 - .../lodash/internal/basePullAt.js | 30 - .../lodash/internal/baseRandom.js | 18 - .../lodash/internal/baseReduce.js | 24 - .../lodash/internal/baseSetData.js | 17 - .../node_modules/lodash/internal/baseSlice.js | 32 - .../node_modules/lodash/internal/baseSome.js | 23 - .../lodash/internal/baseSortBy.js | 21 - .../lodash/internal/baseSortByOrder.js | 31 - .../node_modules/lodash/internal/baseSum.js | 20 - .../lodash/internal/baseToString.js | 13 - .../node_modules/lodash/internal/baseUniq.js | 60 - .../lodash/internal/baseValues.js | 22 - .../node_modules/lodash/internal/baseWhile.js | 24 - .../lodash/internal/baseWrapperValue.js | 29 - .../lodash/internal/binaryIndex.js | 39 - .../lodash/internal/binaryIndexBy.js | 57 - .../lodash/internal/bindCallback.js | 39 - .../lodash/internal/bufferClone.js | 20 - .../lodash/internal/cacheIndexOf.js | 19 - .../node_modules/lodash/internal/cachePush.js | 20 - .../lodash/internal/charsLeftIndex.js | 18 - .../lodash/internal/charsRightIndex.js | 17 - .../lodash/internal/compareAscending.js | 16 - .../lodash/internal/compareMultiple.js | 44 - .../lodash/internal/composeArgs.js | 34 - .../lodash/internal/composeArgsRight.js | 36 - .../lodash/internal/createAggregator.js | 35 - .../lodash/internal/createAssigner.js | 41 - .../lodash/internal/createBaseEach.js | 31 - .../lodash/internal/createBaseFor.js | 27 - .../lodash/internal/createBindWrapper.js | 22 - .../lodash/internal/createCache.js | 21 - .../lodash/internal/createCompounder.js | 26 - .../lodash/internal/createCtorWrapper.js | 37 - .../lodash/internal/createCurry.js | 23 - .../lodash/internal/createDefaults.js | 22 - .../lodash/internal/createExtremum.js | 33 - .../lodash/internal/createFind.js | 25 - .../lodash/internal/createFindIndex.js | 21 - .../lodash/internal/createFindKey.js | 18 - .../lodash/internal/createFlow.js | 74 - .../lodash/internal/createForEach.js | 20 - .../lodash/internal/createForIn.js | 20 - .../lodash/internal/createForOwn.js | 19 - .../lodash/internal/createHybridWrapper.js | 111 - .../lodash/internal/createObjectMapper.js | 26 - .../lodash/internal/createPadDir.js | 18 - .../lodash/internal/createPadding.js | 29 - .../lodash/internal/createPartial.js | 20 - .../lodash/internal/createPartialWrapper.js | 43 - .../lodash/internal/createReduce.js | 22 - .../lodash/internal/createRound.js | 23 - .../lodash/internal/createSortedIndex.js | 20 - .../lodash/internal/createWrapper.js | 86 - .../lodash/internal/deburrLetter.js | 33 - .../lodash/internal/equalArrays.js | 51 - .../lodash/internal/equalByTag.js | 48 - .../lodash/internal/equalObjects.js | 67 - .../lodash/internal/escapeHtmlChar.js | 22 - .../lodash/internal/escapeRegExpChar.js | 38 - .../lodash/internal/escapeStringChar.js | 22 - .../node_modules/lodash/internal/getData.js | 15 - .../lodash/internal/getFuncName.js | 25 - .../node_modules/lodash/internal/getLength.js | 15 - .../lodash/internal/getMatchData.js | 21 - .../node_modules/lodash/internal/getNative.js | 16 - .../node_modules/lodash/internal/getView.js | 33 - .../lodash/internal/indexOfNaN.js | 23 - .../lodash/internal/initCloneArray.js | 26 - .../lodash/internal/initCloneByTag.js | 63 - .../lodash/internal/initCloneObject.js | 16 - .../lodash/internal/invokePath.js | 26 - .../lodash/internal/isArrayLike.js | 15 - .../node_modules/lodash/internal/isIndex.js | 24 - .../lodash/internal/isIterateeCall.js | 28 - .../node_modules/lodash/internal/isKey.js | 28 - .../lodash/internal/isLaziable.js | 27 - .../node_modules/lodash/internal/isLength.js | 20 - .../lodash/internal/isObjectLike.js | 12 - .../node_modules/lodash/internal/isSpace.js | 14 - .../lodash/internal/isStrictComparable.js | 15 - .../node_modules/lodash/internal/lazyClone.js | 23 - .../lodash/internal/lazyReverse.js | 23 - .../node_modules/lodash/internal/lazyValue.js | 72 - .../node_modules/lodash/internal/mapDelete.js | 14 - .../node_modules/lodash/internal/mapGet.js | 14 - .../node_modules/lodash/internal/mapHas.js | 20 - .../node_modules/lodash/internal/mapSet.js | 18 - .../node_modules/lodash/internal/mergeData.js | 89 - .../lodash/internal/mergeDefaults.js | 15 - .../node_modules/lodash/internal/metaMap.js | 9 - .../lodash/internal/pickByArray.js | 28 - .../lodash/internal/pickByCallback.js | 22 - .../node_modules/lodash/internal/reEscape.js | 4 - .../lodash/internal/reEvaluate.js | 4 - .../lodash/internal/reInterpolate.js | 4 - .../node_modules/lodash/internal/realNames.js | 4 - .../node_modules/lodash/internal/reorder.js | 29 - .../lodash/internal/replaceHolders.js | 28 - .../node_modules/lodash/internal/setData.js | 41 - .../node_modules/lodash/internal/shimKeys.js | 41 - .../lodash/internal/sortedUniq.js | 29 - .../lodash/internal/toIterable.js | 22 - .../node_modules/lodash/internal/toObject.js | 14 - .../node_modules/lodash/internal/toPath.js | 28 - .../lodash/internal/trimmedLeftIndex.js | 19 - .../lodash/internal/trimmedRightIndex.js | 18 - .../lodash/internal/unescapeHtmlChar.js | 22 - .../lodash/internal/wrapperClone.js | 18 - .../cli-table2/node_modules/lodash/lang.js | 32 - .../node_modules/lodash/lang/clone.js | 70 - .../node_modules/lodash/lang/cloneDeep.js | 55 - .../cli-table2/node_modules/lodash/lang/eq.js | 1 - .../cli-table2/node_modules/lodash/lang/gt.js | 25 - .../node_modules/lodash/lang/gte.js | 25 - .../node_modules/lodash/lang/isArguments.js | 34 - .../node_modules/lodash/lang/isArray.js | 40 - .../node_modules/lodash/lang/isBoolean.js | 35 - .../node_modules/lodash/lang/isDate.js | 35 - .../node_modules/lodash/lang/isElement.js | 24 - .../node_modules/lodash/lang/isEmpty.js | 47 - .../node_modules/lodash/lang/isEqual.js | 54 - .../node_modules/lodash/lang/isError.js | 36 - .../node_modules/lodash/lang/isFinite.js | 35 - .../node_modules/lodash/lang/isFunction.js | 38 - .../node_modules/lodash/lang/isMatch.js | 49 - .../node_modules/lodash/lang/isNaN.js | 34 - .../node_modules/lodash/lang/isNative.js | 48 - .../node_modules/lodash/lang/isNull.js | 21 - .../node_modules/lodash/lang/isNumber.js | 41 - .../node_modules/lodash/lang/isObject.js | 28 - .../node_modules/lodash/lang/isPlainObject.js | 71 - .../node_modules/lodash/lang/isRegExp.js | 35 - .../node_modules/lodash/lang/isString.js | 35 - .../node_modules/lodash/lang/isTypedArray.js | 74 - .../node_modules/lodash/lang/isUndefined.js | 21 - .../cli-table2/node_modules/lodash/lang/lt.js | 25 - .../node_modules/lodash/lang/lte.js | 25 - .../node_modules/lodash/lang/toArray.js | 32 - .../node_modules/lodash/lang/toPlainObject.js | 31 - .../cli-table2/node_modules/lodash/math.js | 9 - .../node_modules/lodash/math/add.js | 19 - .../node_modules/lodash/math/ceil.js | 25 - .../node_modules/lodash/math/floor.js | 25 - .../node_modules/lodash/math/max.js | 56 - .../node_modules/lodash/math/min.js | 56 - .../node_modules/lodash/math/round.js | 25 - .../node_modules/lodash/math/sum.js | 50 - .../cli-table2/node_modules/lodash/number.js | 4 - .../node_modules/lodash/number/inRange.js | 47 - .../node_modules/lodash/number/random.js | 70 - .../cli-table2/node_modules/lodash/object.js | 31 - .../node_modules/lodash/object/assign.js | 43 - .../node_modules/lodash/object/create.js | 47 - .../node_modules/lodash/object/defaults.js | 25 - .../lodash/object/defaultsDeep.js | 25 - .../node_modules/lodash/object/extend.js | 1 - .../node_modules/lodash/object/findKey.js | 54 - .../node_modules/lodash/object/findLastKey.js | 54 - .../node_modules/lodash/object/forIn.js | 33 - .../node_modules/lodash/object/forInRight.js | 31 - .../node_modules/lodash/object/forOwn.js | 33 - .../node_modules/lodash/object/forOwnRight.js | 31 - .../node_modules/lodash/object/functions.js | 23 - .../node_modules/lodash/object/get.js | 33 - .../node_modules/lodash/object/has.js | 57 - .../node_modules/lodash/object/invert.js | 60 - .../node_modules/lodash/object/keys.js | 45 - .../node_modules/lodash/object/keysIn.js | 64 - .../node_modules/lodash/object/mapKeys.js | 25 - .../node_modules/lodash/object/mapValues.js | 46 - .../node_modules/lodash/object/merge.js | 54 - .../node_modules/lodash/object/methods.js | 1 - .../node_modules/lodash/object/omit.js | 47 - .../node_modules/lodash/object/pairs.js | 33 - .../node_modules/lodash/object/pick.js | 42 - .../node_modules/lodash/object/result.js | 49 - .../node_modules/lodash/object/set.js | 55 - .../node_modules/lodash/object/transform.js | 61 - .../node_modules/lodash/object/values.js | 33 - .../node_modules/lodash/object/valuesIn.js | 31 - .../node_modules/lodash/package.json | 81 - .../cli-table2/node_modules/lodash/string.js | 25 - .../node_modules/lodash/string/camelCase.js | 27 - .../node_modules/lodash/string/capitalize.js | 21 - .../node_modules/lodash/string/deburr.js | 29 - .../node_modules/lodash/string/endsWith.js | 40 - .../node_modules/lodash/string/escape.js | 48 - .../lodash/string/escapeRegExp.js | 32 - .../node_modules/lodash/string/kebabCase.js | 26 - .../node_modules/lodash/string/pad.js | 47 - .../node_modules/lodash/string/padLeft.js | 27 - .../node_modules/lodash/string/padRight.js | 27 - .../node_modules/lodash/string/parseInt.js | 46 - .../node_modules/lodash/string/repeat.js | 47 - .../node_modules/lodash/string/snakeCase.js | 26 - .../node_modules/lodash/string/startCase.js | 26 - .../node_modules/lodash/string/startsWith.js | 36 - .../node_modules/lodash/string/template.js | 226 - .../lodash/string/templateSettings.js | 67 - .../node_modules/lodash/string/trim.js | 42 - .../node_modules/lodash/string/trimLeft.js | 36 - .../node_modules/lodash/string/trimRight.js | 36 - .../node_modules/lodash/string/trunc.js | 105 - .../node_modules/lodash/string/unescape.js | 33 - .../node_modules/lodash/string/words.js | 38 - .../cli-table2/node_modules/lodash/support.js | 10 - .../cli-table2/node_modules/lodash/utility.js | 18 - .../node_modules/lodash/utility/attempt.js | 32 - .../node_modules/lodash/utility/callback.js | 53 - .../node_modules/lodash/utility/constant.js | 23 - .../node_modules/lodash/utility/identity.js | 20 - .../node_modules/lodash/utility/iteratee.js | 1 - .../node_modules/lodash/utility/matches.js | 33 - .../lodash/utility/matchesProperty.js | 32 - .../node_modules/lodash/utility/method.js | 33 - .../node_modules/lodash/utility/methodOf.js | 32 - .../node_modules/lodash/utility/mixin.js | 82 - .../node_modules/lodash/utility/noop.js | 19 - .../node_modules/lodash/utility/property.js | 31 - .../node_modules/lodash/utility/propertyOf.js | 30 - .../node_modules/lodash/utility/range.js | 66 - .../node_modules/lodash/utility/times.js | 60 - .../node_modules/lodash/utility/uniqueId.js | 27 - .../node_modules/string-width/index.js | 37 - .../node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 70 - .../node_modules/code-point-at/readme.md | 32 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 67 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 77 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/strip-ansi/index.js | 6 - .../node_modules/strip-ansi/license | 21 - .../node_modules/ansi-regex/index.js | 4 - .../node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 101 - .../node_modules/strip-ansi/readme.md | 33 - .../node_modules/string-width/package.json | 88 - .../node_modules/string-width/readme.md | 42 - deps/npm/node_modules/cli-table2/package.json | 84 - deps/npm/node_modules/cli-table2/src/cell.js | 364 - .../cli-table2/src/layout-manager.js | 235 - deps/npm/node_modules/cli-table2/src/table.js | 78 - deps/npm/node_modules/cli-table2/src/utils.js | 304 - .../node_modules/cli-table2/test/cell-test.js | 935 -- .../cli-table2/test/example-tests.js | 6 - .../cli-table2/test/layout-manager-test.js | 163 - .../test/original-cli-table-index-tests.js | 294 - .../test/original-cli-table-newlines-test.js | 85 - .../cli-table2/test/table-layout-test.js | 466 - .../cli-table2/test/table-test.js | 87 - .../cli-table2/test/utils-test.js | 414 - .../test/verify-legacy-compatibility-test.js | 158 - deps/npm/node_modules/cmd-shim/.npmignore | 16 - deps/npm/node_modules/cmd-shim/.travis.yml | 4 - deps/npm/node_modules/cmd-shim/LICENSE | 27 - deps/npm/node_modules/cmd-shim/README.md | 44 - deps/npm/node_modules/cmd-shim/index.js | 180 - deps/npm/node_modules/cmd-shim/package.json | 53 - .../node_modules/cmd-shim/test/00-setup.js | 34 - deps/npm/node_modules/cmd-shim/test/basic.js | 175 - .../node_modules/cmd-shim/test/zz-cleanup.js | 13 - deps/npm/node_modules/columnify/LICENSE | 21 - deps/npm/node_modules/columnify/Makefile | 9 - deps/npm/node_modules/columnify/Readme.md | 470 - deps/npm/node_modules/columnify/columnify.js | 308 - deps/npm/node_modules/columnify/index.js | 297 - .../node_modules/strip-ansi/index.js | 6 - .../columnify/node_modules/strip-ansi/license | 21 - .../node_modules/ansi-regex/index.js | 4 - .../node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 101 - .../node_modules/strip-ansi/readme.md | 33 - .../columnify/node_modules/wcwidth/.npmignore | 1 - .../columnify/node_modules/wcwidth/LICENSE | 30 - .../columnify/node_modules/wcwidth/Readme.md | 33 - .../node_modules/wcwidth/combining.js | 50 - .../node_modules/wcwidth/docs/index.md | 65 - .../columnify/node_modules/wcwidth/index.js | 99 - .../wcwidth/node_modules/defaults/.npmignore | 1 - .../wcwidth/node_modules/defaults/LICENSE | 21 - .../wcwidth/node_modules/defaults/README.md | 43 - .../wcwidth/node_modules/defaults/index.js | 13 - .../defaults/node_modules/clone/.npmignore | 1 - .../defaults/node_modules/clone/.travis.yml | 3 - .../defaults/node_modules/clone/LICENSE | 18 - .../defaults/node_modules/clone/README.md | 126 - .../defaults/node_modules/clone/clone.js | 160 - .../defaults/node_modules/clone/package.json | 139 - .../node_modules/clone/test-apart-ctx.html | 22 - .../defaults/node_modules/clone/test.html | 148 - .../defaults/node_modules/clone/test.js | 372 - .../node_modules/defaults/package.json | 60 - .../wcwidth/node_modules/defaults/test.js | 34 - .../node_modules/wcwidth/package.json | 76 - .../node_modules/wcwidth/test/index.js | 64 - deps/npm/node_modules/columnify/package.json | 81 - deps/npm/node_modules/columnify/utils.js | 193 - deps/npm/node_modules/columnify/width.js | 6 - deps/npm/node_modules/config-chain/.npmignore | 3 - deps/npm/node_modules/config-chain/LICENCE | 22 - deps/npm/node_modules/config-chain/index.js | 282 - .../node_modules/proto-list/LICENSE | 15 - .../node_modules/proto-list/README.md | 3 - .../node_modules/proto-list/package.json | 55 - .../node_modules/proto-list/proto-list.js | 88 - .../node_modules/proto-list/test/basic.js | 61 - .../node_modules/config-chain/package.json | 62 - .../node_modules/config-chain/readme.markdown | 237 - .../node_modules/config-chain/test/broken.js | 10 - .../config-chain/test/broken.json | 21 - .../config-chain/test/chain-class.js | 100 - .../npm/node_modules/config-chain/test/env.js | 10 - .../config-chain/test/find-file.js | 13 - .../npm/node_modules/config-chain/test/get.js | 15 - .../config-chain/test/ignore-unfound-file.js | 5 - .../npm/node_modules/config-chain/test/ini.js | 18 - .../node_modules/config-chain/test/save.js | 59 - deps/npm/node_modules/debuglog/LICENSE | 19 - deps/npm/node_modules/debuglog/README.md | 40 - deps/npm/node_modules/debuglog/debuglog.js | 22 - deps/npm/node_modules/debuglog/package.json | 58 - deps/npm/node_modules/detect-indent/index.js | 122 - deps/npm/node_modules/detect-indent/license | 21 - .../node_modules/detect-indent/package.json | 78 - deps/npm/node_modules/detect-indent/readme.md | 111 - deps/npm/node_modules/dezalgo/.travis.yml | 7 - deps/npm/node_modules/dezalgo/LICENSE | 15 - deps/npm/node_modules/dezalgo/README.md | 29 - deps/npm/node_modules/dezalgo/dezalgo.js | 22 - .../dezalgo/node_modules/asap/CHANGES.md | 63 - .../dezalgo/node_modules/asap/LICENSE.md | 20 - .../dezalgo/node_modules/asap/README.md | 236 - .../dezalgo/node_modules/asap/asap.js | 64 - .../dezalgo/node_modules/asap/browser-asap.js | 66 - .../dezalgo/node_modules/asap/browser-raw.js | 223 - .../dezalgo/node_modules/asap/package.json | 88 - .../dezalgo/node_modules/asap/raw.js | 101 - deps/npm/node_modules/dezalgo/package.json | 76 - deps/npm/node_modules/dezalgo/test/basic.js | 29 - deps/npm/node_modules/editor/LICENSE | 21 - deps/npm/node_modules/editor/README.markdown | 54 - .../npm/node_modules/editor/example/beep.json | 5 - deps/npm/node_modules/editor/example/edit.js | 4 - deps/npm/node_modules/editor/index.js | 20 - deps/npm/node_modules/editor/package.json | 67 - deps/npm/node_modules/find-npm-prefix/LICENSE | 15 - .../node_modules/find-npm-prefix/README.md | 28 - .../find-npm-prefix/find-prefix.js | 54 - .../node_modules/find-npm-prefix/package.json | 59 - .../find-npm-prefix/test/find-prefix.js | 79 - deps/npm/node_modules/fs-vacuum/.eslintrc | 18 - deps/npm/node_modules/fs-vacuum/.npmignore | 1 - deps/npm/node_modules/fs-vacuum/.travis.yml | 14 - deps/npm/node_modules/fs-vacuum/LICENSE | 13 - deps/npm/node_modules/fs-vacuum/README.md | 33 - deps/npm/node_modules/fs-vacuum/package.json | 68 - .../node_modules/fs-vacuum/test/arguments.js | 24 - .../fs-vacuum/test/base-leaf-mismatch.js | 16 - .../test/no-entries-file-no-purge.js | 78 - .../test/no-entries-link-no-purge.js | 78 - .../fs-vacuum/test/no-entries-no-purge.js | 61 - .../test/no-entries-with-link-purge.js | 78 - .../fs-vacuum/test/no-entries-with-purge.js | 67 - .../test/not-remove-home-directory.js | 46 - .../test/other-directories-no-purge.js | 76 - .../fs-vacuum/test/racy-entries-eexist.js | 119 - .../fs-vacuum/test/racy-entries-enotempty.js | 119 - .../fs-vacuum/test/racy-entries.js | 104 - deps/npm/node_modules/fs-vacuum/vacuum.js | 117 - .../fs-write-stream-atomic/.npmignore | 3 - .../fs-write-stream-atomic/.travis.yml | 11 - .../fs-write-stream-atomic/LICENSE | 15 - .../fs-write-stream-atomic/README.md | 35 - .../fs-write-stream-atomic/index.js | 176 - .../fs-write-stream-atomic/package.json | 67 - .../fs-write-stream-atomic/test/basic.js | 97 - .../fs-write-stream-atomic/test/chown.js | 44 - .../test/rename-eperm.js | 154 - .../test/rename-fail.js | 30 - .../fs-write-stream-atomic/test/slow-close.js | 40 - .../fs-write-stream-atomic/test/toolong.js | 29 - deps/npm/node_modules/gentle-fs/CHANGELOG.md | 63 - deps/npm/node_modules/gentle-fs/LICENSE | 235 - deps/npm/node_modules/gentle-fs/README.md | 74 - deps/npm/node_modules/gentle-fs/index.js | 10 - deps/npm/node_modules/gentle-fs/lib/link.js | 66 - deps/npm/node_modules/gentle-fs/lib/rm.js | 256 - deps/npm/node_modules/gentle-fs/package.json | 83 - deps/npm/node_modules/glob/LICENSE | 15 - deps/npm/node_modules/glob/README.md | 368 - deps/npm/node_modules/glob/changelog.md | 67 - deps/npm/node_modules/glob/common.js | 240 - deps/npm/node_modules/glob/glob.js | 790 - .../glob/node_modules/fs.realpath/LICENSE | 43 - .../glob/node_modules/fs.realpath/README.md | 33 - .../glob/node_modules/fs.realpath/index.js | 66 - .../glob/node_modules/fs.realpath/old.js | 303 - .../node_modules/fs.realpath/package.json | 62 - .../glob/node_modules/minimatch/LICENSE | 15 - .../glob/node_modules/minimatch/README.md | 209 - .../glob/node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 201 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 92 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../glob/node_modules/minimatch/package.json | 63 - .../node_modules/path-is-absolute/index.js | 20 - .../node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 79 - .../node_modules/path-is-absolute/readme.md | 59 - deps/npm/node_modules/glob/package.json | 86 - deps/npm/node_modules/glob/sync.js | 486 - deps/npm/node_modules/graceful-fs/LICENSE | 15 - deps/npm/node_modules/graceful-fs/README.md | 133 - deps/npm/node_modules/graceful-fs/fs.js | 21 - .../node_modules/graceful-fs/graceful-fs.js | 262 - .../graceful-fs/legacy-streams.js | 118 - .../npm/node_modules/graceful-fs/package.json | 96 - .../npm/node_modules/graceful-fs/polyfills.js | 330 - deps/npm/node_modules/has-unicode/LICENSE | 14 - deps/npm/node_modules/has-unicode/README.md | 43 - deps/npm/node_modules/has-unicode/index.js | 16 - .../npm/node_modules/has-unicode/package.json | 63 - deps/npm/node_modules/hosted-git-info/LICENSE | 13 - .../node_modules/hosted-git-info/README.md | 132 - .../hosted-git-info/git-host-info.js | 68 - .../node_modules/hosted-git-info/git-host.js | 114 - .../npm/node_modules/hosted-git-info/index.js | 121 - .../node_modules/hosted-git-info/package.json | 66 - deps/npm/node_modules/iferr/.npmignore | 1 - deps/npm/node_modules/iferr/LICENSE | 21 - deps/npm/node_modules/iferr/README.md | 40 - deps/npm/node_modules/iferr/index.coffee | 24 - deps/npm/node_modules/iferr/index.js | 49 - deps/npm/node_modules/iferr/package.json | 61 - deps/npm/node_modules/iferr/test/index.coffee | 42 - deps/npm/node_modules/iferr/test/mocha.opts | 2 - deps/npm/node_modules/imurmurhash/README.md | 122 - .../node_modules/imurmurhash/imurmurhash.js | 138 - .../imurmurhash/imurmurhash.min.js | 12 - .../npm/node_modules/imurmurhash/package.json | 69 - deps/npm/node_modules/inflight/LICENSE | 15 - deps/npm/node_modules/inflight/README.md | 37 - deps/npm/node_modules/inflight/inflight.js | 54 - deps/npm/node_modules/inflight/package.json | 64 - deps/npm/node_modules/inherits/LICENSE | 16 - deps/npm/node_modules/inherits/README.md | 42 - deps/npm/node_modules/inherits/inherits.js | 7 - .../node_modules/inherits/inherits_browser.js | 23 - deps/npm/node_modules/inherits/package.json | 85 - deps/npm/node_modules/ini/LICENSE | 15 - deps/npm/node_modules/ini/README.md | 102 - deps/npm/node_modules/ini/ini.js | 190 - deps/npm/node_modules/ini/package.json | 64 - .../node_modules/init-package-json/LICENSE | 15 - .../node_modules/init-package-json/README.md | 45 - .../init-package-json/default-input.js | 239 - .../init-package-json/init-package-json.js | 154 - .../node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 81 - .../node_modules/npm-package-arg/npa.js | 270 - .../node_modules/npm-package-arg/package.json | 64 - .../node_modules/promzard/.npmignore | 1 - .../node_modules/promzard/LICENSE | 15 - .../node_modules/promzard/README.md | 133 - .../node_modules/promzard/example/buffer.js | 12 - .../node_modules/promzard/example/index.js | 11 - .../promzard/example/npm-init/README.md | 8 - .../promzard/example/npm-init/init-input.js | 191 - .../promzard/example/npm-init/init.js | 37 - .../promzard/example/npm-init/package.json | 10 - .../promzard/example/substack-input.js | 61 - .../node_modules/promzard/package.json | 56 - .../node_modules/promzard/promzard.js | 238 - .../node_modules/promzard/test/basic.js | 91 - .../node_modules/promzard/test/buffer.js | 84 - .../node_modules/promzard/test/exports.input | 5 - .../node_modules/promzard/test/exports.js | 48 - .../node_modules/promzard/test/fn.input | 18 - .../node_modules/promzard/test/fn.js | 56 - .../node_modules/promzard/test/simple.input | 8 - .../node_modules/promzard/test/simple.js | 30 - .../node_modules/promzard/test/validate.input | 8 - .../node_modules/promzard/test/validate.js | 20 - .../init-package-json/package.json | 83 - deps/npm/node_modules/is-cidr/.npmignore | 1 - deps/npm/node_modules/is-cidr/.travis.yml | 21 - deps/npm/node_modules/is-cidr/README.md | 57 - .../node_modules/is-cidr/example/example.js | 13 - deps/npm/node_modules/is-cidr/lib/index.js | 18 - .../node_modules/cidr-regex/.npmignore | 1 - .../is-cidr/node_modules/cidr-regex/README.md | 48 - .../node_modules/cidr-regex/lib/index.js | 10 - .../node_modules/cidr-regex/package.json | 68 - .../is-cidr/node_modules/cidr-regex/test.js | 199 - deps/npm/node_modules/is-cidr/package.json | 94 - .../node_modules/is-cidr/test/index.test.js | 199 - .../npm/node_modules/lazy-property/.npmignore | 16 - deps/npm/node_modules/lazy-property/LICENSE | 22 - deps/npm/node_modules/lazy-property/README.md | 44 - .../node_modules/lazy-property/component.json | 7 - .../lazy-property/lazyProperty.js | 19 - .../node_modules/lazy-property/package.json | 65 - deps/npm/node_modules/libnpx/CHANGELOG.md | 740 - deps/npm/node_modules/libnpx/LICENSE.md | 3 - deps/npm/node_modules/libnpx/README.md | 159 - deps/npm/node_modules/libnpx/auto-fallback.js | 69 - deps/npm/node_modules/libnpx/child.js | 86 - deps/npm/node_modules/libnpx/get-prefix.js | 54 - deps/npm/node_modules/libnpx/index.js | 366 - deps/npm/node_modules/libnpx/libnpx.1 | 167 - deps/npm/node_modules/libnpx/locales/ar.json | 29 - deps/npm/node_modules/libnpx/locales/ca.json | 28 - deps/npm/node_modules/libnpx/locales/cs.json | 28 - deps/npm/node_modules/libnpx/locales/de.json | 29 - deps/npm/node_modules/libnpx/locales/en.json | 29 - deps/npm/node_modules/libnpx/locales/es.json | 28 - deps/npm/node_modules/libnpx/locales/fr.json | 28 - deps/npm/node_modules/libnpx/locales/id.json | 29 - deps/npm/node_modules/libnpx/locales/it.json | 28 - deps/npm/node_modules/libnpx/locales/ja.json | 28 - deps/npm/node_modules/libnpx/locales/ko.json | 29 - deps/npm/node_modules/libnpx/locales/nb.json | 29 - deps/npm/node_modules/libnpx/locales/nl.json | 29 - deps/npm/node_modules/libnpx/locales/nn.json | 29 - deps/npm/node_modules/libnpx/locales/no.json | 29 - deps/npm/node_modules/libnpx/locales/pl.json | 29 - .../node_modules/libnpx/locales/pt_BR.json | 28 - deps/npm/node_modules/libnpx/locales/ro.json | 28 - deps/npm/node_modules/libnpx/locales/ru.json | 28 - deps/npm/node_modules/libnpx/locales/sr.json | 29 - deps/npm/node_modules/libnpx/locales/tr.json | 28 - deps/npm/node_modules/libnpx/locales/uk.json | 29 - .../node_modules/libnpx/locales/zh_CN.json | 28 - .../node_modules/libnpx/locales/zh_TW.json | 29 - .../libnpx/node_modules/dotenv/CHANGELOG.md | 76 - .../libnpx/node_modules/dotenv/LICENSE | 23 - .../libnpx/node_modules/dotenv/README.md | 208 - .../libnpx/node_modules/dotenv/config.js | 11 - .../libnpx/node_modules/dotenv/lib/main.js | 74 - .../libnpx/node_modules/dotenv/package.json | 76 - .../node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 81 - .../node_modules/npm-package-arg/npa.js | 270 - .../node_modules/npm-package-arg/package.json | 64 - .../libnpx/node_modules/y18n/LICENSE | 13 - .../libnpx/node_modules/y18n/README.md | 91 - .../libnpx/node_modules/y18n/index.js | 172 - .../libnpx/node_modules/y18n/package.json | 69 - .../libnpx/node_modules/yargs/CHANGELOG.md | 961 -- .../libnpx/node_modules/yargs/LICENSE | 22 - .../libnpx/node_modules/yargs/README.md | 103 - .../node_modules/yargs/completion.sh.hbs | 28 - .../libnpx/node_modules/yargs/index.js | 31 - .../node_modules/yargs/lib/apply-extends.js | 52 - .../libnpx/node_modules/yargs/lib/argsert.js | 72 - .../libnpx/node_modules/yargs/lib/assign.js | 15 - .../libnpx/node_modules/yargs/lib/command.js | 336 - .../node_modules/yargs/lib/completion.js | 104 - .../node_modules/yargs/lib/levenshtein.js | 47 - .../node_modules/yargs/lib/obj-filter.js | 10 - .../libnpx/node_modules/yargs/lib/usage.js | 489 - .../node_modules/yargs/lib/validation.js | 364 - .../libnpx/node_modules/yargs/lib/yerror.js | 10 - .../libnpx/node_modules/yargs/locales/be.json | 39 - .../libnpx/node_modules/yargs/locales/de.json | 39 - .../libnpx/node_modules/yargs/locales/en.json | 40 - .../libnpx/node_modules/yargs/locales/es.json | 39 - .../libnpx/node_modules/yargs/locales/fr.json | 37 - .../libnpx/node_modules/yargs/locales/hi.json | 39 - .../libnpx/node_modules/yargs/locales/hu.json | 39 - .../libnpx/node_modules/yargs/locales/id.json | 40 - .../libnpx/node_modules/yargs/locales/it.json | 39 - .../libnpx/node_modules/yargs/locales/ja.json | 39 - .../libnpx/node_modules/yargs/locales/ko.json | 39 - .../libnpx/node_modules/yargs/locales/nb.json | 37 - .../libnpx/node_modules/yargs/locales/nl.json | 39 - .../node_modules/yargs/locales/pirate.json | 12 - .../libnpx/node_modules/yargs/locales/pl.json | 39 - .../libnpx/node_modules/yargs/locales/pt.json | 38 - .../node_modules/yargs/locales/pt_BR.json | 40 - .../libnpx/node_modules/yargs/locales/ru.json | 39 - .../libnpx/node_modules/yargs/locales/th.json | 39 - .../libnpx/node_modules/yargs/locales/tr.json | 39 - .../node_modules/yargs/locales/zh_CN.json | 37 - .../node_modules/yargs/locales/zh_TW.json | 40 - .../yargs/node_modules/camelcase/index.js | 64 - .../yargs/node_modules/camelcase/license | 21 - .../yargs/node_modules/camelcase/package.json | 44 - .../yargs/node_modules/camelcase/readme.md | 57 - .../yargs/node_modules/cliui/CHANGELOG.md | 15 - .../yargs/node_modules/cliui/LICENSE.txt | 14 - .../yargs/node_modules/cliui/README.md | 110 - .../yargs/node_modules/cliui/index.js | 316 - .../cliui/node_modules/string-width/index.js | 37 - .../cliui/node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 43 - .../node_modules/code-point-at/readme.md | 32 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 42 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 45 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/string-width/package.json | 48 - .../cliui/node_modules/string-width/readme.md | 42 - .../cliui/node_modules/strip-ansi/index.js | 6 - .../cliui/node_modules/strip-ansi/license | 21 - .../node_modules/ansi-regex/index.js | 4 - .../node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 43 - .../node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 47 - .../cliui/node_modules/strip-ansi/readme.md | 33 - .../cliui/node_modules/wrap-ansi/index.js | 168 - .../cliui/node_modules/wrap-ansi/license | 21 - .../cliui/node_modules/wrap-ansi/package.json | 51 - .../cliui/node_modules/wrap-ansi/readme.md | 73 - .../yargs/node_modules/cliui/package.json | 49 - .../yargs/node_modules/decamelize/index.js | 13 - .../yargs/node_modules/decamelize/license | 21 - .../node_modules/decamelize/package.json | 43 - .../yargs/node_modules/decamelize/readme.md | 48 - .../node_modules/get-caller-file/README.md | 4 - .../node_modules/get-caller-file/index.js | 20 - .../node_modules/get-caller-file/package.json | 41 - .../yargs/node_modules/os-locale/index.js | 101 - .../yargs/node_modules/os-locale/license | 21 - .../os-locale/node_modules/execa/index.js | 309 - .../node_modules/execa/lib/errname.js | 37 - .../os-locale/node_modules/execa/lib/stdio.js | 41 - .../os-locale/node_modules/execa/license | 9 - .../node_modules/cross-spawn/CHANGELOG.md | 6 - .../execa/node_modules/cross-spawn/LICENSE | 19 - .../execa/node_modules/cross-spawn/README.md | 85 - .../execa/node_modules/cross-spawn/index.js | 59 - .../node_modules/cross-spawn/lib/enoent.js | 73 - .../node_modules/cross-spawn/lib/parse.js | 113 - .../cross-spawn/lib/util/escapeArgument.js | 30 - .../cross-spawn/lib/util/escapeCommand.js | 12 - .../lib/util/hasEmptyArgumentBug.js | 18 - .../cross-spawn/lib/util/readShebang.js | 37 - .../cross-spawn/lib/util/resolveCommand.js | 31 - .../node_modules/shebang-command/index.js | 19 - .../node_modules/shebang-command/license | 21 - .../node_modules/shebang-regex/index.js | 2 - .../node_modules/shebang-regex/license | 21 - .../node_modules/shebang-regex/package.json | 64 - .../node_modules/shebang-regex/readme.md | 29 - .../node_modules/shebang-command/package.json | 71 - .../node_modules/shebang-command/readme.md | 39 - .../node_modules/cross-spawn/package.json | 83 - .../node_modules/get-stream/buffer-stream.js | 51 - .../execa/node_modules/get-stream/index.js | 51 - .../execa/node_modules/get-stream/license | 21 - .../node_modules/get-stream/package.json | 80 - .../execa/node_modules/get-stream/readme.md | 117 - .../execa/node_modules/is-stream/index.js | 21 - .../execa/node_modules/is-stream/license | 21 - .../execa/node_modules/is-stream/package.json | 44 - .../execa/node_modules/is-stream/readme.md | 42 - .../execa/node_modules/npm-run-path/index.js | 39 - .../execa/node_modules/npm-run-path/license | 21 - .../node_modules/path-key/index.js | 13 - .../node_modules/path-key/license | 21 - .../node_modules/path-key/package.json | 43 - .../node_modules/path-key/readme.md | 51 - .../node_modules/npm-run-path/package.json | 45 - .../execa/node_modules/npm-run-path/readme.md | 81 - .../execa/node_modules/p-finally/index.js | 15 - .../execa/node_modules/p-finally/license | 21 - .../execa/node_modules/p-finally/package.json | 43 - .../execa/node_modules/p-finally/readme.md | 47 - .../node_modules/signal-exit/CHANGELOG.md | 27 - .../node_modules/signal-exit/LICENSE.txt | 16 - .../execa/node_modules/signal-exit/README.md | 40 - .../execa/node_modules/signal-exit/index.js | 157 - .../node_modules/signal-exit/package.json | 44 - .../execa/node_modules/signal-exit/signals.js | 53 - .../execa/node_modules/strip-eof/index.js | 15 - .../execa/node_modules/strip-eof/license | 21 - .../execa/node_modules/strip-eof/package.json | 43 - .../execa/node_modules/strip-eof/readme.md | 28 - .../os-locale/node_modules/execa/package.json | 111 - .../os-locale/node_modules/execa/readme.md | 279 - .../os-locale/node_modules/lcid/index.js | 22 - .../os-locale/node_modules/lcid/lcid.json | 203 - .../os-locale/node_modules/lcid/license | 21 - .../lcid/node_modules/invert-kv/index.js | 15 - .../lcid/node_modules/invert-kv/package.json | 42 - .../lcid/node_modules/invert-kv/readme.md | 25 - .../os-locale/node_modules/lcid/package.json | 44 - .../os-locale/node_modules/lcid/readme.md | 35 - .../os-locale/node_modules/mem/index.js | 55 - .../os-locale/node_modules/mem/license | 21 - .../mem/node_modules/mimic-fn/index.js | 7 - .../mem/node_modules/mimic-fn/license | 21 - .../mem/node_modules/mimic-fn/package.json | 43 - .../mem/node_modules/mimic-fn/readme.md | 66 - .../os-locale/node_modules/mem/package.json | 46 - .../os-locale/node_modules/mem/readme.md | 147 - .../yargs/node_modules/os-locale/package.json | 80 - .../yargs/node_modules/os-locale/readme.md | 53 - .../yargs/node_modules/read-pkg-up/index.js | 26 - .../yargs/node_modules/read-pkg-up/license | 21 - .../read-pkg-up/node_modules/find-up/index.js | 48 - .../read-pkg-up/node_modules/find-up/license | 21 - .../find-up/node_modules/locate-path/index.js | 24 - .../find-up/node_modules/locate-path/license | 21 - .../node_modules/p-locate/index.js | 31 - .../locate-path/node_modules/p-locate/license | 21 - .../p-locate/node_modules/p-limit/index.js | 40 - .../p-locate/node_modules/p-limit/license | 21 - .../node_modules/p-limit/package.json | 47 - .../p-locate/node_modules/p-limit/readme.md | 68 - .../node_modules/p-locate/package.json | 48 - .../node_modules/p-locate/readme.md | 86 - .../node_modules/path-exists/index.js | 17 - .../node_modules/path-exists/license | 21 - .../node_modules/path-exists/package.json | 43 - .../node_modules/path-exists/readme.md | 50 - .../node_modules/locate-path/package.json | 46 - .../node_modules/locate-path/readme.md | 99 - .../node_modules/find-up/package.json | 46 - .../node_modules/find-up/readme.md | 85 - .../node_modules/read-pkg/index.js | 47 - .../read-pkg-up/node_modules/read-pkg/license | 21 - .../node_modules/load-json-file/index.js | 11 - .../node_modules/load-json-file/license | 21 - .../node_modules/parse-json/index.js | 35 - .../node_modules/parse-json/license | 21 - .../parse-json/node_modules/error-ex/LICENSE | 21 - .../node_modules/error-ex/README.md | 144 - .../parse-json/node_modules/error-ex/index.js | 133 - .../node_modules/is-arrayish/.editorconfig | 18 - .../node_modules/is-arrayish/.istanbul.yml | 4 - .../node_modules/is-arrayish/.npmignore | 5 - .../node_modules/is-arrayish/.travis.yml | 17 - .../error-ex/node_modules/is-arrayish/LICENSE | 21 - .../node_modules/is-arrayish/README.md | 16 - .../node_modules/is-arrayish/index.js | 10 - .../node_modules/is-arrayish/package.json | 44 - .../node_modules/error-ex/package.json | 46 - .../node_modules/parse-json/package.json | 45 - .../node_modules/parse-json/readme.md | 83 - .../node_modules/parse-json/vendor/parse.js | 751 - .../node_modules/parse-json/vendor/unicode.js | 71 - .../load-json-file/node_modules/pify/index.js | 68 - .../load-json-file/node_modules/pify/license | 21 - .../node_modules/pify/package.json | 45 - .../node_modules/pify/readme.md | 119 - .../node_modules/strip-bom/index.js | 14 - .../node_modules/strip-bom/license | 21 - .../node_modules/strip-bom/package.json | 43 - .../node_modules/strip-bom/readme.md | 36 - .../node_modules/load-json-file/package.json | 48 - .../node_modules/load-json-file/readme.md | 45 - .../read-pkg/node_modules/path-type/index.js | 26 - .../read-pkg/node_modules/path-type/license | 21 - .../path-type/node_modules/pify/index.js | 68 - .../path-type/node_modules/pify/license | 21 - .../path-type/node_modules/pify/package.json | 80 - .../path-type/node_modules/pify/readme.md | 119 - .../node_modules/path-type/package.json | 45 - .../read-pkg/node_modules/path-type/readme.md | 42 - .../node_modules/read-pkg/package.json | 49 - .../node_modules/read-pkg/readme.md | 79 - .../node_modules/read-pkg-up/package.json | 49 - .../yargs/node_modules/read-pkg-up/readme.md | 80 - .../node_modules/require-directory/.npmignore | 1 - .../require-directory/.travis.yml | 3 - .../node_modules/require-directory/LICENSE | 22 - .../require-directory/README.markdown | 183 - .../node_modules/require-directory/index.js | 86 - .../require-directory/package.json | 43 - .../require-main-filename/.npmignore | 3 - .../require-main-filename/.travis.yml | 8 - .../require-main-filename/LICENSE.txt | 14 - .../require-main-filename/README.md | 26 - .../require-main-filename/index.js | 18 - .../require-main-filename/package.json | 41 - .../require-main-filename/test.js | 36 - .../node_modules/set-blocking/CHANGELOG.md | 26 - .../node_modules/set-blocking/LICENSE.txt | 14 - .../yargs/node_modules/set-blocking/README.md | 31 - .../yargs/node_modules/set-blocking/index.js | 7 - .../node_modules/set-blocking/package.json | 44 - .../yargs/node_modules/string-width/index.js | 36 - .../yargs/node_modules/string-width/license | 9 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 43 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/string-width/package.json | 87 - .../yargs/node_modules/string-width/readme.md | 42 - .../node_modules/which-module/CHANGELOG.md | 26 - .../yargs/node_modules/which-module/LICENSE | 13 - .../yargs/node_modules/which-module/README.md | 55 - .../yargs/node_modules/which-module/index.js | 9 - .../node_modules/which-module/package.json | 43 - .../node_modules/yargs-parser/CHANGELOG.md | 223 - .../node_modules/yargs-parser/LICENSE.txt | 14 - .../yargs/node_modules/yargs-parser/README.md | 281 - .../yargs/node_modules/yargs-parser/index.js | 764 - .../yargs-parser/lib/tokenize-arg-string.js | 34 - .../node_modules/yargs-parser/package.json | 46 - .../libnpx/node_modules/yargs/package.json | 105 - .../libnpx/node_modules/yargs/yargs.js | 1127 -- deps/npm/node_modules/libnpx/package.json | 117 - deps/npm/node_modules/libnpx/parse-args.js | 237 - deps/npm/node_modules/libnpx/util.js | 17 - deps/npm/node_modules/libnpx/y.js | 21 - deps/npm/node_modules/lockfile/.npmignore | 3 - deps/npm/node_modules/lockfile/.travis.yml | 8 - deps/npm/node_modules/lockfile/CHANGELOG.md | 101 - deps/npm/node_modules/lockfile/LICENSE | 15 - deps/npm/node_modules/lockfile/README.md | 86 - .../node_modules/lockfile/gen-changelog.sh | 9 - deps/npm/node_modules/lockfile/lockfile.js | 311 - deps/npm/node_modules/lockfile/package.json | 68 - deps/npm/node_modules/lockfile/test/basic.js | 292 - .../lockfile/test/fixtures/bad-child.js | 5 - .../lockfile/test/fixtures/child.js | 3 - .../node_modules/lockfile/test/retry-time.js | 68 - .../lockfile/test/stale-contention.js | 85 - .../lockfile/test/unlock-no-cb.js | 10 - .../lodash._baseindexof/LICENSE.txt | 22 - .../lodash._baseindexof/README.md | 20 - .../node_modules/lodash._baseindexof/index.js | 57 - .../lodash._baseindexof/package.json | 80 - .../npm/node_modules/lodash._baseuniq/LICENSE | 47 - .../node_modules/lodash._baseuniq/README.md | 18 - .../node_modules/lodash._baseuniq/index.js | 801 - .../node_modules/lodash._createset/LICENSE | 47 - .../node_modules/lodash._createset/README.md | 18 - .../node_modules/lodash._createset/index.js | 280 - .../lodash._createset/package.json | 70 - .../node_modules/lodash._root/LICENSE | 23 - .../node_modules/lodash._root/README.md | 18 - .../node_modules/lodash._root/index.js | 59 - .../node_modules/lodash._root/package.json | 70 - .../lodash._baseuniq/package.json | 73 - .../lodash._bindcallback/LICENSE.txt | 22 - .../lodash._bindcallback/README.md | 20 - .../lodash._bindcallback/index.js | 65 - .../lodash._bindcallback/package.json | 80 - .../lodash._cacheindexof/LICENSE.txt | 22 - .../lodash._cacheindexof/README.md | 20 - .../lodash._cacheindexof/index.js | 53 - .../lodash._cacheindexof/package.json | 80 - .../node_modules/lodash._createcache/LICENSE | 22 - .../lodash._createcache/README.md | 20 - .../node_modules/lodash._createcache/index.js | 91 - .../lodash._createcache/package.json | 82 - .../node_modules/lodash._getnative/LICENSE | 22 - .../node_modules/lodash._getnative/README.md | 20 - .../node_modules/lodash._getnative/index.js | 137 - .../lodash._getnative/package.json | 81 - .../npm/node_modules/lodash.clonedeep/LICENSE | 47 - .../node_modules/lodash.clonedeep/README.md | 18 - .../node_modules/lodash.clonedeep/index.js | 1748 --- .../lodash.clonedeep/package.json | 74 - .../node_modules/lodash.restparam/LICENSE.txt | 22 - .../node_modules/lodash.restparam/README.md | 20 - .../node_modules/lodash.restparam/index.js | 67 - .../lodash.restparam/package.json | 86 - deps/npm/node_modules/lodash.union/LICENSE | 47 - deps/npm/node_modules/lodash.union/README.md | 18 - deps/npm/node_modules/lodash.union/index.js | 1181 -- .../node_modules/lodash.union/package.json | 74 - deps/npm/node_modules/lodash.uniq/LICENSE | 47 - deps/npm/node_modules/lodash.uniq/README.md | 18 - deps/npm/node_modules/lodash.uniq/index.js | 896 -- .../npm/node_modules/lodash.uniq/package.json | 74 - deps/npm/node_modules/lodash.without/LICENSE | 47 - .../npm/node_modules/lodash.without/README.md | 18 - deps/npm/node_modules/lodash.without/index.js | 1051 -- .../node_modules/lodash.without/package.json | 74 - deps/npm/node_modules/lru-cache/LICENSE | 15 - deps/npm/node_modules/lru-cache/README.md | 152 - deps/npm/node_modules/lru-cache/index.js | 467 - .../lru-cache/node_modules/pseudomap/LICENSE | 15 - .../node_modules/pseudomap/README.md | 60 - .../lru-cache/node_modules/pseudomap/map.js | 9 - .../node_modules/pseudomap/package.json | 58 - .../node_modules/pseudomap/pseudomap.js | 113 - .../node_modules/pseudomap/test/basic.js | 86 - .../lru-cache/node_modules/yallist/LICENSE | 15 - .../lru-cache/node_modules/yallist/README.md | 204 - .../node_modules/yallist/iterator.js | 7 - .../node_modules/yallist/package.json | 65 - .../lru-cache/node_modules/yallist/yallist.js | 370 - deps/npm/node_modules/lru-cache/package.json | 73 - deps/npm/node_modules/meant/.npmignore | 37 - deps/npm/node_modules/meant/.travis.yml | 16 - deps/npm/node_modules/meant/CHANGELOG.md | 29 - deps/npm/node_modules/meant/LICENSE | 21 - deps/npm/node_modules/meant/README.md | 67 - deps/npm/node_modules/meant/index.js | 49 - deps/npm/node_modules/meant/package.json | 56 - deps/npm/node_modules/meant/test.js | 11 - deps/npm/node_modules/mississippi/.npmignore | 1 - deps/npm/node_modules/mississippi/index.js | 9 - .../node_modules/concat-stream/LICENSE | 24 - .../node_modules/concat-stream/index.js | 143 - .../node_modules/typedarray/.travis.yml | 4 - .../node_modules/typedarray/LICENSE | 35 - .../node_modules/typedarray/example/tarray.js | 4 - .../node_modules/typedarray/index.js | 630 - .../node_modules/typedarray/package.json | 87 - .../node_modules/typedarray/readme.markdown | 61 - .../typedarray/test/server/undef_globals.js | 19 - .../node_modules/typedarray/test/tarray.js | 10 - .../node_modules/concat-stream/package.json | 86 - .../node_modules/concat-stream/readme.md | 102 - .../node_modules/duplexify/.npmignore | 1 - .../node_modules/duplexify/.travis.yml | 6 - .../node_modules/duplexify/LICENSE | 21 - .../node_modules/duplexify/README.md | 97 - .../node_modules/duplexify/example.js | 21 - .../node_modules/duplexify/index.js | 228 - .../node_modules/end-of-stream/.npmignore | 1 - .../node_modules/end-of-stream/README.md | 47 - .../node_modules/end-of-stream/index.js | 72 - .../end-of-stream/node_modules/once/LICENSE | 15 - .../end-of-stream/node_modules/once/README.md | 51 - .../end-of-stream/node_modules/once/once.js | 21 - .../node_modules/once/package.json | 69 - .../node_modules/end-of-stream/package.json | 65 - .../node_modules/end-of-stream/test.js | 62 - .../node_modules/stream-shift/.npmignore | 1 - .../node_modules/stream-shift/.travis.yml | 6 - .../node_modules/stream-shift/LICENSE | 21 - .../node_modules/stream-shift/README.md | 25 - .../node_modules/stream-shift/index.js | 20 - .../node_modules/stream-shift/package.json | 56 - .../node_modules/stream-shift/test.js | 48 - .../node_modules/duplexify/package.json | 72 - .../node_modules/duplexify/test.js | 292 - .../node_modules/end-of-stream/LICENSE | 21 - .../node_modules/end-of-stream/README.md | 52 - .../node_modules/end-of-stream/index.js | 83 - .../node_modules/end-of-stream/package.json | 68 - .../flush-write-stream/.npmignore | 3 - .../flush-write-stream/.travis.yml | 6 - .../node_modules/flush-write-stream/LICENSE | 21 - .../node_modules/flush-write-stream/README.md | 59 - .../flush-write-stream/example.js | 22 - .../node_modules/flush-write-stream/index.js | 52 - .../flush-write-stream/package.json | 57 - .../node_modules/flush-write-stream/test.js | 85 - .../node_modules/from2/.travis.yml | 8 - .../mississippi/node_modules/from2/LICENSE.md | 21 - .../mississippi/node_modules/from2/README.md | 70 - .../mississippi/node_modules/from2/index.js | 103 - .../node_modules/from2/package.json | 72 - .../mississippi/node_modules/from2/test.js | 121 - .../parallel-transform/.npmignore | 1 - .../node_modules/parallel-transform/LICENSE | 20 - .../node_modules/parallel-transform/README.md | 54 - .../node_modules/parallel-transform/index.js | 105 - .../node_modules/cyclist/.npmignore | 1 - .../node_modules/cyclist/README.md | 39 - .../node_modules/cyclist/index.js | 33 - .../node_modules/cyclist/package.json | 54 - .../parallel-transform/package.json | 59 - .../mississippi/node_modules/pump/.npmignore | 1 - .../mississippi/node_modules/pump/.travis.yml | 5 - .../mississippi/node_modules/pump/LICENSE | 21 - .../mississippi/node_modules/pump/README.md | 56 - .../mississippi/node_modules/pump/index.js | 80 - .../node_modules/pump/package.json | 64 - .../node_modules/pump/test-browser.js | 58 - .../mississippi/node_modules/pump/test.js | 46 - .../node_modules/pumpify/.npmignore | 1 - .../node_modules/pumpify/.travis.yml | 8 - .../mississippi/node_modules/pumpify/LICENSE | 21 - .../node_modules/pumpify/README.md | 56 - .../mississippi/node_modules/pumpify/index.js | 55 - .../node_modules/pumpify/package.json | 67 - .../mississippi/node_modules/pumpify/test.js | 163 - .../node_modules/stream-each/.npmignore | 1 - .../node_modules/stream-each/.travis.yml | 5 - .../node_modules/stream-each/LICENSE | 21 - .../node_modules/stream-each/README.md | 41 - .../node_modules/stream-each/collaborators.md | 7 - .../node_modules/stream-each/index.js | 54 - .../node_modules/stream-shift/.npmignore | 1 - .../node_modules/stream-shift/.travis.yml | 6 - .../node_modules/stream-shift/LICENSE | 21 - .../node_modules/stream-shift/README.md | 25 - .../node_modules/stream-shift/index.js | 20 - .../node_modules/stream-shift/package.json | 56 - .../node_modules/stream-shift/test.js | 48 - .../node_modules/stream-each/package.json | 59 - .../node_modules/stream-each/test.js | 82 - .../node_modules/through2/.npmignore | 3 - .../node_modules/through2/LICENSE.html | 336 - .../node_modules/through2/LICENSE.md | 9 - .../node_modules/through2/README.md | 136 - .../through2/node_modules/xtend/.npmignore | 1 - .../through2/node_modules/xtend/LICENCE | 19 - .../through2/node_modules/xtend/Makefile | 4 - .../through2/node_modules/xtend/README.md | 32 - .../through2/node_modules/xtend/immutable.js | 19 - .../through2/node_modules/xtend/mutable.js | 17 - .../through2/node_modules/xtend/package.json | 89 - .../through2/node_modules/xtend/test.js | 83 - .../node_modules/through2/package.json | 68 - .../node_modules/through2/through2.js | 96 - .../npm/node_modules/mississippi/package.json | 70 - deps/npm/node_modules/mississippi/readme.md | 394 - deps/npm/node_modules/mkdirp/.travis.yml | 8 - deps/npm/node_modules/mkdirp/LICENSE | 21 - deps/npm/node_modules/mkdirp/README.markdown | 100 - deps/npm/node_modules/mkdirp/bin/cmd.js | 33 - deps/npm/node_modules/mkdirp/bin/usage.txt | 12 - deps/npm/node_modules/mkdirp/examples/pow.js | 6 - deps/npm/node_modules/mkdirp/index.js | 98 - .../mkdirp/node_modules/minimist/.travis.yml | 4 - .../mkdirp/node_modules/minimist/LICENSE | 18 - .../node_modules/minimist/example/parse.js | 2 - .../mkdirp/node_modules/minimist/index.js | 187 - .../mkdirp/node_modules/minimist/package.json | 75 - .../node_modules/minimist/readme.markdown | 73 - .../mkdirp/node_modules/minimist/test/dash.js | 24 - .../minimist/test/default_bool.js | 20 - .../node_modules/minimist/test/dotted.js | 16 - .../mkdirp/node_modules/minimist/test/long.js | 31 - .../node_modules/minimist/test/parse.js | 318 - .../minimist/test/parse_modified.js | 9 - .../node_modules/minimist/test/short.js | 67 - .../node_modules/minimist/test/whitespace.js | 8 - deps/npm/node_modules/mkdirp/package.json | 75 - deps/npm/node_modules/mkdirp/test/chmod.js | 41 - deps/npm/node_modules/mkdirp/test/clobber.js | 38 - deps/npm/node_modules/mkdirp/test/mkdirp.js | 28 - deps/npm/node_modules/mkdirp/test/opts_fs.js | 29 - .../node_modules/mkdirp/test/opts_fs_sync.js | 27 - deps/npm/node_modules/mkdirp/test/perm.js | 32 - .../npm/node_modules/mkdirp/test/perm_sync.js | 36 - deps/npm/node_modules/mkdirp/test/race.js | 37 - deps/npm/node_modules/mkdirp/test/rel.js | 32 - deps/npm/node_modules/mkdirp/test/return.js | 25 - .../node_modules/mkdirp/test/return_sync.js | 24 - deps/npm/node_modules/mkdirp/test/root.js | 19 - deps/npm/node_modules/mkdirp/test/sync.js | 32 - deps/npm/node_modules/mkdirp/test/umask.js | 28 - .../node_modules/mkdirp/test/umask_sync.js | 32 - .../node_modules/move-concurrently/LICENSE | 13 - .../node_modules/move-concurrently/README.md | 53 - .../node_modules/move-concurrently/move.js | 84 - .../node_modules/copy-concurrently/LICENSE | 13 - .../node_modules/copy-concurrently/README.md | 128 - .../node_modules/copy-concurrently/copy.js | 225 - .../copy-concurrently/is-windows.js | 2 - .../copy-concurrently/package.json | 72 - .../node_modules/run-queue/README.md | 86 - .../node_modules/run-queue/package.json | 66 - .../node_modules/run-queue/queue.js | 95 - .../move-concurrently/package.json | 81 - deps/npm/node_modules/node-gyp/.jshintrc | 7 - deps/npm/node_modules/node-gyp/.npmignore | 3 - deps/npm/node_modules/node-gyp/CHANGELOG.md | 176 - deps/npm/node_modules/node-gyp/LICENSE | 24 - deps/npm/node_modules/node-gyp/README.md | 242 - deps/npm/node_modules/node-gyp/addon.gypi | 133 - .../npm/node_modules/node-gyp/bin/node-gyp.js | 148 - deps/npm/node_modules/node-gyp/gyp/.npmignore | 1 - deps/npm/node_modules/node-gyp/gyp/AUTHORS | 12 - deps/npm/node_modules/node-gyp/gyp/DEPS | 24 - deps/npm/node_modules/node-gyp/gyp/LICENSE | 27 - deps/npm/node_modules/node-gyp/gyp/OWNERS | 1 - .../node_modules/node-gyp/gyp/PRESUBMIT.py | 137 - .../node-gyp/gyp/buildbot/aosp_manifest.xml | 466 - .../node-gyp/gyp/buildbot/buildbot_run.py | 136 - .../node-gyp/gyp/buildbot/commit_queue/OWNERS | 6 - .../node-gyp/gyp/buildbot/commit_queue/README | 3 - .../gyp/buildbot/commit_queue/cq_config.json | 15 - .../node-gyp/gyp/codereview.settings | 10 - .../node-gyp/gyp/data/win/large-pdb-shim.cc | 12 - deps/npm/node_modules/node-gyp/gyp/gyp | 8 - deps/npm/node_modules/node-gyp/gyp/gyp.bat | 5 - .../npm/node_modules/node-gyp/gyp/gyp_main.py | 16 - deps/npm/node_modules/node-gyp/gyp/gyptest.py | 274 - .../node-gyp/gyp/pylib/gyp/MSVSNew.py | 340 - .../node-gyp/gyp/pylib/gyp/MSVSProject.py | 208 - .../node-gyp/gyp/pylib/gyp/MSVSSettings.py | 1096 -- .../gyp/pylib/gyp/MSVSSettings_test.py | 1483 -- .../node-gyp/gyp/pylib/gyp/MSVSToolFile.py | 58 - .../node-gyp/gyp/pylib/gyp/MSVSUserFile.py | 147 - .../node-gyp/gyp/pylib/gyp/MSVSUtil.py | 270 - .../node-gyp/gyp/pylib/gyp/MSVSVersion.py | 443 - .../node-gyp/gyp/pylib/gyp/__init__.py | 548 - .../node-gyp/gyp/pylib/gyp/common.py | 608 - .../node-gyp/gyp/pylib/gyp/common_test.py | 72 - .../node-gyp/gyp/pylib/gyp/easy_xml.py | 162 - .../node-gyp/gyp/pylib/gyp/easy_xml_test.py | 103 - .../node-gyp/gyp/pylib/gyp/flock_tool.py | 54 - .../gyp/pylib/gyp/generator/__init__.py | 0 .../gyp/pylib/gyp/generator/analyzer.py | 741 - .../gyp/pylib/gyp/generator/android.py | 1095 -- .../node-gyp/gyp/pylib/gyp/generator/cmake.py | 1221 -- .../gyp/generator/dump_dependency_json.py | 99 - .../gyp/pylib/gyp/generator/eclipse.py | 425 - .../node-gyp/gyp/pylib/gyp/generator/gypd.py | 94 - .../node-gyp/gyp/pylib/gyp/generator/gypsh.py | 56 - .../node-gyp/gyp/pylib/gyp/generator/make.py | 2220 --- .../node-gyp/gyp/pylib/gyp/generator/msvs.py | 3494 ----- .../gyp/pylib/gyp/generator/msvs_test.py | 37 - .../node-gyp/gyp/pylib/gyp/generator/ninja.py | 2410 --- .../gyp/pylib/gyp/generator/ninja_test.py | 47 - .../node-gyp/gyp/pylib/gyp/generator/xcode.py | 1300 -- .../gyp/pylib/gyp/generator/xcode_test.py | 23 - .../node-gyp/gyp/pylib/gyp/input.py | 2897 ---- .../node-gyp/gyp/pylib/gyp/input_test.py | 90 - .../node-gyp/gyp/pylib/gyp/mac_tool.py | 610 - .../node-gyp/gyp/pylib/gyp/msvs_emulation.py | 1087 -- .../node-gyp/gyp/pylib/gyp/ninja_syntax.py | 160 - .../node-gyp/gyp/pylib/gyp/ordered_dict.py | 289 - .../node-gyp/gyp/pylib/gyp/simple_copy.py | 46 - .../node-gyp/gyp/pylib/gyp/win_tool.py | 314 - .../node-gyp/gyp/pylib/gyp/xcode_emulation.py | 1629 -- .../node-gyp/gyp/pylib/gyp/xcode_ninja.py | 270 - .../node-gyp/gyp/pylib/gyp/xcodeproj_file.py | 2927 ---- .../node-gyp/gyp/pylib/gyp/xml_fix.py | 69 - .../node_modules/node-gyp/gyp/samples/samples | 81 - .../node-gyp/gyp/samples/samples.bat | 5 - deps/npm/node_modules/node-gyp/gyp/setup.py | 19 - .../node_modules/node-gyp/gyp/tools/README | 15 - .../node-gyp/gyp/tools/Xcode/README | 5 - .../tools/Xcode/Specifications/gyp.pbfilespec | 27 - .../tools/Xcode/Specifications/gyp.xclangspec | 226 - .../node-gyp/gyp/tools/emacs/README | 12 - .../node-gyp/gyp/tools/emacs/gyp-tests.el | 63 - .../node-gyp/gyp/tools/emacs/gyp.el | 275 - .../gyp/tools/emacs/run-unit-tests.sh | 7 - .../gyp/tools/emacs/testdata/media.gyp | 1105 -- .../tools/emacs/testdata/media.gyp.fontified | 1107 -- .../node-gyp/gyp/tools/graphviz.py | 100 - .../node-gyp/gyp/tools/pretty_gyp.py | 155 - .../node-gyp/gyp/tools/pretty_sln.py | 169 - .../node-gyp/gyp/tools/pretty_vcproj.py | 329 - .../node_modules/node-gyp/lib/Find-VS2017.cs | 271 - deps/npm/node_modules/node-gyp/lib/build.js | 266 - deps/npm/node_modules/node-gyp/lib/clean.js | 22 - .../node_modules/node-gyp/lib/configure.js | 523 - .../node-gyp/lib/find-node-directory.js | 61 - .../node_modules/node-gyp/lib/find-vs2017.js | 46 - deps/npm/node_modules/node-gyp/lib/install.js | 469 - deps/npm/node_modules/node-gyp/lib/list.js | 33 - .../npm/node_modules/node-gyp/lib/node-gyp.js | 216 - .../node-gyp/lib/process-release.js | 155 - deps/npm/node_modules/node-gyp/lib/rebuild.js | 14 - deps/npm/node_modules/node-gyp/lib/remove.js | 52 - .../node-gyp/node_modules/fstream/.npmignore | 5 - .../node-gyp/node_modules/fstream/.travis.yml | 9 - .../node-gyp/node_modules/fstream/LICENSE | 15 - .../node-gyp/node_modules/fstream/README.md | 76 - .../fstream/examples/filter-pipe.js | 134 - .../node_modules/fstream/examples/pipe.js | 118 - .../node_modules/fstream/examples/reader.js | 68 - .../fstream/examples/symlink-write.js | 27 - .../node-gyp/node_modules/fstream/fstream.js | 35 - .../node_modules/fstream/lib/abstract.js | 85 - .../node_modules/fstream/lib/collect.js | 70 - .../node_modules/fstream/lib/dir-reader.js | 252 - .../node_modules/fstream/lib/dir-writer.js | 174 - .../node_modules/fstream/lib/file-reader.js | 150 - .../node_modules/fstream/lib/file-writer.js | 107 - .../node_modules/fstream/lib/get-type.js | 33 - .../node_modules/fstream/lib/link-reader.js | 53 - .../node_modules/fstream/lib/link-writer.js | 95 - .../node_modules/fstream/lib/proxy-reader.js | 95 - .../node_modules/fstream/lib/proxy-writer.js | 111 - .../node_modules/fstream/lib/reader.js | 255 - .../node_modules/fstream/lib/socket-reader.js | 36 - .../node_modules/fstream/lib/writer.js | 390 - .../node_modules/fstream/package.json | 62 - .../node-gyp/node_modules/minimatch/LICENSE | 15 - .../node-gyp/node_modules/minimatch/README.md | 209 - .../node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 201 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 92 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../node_modules/minimatch/package.json | 63 - .../node-gyp/node_modules/nopt/.npmignore | 1 - .../node-gyp/node_modules/nopt/.travis.yml | 9 - .../node-gyp/node_modules/nopt/LICENSE | 15 - .../node-gyp/node_modules/nopt/README.md | 211 - .../node-gyp/node_modules/nopt/bin/nopt.js | 54 - .../node_modules/nopt/examples/my-program.js | 30 - .../node-gyp/node_modules/nopt/lib/nopt.js | 415 - .../node-gyp/node_modules/nopt/package.json | 59 - .../node-gyp/node_modules/nopt/test/basic.js | 273 - .../node-gyp/node_modules/semver/LICENSE | 15 - .../node-gyp/node_modules/semver/README.md | 350 - .../node-gyp/node_modules/semver/bin/semver | 133 - .../node-gyp/node_modules/semver/package.json | 54 - .../node-gyp/node_modules/semver/range.bnf | 16 - .../node-gyp/node_modules/semver/semver.js | 1203 -- .../node-gyp/node_modules/tar/.npmignore | 5 - .../node-gyp/node_modules/tar/.travis.yml | 4 - .../node-gyp/node_modules/tar/LICENSE | 12 - .../node-gyp/node_modules/tar/README.md | 50 - .../node_modules/tar/examples/extracter.js | 19 - .../node_modules/tar/examples/packer.js | 24 - .../node_modules/tar/examples/reader.js | 35 - .../node_modules/tar/lib/buffer-entry.js | 30 - .../node_modules/tar/lib/entry-writer.js | 169 - .../node-gyp/node_modules/tar/lib/entry.js | 220 - .../tar/lib/extended-header-writer.js | 191 - .../node_modules/tar/lib/extended-header.js | 140 - .../node-gyp/node_modules/tar/lib/extract.js | 94 - .../tar/lib/global-header-writer.js | 14 - .../node-gyp/node_modules/tar/lib/header.js | 384 - .../node-gyp/node_modules/tar/lib/pack.js | 236 - .../node-gyp/node_modules/tar/lib/parse.js | 275 - .../tar/node_modules/block-stream/LICENCE | 25 - .../tar/node_modules/block-stream/LICENSE | 15 - .../tar/node_modules/block-stream/README.md | 14 - .../node_modules/block-stream/block-stream.js | 209 - .../node_modules/block-stream/package.json | 63 - .../node-gyp/node_modules/tar/package.json | 64 - .../node-gyp/node_modules/tar/tar.js | 173 - .../tar/test/00-setup-fixtures.js | 53 - .../tar/test/cb-never-called-1.0.1.tgz | Bin 4096 -> 0 bytes .../tar/test/dir-normalization.js | 177 - .../tar/test/dir-normalization.tar | Bin 4608 -> 0 bytes .../node_modules/tar/test/error-on-broken.js | 33 - .../node_modules/tar/test/extract-move.js | 132 - .../node-gyp/node_modules/tar/test/extract.js | 367 - .../node_modules/tar/test/fixtures.tgz | Bin 19352 -> 0 bytes .../node-gyp/node_modules/tar/test/header.js | 183 - .../tar/test/pack-no-proprietary.js | 886 -- .../node-gyp/node_modules/tar/test/pack.js | 952 -- .../node_modules/tar/test/parse-discard.js | 29 - .../node-gyp/node_modules/tar/test/parse.js | 359 - .../node_modules/tar/test/zz-cleanup.js | 20 - deps/npm/node_modules/node-gyp/package.json | 89 - .../node-gyp/src/win_delay_load_hook.cc | 36 - deps/npm/node_modules/node-gyp/test/docker.sh | 164 - .../node-gyp/test/fixtures/ca-bundle.crt | 40 - .../node-gyp/test/fixtures/ca.crt | 21 - .../node-gyp/test/fixtures/server.crt | 19 - .../node-gyp/test/fixtures/server.key | 28 - .../node-gyp/test/simple-proxy.js | 24 - .../node_modules/node-gyp/test/test-addon.js | 28 - .../node-gyp/test/test-configure-python.js | 74 - .../node-gyp/test/test-download.js | 102 - .../test/test-find-accessible-sync.js | 86 - .../node-gyp/test/test-find-node-directory.js | 115 - .../node-gyp/test/test-find-python.js | 339 - .../node-gyp/test/test-options.js | 25 - .../node-gyp/test/test-process-release.js | 637 - deps/npm/node_modules/nopt/.npmignore | 1 - deps/npm/node_modules/nopt/.travis.yml | 8 - deps/npm/node_modules/nopt/CHANGELOG.md | 58 - deps/npm/node_modules/nopt/LICENSE | 15 - deps/npm/node_modules/nopt/README.md | 213 - deps/npm/node_modules/nopt/bin/nopt.js | 54 - .../node_modules/nopt/examples/my-program.js | 30 - deps/npm/node_modules/nopt/lib/nopt.js | 436 - deps/npm/node_modules/nopt/package.json | 60 - deps/npm/node_modules/nopt/test/basic.js | 303 - .../normalize-package-data/AUTHORS | 4 - .../normalize-package-data/LICENSE | 30 - .../normalize-package-data/README.md | 106 - .../lib/extract_description.js | 14 - .../normalize-package-data/lib/fixer.js | 417 - .../lib/make_warning.js | 23 - .../normalize-package-data/lib/normalize.js | 39 - .../normalize-package-data/lib/safe_format.js | 9 - .../normalize-package-data/lib/typos.json | 25 - .../lib/warning_messages.json | 30 - .../node_modules/is-builtin-module/index.js | 10 - .../node_modules/is-builtin-module/license | 21 - .../builtin-modules/builtin-modules.json | 35 - .../node_modules/builtin-modules/index.js | 10 - .../node_modules/builtin-modules/license | 21 - .../node_modules/builtin-modules/package.json | 76 - .../node_modules/builtin-modules/readme.md | 41 - .../node_modules/builtin-modules/static.js | 2 - .../is-builtin-module/package.json | 78 - .../node_modules/is-builtin-module/readme.md | 33 - .../normalize-package-data/package.json | 81 - .../node_modules/npm-cache-filename/LICENSE | 15 - .../node_modules/npm-cache-filename/README.md | 21 - .../node_modules/npm-cache-filename/index.js | 24 - .../npm-cache-filename/package.json | 55 - .../node_modules/npm-cache-filename/test.js | 23 - .../npm-install-checks/CHANGELOG.md | 10 - .../node_modules/npm-install-checks/LICENSE | 27 - .../node_modules/npm-install-checks/README.md | 27 - .../node_modules/npm-install-checks/index.js | 144 - .../npm-install-checks/package.json | 63 - .../npm-install-checks/test/check-engine.js | 62 - .../npm-install-checks/test/check-git.js | 37 - .../npm-install-checks/test/check-platform.js | 104 - .../node_modules/npm-lifecycle/CHANGELOG.md | 67 - deps/npm/node_modules/npm-lifecycle/LICENSE | 235 - deps/npm/node_modules/npm-lifecycle/README.md | 50 - deps/npm/node_modules/npm-lifecycle/index.js | 448 - .../node_modules/npm-lifecycle/lib/spawn.js | 65 - .../npm-lifecycle/node-gyp-bin/node-gyp | 6 - .../npm-lifecycle/node-gyp-bin/node-gyp.cmd | 5 - .../npm-lifecycle/node_modules/byline/LICENSE | 19 - .../node_modules/byline/README.md | 147 - .../node_modules/byline/lib/byline.js | 155 - .../node_modules/byline/package.json | 56 - .../node_modules/resolve-from/index.js | 47 - .../node_modules/resolve-from/license | 9 - .../node_modules/resolve-from/package.json | 66 - .../node_modules/resolve-from/readme.md | 72 - .../node_modules/npm-lifecycle/package.json | 83 - deps/npm/node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 83 - deps/npm/node_modules/npm-package-arg/npa.js | 277 - .../node_modules/npm-package-arg/package.json | 65 - deps/npm/node_modules/npm-packlist/LICENSE | 15 - deps/npm/node_modules/npm-packlist/README.md | 68 - deps/npm/node_modules/npm-packlist/index.js | 220 - .../node_modules/ignore-walk/LICENSE | 15 - .../node_modules/ignore-walk/README.md | 60 - .../node_modules/ignore-walk/index.js | 265 - .../node_modules/minimatch/LICENSE | 15 - .../node_modules/minimatch/README.md | 209 - .../node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 200 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 88 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../node_modules/minimatch/package.json | 63 - .../node_modules/ignore-walk/package.json | 71 - .../node_modules/npm-bundled/README.md | 46 - .../node_modules/npm-bundled/index.js | 227 - .../node_modules/npm-bundled/package.json | 60 - .../node_modules/npm-packlist/package.json | 68 - deps/npm/node_modules/npm-profile/LICENSE | 15 - deps/npm/node_modules/npm-profile/README.md | 428 - deps/npm/node_modules/npm-profile/index.js | 260 - .../make-fetch-happen/CHANGELOG.md | 494 - .../node_modules/make-fetch-happen/LICENSE | 3 - .../node_modules/make-fetch-happen/README.md | 388 - .../node_modules/make-fetch-happen/agent.js | 171 - .../node_modules/make-fetch-happen/cache.js | 257 - .../node_modules/make-fetch-happen/index.js | 468 - .../node_modules/agentkeepalive/History.md | 130 - .../node_modules/agentkeepalive/README.md | 248 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.js | 4 - .../agentkeepalive/lib/_http_agent.js | 399 - .../node_modules/agentkeepalive/lib/agent.js | 133 - .../agentkeepalive/lib/https_agent.js | 42 - .../node_modules/humanize-ms/History.md | 25 - .../node_modules/humanize-ms/LICENSE | 17 - .../node_modules/humanize-ms/README.md | 40 - .../node_modules/humanize-ms/index.js | 24 - .../humanize-ms/node_modules/ms/index.js | 152 - .../humanize-ms/node_modules/ms/license.md | 21 - .../humanize-ms/node_modules/ms/package.json | 69 - .../humanize-ms/node_modules/ms/readme.md | 51 - .../node_modules/humanize-ms/package.json | 66 - .../node_modules/agentkeepalive/package.json | 82 - .../node_modules/cacache/CHANGELOG.md | 423 - .../node_modules/cacache/LICENSE.md | 3 - .../node_modules/cacache/README.es.md | 628 - .../node_modules/cacache/README.md | 624 - .../node_modules/cacache/en.js | 3 - .../node_modules/cacache/es.js | 3 - .../node_modules/cacache/get.js | 190 - .../node_modules/cacache/index.js | 3 - .../node_modules/cacache/lib/content/path.js | 26 - .../node_modules/cacache/lib/content/read.js | 115 - .../node_modules/cacache/lib/content/rm.js | 21 - .../node_modules/cacache/lib/content/write.js | 162 - .../node_modules/cacache/lib/entry-index.js | 224 - .../node_modules/cacache/lib/memoization.js | 69 - .../cacache/lib/util/fix-owner.js | 44 - .../cacache/lib/util/hash-to-segments.js | 11 - .../cacache/lib/util/move-file.js | 55 - .../node_modules/cacache/lib/util/tmp.js | 32 - .../node_modules/cacache/lib/util/y.js | 25 - .../node_modules/cacache/lib/verify.js | 213 - .../node_modules/cacache/locales/en.js | 44 - .../node_modules/cacache/locales/en.json | 6 - .../node_modules/cacache/locales/es.js | 46 - .../node_modules/cacache/locales/es.json | 6 - .../node_modules/cacache/ls.js | 6 - .../cacache/node_modules/y18n/LICENSE | 13 - .../cacache/node_modules/y18n/README.md | 91 - .../cacache/node_modules/y18n/index.js | 172 - .../cacache/node_modules/y18n/package.json | 65 - .../node_modules/cacache/package.json | 126 - .../node_modules/cacache/put.js | 71 - .../node_modules/cacache/rm.js | 28 - .../node_modules/cacache/verify.js | 3 - .../http-cache-semantics/README.md | 173 - .../http-cache-semantics/index.js | 497 - .../http-cache-semantics/node4/index.js | 559 - .../http-cache-semantics/package.json | 60 - .../http-cache-semantics/test/misctest.js | 33 - .../http-cache-semantics/test/okhttptest.js | 301 - .../http-cache-semantics/test/requesttest.js | 61 - .../http-cache-semantics/test/responsetest.js | 385 - .../test/revalidatetest.js | 181 - .../http-cache-semantics/test/satisfytest.js | 64 - .../http-cache-semantics/test/updatetest.js | 98 - .../http-cache-semantics/test/varytest.js | 75 - .../node_modules/http-proxy-agent/.npmignore | 1 - .../node_modules/http-proxy-agent/.travis.yml | 22 - .../node_modules/http-proxy-agent/History.md | 94 - .../node_modules/http-proxy-agent/README.md | 74 - .../node_modules/http-proxy-agent/index.js | 109 - .../node_modules/agent-base/.npmignore | 2 - .../node_modules/agent-base/.travis.yml | 22 - .../node_modules/agent-base/History.md | 99 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../es6-promisify/dist/promise.js | 73 - .../es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../es6-promise/dist/es6-promise.js | 1157 -- .../es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../lib/es6-promise/promise/all.js | 52 - .../lib/es6-promise/promise/race.js | 84 - .../lib/es6-promise/promise/reject.js | 46 - .../lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 26 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../node_modules/debug/LICENSE | 18 - .../node_modules/debug/Makefile | 50 - .../node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../node_modules/debug/node.js | 1 - .../debug/node_modules/ms/index.js | 152 - .../debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../http-proxy-agent/package.json | 62 - .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../http-proxy-agent/test/test.js | 303 - .../node_modules/https-proxy-agent/.npmignore | 2 - .../https-proxy-agent/.travis.yml | 22 - .../node_modules/https-proxy-agent/History.md | 113 - .../node_modules/https-proxy-agent/README.md | 137 - .../node_modules/https-proxy-agent/index.js | 228 - .../node_modules/agent-base/.npmignore | 2 - .../node_modules/agent-base/.travis.yml | 22 - .../node_modules/agent-base/History.md | 99 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../es6-promisify/dist/promise.js | 73 - .../es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../es6-promise/dist/es6-promise.js | 1157 -- .../es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../lib/es6-promise/promise/all.js | 52 - .../lib/es6-promise/promise/race.js | 84 - .../lib/es6-promise/promise/reject.js | 46 - .../lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 26 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../node_modules/debug/LICENSE | 18 - .../node_modules/debug/Makefile | 50 - .../node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../node_modules/debug/node.js | 1 - .../debug/node_modules/ms/index.js | 152 - .../debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../https-proxy-agent/package.json | 62 - .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../https-proxy-agent/test/test.js | 308 - .../node_modules/node-fetch-npm/CHANGELOG.md | 252 - .../node_modules/node-fetch-npm/LICENSE.md | 21 - .../node_modules/node-fetch-npm/README.md | 398 - .../node_modules/encoding/.npmignore | 1 - .../node_modules/encoding/.travis.yml | 25 - .../node_modules/encoding/LICENSE | 16 - .../node_modules/encoding/README.md | 52 - .../node_modules/encoding/lib/encoding.js | 113 - .../node_modules/encoding/lib/iconv-loader.js | 14 - .../node_modules/iconv-lite/.npmignore | 6 - .../node_modules/iconv-lite/.travis.yml | 22 - .../node_modules/iconv-lite/Changelog.md | 132 - .../encoding/node_modules/iconv-lite/LICENSE | 20 - .../node_modules/iconv-lite/README.md | 160 - .../iconv-lite/encodings/dbcs-codec.js | 554 - .../iconv-lite/encodings/dbcs-data.js | 176 - .../iconv-lite/encodings/index.js | 22 - .../iconv-lite/encodings/internal.js | 188 - .../iconv-lite/encodings/sbcs-codec.js | 73 - .../encodings/sbcs-data-generated.js | 451 - .../iconv-lite/encodings/sbcs-data.js | 168 - .../encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../encodings/tables/gbk-added.json | 55 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../iconv-lite/encodings/utf16.js | 175 - .../node_modules/iconv-lite/encodings/utf7.js | 288 - .../iconv-lite/lib/bom-handling.js | 51 - .../iconv-lite/lib/extend-node.js | 215 - .../node_modules/iconv-lite/lib/index.d.ts | 24 - .../node_modules/iconv-lite/lib/index.js | 148 - .../node_modules/iconv-lite/lib/streams.js | 120 - .../node_modules/iconv-lite/package.json | 123 - .../node_modules/encoding/package.json | 53 - .../node_modules/encoding/test/test.js | 75 - .../json-parse-better-errors/CHANGELOG.md | 36 - .../json-parse-better-errors/LICENSE.md | 7 - .../json-parse-better-errors/README.md | 53 - .../json-parse-better-errors/index.js | 32 - .../json-parse-better-errors/package.json | 76 - .../node_modules/node-fetch-npm/package.json | 100 - .../node_modules/node-fetch-npm/src/blob.js | 109 - .../node_modules/node-fetch-npm/src/body.js | 411 - .../node_modules/node-fetch-npm/src/common.js | 92 - .../node-fetch-npm/src/fetch-error.js | 35 - .../node-fetch-npm/src/headers.js | 296 - .../node_modules/node-fetch-npm/src/index.js | 214 - .../node-fetch-npm/src/request.js | 174 - .../node-fetch-npm/src/response.js | 71 - .../node_modules/promise-retry/.editorconfig | 15 - .../node_modules/promise-retry/.npmignore | 2 - .../node_modules/promise-retry/.travis.yml | 5 - .../node_modules/promise-retry/LICENSE | 19 - .../node_modules/promise-retry/README.md | 92 - .../node_modules/promise-retry/index.js | 52 - .../node_modules/err-code/.editorconfig | 12 - .../node_modules/err-code/.eslintrc.json | 7 - .../node_modules/err-code/.npmignore | 2 - .../node_modules/err-code/.travis.yml | 5 - .../node_modules/err-code/README.md | 72 - .../node_modules/err-code/bower.json | 30 - .../node_modules/err-code/index.js | 22 - .../node_modules/err-code/index.umd.js | 26 - .../node_modules/err-code/package.json | 64 - .../node_modules/err-code/test/.eslintrc.json | 5 - .../node_modules/err-code/test/test.js | 92 - .../node_modules/promise-retry/package.json | 67 - .../node_modules/promise-retry/test/test.js | 263 - .../node_modules/socks-proxy-agent/.npmignore | 1 - .../socks-proxy-agent/.travis.yml | 22 - .../node_modules/socks-proxy-agent/History.md | 96 - .../node_modules/socks-proxy-agent/README.md | 134 - .../node_modules/socks-proxy-agent/index.js | 141 - .../node_modules/agent-base/.npmignore | 2 - .../node_modules/agent-base/.travis.yml | 22 - .../node_modules/agent-base/History.md | 99 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../es6-promisify/dist/promise.js | 73 - .../es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../es6-promise/dist/es6-promise.js | 1157 -- .../es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../lib/es6-promise/promise/all.js | 52 - .../lib/es6-promise/promise/race.js | 84 - .../lib/es6-promise/promise/reject.js | 46 - .../lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 26 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/socks/.npmignore | 4 - .../node_modules/socks/LICENSE | 20 - .../node_modules/socks/README.md | 339 - .../node_modules/socks/examples/associate.js | 33 - .../node_modules/socks/examples/bind.js | 30 - .../node_modules/socks/examples/connect.js | 31 - .../node_modules/socks/index.js | 6 - .../node_modules/socks/lib/socks-agent.js | 108 - .../node_modules/socks/lib/socks-client.js | 306 - .../socks/node_modules/ip/.jscsrc | 46 - .../socks/node_modules/ip/.npmignore | 2 - .../socks/node_modules/ip/.travis.yml | 15 - .../socks/node_modules/ip/README.md | 90 - .../socks/node_modules/ip/lib/ip.js | 416 - .../socks/node_modules/ip/package.json | 53 - .../socks/node_modules/ip/test/api-test.js | 407 - .../node_modules/smart-buffer/.npmignore | 5 - .../node_modules/smart-buffer/.travis.yml | 11 - .../socks/node_modules/smart-buffer/LICENSE | 20 - .../socks/node_modules/smart-buffer/README.md | 307 - .../smart-buffer/build/smartbuffer.js | 726 - .../smart-buffer/build/smartbuffer.js.map | 1 - .../smart-buffer/lib/smart-buffer.js | 371 - .../node_modules/smart-buffer/package.json | 70 - .../smart-buffer/test/smart-buffer.test.js | 410 - .../smart-buffer/typings/index.d.ts | 383 - .../node_modules/socks/package.json | 68 - .../socks-proxy-agent/package.json | 66 - .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../socks-proxy-agent/test/test.js | 144 - .../node_modules/ssri/CHANGELOG.md | 175 - .../node_modules/ssri/LICENSE.md | 3 - .../node_modules/ssri/README.md | 462 - .../node_modules/ssri/index.js | 334 - .../node_modules/ssri/package.json | 90 - .../make-fetch-happen/package.json | 98 - .../node_modules/make-fetch-happen/warning.js | 24 - .../npm/node_modules/npm-profile/package.json | 61 - .../node_modules/npm-registry-client/LICENSE | 15 - .../npm-registry-client/README.md | 357 - .../node_modules/npm-registry-client/index.js | 74 - .../npm-registry-client/lib/access.js | 154 - .../npm-registry-client/lib/adduser.js | 129 - .../npm-registry-client/lib/attempt.js | 20 - .../npm-registry-client/lib/authify.js | 26 - .../npm-registry-client/lib/deprecate.js | 42 - .../npm-registry-client/lib/dist-tags/add.js | 43 - .../lib/dist-tags/fetch.js | 37 - .../npm-registry-client/lib/dist-tags/rm.js | 38 - .../npm-registry-client/lib/dist-tags/set.js | 39 - .../lib/dist-tags/update.js | 39 - .../npm-registry-client/lib/fetch.js | 85 - .../npm-registry-client/lib/get.js | 22 - .../npm-registry-client/lib/initialize.js | 91 - .../npm-registry-client/lib/logout.js | 23 - .../npm-registry-client/lib/org.js | 62 - .../npm-registry-client/lib/ping.js | 21 - .../npm-registry-client/lib/publish.js | 194 - .../npm-registry-client/lib/request.js | 321 - .../lib/send-anonymous-CLI-metrics.js | 19 - .../npm-registry-client/lib/star.js | 51 - .../npm-registry-client/lib/stars.js | 18 - .../npm-registry-client/lib/tag.js | 23 - .../npm-registry-client/lib/team.js | 105 - .../npm-registry-client/lib/unpublish.js | 120 - .../npm-registry-client/lib/whoami.js | 21 - .../node_modules/concat-stream/LICENSE | 24 - .../node_modules/concat-stream/index.js | 143 - .../node_modules/typedarray/.travis.yml | 4 - .../node_modules/typedarray/LICENSE | 35 - .../node_modules/typedarray/example/tarray.js | 4 - .../node_modules/typedarray/index.js | 630 - .../node_modules/typedarray/package.json | 87 - .../node_modules/typedarray/readme.markdown | 61 - .../typedarray/test/server/undef_globals.js | 19 - .../node_modules/typedarray/test/tarray.js | 10 - .../node_modules/concat-stream/package.json | 86 - .../node_modules/concat-stream/readme.md | 102 - .../node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 81 - .../node_modules/npm-package-arg/npa.js | 270 - .../node_modules/npm-package-arg/package.json | 64 - .../node_modules/ssri/CHANGELOG.md | 175 - .../node_modules/ssri/LICENSE.md | 3 - .../node_modules/ssri/README.md | 462 - .../node_modules/ssri/index.js | 334 - .../node_modules/ssri/package.json | 89 - .../npm-registry-client/package.json | 80 - .../node_modules/npm-user-validate/LICENSE | 27 - .../node_modules/npm-user-validate/README.md | 6 - .../npm-user-validate/npm-user-validate.js | 57 - .../npm-user-validate/package.json | 62 - deps/npm/node_modules/npmlog/CHANGELOG.md | 49 - deps/npm/node_modules/npmlog/LICENSE | 15 - deps/npm/node_modules/npmlog/README.md | 216 - deps/npm/node_modules/npmlog/log.js | 309 - .../node_modules/are-we-there-yet/CHANGES.md | 31 - .../node_modules/are-we-there-yet/LICENSE | 5 - .../node_modules/are-we-there-yet/README.md | 195 - .../node_modules/are-we-there-yet/index.js | 4 - .../node_modules/delegates/.npmignore | 1 - .../node_modules/delegates/History.md | 22 - .../node_modules/delegates/License | 20 - .../node_modules/delegates/Makefile | 8 - .../node_modules/delegates/Readme.md | 94 - .../node_modules/delegates/index.js | 121 - .../node_modules/delegates/package.json | 51 - .../node_modules/delegates/test/index.js | 94 - .../are-we-there-yet/package.json | 66 - .../are-we-there-yet/tracker-base.js | 11 - .../are-we-there-yet/tracker-group.js | 107 - .../are-we-there-yet/tracker-stream.js | 35 - .../node_modules/are-we-there-yet/tracker.js | 30 - .../console-control-strings/LICENSE | 13 - .../console-control-strings/README.md | 144 - .../console-control-strings/index.js | 125 - .../console-control-strings/package.json | 65 - .../npmlog/node_modules/gauge/CHANGELOG.md | 160 - .../npmlog/node_modules/gauge/LICENSE | 13 - .../npmlog/node_modules/gauge/README.md | 399 - .../npmlog/node_modules/gauge/base-theme.js | 14 - .../npmlog/node_modules/gauge/error.js | 24 - .../npmlog/node_modules/gauge/has-color.js | 12 - .../npmlog/node_modules/gauge/index.js | 233 - .../gauge/node_modules/object-assign/index.js | 90 - .../gauge/node_modules/object-assign/license | 21 - .../node_modules/object-assign/package.json | 78 - .../node_modules/object-assign/readme.md | 61 - .../node_modules/signal-exit/CHANGELOG.md | 27 - .../node_modules/signal-exit/LICENSE.txt | 16 - .../gauge/node_modules/signal-exit/README.md | 40 - .../gauge/node_modules/signal-exit/index.js | 157 - .../node_modules/signal-exit/package.json | 70 - .../gauge/node_modules/signal-exit/signals.js | 53 - .../gauge/node_modules/string-width/index.js | 37 - .../gauge/node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 74 - .../node_modules/code-point-at/readme.md | 32 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 71 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 80 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/string-width/package.json | 92 - .../gauge/node_modules/string-width/readme.md | 42 - .../gauge/node_modules/strip-ansi/index.js | 6 - .../gauge/node_modules/strip-ansi/license | 21 - .../node_modules/ansi-regex/index.js | 4 - .../node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 102 - .../gauge/node_modules/strip-ansi/readme.md | 33 - .../gauge/node_modules/wide-align/LICENSE | 13 - .../gauge/node_modules/wide-align/README.md | 47 - .../gauge/node_modules/wide-align/align.js | 65 - .../node_modules/wide-align/package.json | 66 - .../npmlog/node_modules/gauge/package.json | 96 - .../npmlog/node_modules/gauge/plumbing.js | 48 - .../npmlog/node_modules/gauge/process.js | 3 - .../npmlog/node_modules/gauge/progress-bar.js | 35 - .../node_modules/gauge/render-template.js | 181 - .../node_modules/gauge/set-immediate.js | 7 - .../npmlog/node_modules/gauge/set-interval.js | 3 - .../npmlog/node_modules/gauge/spin.js | 5 - .../node_modules/gauge/template-item.js | 72 - .../npmlog/node_modules/gauge/theme-set.js | 114 - .../npmlog/node_modules/gauge/themes.js | 54 - .../node_modules/gauge/wide-truncate.js | 25 - .../node_modules/set-blocking/CHANGELOG.md | 26 - .../node_modules/set-blocking/LICENSE.txt | 14 - .../node_modules/set-blocking/README.md | 31 - .../npmlog/node_modules/set-blocking/index.js | 7 - .../node_modules/set-blocking/package.json | 74 - deps/npm/node_modules/npmlog/package.json | 68 - deps/npm/node_modules/once/LICENSE | 15 - deps/npm/node_modules/once/README.md | 79 - deps/npm/node_modules/once/once.js | 42 - deps/npm/node_modules/once/package.json | 82 - deps/npm/node_modules/opener/LICENSE.txt | 47 - deps/npm/node_modules/opener/README.md | 57 - deps/npm/node_modules/opener/opener.js | 60 - deps/npm/node_modules/opener/package.json | 61 - deps/npm/node_modules/osenv/.npmignore | 13 - deps/npm/node_modules/osenv/.travis.yml | 9 - deps/npm/node_modules/osenv/LICENSE | 15 - deps/npm/node_modules/osenv/README.md | 63 - .../osenv/node_modules/os-homedir/index.js | 24 - .../osenv/node_modules/os-homedir/license | 21 - .../node_modules/os-homedir/package.json | 77 - .../osenv/node_modules/os-homedir/readme.md | 31 - .../osenv/node_modules/os-tmpdir/index.js | 25 - .../osenv/node_modules/os-tmpdir/license | 21 - .../osenv/node_modules/os-tmpdir/package.json | 77 - .../osenv/node_modules/os-tmpdir/readme.md | 32 - deps/npm/node_modules/osenv/osenv.js | 72 - deps/npm/node_modules/osenv/package.json | 74 - deps/npm/node_modules/osenv/test/unix.js | 71 - deps/npm/node_modules/osenv/test/windows.js | 74 - deps/npm/node_modules/osenv/x.tap | 39 - deps/npm/node_modules/pacote/CHANGELOG.md | 919 -- deps/npm/node_modules/pacote/LICENSE | 21 - deps/npm/node_modules/pacote/README.md | 201 - deps/npm/node_modules/pacote/extract.js | 100 - deps/npm/node_modules/pacote/index.js | 9 - .../node_modules/pacote/lib/extract-stream.js | 50 - deps/npm/node_modules/pacote/lib/fetch.js | 72 - .../pacote/lib/fetchers/directory.js | 71 - .../node_modules/pacote/lib/fetchers/file.js | 74 - .../node_modules/pacote/lib/fetchers/git.js | 172 - .../pacote/lib/fetchers/hosted.js | 3 - .../node_modules/pacote/lib/fetchers/range.js | 3 - .../fetchers/registry/check-warning-header.js | 39 - .../pacote/lib/fetchers/registry/fetch.js | 109 - .../pacote/lib/fetchers/registry/index.js | 27 - .../pacote/lib/fetchers/registry/manifest.js | 148 - .../lib/fetchers/registry/pick-registry.js | 17 - .../lib/fetchers/registry/registry-key.js | 16 - .../pacote/lib/fetchers/registry/tarball.js | 85 - .../pacote/lib/fetchers/remote.js | 30 - .../node_modules/pacote/lib/fetchers/tag.js | 3 - .../pacote/lib/fetchers/version.js | 3 - .../pacote/lib/finalize-manifest.js | 250 - .../node_modules/pacote/lib/util/cache-key.js | 6 - deps/npm/node_modules/pacote/lib/util/git.js | 222 - .../pacote/lib/util/gunzip-maybe.js | 24 - .../node_modules/pacote/lib/util/opt-check.js | 63 - .../node_modules/pacote/lib/util/pack-dir.js | 44 - .../node_modules/pacote/lib/util/silentlog.js | 13 - deps/npm/node_modules/pacote/manifest.js | 38 - .../node_modules/get-stream/buffer-stream.js | 51 - .../pacote/node_modules/get-stream/index.js | 51 - .../pacote/node_modules/get-stream/license | 21 - .../node_modules/get-stream/package.json | 80 - .../pacote/node_modules/get-stream/readme.md | 117 - .../make-fetch-happen/CHANGELOG.md | 509 - .../node_modules/make-fetch-happen/LICENSE | 3 - .../node_modules/make-fetch-happen/README.md | 404 - .../node_modules/make-fetch-happen/agent.js | 171 - .../node_modules/make-fetch-happen/cache.js | 257 - .../node_modules/make-fetch-happen/index.js | 482 - .../node_modules/agentkeepalive/History.md | 130 - .../node_modules/agentkeepalive/README.md | 248 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.js | 4 - .../agentkeepalive/lib/_http_agent.js | 399 - .../node_modules/agentkeepalive/lib/agent.js | 133 - .../agentkeepalive/lib/https_agent.js | 42 - .../node_modules/humanize-ms/History.md | 25 - .../node_modules/humanize-ms/LICENSE | 17 - .../node_modules/humanize-ms/README.md | 40 - .../node_modules/humanize-ms/index.js | 24 - .../humanize-ms/node_modules/ms/index.js | 152 - .../humanize-ms/node_modules/ms/license.md | 21 - .../humanize-ms/node_modules/ms/package.json | 69 - .../humanize-ms/node_modules/ms/readme.md | 51 - .../node_modules/humanize-ms/package.json | 66 - .../node_modules/agentkeepalive/package.json | 82 - .../http-cache-semantics/README.md | 173 - .../http-cache-semantics/index.js | 497 - .../http-cache-semantics/node4/index.js | 559 - .../http-cache-semantics/package.json | 60 - .../http-cache-semantics/test/misctest.js | 33 - .../http-cache-semantics/test/okhttptest.js | 301 - .../http-cache-semantics/test/requesttest.js | 61 - .../http-cache-semantics/test/responsetest.js | 385 - .../test/revalidatetest.js | 181 - .../http-cache-semantics/test/satisfytest.js | 64 - .../http-cache-semantics/test/updatetest.js | 98 - .../http-cache-semantics/test/varytest.js | 75 - .../node_modules/http-proxy-agent/.npmignore | 1 - .../node_modules/http-proxy-agent/.travis.yml | 22 - .../node_modules/http-proxy-agent/History.md | 94 - .../node_modules/http-proxy-agent/README.md | 74 - .../node_modules/http-proxy-agent/index.js | 109 - .../node_modules/agent-base/.travis.yml | 23 - .../node_modules/agent-base/History.md | 105 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../es6-promisify/dist/promise.js | 73 - .../es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../es6-promise/dist/es6-promise.js | 1157 -- .../es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../lib/es6-promise/promise/all.js | 52 - .../lib/es6-promise/promise/race.js | 84 - .../lib/es6-promise/promise/reject.js | 46 - .../lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 38 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../node_modules/debug/LICENSE | 18 - .../node_modules/debug/Makefile | 50 - .../node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../node_modules/debug/node.js | 1 - .../debug/node_modules/ms/index.js | 152 - .../debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../http-proxy-agent/package.json | 62 - .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../http-proxy-agent/test/test.js | 303 - .../node_modules/https-proxy-agent/.npmignore | 2 - .../https-proxy-agent/.travis.yml | 22 - .../node_modules/https-proxy-agent/History.md | 113 - .../node_modules/https-proxy-agent/README.md | 137 - .../node_modules/https-proxy-agent/index.js | 228 - .../node_modules/agent-base/.travis.yml | 23 - .../node_modules/agent-base/History.md | 105 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../es6-promisify/dist/promise.js | 73 - .../es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../es6-promise/dist/es6-promise.js | 1157 -- .../es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../lib/es6-promise/promise/all.js | 52 - .../lib/es6-promise/promise/race.js | 84 - .../lib/es6-promise/promise/reject.js | 46 - .../lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 38 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../node_modules/debug/LICENSE | 18 - .../node_modules/debug/Makefile | 50 - .../node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../node_modules/debug/node.js | 1 - .../debug/node_modules/ms/index.js | 152 - .../debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../https-proxy-agent/package.json | 62 - .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../https-proxy-agent/test/test.js | 308 - .../node_modules/node-fetch-npm/CHANGELOG.md | 252 - .../node_modules/node-fetch-npm/LICENSE.md | 21 - .../node_modules/node-fetch-npm/README.md | 398 - .../node_modules/encoding/.npmignore | 1 - .../node_modules/encoding/.travis.yml | 25 - .../node_modules/encoding/LICENSE | 16 - .../node_modules/encoding/README.md | 52 - .../node_modules/encoding/lib/encoding.js | 113 - .../node_modules/encoding/lib/iconv-loader.js | 14 - .../node_modules/iconv-lite/.npmignore | 6 - .../node_modules/iconv-lite/.travis.yml | 22 - .../node_modules/iconv-lite/Changelog.md | 132 - .../encoding/node_modules/iconv-lite/LICENSE | 20 - .../node_modules/iconv-lite/README.md | 160 - .../iconv-lite/encodings/dbcs-codec.js | 554 - .../iconv-lite/encodings/dbcs-data.js | 176 - .../iconv-lite/encodings/index.js | 22 - .../iconv-lite/encodings/internal.js | 188 - .../iconv-lite/encodings/sbcs-codec.js | 73 - .../encodings/sbcs-data-generated.js | 451 - .../iconv-lite/encodings/sbcs-data.js | 168 - .../encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../encodings/tables/gbk-added.json | 55 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../iconv-lite/encodings/utf16.js | 175 - .../node_modules/iconv-lite/encodings/utf7.js | 288 - .../iconv-lite/lib/bom-handling.js | 51 - .../iconv-lite/lib/extend-node.js | 215 - .../node_modules/iconv-lite/lib/index.d.ts | 24 - .../node_modules/iconv-lite/lib/index.js | 148 - .../node_modules/iconv-lite/lib/streams.js | 120 - .../node_modules/iconv-lite/package.json | 123 - .../node_modules/encoding/package.json | 53 - .../node_modules/encoding/test/test.js | 75 - .../json-parse-better-errors/CHANGELOG.md | 36 - .../json-parse-better-errors/LICENSE.md | 7 - .../json-parse-better-errors/README.md | 53 - .../json-parse-better-errors/index.js | 32 - .../json-parse-better-errors/package.json | 76 - .../node_modules/node-fetch-npm/package.json | 100 - .../node_modules/node-fetch-npm/src/blob.js | 109 - .../node_modules/node-fetch-npm/src/body.js | 411 - .../node_modules/node-fetch-npm/src/common.js | 92 - .../node-fetch-npm/src/fetch-error.js | 35 - .../node-fetch-npm/src/headers.js | 296 - .../node_modules/node-fetch-npm/src/index.js | 214 - .../node-fetch-npm/src/request.js | 174 - .../node-fetch-npm/src/response.js | 71 - .../node_modules/socks-proxy-agent/.npmignore | 1 - .../socks-proxy-agent/.travis.yml | 22 - .../node_modules/socks-proxy-agent/History.md | 96 - .../node_modules/socks-proxy-agent/README.md | 134 - .../node_modules/socks-proxy-agent/index.js | 141 - .../node_modules/agent-base/.travis.yml | 23 - .../node_modules/agent-base/History.md | 105 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../es6-promisify/dist/promise.js | 73 - .../es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../es6-promise/dist/es6-promise.js | 1157 -- .../es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../lib/es6-promise/promise/all.js | 52 - .../lib/es6-promise/promise/race.js | 84 - .../lib/es6-promise/promise/reject.js | 46 - .../lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 38 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/socks/.npmignore | 4 - .../node_modules/socks/LICENSE | 20 - .../node_modules/socks/README.md | 339 - .../node_modules/socks/examples/associate.js | 33 - .../node_modules/socks/examples/bind.js | 30 - .../node_modules/socks/examples/connect.js | 31 - .../node_modules/socks/index.js | 6 - .../node_modules/socks/lib/socks-agent.js | 108 - .../node_modules/socks/lib/socks-client.js | 306 - .../socks/node_modules/ip/.jscsrc | 46 - .../socks/node_modules/ip/.npmignore | 2 - .../socks/node_modules/ip/.travis.yml | 15 - .../socks/node_modules/ip/README.md | 90 - .../socks/node_modules/ip/lib/ip.js | 416 - .../socks/node_modules/ip/package.json | 53 - .../socks/node_modules/ip/test/api-test.js | 407 - .../node_modules/smart-buffer/.npmignore | 5 - .../node_modules/smart-buffer/.travis.yml | 11 - .../socks/node_modules/smart-buffer/LICENSE | 20 - .../socks/node_modules/smart-buffer/README.md | 307 - .../smart-buffer/build/smartbuffer.js | 726 - .../smart-buffer/build/smartbuffer.js.map | 1 - .../smart-buffer/lib/smart-buffer.js | 371 - .../node_modules/smart-buffer/package.json | 70 - .../smart-buffer/test/smart-buffer.test.js | 410 - .../smart-buffer/typings/index.d.ts | 383 - .../node_modules/socks/package.json | 68 - .../socks-proxy-agent/package.json | 66 - .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../socks-proxy-agent/test/test.js | 144 - .../make-fetch-happen/package.json | 97 - .../node_modules/make-fetch-happen/warning.js | 24 - .../pacote/node_modules/minimatch/LICENSE | 15 - .../pacote/node_modules/minimatch/README.md | 209 - .../node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 200 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 88 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../node_modules/minimatch/package.json | 63 - .../npm-pick-manifest/CHANGELOG.md | 93 - .../node_modules/npm-pick-manifest/LICENSE.md | 16 - .../node_modules/npm-pick-manifest/README.md | 76 - .../node_modules/npm-pick-manifest/index.js | 79 - .../npm-pick-manifest/package.json | 81 - .../node_modules/promise-retry/.editorconfig | 15 - .../node_modules/promise-retry/.npmignore | 2 - .../node_modules/promise-retry/.travis.yml | 5 - .../pacote/node_modules/promise-retry/LICENSE | 19 - .../node_modules/promise-retry/README.md | 92 - .../node_modules/promise-retry/index.js | 52 - .../node_modules/err-code/.editorconfig | 12 - .../node_modules/err-code/.eslintrc.json | 7 - .../node_modules/err-code/.npmignore | 2 - .../node_modules/err-code/.travis.yml | 5 - .../node_modules/err-code/README.md | 72 - .../node_modules/err-code/bower.json | 30 - .../node_modules/err-code/index.js | 22 - .../node_modules/err-code/index.umd.js | 26 - .../node_modules/err-code/package.json | 64 - .../node_modules/err-code/test/.eslintrc.json | 5 - .../node_modules/err-code/test/test.js | 92 - .../node_modules/promise-retry/package.json | 68 - .../node_modules/promise-retry/test/test.js | 263 - .../node_modules/protoduck/CHANGELOG.md | 38 - .../pacote/node_modules/protoduck/README.md | 346 - .../pacote/node_modules/protoduck/index.js | 349 - .../node_modules/genfun/CHANGELOG.md | 36 - .../protoduck/node_modules/genfun/README.md | 223 - .../node_modules/genfun/lib/genfun.js | 296 - .../node_modules/genfun/lib/method.js | 86 - .../protoduck/node_modules/genfun/lib/role.js | 17 - .../protoduck/node_modules/genfun/lib/util.js | 37 - .../node_modules/genfun/package.json | 79 - .../node_modules/protoduck/package.json | 88 - deps/npm/node_modules/pacote/package.json | 122 - deps/npm/node_modules/pacote/prefetch.js | 64 - deps/npm/node_modules/pacote/tarball.js | 95 - .../node_modules/path-is-inside/LICENSE.txt | 47 - .../path-is-inside/lib/path-is-inside.js | 28 - .../node_modules/path-is-inside/package.json | 70 - .../npm/node_modules/promise-inflight/LICENSE | 13 - .../node_modules/promise-inflight/README.md | 34 - .../node_modules/promise-inflight/inflight.js | 36 - .../promise-inflight/package.json | 59 - .../node_modules/qrcode-terminal/.npmignore | 2 - .../node_modules/qrcode-terminal/.travis.yml | 3 - deps/npm/node_modules/qrcode-terminal/LICENSE | 222 - .../node_modules/qrcode-terminal/README.md | 80 - .../qrcode-terminal/bin/qrcode-terminal.js | 68 - .../qrcode-terminal/example/basic.js | 2 - .../qrcode-terminal/example/basic.png | Bin 46426 -> 0 bytes .../qrcode-terminal/example/callback.js | 4 - .../qrcode-terminal/example/small-qrcode.js | 6 - .../node_modules/qrcode-terminal/lib/main.js | 100 - .../node_modules/qrcode-terminal/package.json | 76 - .../node_modules/qrcode-terminal/test/main.js | 63 - .../vendor/QRCode/QR8bitByte.js | 22 - .../vendor/QRCode/QRBitBuffer.js | 38 - .../vendor/QRCode/QRErrorCorrectLevel.js | 6 - .../vendor/QRCode/QRMaskPattern.js | 10 - .../qrcode-terminal/vendor/QRCode/QRMath.js | 44 - .../qrcode-terminal/vendor/QRCode/QRMode.js | 6 - .../vendor/QRCode/QRPolynomial.js | 66 - .../vendor/QRCode/QRRSBlock.js | 298 - .../qrcode-terminal/vendor/QRCode/QRUtil.js | 272 - .../qrcode-terminal/vendor/QRCode/index.js | 462 - deps/npm/node_modules/query-string/index.js | 210 - deps/npm/node_modules/query-string/license | 9 - .../decode-uri-component/index.js | 94 - .../node_modules/decode-uri-component/license | 21 - .../decode-uri-component/package.json | 69 - .../decode-uri-component/readme.md | 70 - .../node_modules/object-assign/index.js | 90 - .../node_modules/object-assign/license | 21 - .../node_modules/object-assign/package.json | 74 - .../node_modules/object-assign/readme.md | 61 - .../node_modules/strict-uri-encode/index.js | 6 - .../node_modules/strict-uri-encode/license | 21 - .../strict-uri-encode/package.json | 62 - .../node_modules/strict-uri-encode/readme.md | 40 - .../node_modules/query-string/package.json | 78 - deps/npm/node_modules/query-string/readme.md | 186 - deps/npm/node_modules/qw/LICENSE | 13 - deps/npm/node_modules/qw/README.md | 34 - deps/npm/node_modules/qw/package.json | 60 - deps/npm/node_modules/qw/qw.js | 43 - .../npm/node_modules/read-cmd-shim/.npmignore | 3 - deps/npm/node_modules/read-cmd-shim/README.md | 36 - deps/npm/node_modules/read-cmd-shim/index.js | 54 - .../node_modules/read-cmd-shim/package.json | 60 - .../read-cmd-shim/test/integration.js | 139 - .../node_modules/read-installed/.npmignore | 13 - .../node_modules/read-installed/.travis.yml | 9 - deps/npm/node_modules/read-installed/LICENSE | 16 - .../npm/node_modules/read-installed/README.md | 27 - .../node_modules/util-extend/LICENSE | 18 - .../node_modules/util-extend/README.md | 13 - .../node_modules/util-extend/extend.js | 33 - .../node_modules/util-extend/package.json | 49 - .../node_modules/util-extend/test.js | 10 - .../node_modules/read-installed/package.json | 67 - .../read-installed/read-installed.js | 407 - .../node_modules/read-installed/test/basic.js | 46 - .../test/cyclic-extraneous-peer-deps.js | 81 - .../read-installed/test/depth-0.js | 27 - .../read-installed/test/depth-1.js | 23 - .../node_modules/read-installed/test/dev.js | 23 - .../node_modules/read-installed/test/empty.js | 16 - .../read-installed/test/extraneous-dev.js | 20 - .../read-installed/test/extraneous.js | 17 - .../fixtures/extraneous-detected/package.json | 7 - .../fixtures/extraneous-dev-dep/package.json | 7 - .../grandparent-peer-dev/package.json | 8 - .../fixtures/grandparent-peer/package.json | 8 - .../read-installed/test/fixtures/package.json | 27 - .../test/grandparent-peer-dev.js | 20 - .../read-installed/test/grandparent-peer.js | 24 - .../read-installed/test/issue-40.js | 15 - .../test/linked-dep-dev-deps-extraneous.js | 59 - .../read-installed/test/noargs.js | 21 - .../read-installed/test/peer-dep-at-latest.js | 14 - .../node_modules/read-package-json/LICENSE | 15 - .../node_modules/read-package-json/README.md | 151 - .../json-parse-better-errors/CHANGELOG.md | 36 - .../json-parse-better-errors/LICENSE.md | 7 - .../json-parse-better-errors/README.md | 53 - .../json-parse-better-errors/index.js | 32 - .../json-parse-better-errors/package.json | 76 - .../node_modules/slash/index.js | 11 - .../node_modules/slash/package.json | 65 - .../node_modules/slash/readme.md | 44 - .../read-package-json/package.json | 69 - .../read-package-json/read-json.js | 440 - .../node_modules/read-package-tree/LICENSE | 15 - .../node_modules/read-package-tree/README.md | 68 - .../read-package-tree/package.json | 68 - .../npm/node_modules/read-package-tree/rpt.js | 237 - deps/npm/node_modules/read/LICENSE | 15 - deps/npm/node_modules/read/README.md | 53 - deps/npm/node_modules/read/lib/read.js | 113 - .../read/node_modules/mute-stream/.travis.yml | 9 - .../read/node_modules/mute-stream/LICENSE | 15 - .../read/node_modules/mute-stream/README.md | 68 - .../coverage/lcov-report/__root__/index.html | 93 - .../lcov-report/__root__/mute.js.html | 500 - .../mute-stream/coverage/lcov-report/base.css | 212 - .../coverage/lcov-report/index.html | 93 - .../coverage/lcov-report/prettify.css | 1 - .../coverage/lcov-report/prettify.js | 1 - .../lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../coverage/lcov-report/sorter.js | 158 - .../mute-stream/coverage/lcov.info | 155 - .../read/node_modules/mute-stream/mute.js | 145 - .../node_modules/mute-stream/package.json | 63 - .../node_modules/mute-stream/test/basic.js | 207 - deps/npm/node_modules/read/package.json | 65 - .../node_modules/readable-stream/.npmignore | 9 - .../node_modules/readable-stream/.travis.yml | 65 - .../readable-stream/CONTRIBUTING.md | 38 - .../readable-stream/GOVERNANCE.md | 136 - deps/npm/node_modules/readable-stream/LICENSE | 47 - .../node_modules/readable-stream/README.md | 57 - .../doc/wg-meetings/2015-01-30.md | 60 - .../readable-stream/duplex-browser.js | 1 - .../node_modules/readable-stream/duplex.js | 1 - .../readable-stream/lib/_stream_duplex.js | 124 - .../lib/_stream_passthrough.js | 47 - .../readable-stream/lib/_stream_readable.js | 1007 -- .../readable-stream/lib/_stream_transform.js | 214 - .../readable-stream/lib/_stream_writable.js | 664 - .../lib/internal/streams/BufferList.js | 74 - .../lib/internal/streams/destroy.js | 72 - .../lib/internal/streams/stream-browser.js | 1 - .../lib/internal/streams/stream.js | 1 - .../node_modules/core-util-is/LICENSE | 19 - .../node_modules/core-util-is/README.md | 3 - .../node_modules/core-util-is/float.patch | 604 - .../node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 66 - .../node_modules/core-util-is/test.js | 68 - .../node_modules/isarray/.npmignore | 1 - .../node_modules/isarray/.travis.yml | 4 - .../node_modules/isarray/Makefile | 6 - .../node_modules/isarray/README.md | 60 - .../node_modules/isarray/component.json | 19 - .../node_modules/isarray/index.js | 5 - .../node_modules/isarray/package.json | 76 - .../node_modules/isarray/test.js | 20 - .../process-nextick-args/.travis.yml | 12 - .../process-nextick-args/index.js | 43 - .../process-nextick-args/license.md | 19 - .../process-nextick-args/package.json | 51 - .../process-nextick-args/readme.md | 18 - .../node_modules/process-nextick-args/test.js | 24 - .../node_modules/string_decoder/.npmignore | 2 - .../node_modules/string_decoder/LICENSE | 47 - .../node_modules/string_decoder/README.md | 28 - .../string_decoder/lib/string_decoder.js | 272 - .../node_modules/string_decoder/package.json | 56 - .../node_modules/util-deprecate/History.md | 16 - .../node_modules/util-deprecate/LICENSE | 24 - .../node_modules/util-deprecate/README.md | 53 - .../node_modules/util-deprecate/browser.js | 67 - .../node_modules/util-deprecate/node.js | 6 - .../node_modules/util-deprecate/package.json | 61 - .../node_modules/readable-stream/package.json | 103 - .../readable-stream/passthrough.js | 1 - .../readable-stream/readable-browser.js | 7 - .../node_modules/readable-stream/readable.js | 19 - .../node_modules/readable-stream/transform.js | 1 - .../readable-stream/writable-browser.js | 1 - .../node_modules/readable-stream/writable.js | 8 - .../readdir-scoped-modules/.travis.yml | 7 - .../readdir-scoped-modules/LICENSE | 15 - .../readdir-scoped-modules/README.md | 17 - .../readdir-scoped-modules/package.json | 65 - .../readdir-scoped-modules/readdir.js | 71 - .../readdir-scoped-modules/test/basic.js | 14 - .../test/fixtures/@org/x/.keep | 0 .../test/fixtures/@org/y/.keep | 0 .../test/fixtures/@scope/x/.keep | 0 .../test/fixtures/@scope/y/.keep | 0 .../test/fixtures/a/x/.keep | 0 .../test/fixtures/a/y/.keep | 0 .../test/fixtures/b/x/.keep | 0 .../test/fixtures/b/y/.keep | 0 deps/npm/node_modules/request/CHANGELOG.md | 674 - deps/npm/node_modules/request/LICENSE | 55 - deps/npm/node_modules/request/README.md | 1097 -- deps/npm/node_modules/request/index.js | 155 - deps/npm/node_modules/request/lib/auth.js | 167 - deps/npm/node_modules/request/lib/cookies.js | 38 - .../request/lib/getProxyFromURI.js | 79 - deps/npm/node_modules/request/lib/har.js | 205 - deps/npm/node_modules/request/lib/helpers.js | 66 - .../npm/node_modules/request/lib/multipart.js | 112 - deps/npm/node_modules/request/lib/oauth.js | 148 - .../node_modules/request/lib/querystring.js | 50 - deps/npm/node_modules/request/lib/redirect.js | 154 - deps/npm/node_modules/request/lib/tunnel.js | 175 - .../request/node_modules/aws-sign2/LICENSE | 55 - .../request/node_modules/aws-sign2/README.md | 4 - .../request/node_modules/aws-sign2/index.js | 212 - .../node_modules/aws-sign2/package.json | 50 - .../request/node_modules/aws4/.npmignore | 4 - .../request/node_modules/aws4/.tern-port | 1 - .../request/node_modules/aws4/.travis.yml | 5 - .../request/node_modules/aws4/LICENSE | 19 - .../request/node_modules/aws4/README.md | 523 - .../request/node_modules/aws4/aws4.js | 332 - .../request/node_modules/aws4/lru.js | 96 - .../request/node_modules/aws4/package.json | 108 - .../request/node_modules/caseless/LICENSE | 28 - .../request/node_modules/caseless/README.md | 45 - .../request/node_modules/caseless/index.js | 67 - .../node_modules/caseless/package.json | 60 - .../request/node_modules/caseless/test.js | 67 - .../node_modules/combined-stream/License | 19 - .../node_modules/combined-stream/Readme.md | 138 - .../combined-stream/lib/combined_stream.js | 188 - .../node_modules/delayed-stream/.npmignore | 1 - .../node_modules/delayed-stream/License | 19 - .../node_modules/delayed-stream/Makefile | 7 - .../node_modules/delayed-stream/Readme.md | 141 - .../delayed-stream/lib/delayed_stream.js | 107 - .../node_modules/delayed-stream/package.json | 65 - .../node_modules/combined-stream/package.json | 61 - .../request/node_modules/extend/.jscs.json | 175 - .../request/node_modules/extend/.npmignore | 1 - .../request/node_modules/extend/.travis.yml | 179 - .../request/node_modules/extend/CHANGELOG.md | 77 - .../request/node_modules/extend/LICENSE | 23 - .../request/node_modules/extend/README.md | 81 - .../node_modules/extend/component.json | 32 - .../request/node_modules/extend/index.js | 86 - .../request/node_modules/extend/package.json | 78 - .../node_modules/forever-agent/LICENSE | 55 - .../node_modules/forever-agent/README.md | 4 - .../node_modules/forever-agent/index.js | 138 - .../node_modules/forever-agent/package.json | 52 - .../request/node_modules/form-data/License | 19 - .../node_modules/form-data/README.md.bak | 234 - .../request/node_modules/form-data/Readme.md | 234 - .../node_modules/form-data/lib/browser.js | 2 - .../node_modules/form-data/lib/form_data.js | 457 - .../node_modules/form-data/lib/populate.js | 10 - .../form-data/node_modules/asynckit/LICENSE | 21 - .../form-data/node_modules/asynckit/README.md | 233 - .../form-data/node_modules/asynckit/bench.js | 76 - .../form-data/node_modules/asynckit/index.js | 6 - .../node_modules/asynckit/lib/abort.js | 29 - .../node_modules/asynckit/lib/async.js | 34 - .../node_modules/asynckit/lib/defer.js | 26 - .../node_modules/asynckit/lib/iterate.js | 75 - .../asynckit/lib/readable_asynckit.js | 91 - .../asynckit/lib/readable_parallel.js | 25 - .../asynckit/lib/readable_serial.js | 25 - .../asynckit/lib/readable_serial_ordered.js | 29 - .../node_modules/asynckit/lib/state.js | 37 - .../node_modules/asynckit/lib/streamify.js | 141 - .../node_modules/asynckit/lib/terminator.js | 29 - .../node_modules/asynckit/package.json | 94 - .../node_modules/asynckit/parallel.js | 43 - .../form-data/node_modules/asynckit/serial.js | 17 - .../node_modules/asynckit/serialOrdered.js | 75 - .../form-data/node_modules/asynckit/stream.js | 21 - .../node_modules/form-data/package.json | 98 - .../node_modules/har-validator/LICENSE | 13 - .../node_modules/har-validator/README.md | 54 - .../node_modules/har-validator/lib/async.js | 98 - .../node_modules/har-validator/lib/error.js | 17 - .../node_modules/har-validator/lib/promise.js | 95 - .../node_modules/ajv/.tonic_example.js | 20 - .../har-validator/node_modules/ajv/LICENSE | 21 - .../har-validator/node_modules/ajv/README.md | 1303 -- .../node_modules/ajv/dist/ajv.bundle.js | 7770 ---------- .../node_modules/ajv/dist/ajv.min.js | 3 - .../node_modules/ajv/dist/ajv.min.js.map | 1 - .../node_modules/ajv/dist/nodent.min.js | 2 - .../node_modules/ajv/dist/regenerator.min.js | 2 - .../node_modules/ajv/lib/$data.js | 49 - .../node_modules/ajv/lib/ajv.d.ts | 296 - .../har-validator/node_modules/ajv/lib/ajv.js | 477 - .../node_modules/ajv/lib/cache.js | 26 - .../node_modules/ajv/lib/compile/_rules.js | 31 - .../node_modules/ajv/lib/compile/async.js | 90 - .../node_modules/ajv/lib/compile/equal.js | 3 - .../ajv/lib/compile/error_classes.js | 34 - .../node_modules/ajv/lib/compile/formats.js | 135 - .../node_modules/ajv/lib/compile/index.js | 379 - .../node_modules/ajv/lib/compile/resolve.js | 271 - .../node_modules/ajv/lib/compile/rules.js | 58 - .../ajv/lib/compile/schema_obj.js | 9 - .../ajv/lib/compile/ucs2length.js | 20 - .../node_modules/ajv/lib/compile/util.js | 267 - .../node_modules/ajv/lib/dot/_limit.jst | 96 - .../node_modules/ajv/lib/dot/_limitItems.jst | 10 - .../node_modules/ajv/lib/dot/_limitLength.jst | 10 - .../ajv/lib/dot/_limitProperties.jst | 10 - .../node_modules/ajv/lib/dot/allOf.jst | 34 - .../node_modules/ajv/lib/dot/anyOf.jst | 48 - .../node_modules/ajv/lib/dot/coerce.def | 61 - .../node_modules/ajv/lib/dot/const.jst | 11 - .../node_modules/ajv/lib/dot/contains.jst | 57 - .../node_modules/ajv/lib/dot/custom.jst | 191 - .../node_modules/ajv/lib/dot/defaults.def | 32 - .../node_modules/ajv/lib/dot/definitions.def | 199 - .../node_modules/ajv/lib/dot/dependencies.jst | 80 - .../node_modules/ajv/lib/dot/enum.jst | 30 - .../node_modules/ajv/lib/dot/errors.def | 194 - .../node_modules/ajv/lib/dot/format.jst | 106 - .../node_modules/ajv/lib/dot/items.jst | 100 - .../node_modules/ajv/lib/dot/missing.def | 39 - .../node_modules/ajv/lib/dot/multipleOf.jst | 20 - .../node_modules/ajv/lib/dot/not.jst | 43 - .../node_modules/ajv/lib/dot/oneOf.jst | 44 - .../node_modules/ajv/lib/dot/pattern.jst | 14 - .../node_modules/ajv/lib/dot/properties.jst | 327 - .../ajv/lib/dot/propertyNames.jst | 54 - .../node_modules/ajv/lib/dot/ref.jst | 85 - .../node_modules/ajv/lib/dot/required.jst | 108 - .../node_modules/ajv/lib/dot/uniqueItems.jst | 38 - .../node_modules/ajv/lib/dot/validate.jst | 272 - .../node_modules/ajv/lib/dotjs/README.md | 3 - .../node_modules/ajv/lib/dotjs/_limit.js | 149 - .../node_modules/ajv/lib/dotjs/_limitItems.js | 76 - .../ajv/lib/dotjs/_limitLength.js | 81 - .../ajv/lib/dotjs/_limitProperties.js | 76 - .../node_modules/ajv/lib/dotjs/allOf.js | 43 - .../node_modules/ajv/lib/dotjs/anyOf.js | 73 - .../node_modules/ajv/lib/dotjs/const.js | 55 - .../node_modules/ajv/lib/dotjs/contains.js | 81 - .../node_modules/ajv/lib/dotjs/custom.js | 226 - .../ajv/lib/dotjs/dependencies.js | 167 - .../node_modules/ajv/lib/dotjs/enum.js | 65 - .../node_modules/ajv/lib/dotjs/format.js | 149 - .../node_modules/ajv/lib/dotjs/items.js | 140 - .../node_modules/ajv/lib/dotjs/multipleOf.js | 76 - .../node_modules/ajv/lib/dotjs/not.js | 83 - .../node_modules/ajv/lib/dotjs/oneOf.js | 70 - .../node_modules/ajv/lib/dotjs/pattern.js | 74 - .../node_modules/ajv/lib/dotjs/properties.js | 468 - .../ajv/lib/dotjs/propertyNames.js | 81 - .../node_modules/ajv/lib/dotjs/ref.js | 123 - .../node_modules/ajv/lib/dotjs/required.js | 268 - .../node_modules/ajv/lib/dotjs/uniqueItems.js | 71 - .../node_modules/ajv/lib/dotjs/validate.js | 458 - .../node_modules/ajv/lib/keyword.js | 130 - .../node_modules/ajv/lib/patternGroups.js | 36 - .../node_modules/ajv/lib/refs/$data.json | 17 - .../ajv/lib/refs/json-schema-draft-04.json | 150 - .../ajv/lib/refs/json-schema-draft-06.json | 150 - .../ajv/lib/refs/json-schema-v5.json | 250 - .../ajv/node_modules/co/History.md | 172 - .../node_modules/ajv/node_modules/co/LICENSE | 22 - .../ajv/node_modules/co/Readme.md | 212 - .../node_modules/ajv/node_modules/co/index.js | 237 - .../ajv/node_modules/co/package.json | 70 - .../fast-deep-equal/.eslintrc.yml | 25 - .../node_modules/fast-deep-equal/.npmignore | 60 - .../node_modules/fast-deep-equal/.travis.yml | 8 - .../ajv/node_modules/fast-deep-equal/LICENSE | 21 - .../node_modules/fast-deep-equal/README.md | 55 - .../fast-deep-equal/benchmark/.eslintrc.yml | 5 - .../fast-deep-equal/benchmark/index.js | 56 - .../ajv/node_modules/fast-deep-equal/index.js | 43 - .../node_modules/fast-deep-equal/package.json | 78 - .../fast-deep-equal/spec/.eslintrc.yml | 5 - .../fast-deep-equal/spec/index.spec.js | 18 - .../fast-deep-equal/spec/tests.js | 320 - .../json-schema-traverse/.eslintrc.yml | 27 - .../json-schema-traverse/.npmignore | 60 - .../json-schema-traverse/.travis.yml | 8 - .../node_modules/json-schema-traverse/LICENSE | 21 - .../json-schema-traverse/README.md | 69 - .../json-schema-traverse/index.js | 81 - .../json-schema-traverse/package.json | 70 - .../json-schema-traverse/spec/.eslintrc.yml | 6 - .../spec/fixtures/schema.js | 125 - .../json-schema-traverse/spec/index.spec.js | 102 - .../json-stable-stringify/.npmignore | 1 - .../json-stable-stringify/.travis.yml | 4 - .../json-stable-stringify/LICENSE | 18 - .../json-stable-stringify/example/key_cmp.js | 7 - .../json-stable-stringify/example/nested.js | 3 - .../json-stable-stringify/example/str.js | 3 - .../example/value_cmp.js | 7 - .../json-stable-stringify/index.js | 84 - .../node_modules/jsonify/README.markdown | 34 - .../node_modules/jsonify/index.js | 2 - .../node_modules/jsonify/lib/parse.js | 273 - .../node_modules/jsonify/lib/stringify.js | 154 - .../node_modules/jsonify/package.json | 66 - .../node_modules/jsonify/test/parse.js | 16 - .../node_modules/jsonify/test/stringify.js | 15 - .../json-stable-stringify/package.json | 77 - .../json-stable-stringify/readme.markdown | 130 - .../json-stable-stringify/test/cmp.js | 11 - .../json-stable-stringify/test/nested.js | 35 - .../json-stable-stringify/test/replacer.js | 74 - .../json-stable-stringify/test/space.js | 59 - .../json-stable-stringify/test/str.js | 32 - .../json-stable-stringify/test/to-json.js | 20 - .../node_modules/ajv/package.json | 130 - .../node_modules/ajv/scripts/.eslintrc.yml | 3 - .../node_modules/ajv/scripts/bundle.js | 61 - .../node_modules/ajv/scripts/compile-dots.js | 73 - .../node_modules/ajv/scripts/info | 10 - .../node_modules/ajv/scripts/prepare-tests | 9 - .../node_modules/ajv/scripts/travis-gh-pages | 23 - .../node_modules/har-schema/LICENSE | 13 - .../node_modules/har-schema/README.md | 49 - .../har-schema/lib/afterRequest.json | 30 - .../har-schema/lib/beforeRequest.json | 30 - .../node_modules/har-schema/lib/browser.json | 20 - .../node_modules/har-schema/lib/cache.json | 21 - .../node_modules/har-schema/lib/content.json | 29 - .../node_modules/har-schema/lib/cookie.json | 36 - .../node_modules/har-schema/lib/creator.json | 20 - .../node_modules/har-schema/lib/entry.json | 53 - .../node_modules/har-schema/lib/har.json | 13 - .../node_modules/har-schema/lib/header.json | 20 - .../node_modules/har-schema/lib/index.js | 22 - .../node_modules/har-schema/lib/log.json | 36 - .../node_modules/har-schema/lib/page.json | 32 - .../har-schema/lib/pageTimings.json | 18 - .../node_modules/har-schema/lib/postData.json | 43 - .../node_modules/har-schema/lib/query.json | 20 - .../node_modules/har-schema/lib/request.json | 57 - .../node_modules/har-schema/lib/response.json | 54 - .../node_modules/har-schema/lib/timings.json | 42 - .../node_modules/har-schema/package.json | 86 - .../node_modules/har-validator/package.json | 75 - .../request/node_modules/hawk/.npmignore | 5 - .../request/node_modules/hawk/LICENSE | 28 - .../request/node_modules/hawk/README.md | 637 - .../request/node_modules/hawk/client.js | 3 - .../request/node_modules/hawk/dist/browser.js | 793 - .../request/node_modules/hawk/lib/browser.js | 653 - .../request/node_modules/hawk/lib/client.js | 391 - .../request/node_modules/hawk/lib/crypto.js | 128 - .../request/node_modules/hawk/lib/index.js | 16 - .../request/node_modules/hawk/lib/server.js | 550 - .../request/node_modules/hawk/lib/utils.js | 185 - .../hawk/node_modules/boom/LICENSE | 29 - .../hawk/node_modules/boom/README.md | 760 - .../hawk/node_modules/boom/lib/index.js | 433 - .../hawk/node_modules/boom/package.json | 61 - .../hawk/node_modules/cryptiles/.npmignore | 3 - .../hawk/node_modules/cryptiles/LICENSE | 28 - .../hawk/node_modules/cryptiles/README.md | 19 - .../hawk/node_modules/cryptiles/lib/index.js | 88 - .../cryptiles/node_modules/boom/LICENSE | 29 - .../cryptiles/node_modules/boom/README.md | 784 - .../cryptiles/node_modules/boom/lib/index.js | 457 - .../cryptiles/node_modules/boom/package.json | 61 - .../hawk/node_modules/cryptiles/package.json | 61 - .../hawk/node_modules/hoek/.npmignore | 3 - .../hawk/node_modules/hoek/LICENSE | 32 - .../hawk/node_modules/hoek/README.md | 30 - .../hawk/node_modules/hoek/lib/escape.js | 168 - .../hawk/node_modules/hoek/lib/index.js | 974 -- .../hawk/node_modules/hoek/package.json | 58 - .../hawk/node_modules/sntp/.npmignore | 3 - .../hawk/node_modules/sntp/LICENSE | 28 - .../hawk/node_modules/sntp/README.md | 68 - .../hawk/node_modules/sntp/lib/index.js | 396 - .../hawk/node_modules/sntp/package.json | 64 - .../request/node_modules/hawk/package.json | 78 - .../http-signature/.dir-locals.el | 6 - .../node_modules/http-signature/.npmignore | 7 - .../node_modules/http-signature/CHANGES.md | 46 - .../node_modules/http-signature/LICENSE | 18 - .../node_modules/http-signature/README.md | 79 - .../http-signature/http_signing.md | 363 - .../node_modules/http-signature/lib/index.js | 29 - .../node_modules/http-signature/lib/parser.js | 315 - .../node_modules/http-signature/lib/signer.js | 401 - .../node_modules/http-signature/lib/utils.js | 112 - .../node_modules/http-signature/lib/verify.js | 88 - .../node_modules/assert-plus/AUTHORS | 6 - .../node_modules/assert-plus/CHANGES.md | 14 - .../node_modules/assert-plus/README.md | 162 - .../node_modules/assert-plus/assert.js | 211 - .../node_modules/assert-plus/package.json | 87 - .../node_modules/jsprim/CHANGES.md | 49 - .../node_modules/jsprim/CONTRIBUTING.md | 19 - .../node_modules/jsprim/LICENSE | 19 - .../node_modules/jsprim/README.md | 287 - .../node_modules/jsprim/lib/jsprim.js | 735 - .../node_modules/extsprintf/.gitmodules | 0 .../jsprim/node_modules/extsprintf/.npmignore | 2 - .../jsprim/node_modules/extsprintf/LICENSE | 19 - .../jsprim/node_modules/extsprintf/Makefile | 24 - .../node_modules/extsprintf/Makefile.targ | 285 - .../jsprim/node_modules/extsprintf/README.md | 46 - .../node_modules/extsprintf/jsl.node.conf | 137 - .../node_modules/extsprintf/lib/extsprintf.js | 183 - .../node_modules/extsprintf/package.json | 44 - .../jsprim/node_modules/json-schema/README.md | 5 - .../json-schema/draft-00/hyper-schema | 68 - .../json-schema/draft-00/json-ref | 26 - .../node_modules/json-schema/draft-00/links | 33 - .../node_modules/json-schema/draft-00/schema | 155 - .../json-schema/draft-01/hyper-schema | 68 - .../json-schema/draft-01/json-ref | 26 - .../node_modules/json-schema/draft-01/links | 33 - .../node_modules/json-schema/draft-01/schema | 155 - .../json-schema/draft-02/hyper-schema | 68 - .../json-schema/draft-02/json-ref | 26 - .../node_modules/json-schema/draft-02/links | 35 - .../node_modules/json-schema/draft-02/schema | 166 - .../json-schema/draft-03/examples/address | 20 - .../json-schema/draft-03/examples/calendar | 49 - .../json-schema/draft-03/examples/card | 105 - .../json-schema/draft-03/examples/geo | 8 - .../json-schema/draft-03/examples/interfaces | 23 - .../json-schema/draft-03/hyper-schema | 60 - .../json-schema/draft-03/json-ref | 26 - .../node_modules/json-schema/draft-03/links | 35 - .../node_modules/json-schema/draft-03/schema | 174 - .../json-schema/draft-04/hyper-schema | 60 - .../node_modules/json-schema/draft-04/links | 41 - .../node_modules/json-schema/draft-04/schema | 189 - .../json-schema/draft-zyp-json-schema-03.xml | 1120 -- .../json-schema/draft-zyp-json-schema-04.xml | 1072 -- .../node_modules/json-schema/lib/links.js | 66 - .../node_modules/json-schema/lib/validate.js | 273 - .../node_modules/json-schema/package.json | 75 - .../node_modules/json-schema/test/tests.js | 95 - .../jsprim/node_modules/verror/.npmignore | 9 - .../jsprim/node_modules/verror/CHANGES.md | 28 - .../node_modules/verror/CONTRIBUTING.md | 19 - .../jsprim/node_modules/verror/LICENSE | 19 - .../jsprim/node_modules/verror/README.md | 528 - .../jsprim/node_modules/verror/lib/verror.js | 451 - .../verror/node_modules/core-util-is/LICENSE | 19 - .../node_modules/core-util-is/README.md | 3 - .../node_modules/core-util-is/float.patch | 604 - .../node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 62 - .../verror/node_modules/core-util-is/test.js | 68 - .../jsprim/node_modules/verror/package.json | 51 - .../node_modules/jsprim/package.json | 51 - .../node_modules/sshpk/.npmignore | 9 - .../node_modules/sshpk/.travis.yml | 11 - .../http-signature/node_modules/sshpk/LICENSE | 18 - .../node_modules/sshpk/README.md | 698 - .../node_modules/sshpk/bin/sshpk-conv | 201 - .../node_modules/sshpk/bin/sshpk-sign | 191 - .../node_modules/sshpk/bin/sshpk-verify | 166 - .../node_modules/sshpk/lib/algs.js | 168 - .../node_modules/sshpk/lib/certificate.js | 377 - .../node_modules/sshpk/lib/dhe.js | 411 - .../node_modules/sshpk/lib/ed-compat.js | 96 - .../node_modules/sshpk/lib/errors.js | 84 - .../node_modules/sshpk/lib/fingerprint.js | 161 - .../node_modules/sshpk/lib/formats/auto.js | 73 - .../sshpk/lib/formats/openssh-cert.js | 322 - .../node_modules/sshpk/lib/formats/pem.js | 186 - .../node_modules/sshpk/lib/formats/pkcs1.js | 320 - .../node_modules/sshpk/lib/formats/pkcs8.js | 505 - .../node_modules/sshpk/lib/formats/rfc4253.js | 146 - .../sshpk/lib/formats/ssh-private.js | 261 - .../node_modules/sshpk/lib/formats/ssh.js | 114 - .../sshpk/lib/formats/x509-pem.js | 77 - .../node_modules/sshpk/lib/formats/x509.js | 726 - .../node_modules/sshpk/lib/identity.js | 277 - .../node_modules/sshpk/lib/index.js | 39 - .../node_modules/sshpk/lib/key.js | 274 - .../node_modules/sshpk/lib/private-key.js | 254 - .../node_modules/sshpk/lib/signature.js | 313 - .../node_modules/sshpk/lib/ssh-buffer.js | 148 - .../node_modules/sshpk/lib/utils.js | 288 - .../node_modules/sshpk/man/man1/sshpk-conv.1 | 135 - .../node_modules/sshpk/man/man1/sshpk-sign.1 | 81 - .../sshpk/man/man1/sshpk-verify.1 | 68 - .../sshpk/node_modules/asn1/.npmignore | 2 - .../sshpk/node_modules/asn1/.travis.yml | 4 - .../sshpk/node_modules/asn1/LICENSE | 19 - .../sshpk/node_modules/asn1/README.md | 50 - .../sshpk/node_modules/asn1/lib/ber/errors.js | 13 - .../sshpk/node_modules/asn1/lib/ber/index.js | 27 - .../sshpk/node_modules/asn1/lib/ber/reader.js | 261 - .../sshpk/node_modules/asn1/lib/ber/types.js | 36 - .../sshpk/node_modules/asn1/lib/ber/writer.js | 316 - .../sshpk/node_modules/asn1/lib/index.js | 20 - .../sshpk/node_modules/asn1/package.json | 68 - .../node_modules/asn1/tst/ber/reader.test.js | 208 - .../node_modules/asn1/tst/ber/writer.test.js | 370 - .../sshpk/node_modules/bcrypt-pbkdf/README.md | 39 - .../sshpk/node_modules/bcrypt-pbkdf/index.js | 556 - .../node_modules/bcrypt-pbkdf/package.json | 39 - .../sshpk/node_modules/dashdash/CHANGES.md | 364 - .../sshpk/node_modules/dashdash/LICENSE.txt | 23 - .../sshpk/node_modules/dashdash/README.md | 574 - .../dashdash/etc/dashdash.bash_completion.in | 389 - .../node_modules/dashdash/lib/dashdash.js | 1055 -- .../sshpk/node_modules/dashdash/package.json | 70 - .../sshpk/node_modules/ecc-jsbn/.npmignore | 15 - .../sshpk/node_modules/ecc-jsbn/LICENSE | 21 - .../sshpk/node_modules/ecc-jsbn/README.md | 8 - .../sshpk/node_modules/ecc-jsbn/index.js | 57 - .../node_modules/ecc-jsbn/lib/LICENSE-jsbn | 40 - .../sshpk/node_modules/ecc-jsbn/lib/ec.js | 561 - .../sshpk/node_modules/ecc-jsbn/lib/sec.js | 170 - .../sshpk/node_modules/ecc-jsbn/package.json | 68 - .../sshpk/node_modules/ecc-jsbn/test.js | 14 - .../sshpk/node_modules/getpass/.npmignore | 8 - .../sshpk/node_modules/getpass/.travis.yml | 9 - .../sshpk/node_modules/getpass/LICENSE | 18 - .../sshpk/node_modules/getpass/README.md | 32 - .../sshpk/node_modules/getpass/lib/index.js | 123 - .../sshpk/node_modules/getpass/package.json | 54 - .../sshpk/node_modules/jsbn/.npmignore | 2 - .../sshpk/node_modules/jsbn/LICENSE | 40 - .../sshpk/node_modules/jsbn/README.md | 175 - .../sshpk/node_modules/jsbn/example.html | 12 - .../sshpk/node_modules/jsbn/example.js | 3 - .../sshpk/node_modules/jsbn/index.js | 1357 -- .../sshpk/node_modules/jsbn/package.json | 59 - .../sshpk/node_modules/tweetnacl/.npmignore | 4 - .../sshpk/node_modules/tweetnacl/AUTHORS.md | 28 - .../sshpk/node_modules/tweetnacl/CHANGELOG.md | 221 - .../sshpk/node_modules/tweetnacl/LICENSE | 24 - .../tweetnacl/PULL_REQUEST_TEMPLATE.md | 20 - .../sshpk/node_modules/tweetnacl/README.md | 459 - .../sshpk/node_modules/tweetnacl/nacl-fast.js | 2388 --- .../node_modules/tweetnacl/nacl-fast.min.js | 2 - .../sshpk/node_modules/tweetnacl/nacl.d.ts | 98 - .../sshpk/node_modules/tweetnacl/nacl.js | 1175 -- .../sshpk/node_modules/tweetnacl/nacl.min.js | 1 - .../sshpk/node_modules/tweetnacl/package.json | 90 - .../node_modules/sshpk/package.json | 100 - .../node_modules/http-signature/package.json | 77 - .../node_modules/is-typedarray/LICENSE.md | 18 - .../node_modules/is-typedarray/README.md | 16 - .../node_modules/is-typedarray/index.js | 41 - .../node_modules/is-typedarray/package.json | 62 - .../node_modules/is-typedarray/test.js | 34 - .../request/node_modules/isstream/.npmignore | 1 - .../request/node_modules/isstream/.travis.yml | 12 - .../request/node_modules/isstream/LICENSE.md | 11 - .../request/node_modules/isstream/README.md | 66 - .../request/node_modules/isstream/isstream.js | 27 - .../node_modules/isstream/package.json | 65 - .../request/node_modules/isstream/test.js | 168 - .../json-stringify-safe/.npmignore | 1 - .../json-stringify-safe/CHANGELOG.md | 14 - .../node_modules/json-stringify-safe/LICENSE | 15 - .../node_modules/json-stringify-safe/Makefile | 35 - .../json-stringify-safe/README.md | 52 - .../json-stringify-safe/package.json | 70 - .../json-stringify-safe/stringify.js | 27 - .../json-stringify-safe/test/mocha.opts | 2 - .../test/stringify_test.js | 246 - .../node_modules/mime-types/HISTORY.md | 247 - .../request/node_modules/mime-types/LICENSE | 23 - .../request/node_modules/mime-types/README.md | 108 - .../request/node_modules/mime-types/index.js | 188 - .../node_modules/mime-db/HISTORY.md | 343 - .../mime-types/node_modules/mime-db/LICENSE | 22 - .../mime-types/node_modules/mime-db/README.md | 94 - .../mime-types/node_modules/mime-db/db.json | 6966 --------- .../mime-types/node_modules/mime-db/index.js | 11 - .../node_modules/mime-db/package.json | 100 - .../node_modules/mime-types/package.json | 87 - .../request/node_modules/oauth-sign/LICENSE | 55 - .../request/node_modules/oauth-sign/README.md | 4 - .../request/node_modules/oauth-sign/index.js | 136 - .../node_modules/oauth-sign/package.json | 58 - .../node_modules/performance-now/.npmignore | 1 - .../performance-now/.tm_properties | 7 - .../node_modules/performance-now/.travis.yml | 6 - .../node_modules/performance-now/README.md | 30 - .../performance-now/lib/performance-now.js | 36 - .../lib/performance-now.js.map | 10 - .../node_modules/performance-now/license.txt | 7 - .../node_modules/performance-now/package.json | 65 - .../performance-now/src/index.d.ts | 8 - .../src/performance-now.coffee | 17 - .../performance-now/test/mocha.opts | 3 - .../test/performance-now.coffee | 43 - .../performance-now/test/scripts.coffee | 27 - .../test/scripts/delayed-call.coffee | 11 - .../test/scripts/delayed-require.coffee | 12 - .../test/scripts/difference.coffee | 6 - .../test/scripts/initial-value.coffee | 10 - .../request/node_modules/qs/.editorconfig | 30 - .../request/node_modules/qs/.eslintignore | 1 - .../request/node_modules/qs/CHANGELOG.md | 221 - .../request/node_modules/qs/LICENSE | 28 - .../request/node_modules/qs/README.md | 475 - .../request/node_modules/qs/dist/qs.js | 627 - .../request/node_modules/qs/lib/formats.js | 18 - .../request/node_modules/qs/lib/index.js | 11 - .../request/node_modules/qs/lib/parse.js | 174 - .../request/node_modules/qs/lib/stringify.js | 210 - .../request/node_modules/qs/lib/utils.js | 202 - .../request/node_modules/qs/package.json | 79 - .../request/node_modules/qs/test/index.js | 7 - .../request/node_modules/qs/test/parse.js | 573 - .../request/node_modules/qs/test/stringify.js | 596 - .../request/node_modules/qs/test/utils.js | 34 - .../node_modules/stringstream/.npmignore | 15 - .../node_modules/stringstream/.travis.yml | 4 - .../node_modules/stringstream/LICENSE.txt | 22 - .../node_modules/stringstream/README.md | 38 - .../node_modules/stringstream/example.js | 27 - .../node_modules/stringstream/package.json | 56 - .../node_modules/stringstream/stringstream.js | 102 - .../request/node_modules/tough-cookie/LICENSE | 27 - .../node_modules/tough-cookie/README.md | 509 - .../node_modules/tough-cookie/lib/cookie.js | 1341 -- .../node_modules/tough-cookie/lib/memstore.js | 170 - .../tough-cookie/lib/pathMatch.js | 61 - .../tough-cookie/lib/permuteDomain.js | 56 - .../tough-cookie/lib/pubsuffix.js | 98 - .../node_modules/tough-cookie/lib/store.js | 71 - .../node_modules/punycode/LICENSE-MIT.txt | 20 - .../node_modules/punycode/README.md | 176 - .../node_modules/punycode/package.json | 91 - .../node_modules/punycode/punycode.js | 533 - .../node_modules/tough-cookie/package.json | 92 - .../request/node_modules/tunnel-agent/LICENSE | 55 - .../node_modules/tunnel-agent/README.md | 4 - .../node_modules/tunnel-agent/index.js | 244 - .../node_modules/tunnel-agent/package.json | 57 - deps/npm/node_modules/request/package.json | 124 - deps/npm/node_modules/request/request.js | 1552 -- deps/npm/node_modules/retry/.npmignore | 2 - deps/npm/node_modules/retry/License | 21 - deps/npm/node_modules/retry/Makefile | 22 - deps/npm/node_modules/retry/Readme.md | 215 - deps/npm/node_modules/retry/equation.gif | Bin 1209 -> 0 bytes deps/npm/node_modules/retry/example/dns.js | 31 - deps/npm/node_modules/retry/example/stop.js | 40 - deps/npm/node_modules/retry/index.js | 1 - deps/npm/node_modules/retry/lib/retry.js | 99 - .../node_modules/retry/lib/retry_operation.js | 143 - deps/npm/node_modules/retry/package.json | 61 - deps/npm/node_modules/retry/test/common.js | 10 - .../retry/test/integration/test-forever.js | 24 - .../test/integration/test-retry-operation.js | 176 - .../retry/test/integration/test-retry-wrap.js | 77 - .../retry/test/integration/test-timeouts.js | 69 - deps/npm/node_modules/retry/test/runner.js | 5 - deps/npm/node_modules/rimraf/LICENSE | 15 - deps/npm/node_modules/rimraf/README.md | 101 - deps/npm/node_modules/rimraf/bin.js | 50 - deps/npm/node_modules/rimraf/package.json | 74 - deps/npm/node_modules/rimraf/rimraf.js | 364 - deps/npm/node_modules/safe-buffer/.travis.yml | 7 - deps/npm/node_modules/safe-buffer/LICENSE | 21 - deps/npm/node_modules/safe-buffer/README.md | 584 - deps/npm/node_modules/safe-buffer/index.js | 62 - .../npm/node_modules/safe-buffer/package.json | 68 - deps/npm/node_modules/safe-buffer/test.js | 101 - deps/npm/node_modules/semver/LICENSE | 15 - deps/npm/node_modules/semver/README.md | 366 - deps/npm/node_modules/semver/bin/semver | 133 - deps/npm/node_modules/semver/package.json | 65 - deps/npm/node_modules/semver/range.bnf | 16 - deps/npm/node_modules/semver/semver.js | 1296 -- deps/npm/node_modules/sha/.npmignore | 4 - deps/npm/node_modules/sha/LICENSE | 46 - deps/npm/node_modules/sha/README.md | 49 - deps/npm/node_modules/sha/index.js | 107 - deps/npm/node_modules/sha/package.json | 52 - deps/npm/node_modules/slide/LICENSE | 15 - deps/npm/node_modules/slide/README.md | 143 - deps/npm/node_modules/slide/index.js | 1 - .../slide/lib/async-map-ordered.js | 65 - deps/npm/node_modules/slide/lib/async-map.js | 54 - deps/npm/node_modules/slide/lib/bind-actor.js | 16 - deps/npm/node_modules/slide/lib/chain.js | 20 - deps/npm/node_modules/slide/lib/slide.js | 3 - deps/npm/node_modules/slide/package.json | 63 - .../node_modules/sorted-object/LICENSE.txt | 47 - .../sorted-object/lib/sorted-object.js | 11 - .../node_modules/sorted-object/package.json | 65 - .../sorted-union-stream/.npmignore | 1 - .../sorted-union-stream/.travis.yml | 5 - .../node_modules/sorted-union-stream/LICENSE | 21 - .../sorted-union-stream/README.md | 80 - .../sorted-union-stream/example.js | 15 - .../node_modules/sorted-union-stream/index.js | 59 - .../node_modules/from2/LICENSE.md | 21 - .../node_modules/from2/README.md | 67 - .../node_modules/from2/index.js | 93 - .../node_modules/readable-stream/.npmignore | 5 - .../node_modules/readable-stream/LICENSE | 18 - .../node_modules/readable-stream/README.md | 14 - .../node_modules/readable-stream/duplex.js | 1 - .../node_modules/readable-stream/float.patch | 922 -- .../readable-stream/lib/_stream_duplex.js | 89 - .../lib/_stream_passthrough.js | 46 - .../readable-stream/lib/_stream_readable.js | 951 -- .../readable-stream/lib/_stream_transform.js | 209 - .../readable-stream/lib/_stream_writable.js | 477 - .../node_modules/core-util-is/LICENSE | 19 - .../node_modules/core-util-is/README.md | 3 - .../node_modules/core-util-is/float.patch | 604 - .../node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 66 - .../node_modules/core-util-is/test.js | 68 - .../node_modules/isarray/README.md | 54 - .../node_modules/isarray/build/build.js | 208 - .../node_modules/isarray/component.json | 19 - .../node_modules/isarray/index.js | 3 - .../node_modules/isarray/package.json | 60 - .../node_modules/string_decoder/.npmignore | 2 - .../node_modules/string_decoder/LICENSE | 20 - .../node_modules/string_decoder/README.md | 7 - .../node_modules/string_decoder/index.js | 221 - .../node_modules/string_decoder/package.json | 56 - .../node_modules/readable-stream/package.json | 68 - .../readable-stream/passthrough.js | 1 - .../node_modules/readable-stream/readable.js | 10 - .../node_modules/readable-stream/transform.js | 1 - .../node_modules/readable-stream/writable.js | 1 - .../node_modules/from2/package.json | 74 - .../node_modules/from2/test.js | 86 - .../node_modules/stream-iterate/.npmignore | 1 - .../node_modules/stream-iterate/.travis.yml | 5 - .../node_modules/stream-iterate/LICENSE | 21 - .../node_modules/stream-iterate/README.md | 39 - .../node_modules/stream-iterate/index.js | 70 - .../node_modules/stream-shift/.npmignore | 1 - .../node_modules/stream-shift/.travis.yml | 6 - .../node_modules/stream-shift/LICENSE | 21 - .../node_modules/stream-shift/README.md | 25 - .../node_modules/stream-shift/index.js | 20 - .../node_modules/stream-shift/package.json | 56 - .../node_modules/stream-shift/test.js | 48 - .../node_modules/stream-iterate/package.json | 59 - .../node_modules/stream-iterate/test.js | 60 - .../sorted-union-stream/package.json | 66 - .../node_modules/sorted-union-stream/test.js | 154 - deps/npm/node_modules/ssri/CHANGELOG.md | 190 - deps/npm/node_modules/ssri/LICENSE.md | 16 - deps/npm/node_modules/ssri/README.md | 462 - deps/npm/node_modules/ssri/index.js | 334 - deps/npm/node_modules/ssri/package.json | 90 - deps/npm/node_modules/strip-ansi/index.js | 4 - deps/npm/node_modules/strip-ansi/license | 9 - .../node_modules/ansi-regex/index.js | 10 - .../node_modules/ansi-regex/license | 9 - .../node_modules/ansi-regex/package.json | 85 - .../node_modules/ansi-regex/readme.md | 46 - deps/npm/node_modules/strip-ansi/package.json | 85 - deps/npm/node_modules/strip-ansi/readme.md | 39 - deps/npm/node_modules/tar/LICENSE | 15 - deps/npm/node_modules/tar/README.md | 883 -- deps/npm/node_modules/tar/index.js | 18 - deps/npm/node_modules/tar/lib/create.js | 110 - deps/npm/node_modules/tar/lib/extract.js | 127 - deps/npm/node_modules/tar/lib/header.js | 272 - .../node_modules/tar/lib/high-level-opt.js | 29 - .../npm/node_modules/tar/lib/large-numbers.js | 92 - deps/npm/node_modules/tar/lib/list.js | 132 - deps/npm/node_modules/tar/lib/mkdir.js | 207 - deps/npm/node_modules/tar/lib/pack.js | 399 - deps/npm/node_modules/tar/lib/parse.js | 415 - deps/npm/node_modules/tar/lib/pax.js | 145 - deps/npm/node_modules/tar/lib/read-entry.js | 94 - deps/npm/node_modules/tar/lib/replace.js | 211 - deps/npm/node_modules/tar/lib/types.js | 44 - deps/npm/node_modules/tar/lib/unpack.js | 481 - deps/npm/node_modules/tar/lib/update.js | 36 - deps/npm/node_modules/tar/lib/warn-mixin.js | 14 - deps/npm/node_modules/tar/lib/winchars.js | 23 - deps/npm/node_modules/tar/lib/write-entry.js | 395 - .../tar/node_modules/minipass/.npmignore | 4 - .../tar/node_modules/minipass/.travis.yml | 7 - .../tar/node_modules/minipass/README.md | 46 - .../tar/node_modules/minipass/b.js | 12 - .../minipass/bench/lib/extend-minipass.js | 11 - .../minipass/bench/lib/extend-through2.js | 12 - .../minipass/bench/lib/extend-transform.js | 11 - .../minipass/bench/lib/nullsink.js | 12 - .../minipass/bench/lib/numbers.js | 41 - .../node_modules/minipass/bench/lib/timer.js | 15 - .../tar/node_modules/minipass/bench/test.js | 160 - .../tar/node_modules/minipass/d.js | 7 - .../tar/node_modules/minipass/e.js | 17 - .../tar/node_modules/minipass/eos.js | 12 - .../tar/node_modules/minipass/foo | 0 .../tar/node_modules/minipass/index.js | 295 - .../minipass/minipass-benchmarks.xlsx | Bin 54935 -> 0 bytes .../tar/node_modules/minipass/package.json | 64 - .../tar/node_modules/minipass/test/basic.js | 438 - .../node_modules/minipass/test/empty-end.js | 38 - .../tar/node_modules/minizlib/LICENSE | 26 - .../tar/node_modules/minizlib/README.md | 44 - .../tar/node_modules/minizlib/constants.js | 46 - .../tar/node_modules/minizlib/index.js | 354 - .../tar/node_modules/minizlib/package.json | 71 - .../tar/node_modules/yallist/LICENSE | 15 - .../tar/node_modules/yallist/README.md | 204 - .../tar/node_modules/yallist/iterator.js | 8 - .../tar/node_modules/yallist/package.json | 63 - .../tar/node_modules/yallist/yallist.js | 376 - deps/npm/node_modules/tar/package.json | 78 - deps/npm/node_modules/text-table/.travis.yml | 4 - deps/npm/node_modules/text-table/LICENSE | 18 - .../node_modules/text-table/example/align.js | 8 - .../node_modules/text-table/example/center.js | 8 - .../text-table/example/dotalign.js | 9 - .../text-table/example/doubledot.js | 11 - .../node_modules/text-table/example/table.js | 6 - deps/npm/node_modules/text-table/index.js | 86 - deps/npm/node_modules/text-table/package.json | 78 - .../node_modules/text-table/readme.markdown | 134 - .../npm/node_modules/text-table/test/align.js | 18 - .../text-table/test/ansi-colors.js | 32 - .../node_modules/text-table/test/center.js | 18 - .../node_modules/text-table/test/dotalign.js | 20 - .../node_modules/text-table/test/doubledot.js | 24 - .../npm/node_modules/text-table/test/table.js | 14 - deps/npm/node_modules/uid-number/LICENSE | 15 - deps/npm/node_modules/uid-number/README.md | 17 - .../node_modules/uid-number/get-uid-gid.js | 24 - deps/npm/node_modules/uid-number/package.json | 53 - .../npm/node_modules/uid-number/uid-number.js | 59 - deps/npm/node_modules/umask/.npmignore | 28 - deps/npm/node_modules/umask/ChangeLog | 9 - deps/npm/node_modules/umask/LICENSE | 22 - deps/npm/node_modules/umask/README.md | 78 - deps/npm/node_modules/umask/index.js | 77 - deps/npm/node_modules/umask/package.json | 60 - deps/npm/node_modules/umask/test/simple.js | 166 - .../node_modules/unique-filename/.npmignore | 5 - .../node_modules/unique-filename/README.md | 33 - .../coverage/__root__/index.html | 73 - .../coverage/__root__/index.js.html | 69 - .../unique-filename/coverage/base.css | 182 - .../unique-filename/coverage/index.html | 73 - .../unique-filename/coverage/prettify.css | 1 - .../unique-filename/coverage/prettify.js | 1 - .../coverage/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../unique-filename/coverage/sorter.js | 156 - .../npm/node_modules/unique-filename/index.js | 8 - .../node_modules/unique-slug/.npmignore | 6 - .../node_modules/unique-slug/.travis.yml | 11 - .../node_modules/unique-slug/README.md | 20 - .../node_modules/unique-slug/index.js | 19 - .../node_modules/unique-slug/package.json | 59 - .../node_modules/unique-slug/test/index.js | 13 - .../node_modules/unique-filename/package.json | 63 - .../unique-filename/test/index.js | 23 - deps/npm/node_modules/unpipe/HISTORY.md | 4 - deps/npm/node_modules/unpipe/LICENSE | 22 - deps/npm/node_modules/unpipe/README.md | 43 - deps/npm/node_modules/unpipe/index.js | 69 - deps/npm/node_modules/unpipe/package.json | 67 - .../npm/node_modules/update-notifier/check.js | 22 - .../npm/node_modules/update-notifier/index.js | 151 - .../node_modules/boxen/index.js | 138 - .../node_modules/boxen/license | 9 - .../node_modules/ansi-align/CHANGELOG.md | 36 - .../boxen/node_modules/ansi-align/LICENSE | 13 - .../boxen/node_modules/ansi-align/README.md | 79 - .../boxen/node_modules/ansi-align/index.js | 61 - .../node_modules/ansi-align/package.json | 70 - .../boxen/node_modules/camelcase/index.js | 64 - .../boxen/node_modules/camelcase/license | 21 - .../boxen/node_modules/camelcase/package.json | 78 - .../boxen/node_modules/camelcase/readme.md | 57 - .../boxen/node_modules/cli-boxes/boxes.json | 50 - .../boxen/node_modules/cli-boxes/index.js | 2 - .../boxen/node_modules/cli-boxes/license | 21 - .../boxen/node_modules/cli-boxes/package.json | 75 - .../boxen/node_modules/cli-boxes/readme.md | 94 - .../boxen/node_modules/string-width/index.js | 36 - .../boxen/node_modules/string-width/license | 9 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 81 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/string-width/package.json | 88 - .../boxen/node_modules/string-width/readme.md | 42 - .../boxen/node_modules/term-size/index.js | 70 - .../boxen/node_modules/term-size/license | 21 - .../term-size/node_modules/execa/index.js | 309 - .../node_modules/execa/lib/errname.js | 37 - .../term-size/node_modules/execa/lib/stdio.js | 41 - .../term-size/node_modules/execa/license | 9 - .../node_modules/cross-spawn/CHANGELOG.md | 6 - .../execa/node_modules/cross-spawn/LICENSE | 19 - .../execa/node_modules/cross-spawn/README.md | 85 - .../execa/node_modules/cross-spawn/index.js | 59 - .../node_modules/cross-spawn/lib/enoent.js | 73 - .../node_modules/cross-spawn/lib/parse.js | 113 - .../cross-spawn/lib/util/escapeArgument.js | 30 - .../cross-spawn/lib/util/escapeCommand.js | 12 - .../lib/util/hasEmptyArgumentBug.js | 18 - .../cross-spawn/lib/util/readShebang.js | 37 - .../cross-spawn/lib/util/resolveCommand.js | 31 - .../node_modules/shebang-command/index.js | 19 - .../node_modules/shebang-command/license | 21 - .../node_modules/shebang-regex/index.js | 2 - .../node_modules/shebang-regex/license | 21 - .../node_modules/shebang-regex/package.json | 64 - .../node_modules/shebang-regex/readme.md | 29 - .../node_modules/shebang-command/package.json | 71 - .../node_modules/shebang-command/readme.md | 39 - .../node_modules/cross-spawn/package.json | 83 - .../node_modules/get-stream/buffer-stream.js | 51 - .../execa/node_modules/get-stream/index.js | 51 - .../execa/node_modules/get-stream/license | 21 - .../node_modules/get-stream/package.json | 80 - .../execa/node_modules/get-stream/readme.md | 117 - .../execa/node_modules/is-stream/index.js | 21 - .../execa/node_modules/is-stream/license | 21 - .../execa/node_modules/is-stream/package.json | 74 - .../execa/node_modules/is-stream/readme.md | 42 - .../execa/node_modules/npm-run-path/index.js | 39 - .../execa/node_modules/npm-run-path/license | 21 - .../node_modules/path-key/index.js | 13 - .../node_modules/path-key/license | 21 - .../node_modules/path-key/package.json | 71 - .../node_modules/path-key/readme.md | 51 - .../node_modules/npm-run-path/package.json | 77 - .../execa/node_modules/npm-run-path/readme.md | 81 - .../execa/node_modules/p-finally/index.js | 15 - .../execa/node_modules/p-finally/license | 21 - .../execa/node_modules/p-finally/package.json | 74 - .../execa/node_modules/p-finally/readme.md | 47 - .../node_modules/signal-exit/CHANGELOG.md | 27 - .../node_modules/signal-exit/LICENSE.txt | 16 - .../execa/node_modules/signal-exit/README.md | 40 - .../execa/node_modules/signal-exit/index.js | 157 - .../node_modules/signal-exit/package.json | 66 - .../execa/node_modules/signal-exit/signals.js | 53 - .../execa/node_modules/strip-eof/index.js | 15 - .../execa/node_modules/strip-eof/license | 21 - .../execa/node_modules/strip-eof/package.json | 75 - .../execa/node_modules/strip-eof/readme.md | 28 - .../term-size/node_modules/execa/package.json | 111 - .../term-size/node_modules/execa/readme.md | 279 - .../boxen/node_modules/term-size/package.json | 78 - .../boxen/node_modules/term-size/readme.md | 41 - .../term-size/vendor/macos/term-size | Bin 8760 -> 0 bytes .../term-size/vendor/windows/term-size.exe | Bin 17408 -> 0 bytes .../boxen/node_modules/widest-line/index.js | 8 - .../boxen/node_modules/widest-line/license | 21 - .../node_modules/string-width/index.js | 37 - .../node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 74 - .../node_modules/code-point-at/readme.md | 32 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 71 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 80 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/strip-ansi/index.js | 6 - .../node_modules/strip-ansi/license | 21 - .../node_modules/ansi-regex/index.js | 4 - .../node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 101 - .../node_modules/strip-ansi/readme.md | 33 - .../node_modules/string-width/package.json | 91 - .../node_modules/string-width/readme.md | 42 - .../node_modules/widest-line/package.json | 91 - .../boxen/node_modules/widest-line/readme.md | 34 - .../node_modules/boxen/package.json | 83 - .../node_modules/boxen/readme.md | 175 - .../node_modules/chalk/index.js | 220 - .../node_modules/chalk/license | 9 - .../chalk/node_modules/ansi-styles/index.js | 152 - .../chalk/node_modules/ansi-styles/license | 9 - .../node_modules/color-convert/CHANGELOG.md | 54 - .../node_modules/color-convert/LICENSE | 20 - .../node_modules/color-convert/README.md | 68 - .../node_modules/color-convert/conversions.js | 861 -- .../node_modules/color-convert/index.js | 78 - .../node_modules/color-name/.eslintrc.json | 43 - .../node_modules/color-name/.npmignore | 107 - .../node_modules/color-name/LICENSE | 8 - .../node_modules/color-name/README.md | 11 - .../node_modules/color-name/index.js | 152 - .../node_modules/color-name/package.json | 53 - .../node_modules/color-name/test.js | 7 - .../node_modules/color-convert/package.json | 81 - .../node_modules/color-convert/route.js | 97 - .../node_modules/ansi-styles/package.json | 86 - .../chalk/node_modules/ansi-styles/readme.md | 147 - .../escape-string-regexp/index.js | 11 - .../node_modules/escape-string-regexp/license | 21 - .../escape-string-regexp/package.json | 85 - .../escape-string-regexp/readme.md | 27 - .../node_modules/supports-color/browser.js | 2 - .../node_modules/supports-color/index.js | 115 - .../chalk/node_modules/supports-color/license | 9 - .../node_modules/has-flag/index.js | 10 - .../node_modules/has-flag/license | 21 - .../node_modules/has-flag/package.json | 93 - .../node_modules/has-flag/readme.md | 67 - .../node_modules/supports-color/package.json | 85 - .../node_modules/supports-color/readme.md | 66 - .../node_modules/chalk/package.json | 96 - .../node_modules/chalk/readme.md | 306 - .../node_modules/chalk/templates.js | 128 - .../node_modules/configstore/index.js | 98 - .../node_modules/dot-prop/index.js | 123 - .../configstore/node_modules/dot-prop/license | 21 - .../dot-prop/node_modules/is-obj/index.js | 5 - .../dot-prop/node_modules/is-obj/license | 21 - .../dot-prop/node_modules/is-obj/package.json | 69 - .../dot-prop/node_modules/is-obj/readme.md | 34 - .../node_modules/dot-prop/package.json | 80 - .../node_modules/dot-prop/readme.md | 103 - .../node_modules/make-dir/index.js | 83 - .../configstore/node_modules/make-dir/license | 21 - .../make-dir/node_modules/pify/index.js | 68 - .../make-dir/node_modules/pify/license | 21 - .../make-dir/node_modules/pify/package.json | 80 - .../make-dir/node_modules/pify/readme.md | 119 - .../node_modules/make-dir/package.json | 86 - .../node_modules/make-dir/readme.md | 113 - .../node_modules/unique-string/index.js | 4 - .../node_modules/unique-string/license | 21 - .../crypto-random-string/index.js | 10 - .../node_modules/crypto-random-string/license | 21 - .../crypto-random-string/package.json | 79 - .../crypto-random-string/readme.md | 49 - .../node_modules/unique-string/package.json | 79 - .../node_modules/unique-string/readme.md | 32 - .../node_modules/configstore/package.json | 79 - .../node_modules/configstore/readme.md | 116 - .../node_modules/import-lazy/index.js | 53 - .../node_modules/import-lazy/license | 21 - .../node_modules/import-lazy/package.json | 76 - .../node_modules/import-lazy/readme.md | 64 - .../is-installed-globally/index.js | 5 - .../is-installed-globally/license | 9 - .../node_modules/global-dirs/index.js | 89 - .../node_modules/global-dirs/license | 9 - .../node_modules/global-dirs/package.json | 84 - .../node_modules/global-dirs/readme.md | 69 - .../node_modules/is-path-inside/index.js | 14 - .../node_modules/is-path-inside/package.json | 68 - .../node_modules/is-path-inside/readme.md | 31 - .../is-installed-globally/package.json | 83 - .../is-installed-globally/readme.md | 39 - .../node_modules/is-npm/index.js | 4 - .../node_modules/is-npm/package.json | 68 - .../node_modules/is-npm/readme.md | 30 - .../node_modules/latest-version/index.js | 4 - .../node_modules/latest-version/license | 21 - .../node_modules/package-json/index.js | 67 - .../node_modules/package-json/license | 21 - .../package-json/node_modules/got/index.js | 364 - .../package-json/node_modules/got/license | 21 - .../node_modules/create-error-class/index.js | 44 - .../node_modules/create-error-class/license | 21 - .../node_modules/capture-stack-trace/index.js | 18 - .../capture-stack-trace/package.json | 64 - .../capture-stack-trace/readme.md | 36 - .../create-error-class/package.json | 63 - .../node_modules/create-error-class/readme.md | 54 - .../got/node_modules/duplexer3/LICENSE.md | 26 - .../got/node_modules/duplexer3/README.md | 115 - .../got/node_modules/duplexer3/index.js | 76 - .../got/node_modules/duplexer3/package.json | 68 - .../node_modules/get-stream/buffer-stream.js | 51 - .../got/node_modules/get-stream/index.js | 51 - .../got/node_modules/get-stream/license | 21 - .../got/node_modules/get-stream/package.json | 84 - .../got/node_modules/get-stream/readme.md | 117 - .../got/node_modules/is-redirect/index.js | 14 - .../got/node_modules/is-redirect/license | 21 - .../got/node_modules/is-redirect/package.json | 71 - .../got/node_modules/is-redirect/readme.md | 28 - .../node_modules/is-retry-allowed/index.js | 60 - .../got/node_modules/is-retry-allowed/license | 21 - .../is-retry-allowed/package.json | 62 - .../node_modules/is-retry-allowed/readme.md | 42 - .../got/node_modules/is-stream/index.js | 21 - .../got/node_modules/is-stream/license | 21 - .../got/node_modules/is-stream/package.json | 74 - .../got/node_modules/is-stream/readme.md | 42 - .../got/node_modules/lowercase-keys/index.js | 11 - .../node_modules/lowercase-keys/package.json | 71 - .../got/node_modules/lowercase-keys/readme.md | 33 - .../got/node_modules/timed-out/index.js | 55 - .../got/node_modules/timed-out/license | 21 - .../got/node_modules/timed-out/package.json | 72 - .../got/node_modules/timed-out/readme.md | 42 - .../got/node_modules/unzip-response/index.js | 36 - .../got/node_modules/unzip-response/license | 21 - .../node_modules/unzip-response/package.json | 85 - .../got/node_modules/unzip-response/readme.md | 29 - .../got/node_modules/url-parse-lax/index.js | 14 - .../got/node_modules/url-parse-lax/license | 21 - .../node_modules/prepend-http/index.js | 14 - .../node_modules/prepend-http/license | 21 - .../node_modules/prepend-http/package.json | 71 - .../node_modules/prepend-http/readme.md | 31 - .../node_modules/url-parse-lax/package.json | 76 - .../got/node_modules/url-parse-lax/readme.md | 100 - .../node_modules/got/package.json | 113 - .../package-json/node_modules/got/readme.md | 335 - .../registry-auth-token/.npmignore | 6 - .../registry-auth-token/CHANGELOG.md | 94 - .../node_modules/registry-auth-token/LICENSE | 21 - .../registry-auth-token/README.md | 65 - .../registry-auth-token/base64.js | 14 - .../node_modules/registry-auth-token/index.js | 116 - .../node_modules/rc/.npmignore | 3 - .../node_modules/rc/LICENSE.APACHE2 | 15 - .../node_modules/rc/LICENSE.BSD | 26 - .../node_modules/rc/LICENSE.MIT | 24 - .../node_modules/rc/README.md | 149 - .../node_modules/rc/browser.js | 7 - .../node_modules/rc/index.js | 60 - .../node_modules/rc/lib/utils.js | 102 - .../rc/node_modules/deep-extend/CHANGELOG.md | 21 - .../rc/node_modules/deep-extend/LICENSE | 20 - .../rc/node_modules/deep-extend/README.md | 90 - .../rc/node_modules/deep-extend/index.js | 1 - .../deep-extend/lib/deep-extend.js | 144 - .../rc/node_modules/deep-extend/package.json | 93 - .../rc/node_modules/minimist/.travis.yml | 8 - .../rc/node_modules/minimist/LICENSE | 18 - .../rc/node_modules/minimist/example/parse.js | 2 - .../rc/node_modules/minimist/index.js | 235 - .../rc/node_modules/minimist/package.json | 77 - .../rc/node_modules/minimist/readme.markdown | 91 - .../rc/node_modules/minimist/test/all_bool.js | 32 - .../rc/node_modules/minimist/test/bool.js | 166 - .../rc/node_modules/minimist/test/dash.js | 31 - .../minimist/test/default_bool.js | 35 - .../rc/node_modules/minimist/test/dotted.js | 22 - .../rc/node_modules/minimist/test/kv_short.js | 16 - .../rc/node_modules/minimist/test/long.js | 31 - .../rc/node_modules/minimist/test/num.js | 36 - .../rc/node_modules/minimist/test/parse.js | 197 - .../minimist/test/parse_modified.js | 9 - .../rc/node_modules/minimist/test/short.js | 67 - .../node_modules/minimist/test/stop_early.js | 15 - .../rc/node_modules/minimist/test/unknown.js | 102 - .../node_modules/minimist/test/whitespace.js | 8 - .../node_modules/strip-json-comments/index.js | 70 - .../node_modules/strip-json-comments/license | 21 - .../strip-json-comments/package.json | 78 - .../strip-json-comments/readme.md | 64 - .../node_modules/rc/package.json | 67 - .../node_modules/rc/test/ini.js | 15 - .../node_modules/rc/test/nested-env-vars.js | 50 - .../node_modules/rc/test/test.js | 59 - .../registry-auth-token/package.json | 76 - .../registry-auth-token/registry-url.js | 5 - .../test/auth-token.test.js | 369 - .../test/registry-url.test.js | 64 - .../registry-auth-token/yarn.lock | 1466 -- .../node_modules/registry-url/index.js | 6 - .../node_modules/registry-url/license | 21 - .../registry-url/node_modules/rc/.npmignore | 3 - .../node_modules/rc/LICENSE.APACHE2 | 15 - .../registry-url/node_modules/rc/LICENSE.BSD | 26 - .../registry-url/node_modules/rc/LICENSE.MIT | 24 - .../registry-url/node_modules/rc/README.md | 149 - .../registry-url/node_modules/rc/browser.js | 7 - .../registry-url/node_modules/rc/index.js | 60 - .../registry-url/node_modules/rc/lib/utils.js | 102 - .../rc/node_modules/deep-extend/CHANGELOG.md | 21 - .../rc/node_modules/deep-extend/LICENSE | 20 - .../rc/node_modules/deep-extend/README.md | 90 - .../rc/node_modules/deep-extend/index.js | 1 - .../deep-extend/lib/deep-extend.js | 144 - .../rc/node_modules/deep-extend/package.json | 93 - .../rc/node_modules/minimist/.travis.yml | 8 - .../rc/node_modules/minimist/LICENSE | 18 - .../rc/node_modules/minimist/example/parse.js | 2 - .../rc/node_modules/minimist/index.js | 235 - .../rc/node_modules/minimist/package.json | 77 - .../rc/node_modules/minimist/readme.markdown | 91 - .../rc/node_modules/minimist/test/all_bool.js | 32 - .../rc/node_modules/minimist/test/bool.js | 166 - .../rc/node_modules/minimist/test/dash.js | 31 - .../minimist/test/default_bool.js | 35 - .../rc/node_modules/minimist/test/dotted.js | 22 - .../rc/node_modules/minimist/test/kv_short.js | 16 - .../rc/node_modules/minimist/test/long.js | 31 - .../rc/node_modules/minimist/test/num.js | 36 - .../rc/node_modules/minimist/test/parse.js | 197 - .../minimist/test/parse_modified.js | 9 - .../rc/node_modules/minimist/test/short.js | 67 - .../node_modules/minimist/test/stop_early.js | 15 - .../rc/node_modules/minimist/test/unknown.js | 102 - .../node_modules/minimist/test/whitespace.js | 8 - .../node_modules/strip-json-comments/index.js | 70 - .../node_modules/strip-json-comments/license | 21 - .../strip-json-comments/package.json | 78 - .../strip-json-comments/readme.md | 64 - .../registry-url/node_modules/rc/package.json | 67 - .../registry-url/node_modules/rc/test/ini.js | 15 - .../node_modules/rc/test/nested-env-vars.js | 50 - .../registry-url/node_modules/rc/test/test.js | 59 - .../node_modules/registry-url/package.json | 77 - .../node_modules/registry-url/readme.md | 50 - .../node_modules/package-json/package.json | 80 - .../node_modules/package-json/readme.md | 91 - .../node_modules/latest-version/package.json | 77 - .../node_modules/latest-version/readme.md | 40 - .../node_modules/semver-diff/index.js | 27 - .../node_modules/semver-diff/license | 21 - .../node_modules/semver-diff/package.json | 69 - .../node_modules/semver-diff/readme.md | 52 - .../node_modules/xdg-basedir/index.js | 28 - .../node_modules/xdg-basedir/license | 21 - .../node_modules/xdg-basedir/package.json | 77 - .../node_modules/xdg-basedir/readme.md | 60 - .../node_modules/update-notifier/package.json | 97 - .../node_modules/update-notifier/readme.md | 184 - deps/npm/node_modules/uuid/.eslintrc.json | 46 - deps/npm/node_modules/uuid/AUTHORS | 5 - deps/npm/node_modules/uuid/HISTORY.md | 27 - deps/npm/node_modules/uuid/LICENSE.md | 21 - deps/npm/node_modules/uuid/README.md | 227 - deps/npm/node_modules/uuid/bin/uuid | 50 - deps/npm/node_modules/uuid/index.js | 8 - deps/npm/node_modules/uuid/lib/bytesToUuid.js | 23 - deps/npm/node_modules/uuid/lib/rng-browser.js | 33 - deps/npm/node_modules/uuid/lib/rng.js | 10 - .../npm/node_modules/uuid/lib/sha1-browser.js | 85 - deps/npm/node_modules/uuid/lib/sha1.js | 21 - deps/npm/node_modules/uuid/package.json | 82 - deps/npm/node_modules/uuid/v1.js | 100 - deps/npm/node_modules/uuid/v4.js | 29 - deps/npm/node_modules/uuid/v5.js | 42 - .../validate-npm-package-license/LICENSE | 174 - .../validate-npm-package-license/README.md | 113 - .../validate-npm-package-license/index.js | 84 - .../node_modules/spdx-correct/LICENSE | 57 - .../node_modules/spdx-correct/README.md | 10 - .../node_modules/spdx-correct/index.js | 237 - .../node_modules/spdx-license-ids/LICENSE | 24 - .../node_modules/spdx-license-ids/README.md | 55 - .../spdx-license-ids/package.json | 84 - .../spdx-license-ids/spdx-license-ids.json | 334 - .../node_modules/spdx-correct/package.json | 66 - .../spdx-expression-parse/AUTHORS | 3 - .../spdx-expression-parse/LICENSE | 22 - .../spdx-expression-parse/README.md | 83 - .../spdx-expression-parse/index.js | 5 - .../spdx-expression-parse/package.json | 93 - .../spdx-expression-parse/parser.js | 1357 -- .../validate-npm-package-license/package.json | 66 - .../validate-npm-package-name/.npmignore | 1 - .../validate-npm-package-name/.travis.yml | 6 - .../validate-npm-package-name/LICENSE | 6 - .../validate-npm-package-name/README.md | 120 - .../validate-npm-package-name/index.js | 105 - .../node_modules/builtins/.travis.yml | 4 - .../node_modules/builtins/History.md | 39 - .../node_modules/builtins/License | 20 - .../node_modules/builtins/Readme.md | 18 - .../node_modules/builtins/builtins.json | 35 - .../node_modules/builtins/package.json | 51 - .../node_modules/builtins/test.js | 5 - .../validate-npm-package-name/package.json | 70 - .../validate-npm-package-name/test/index.js | 109 - deps/npm/node_modules/which/CHANGELOG.md | 147 - deps/npm/node_modules/which/LICENSE | 15 - deps/npm/node_modules/which/README.md | 51 - deps/npm/node_modules/which/bin/which | 52 - .../which/node_modules/isexe/.npmignore | 2 - .../which/node_modules/isexe/LICENSE | 15 - .../which/node_modules/isexe/README.md | 51 - .../which/node_modules/isexe/index.js | 57 - .../which/node_modules/isexe/mode.js | 41 - .../which/node_modules/isexe/package.json | 64 - .../which/node_modules/isexe/test/basic.js | 221 - .../which/node_modules/isexe/windows.js | 42 - deps/npm/node_modules/which/package.json | 72 - deps/npm/node_modules/which/which.js | 135 - deps/npm/node_modules/worker-farm/.travis.yml | 11 - deps/npm/node_modules/worker-farm/LICENSE.md | 13 - deps/npm/node_modules/worker-farm/README.md | 144 - .../worker-farm/examples/basic/child.js | 5 - .../worker-farm/examples/basic/index.js | 13 - .../worker-farm/examples/pi/calc.js | 22 - .../worker-farm/examples/pi/index.js | 41 - deps/npm/node_modules/worker-farm/index.d.ts | 44 - .../worker-farm/lib/child/index.js | 52 - deps/npm/node_modules/worker-farm/lib/farm.js | 339 - deps/npm/node_modules/worker-farm/lib/fork.js | 32 - .../npm/node_modules/worker-farm/lib/index.js | 34 - .../worker-farm/node_modules/errno/.npmignore | 1 - .../worker-farm/node_modules/errno/README.md | 141 - .../worker-farm/node_modules/errno/build.js | 43 - .../worker-farm/node_modules/errno/cli.js | 20 - .../worker-farm/node_modules/errno/custom.js | 55 - .../worker-farm/node_modules/errno/errno.js | 313 - .../errno/node_modules/prr/.npmignore | 1 - .../errno/node_modules/prr/.travis.yml | 10 - .../errno/node_modules/prr/LICENSE | 39 - .../errno/node_modules/prr/README.md | 45 - .../errno/node_modules/prr/package.json | 56 - .../errno/node_modules/prr/prr.js | 63 - .../errno/node_modules/prr/test.js | 169 - .../node_modules/errno/package.json | 60 - .../worker-farm/node_modules/errno/test.js | 31 - .../worker-farm/node_modules/xtend/.npmignore | 1 - .../worker-farm/node_modules/xtend/LICENCE | 19 - .../worker-farm/node_modules/xtend/Makefile | 4 - .../worker-farm/node_modules/xtend/README.md | 32 - .../node_modules/xtend/immutable.js | 19 - .../worker-farm/node_modules/xtend/mutable.js | 17 - .../node_modules/xtend/package.json | 43 - .../worker-farm/node_modules/xtend/test.js | 83 - .../npm/node_modules/worker-farm/package.json | 61 - deps/npm/node_modules/wrappy/LICENSE | 15 - deps/npm/node_modules/wrappy/README.md | 36 - deps/npm/node_modules/wrappy/package.json | 65 - deps/npm/node_modules/wrappy/wrappy.js | 33 - .../node_modules/write-file-atomic/LICENSE | 6 - .../node_modules/write-file-atomic/README.md | 47 - .../node_modules/write-file-atomic/index.js | 134 - .../write-file-atomic/package.json | 69 - deps/npm/package.json | 265 - deps/npm/scripts/changelog.js | 101 - deps/npm/scripts/clean-old.sh | 165 - deps/npm/scripts/dep-update | 6 - deps/npm/scripts/dev-dep-update | 6 - deps/npm/scripts/doc-build.sh | 67 - deps/npm/scripts/gen-changelog | 7 - deps/npm/scripts/index-build.js | 58 - deps/npm/scripts/install.sh | 241 - deps/npm/scripts/maketest | 94 - deps/npm/scripts/publish-tag.js | 3 - deps/npm/scripts/release.sh | 36 - deps/npm/scripts/relocate.sh | 26 - deps/npm/scripts/update-authors.sh | 9 - .../lifecycle-path.js | 213 - .../broken-under-nyc-and-travis/whoami.js | 77 - deps/npm/test/common-tap.js | 191 - deps/npm/test/fixtures/config/builtin | 1 - deps/npm/test/fixtures/config/globalconfig | 1 - deps/npm/test/fixtures/config/malformed | 1 - deps/npm/test/fixtures/config/multi-ca | 32 - deps/npm/test/fixtures/config/userconfig | 22 - .../test/fixtures/forked-underscore-1.5.1.tgz | Bin 583 -> 0 bytes ...-com-BryanDonovan-dummy-npm-bar.git.tar.gz | Bin 12585 -> 0 bytes ...com-BryanDonovan-dummy-npm-buzz.git.tar.gz | Bin 10860 -> 0 bytes ...-com-BryanDonovan-dummy-npm-foo.git.tar.gz | Bin 12712 -> 0 bytes ...b-com-BryanDonovan-npm-git-test.git.tar.gz | Bin 9521 -> 0 bytes .../fixtures/gitignore-and-npmignore-2.tar | Bin 4096 -> 0 bytes .../test/fixtures/gitignore-and-npmignore.tar | Bin 10240 -> 0 bytes .../test/fixtures/gitignore-and-npmignore.tgz | Bin 360 -> 0 bytes deps/npm/test/fixtures/gitignore.tgz | Bin 319 -> 0 bytes deps/npm/test/fixtures/npmignore.tgz | Bin 320 -> 0 bytes deps/npm/test/fixtures/onload.js | 1 - .../test/fixtures/scoped-underscore-1.3.1.tgz | Bin 55415 -> 0 bytes .../add-remote-git-get-resolved.js | 129 - .../belongs-in-pacote/git-races.js | 218 - .../need-npm5-update/ignore-shrinkwrap.js | 135 - .../test/need-npm5-update/legacy-array-bin.js | 80 - .../test/need-npm5-update/legacy-dir-bin.js | 79 - .../legacy-npm-self-install.js | 107 - .../need-npm5-update/legacy-optional-deps.js | 80 - .../need-npm5-update/legacy-shrinkwrap.js | 132 - .../test/need-npm5-update/lifecycle-signal.js | 140 - .../move-no-clobber-dest-node-modules.js | 139 - .../update-save.js | 219 - .../need-outdated/update-symlink.js | 127 - .../need-npm5-update/outdated-depth-deep.js | 92 - .../outdated-depth-integer.js | 80 - .../outdated-include-devdependencies.js | 58 - .../test/need-npm5-update/outdated-local.js | 195 - .../need-npm5-update/outdated-new-versions.js | 65 - .../need-npm5-update/outdated-notarget.js | 47 - .../test/need-npm5-update/outdated-private.js | 115 - .../test/need-npm5-update/outdated-symlink.js | 104 - .../need-npm5-update/peer-deps-invalid.js | 100 - .../need-npm5-update/peer-deps-toplevel.js | 133 - .../peer-deps-without-package-json.js | 79 - deps/npm/test/need-npm5-update/rm-linked.js | 148 - .../shrinkwrap-complete-except-dev.js | 159 - .../shrinkwrap-dev-dep-cycle.js | 102 - deps/npm/test/network/git-cache-locking.js | 45 - deps/npm/test/network/git-cache-no-hooks.js | 50 - deps/npm/test/network/legacy-bundled-git.js | 99 - deps/npm/test/network/legacy-url-dep.js | 59 - deps/npm/test/network/registry.js | 74 - deps/npm/test/tap/00-check-mock-dep.js | 17 - deps/npm/test/tap/00-config-setup.js | 85 - deps/npm/test/tap/00-verify-bundle-deps.js | 16 - deps/npm/test/tap/00-verify-ls-ok.js | 18 - deps/npm/test/tap/00-verify-no-scoped.js | 30 - deps/npm/test/tap/404-parent.js | 60 - .../test/tap/404-private-registry-scoped.js | 57 - deps/npm/test/tap/404-private-registry.js | 56 - deps/npm/test/tap/access.js | 531 - .../tap/add-named-update-protocol-port.js | 113 - deps/npm/test/tap/add-remote-git-file.js | 103 - .../npm/test/tap/add-remote-git-shrinkwrap.js | 153 - deps/npm/test/tap/add-remote-git-submodule.js | 149 - deps/npm/test/tap/add-remote-git.js | 120 - deps/npm/test/tap/adduser-always-auth.js | 263 - deps/npm/test/tap/adduser-legacy-auth.js | 98 - deps/npm/test/tap/adduser-oauth.js | 85 - deps/npm/test/tap/adduser-saml.js | 85 - .../all-package-metadata-cache-stream-unit.js | 136 - .../all-package-metadata-entry-stream-unit.js | 186 - ...all-package-metadata-update-stream-unit.js | 176 - .../all-package-metadata-write-stream-unit.js | 130 - deps/npm/test/tap/all-package-metadata.js | 202 - deps/npm/test/tap/anon-cli-metrics.js | 152 - deps/npm/test/tap/bearer-token-check.js | 128 - deps/npm/test/tap/bin.js | 23 - .../bitbucket-https-url-with-creds-package.js | 85 - .../tap/bitbucket-https-url-with-creds.js | 82 - .../test/tap/bitbucket-shortcut-package.js | 86 - deps/npm/test/tap/bitbucket-shortcut.js | 83 - deps/npm/test/tap/bugs.js | 172 - deps/npm/test/tap/build-already-built.js | 78 - deps/npm/test/tap/builtin-config.js | 136 - .../tap/bundled-dependencies-no-pkgjson.js | 55 - .../test/tap/bundled-dependencies-nonarray.js | 71 - deps/npm/test/tap/bundled-dependencies.js | 109 - deps/npm/test/tap/bundled-no-add-to-move.js | 50 - deps/npm/test/tap/bundled-transitive-deps.js | 108 - deps/npm/test/tap/cache-add-unpublished.js | 37 - deps/npm/test/tap/cache-shasum-fork.js | 107 - deps/npm/test/tap/check-cpu-reqs.js | 63 - deps/npm/test/tap/check-engine-reqs.js | 65 - deps/npm/test/tap/check-install-self.js | 69 - deps/npm/test/tap/check-os-reqs.js | 63 - deps/npm/test/tap/check-permissions.js | 93 - deps/npm/test/tap/ci-header.js | 139 - deps/npm/test/tap/circular-dep.js | 102 - deps/npm/test/tap/config-basic.js | 88 - deps/npm/test/tap/config-builtin.js | 67 - deps/npm/test/tap/config-certfile.js | 19 - deps/npm/test/tap/config-credentials.js | 350 - deps/npm/test/tap/config-edit.js | 74 - deps/npm/test/tap/config-list.js | 69 - deps/npm/test/tap/config-malformed.js | 14 - deps/npm/test/tap/config-meta.js | 134 - deps/npm/test/tap/config-new-cafile.js | 56 - deps/npm/test/tap/config-private.js | 83 - deps/npm/test/tap/config-project.js | 66 - deps/npm/test/tap/config-save.js | 85 - deps/npm/test/tap/correct-mkdir.js | 163 - deps/npm/test/tap/cruft-test.js | 43 - deps/npm/test/tap/debug-logs.js | 101 - deps/npm/test/tap/dedupe-scoped.js | 155 - deps/npm/test/tap/dedupe.js | 122 - deps/npm/test/tap/deprecate.js | 157 - deps/npm/test/tap/dist-tag.js | 195 - deps/npm/test/tap/do-not-remove-other-bins.js | 131 - deps/npm/test/tap/doctor.js | 105 - .../test/tap/extraneous-dep-cycle-ls-ok.js | 71 - deps/npm/test/tap/false-name.js | 88 - deps/npm/test/tap/fetch-package-metadata.js | 69 - deps/npm/test/tap/files-and-ignores.js | 697 - deps/npm/test/tap/full-warning-messages.js | 112 - deps/npm/test/tap/gently-rm-cmdshims.js | 159 - deps/npm/test/tap/gently-rm-linked-module.js | 102 - deps/npm/test/tap/gently-rm-overeager.js | 60 - .../tap/gently-rm-symlinked-global-dir.js | 119 - deps/npm/test/tap/get.js | 103 - .../test/tap/gist-short-shortcut-package.js | 84 - deps/npm/test/tap/gist-short-shortcut.js | 81 - deps/npm/test/tap/gist-shortcut-package.js | 84 - deps/npm/test/tap/gist-shortcut.js | 81 - .../test/tap/git-dependency-install-link.js | 179 - deps/npm/test/tap/git-npmignore.js | 201 - deps/npm/test/tap/git-prepare.js | 181 - deps/npm/test/tap/github-shortcut-package.js | 84 - deps/npm/test/tap/github-shortcut.js | 84 - deps/npm/test/tap/gitlab-shortcut-package.js | 83 - deps/npm/test/tap/gitlab-shortcut.js | 80 - .../tap/global-prefix-set-in-userconfig.js | 36 - deps/npm/test/tap/graceful-restart.js | 119 - deps/npm/test/tap/help.js | 26 - deps/npm/test/tap/ignore-install-link.js | 74 - deps/npm/test/tap/ignore-scripts.js | 128 - deps/npm/test/tap/init-interrupt.js | 57 - deps/npm/test/tap/install-actions.js | 121 - deps/npm/test/tap/install-at-locally.js | 69 - deps/npm/test/tap/install-bad-dep-format.js | 58 - deps/npm/test/tap/install-bad-man.js | 81 - deps/npm/test/tap/install-bin-null.js | 91 - .../test/tap/install-cli-only-development.js | 115 - .../test/tap/install-cli-only-production.js | 88 - .../test/tap/install-cli-only-shrinkwrap.js | 139 - .../test/tap/install-cli-production-nosave.js | 69 - deps/npm/test/tap/install-cli-production.js | 88 - deps/npm/test/tap/install-cli-unicode.js | 71 - .../tap/install-duplicate-deps-warning.js | 69 - deps/npm/test/tap/install-from-local.js | 98 - .../test/tap/install-into-likenamed-folder.js | 44 - deps/npm/test/tap/install-link-scripts.js | 132 - deps/npm/test/tap/install-local-dep-cycle.js | 79 - deps/npm/test/tap/install-man.js | 77 - deps/npm/test/tap/install-noargs-dev.js | 111 - deps/npm/test/tap/install-order.js | 64 - .../test/tap/install-package-json-order.js | 62 - .../npm/test/tap/install-package-lock-only.js | 86 - deps/npm/test/tap/install-parse-error.js | 52 - .../test/tap/install-property-conflicts.js | 74 - .../test/tap/install-report-just-installed.js | 75 - deps/npm/test/tap/install-save-exact.js | 114 - deps/npm/test/tap/install-save-local.js | 195 - deps/npm/test/tap/install-save-prefix.js | 178 - .../tap/install-scoped-already-installed.js | 139 - deps/npm/test/tap/install-scoped-link.js | 86 - .../install-scoped-with-bundled-dependency.js | 84 - .../install-scoped-with-peer-dependency.js | 59 - .../npm/test/tap/install-shrinkwrapped-git.js | 158 - deps/npm/test/tap/install-windows-newlines.js | 90 - .../tap/install-with-dev-dep-duplicate.js | 90 - deps/npm/test/tap/invalid-cmd-exit-code.js | 34 - .../test/tap/invalid-dep-version-filtering.js | 135 - deps/npm/test/tap/is-fs-access-available.js | 56 - deps/npm/test/tap/is-registry.js | 27 - deps/npm/test/tap/it.js | 77 - deps/npm/test/tap/legacy-ignore-nested-nm.js | 64 - deps/npm/test/tap/legacy-missing-bindir.js | 78 - deps/npm/test/tap/legacy-no-auth-leak.js | 75 - deps/npm/test/tap/legacy-platform-all.js | 73 - deps/npm/test/tap/legacy-platform.js | 64 - deps/npm/test/tap/legacy-private.js | 58 - deps/npm/test/tap/legacy-test-package.js | 70 - deps/npm/test/tap/lifecycle-INIT_CWD.js | 58 - deps/npm/test/tap/lifecycle-order.js | 57 - deps/npm/test/tap/link.js | 222 - .../test/tap/local-args-relative-to-cwd.js | 65 - deps/npm/test/tap/locker.js | 89 - deps/npm/test/tap/lockfile-http-deps.js | 91 - deps/npm/test/tap/logout-scoped.js | 70 - deps/npm/test/tap/logout.js | 68 - deps/npm/test/tap/ls-depth-cli.js | 211 - deps/npm/test/tap/ls-depth-unmet.js | 172 - deps/npm/test/tap/ls-env.js | 135 - deps/npm/test/tap/ls-l-depth-0.js | 121 - deps/npm/test/tap/ls-no-results.js | 12 - deps/npm/test/tap/ls-production-and-dev.js | 172 - deps/npm/test/tap/ls-top-errors.js | 71 - deps/npm/test/tap/ls.js | 188 - deps/npm/test/tap/map-to-registry.js | 166 - deps/npm/test/tap/nerf-dart.js | 32 - deps/npm/test/tap/nested-extraneous.js | 53 - deps/npm/test/tap/no-global-warns.js | 82 - deps/npm/test/tap/no-scan-full-global-dir.js | 101 - .../test/tap/noargs-install-config-save.js | 78 - deps/npm/test/tap/node-modules-path-munge.js | 39 - .../npm/test/tap/normalize-package-explode.js | 26 - deps/npm/test/tap/npm-api-not-loaded-error.js | 47 - deps/npm/test/tap/onload.js | 39 - .../optional-metadep-rollback-collision.js | 205 - deps/npm/test/tap/outdated-bad-read-tree.js | 21 - deps/npm/test/tap/outdated-color.js | 75 - deps/npm/test/tap/outdated-depth.js | 78 - deps/npm/test/tap/outdated-git.js | 61 - deps/npm/test/tap/outdated-json.js | 105 - deps/npm/test/tap/outdated-long.js | 101 - deps/npm/test/tap/outdated.js | 132 - deps/npm/test/tap/override-bundled.js | 189 - deps/npm/test/tap/owner.js | 169 - deps/npm/test/tap/pack-scoped.js | 81 - deps/npm/test/tap/peer-deps.js | 67 - .../pick-manifest-from-registry-metadata.js | 145 - deps/npm/test/tap/ping.js | 68 - deps/npm/test/tap/prepare.js | 85 - deps/npm/test/tap/prepublish-only.js | 141 - deps/npm/test/tap/prepublish.js | 118 - deps/npm/test/tap/process-logger.js | 12 - deps/npm/test/tap/progress-config.js | 92 - deps/npm/test/tap/prune-dev-dep-cycle.js | 86 - deps/npm/test/tap/prune-dev-dep-with-bins.js | 104 - .../test/tap/prune-with-dev-dep-duplicate.js | 114 - deps/npm/test/tap/prune-with-only-dev-deps.js | 124 - deps/npm/test/tap/prune.js | 133 - deps/npm/test/tap/publish-access-scoped.js | 73 - ...ublish-access-unscoped-restricted-fails.js | 38 - deps/npm/test/tap/publish-access-unscoped.js | 73 - deps/npm/test/tap/publish-config.js | 66 - .../test/tap/publish-invalid-semver-tag.js | 79 - deps/npm/test/tap/publish-scoped.js | 91 - deps/npm/test/tap/pwd-prefix.js | 35 - deps/npm/test/tap/referer.js | 23 - deps/npm/test/tap/repo.js | 139 - deps/npm/test/tap/retry-on-stale-cache.js | 197 - .../npm/test/tap/run-script-filter-private.js | 52 - deps/npm/test/tap/run-script.js | 362 - deps/npm/test/tap/scope-header.js | 160 - .../test/tap/scripts-whitespace-windows.js | 103 - .../npm/test/tap/search.all-package-search.js | 201 - deps/npm/test/tap/search.esearch.js | 192 - deps/npm/test/tap/search.js | 190 - deps/npm/test/tap/semver-doc.js | 12 - deps/npm/test/tap/shared-linked.js | 153 - deps/npm/test/tap/shrinkwrap-_auth.js | 126 - deps/npm/test/tap/shrinkwrap-default-dev.js | 94 - .../npm/test/tap/shrinkwrap-dev-dependency.js | 93 - deps/npm/test/tap/shrinkwrap-empty-deps.js | 74 - .../npm/test/tap/shrinkwrap-extra-metadata.js | 76 - deps/npm/test/tap/shrinkwrap-global-auth.js | 117 - deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js | 89 - deps/npm/test/tap/shrinkwrap-lifecycle.js | 54 - .../test/tap/shrinkwrap-local-dependency.js | 125 - deps/npm/test/tap/shrinkwrap-nested.js | 165 - .../tap/shrinkwrap-optional-dependency.js | 101 - .../test/tap/shrinkwrap-optional-platform.js | 108 - .../test/tap/shrinkwrap-optional-property.js | 100 - .../tap/shrinkwrap-prod-dependency-also.js | 106 - .../test/tap/shrinkwrap-prod-dependency.js | 94 - .../shrinkwrap-save-dev-with-existing-deps.js | 106 - .../shrinkwrap-save-with-existing-dev-deps.js | 87 - deps/npm/test/tap/shrinkwrap-scoped-auth.js | 116 - .../tap/shrinkwrap-shared-dev-dependency.js | 89 - deps/npm/test/tap/shrinkwrap-version-match.js | 115 - deps/npm/test/tap/sorted-package-json.js | 89 - deps/npm/test/tap/spawn-enoent-help.js | 36 - deps/npm/test/tap/spawn-enoent.js | 39 - deps/npm/test/tap/spec-local-specifiers.js | 752 - .../splat-with-only-prerelease-to-latest.js | 106 - deps/npm/test/tap/startstop.js | 74 - deps/npm/test/tap/symlink-cycle.js | 61 - deps/npm/test/tap/tag-version-prefix.js | 92 - deps/npm/test/tap/tagged-version-matching.js | 178 - deps/npm/test/tap/team.js | 133 - deps/npm/test/tap/test-run-ls.js | 33 - deps/npm/test/tap/tree-style.js | 127 - deps/npm/test/tap/umask-lifecycle.js | 61 - deps/npm/test/tap/uninstall-in-reverse.js | 38 - deps/npm/test/tap/uninstall-link-clean.js | 113 - deps/npm/test/tap/uninstall-package.js | 80 - deps/npm/test/tap/uninstall-save.js | 92 - deps/npm/test/tap/unit-child-path.js | 16 - .../test/tap/unit-deps-earliestInstallable.js | 113 - .../test/tap/unit-deps-removeObsoleteDep.js | 44 - deps/npm/test/tap/unit-deps-replaceModule.js | 65 - deps/npm/test/tap/unit-module-name.js | 40 - deps/npm/test/tap/unit-package-id.js | 17 - deps/npm/test/tap/unpack-foreign-tarball.js | 87 - deps/npm/test/tap/unpublish-config.js | 82 - deps/npm/test/tap/unsupported.js | 43 - deps/npm/test/tap/update-examples.js | 227 - deps/npm/test/tap/update-path.js | 35 - deps/npm/test/tap/upgrade-lifecycles.js | 89 - deps/npm/test/tap/url-dependencies.js | 113 - .../test/tap/verify-no-lifecycle-on-repo.js | 73 - .../test/tap/version-allow-same-version.js | 65 - .../test/tap/version-commit-hooks-default.js | 13 - deps/npm/test/tap/version-commit-hooks.js | 64 - deps/npm/test/tap/version-from-git.js | 224 - deps/npm/test/tap/version-git-not-clean.js | 96 - deps/npm/test/tap/version-lifecycle.js | 188 - deps/npm/test/tap/version-message-config.js | 76 - deps/npm/test/tap/version-no-git.js | 54 - deps/npm/test/tap/version-no-package.js | 44 - deps/npm/test/tap/version-no-tags.js | 71 - .../tap/version-sub-directory-shrinkwrap.js | 80 - deps/npm/test/tap/version-sub-directory.js | 74 - .../npm/test/tap/version-update-shrinkwrap.js | 138 - deps/npm/test/tap/view.js | 391 - deps/npm/test/tap/zz-cleanup.js | 8 - deps/openssl/openssl.gyp | 15 +- deps/openssl/openssl/crypto/rand/rand_win.c | 2 +- deps/openssl/openssl/ssl/d1_srvr.c | 1 + deps/openssl/openssl/ssl/s3_srvr.c | 1 + deps/uv/include/uv.h | 11 + deps/uv/src/unix/fs.c | 5 + deps/uv/src/unix/getaddrinfo.c | 2 +- deps/uv/src/unix/kqueue.c | 23 +- deps/uv/src/unix/loop.c | 2 + deps/uv/src/unix/proctitle.c | 9 + deps/uv/src/uv-common.c | 50 +- deps/uv/src/uv-common.h | 1 + deps/uv/src/win/async.c | 18 + deps/uv/src/win/core.c | 5 +- deps/uv/src/win/process.c | 2 + deps/uv/src/win/req-inl.h | 4 +- deps/uv/uv.gyp | 13 +- lib/dummystream.js | 17 + lib/internal/bootstrap_node.js | 36 +- lib/internal/process/stdio.js | 22 +- lib/module.js | 43 + lib/url.js | 4 +- node.gyp | 76 +- node.gypi | 107 +- src/aliased_buffer.h | 1 + src/async_wrap.cc | 11 +- src/env.cc | 20 + src/env.h | 2 + src/inspector_io.cc | 2 + src/node.cc | 727 +- src/node.h | 16 +- src/node_api.cc | 1 + src/node_buffer.cc | 5 + src/node_contextify.cc | 3 + src/node_file.cc | 1 + src/node_http2.cc | 4 +- src/node_internals.h | 4 +- src/node_perf.cc | 4 +- src/node_platform.cc | 4 + src/node_platform.h | 1 + src/node_webkit.h | 53 + src/string_bytes.cc | 4 +- tools/js2c.py | 4 +- 5002 files changed, 1395 insertions(+), 535692 deletions(-) create mode 100644 config.gypi delete mode 100644 deps/npm/.github/CODEOWNERS delete mode 100644 deps/npm/.github/issue_template.md delete mode 100644 deps/npm/.mailmap delete mode 100644 deps/npm/.npmignore delete mode 100644 deps/npm/.travis.yml delete mode 100644 deps/npm/AUTHORS delete mode 100644 deps/npm/CHANGELOG.md delete mode 100644 deps/npm/CONTRIBUTING.md delete mode 100644 deps/npm/LICENSE delete mode 100644 deps/npm/Makefile delete mode 100644 deps/npm/README.md delete mode 100644 deps/npm/TROUBLESHOOTING.md delete mode 100644 deps/npm/appveyor.yml delete mode 100755 deps/npm/bin/node-gyp-bin/node-gyp delete mode 100755 deps/npm/bin/node-gyp-bin/node-gyp.cmd delete mode 100755 deps/npm/bin/npm delete mode 100755 deps/npm/bin/npm-cli.js delete mode 100644 deps/npm/bin/npm.cmd delete mode 100644 deps/npm/bin/npx delete mode 100755 deps/npm/bin/npx-cli.js delete mode 100644 deps/npm/bin/npx.cmd delete mode 100644 deps/npm/changelogs/CHANGELOG-1.md delete mode 100644 deps/npm/changelogs/CHANGELOG-2.md delete mode 100644 deps/npm/changelogs/CHANGELOG-3.md delete mode 100644 deps/npm/changelogs/CHANGELOG-4.md delete mode 100755 deps/npm/configure delete mode 100644 deps/npm/doc/cli/npm-access.md delete mode 100644 deps/npm/doc/cli/npm-adduser.md delete mode 100644 deps/npm/doc/cli/npm-bin.md delete mode 100644 deps/npm/doc/cli/npm-bugs.md delete mode 100644 deps/npm/doc/cli/npm-build.md delete mode 100644 deps/npm/doc/cli/npm-bundle.md delete mode 100644 deps/npm/doc/cli/npm-cache.md delete mode 100644 deps/npm/doc/cli/npm-completion.md delete mode 100644 deps/npm/doc/cli/npm-config.md delete mode 100644 deps/npm/doc/cli/npm-dedupe.md delete mode 100644 deps/npm/doc/cli/npm-deprecate.md delete mode 100644 deps/npm/doc/cli/npm-dist-tag.md delete mode 100644 deps/npm/doc/cli/npm-docs.md delete mode 100644 deps/npm/doc/cli/npm-doctor.md delete mode 100644 deps/npm/doc/cli/npm-edit.md delete mode 100644 deps/npm/doc/cli/npm-explore.md delete mode 100644 deps/npm/doc/cli/npm-help-search.md delete mode 100644 deps/npm/doc/cli/npm-help.md delete mode 100644 deps/npm/doc/cli/npm-init.md delete mode 100644 deps/npm/doc/cli/npm-install-test.md delete mode 100644 deps/npm/doc/cli/npm-install.md delete mode 100644 deps/npm/doc/cli/npm-link.md delete mode 100644 deps/npm/doc/cli/npm-logout.md delete mode 100644 deps/npm/doc/cli/npm-ls.md delete mode 100644 deps/npm/doc/cli/npm-outdated.md delete mode 100644 deps/npm/doc/cli/npm-owner.md delete mode 100644 deps/npm/doc/cli/npm-pack.md delete mode 100644 deps/npm/doc/cli/npm-ping.md delete mode 100644 deps/npm/doc/cli/npm-prefix.md delete mode 100644 deps/npm/doc/cli/npm-profile.md delete mode 100644 deps/npm/doc/cli/npm-prune.md delete mode 100644 deps/npm/doc/cli/npm-publish.md delete mode 100644 deps/npm/doc/cli/npm-rebuild.md delete mode 100644 deps/npm/doc/cli/npm-repo.md delete mode 100644 deps/npm/doc/cli/npm-restart.md delete mode 100644 deps/npm/doc/cli/npm-root.md delete mode 100644 deps/npm/doc/cli/npm-run-script.md delete mode 100644 deps/npm/doc/cli/npm-search.md delete mode 100644 deps/npm/doc/cli/npm-shrinkwrap.md delete mode 100644 deps/npm/doc/cli/npm-star.md delete mode 100644 deps/npm/doc/cli/npm-stars.md delete mode 100644 deps/npm/doc/cli/npm-start.md delete mode 100644 deps/npm/doc/cli/npm-stop.md delete mode 100644 deps/npm/doc/cli/npm-team.md delete mode 100644 deps/npm/doc/cli/npm-test.md delete mode 100644 deps/npm/doc/cli/npm-token.md delete mode 100644 deps/npm/doc/cli/npm-uninstall.md delete mode 100644 deps/npm/doc/cli/npm-unpublish.md delete mode 100644 deps/npm/doc/cli/npm-update.md delete mode 100644 deps/npm/doc/cli/npm-version.md delete mode 100644 deps/npm/doc/cli/npm-view.md delete mode 100644 deps/npm/doc/cli/npm-whoami.md delete mode 100644 deps/npm/doc/cli/npm.md delete mode 100644 deps/npm/doc/files/npm-folders.md delete mode 100644 deps/npm/doc/files/npm-package-locks.md delete mode 100644 deps/npm/doc/files/npm-shrinkwrap.json.md delete mode 100644 deps/npm/doc/files/npmrc.md delete mode 100644 deps/npm/doc/files/package-lock.json.md delete mode 100644 deps/npm/doc/files/package.json.md delete mode 100644 deps/npm/doc/misc/npm-coding-style.md delete mode 100644 deps/npm/doc/misc/npm-config.md delete mode 100644 deps/npm/doc/misc/npm-developers.md delete mode 100644 deps/npm/doc/misc/npm-disputes.md delete mode 100644 deps/npm/doc/misc/npm-index.md delete mode 100644 deps/npm/doc/misc/npm-orgs.md delete mode 100644 deps/npm/doc/misc/npm-registry.md delete mode 100644 deps/npm/doc/misc/npm-scope.md delete mode 100644 deps/npm/doc/misc/npm-scripts.md delete mode 100644 deps/npm/doc/misc/removing-npm.md delete mode 100644 deps/npm/doc/misc/semver.md delete mode 100644 deps/npm/doc/spec/file-specifiers.md delete mode 100644 deps/npm/doc/spec/package-lock.md delete mode 100644 deps/npm/html/doc/README.html delete mode 100644 deps/npm/html/doc/cli/npm-access.html delete mode 100644 deps/npm/html/doc/cli/npm-adduser.html delete mode 100644 deps/npm/html/doc/cli/npm-bin.html delete mode 100644 deps/npm/html/doc/cli/npm-bugs.html delete mode 100644 deps/npm/html/doc/cli/npm-build.html delete mode 100644 deps/npm/html/doc/cli/npm-bundle.html delete mode 100644 deps/npm/html/doc/cli/npm-cache.html delete mode 100644 deps/npm/html/doc/cli/npm-completion.html delete mode 100644 deps/npm/html/doc/cli/npm-config.html delete mode 100644 deps/npm/html/doc/cli/npm-dedupe.html delete mode 100644 deps/npm/html/doc/cli/npm-deprecate.html delete mode 100644 deps/npm/html/doc/cli/npm-dist-tag.html delete mode 100644 deps/npm/html/doc/cli/npm-docs.html delete mode 100644 deps/npm/html/doc/cli/npm-doctor.html delete mode 100644 deps/npm/html/doc/cli/npm-edit.html delete mode 100644 deps/npm/html/doc/cli/npm-explore.html delete mode 100644 deps/npm/html/doc/cli/npm-help-search.html delete mode 100644 deps/npm/html/doc/cli/npm-help.html delete mode 100644 deps/npm/html/doc/cli/npm-init.html delete mode 100644 deps/npm/html/doc/cli/npm-install-test.html delete mode 100644 deps/npm/html/doc/cli/npm-install.html delete mode 100644 deps/npm/html/doc/cli/npm-link.html delete mode 100644 deps/npm/html/doc/cli/npm-logout.html delete mode 100644 deps/npm/html/doc/cli/npm-ls.html delete mode 100644 deps/npm/html/doc/cli/npm-outdated.html delete mode 100644 deps/npm/html/doc/cli/npm-owner.html delete mode 100644 deps/npm/html/doc/cli/npm-pack.html delete mode 100644 deps/npm/html/doc/cli/npm-ping.html delete mode 100644 deps/npm/html/doc/cli/npm-prefix.html delete mode 100644 deps/npm/html/doc/cli/npm-profile.html delete mode 100644 deps/npm/html/doc/cli/npm-prune.html delete mode 100644 deps/npm/html/doc/cli/npm-publish.html delete mode 100644 deps/npm/html/doc/cli/npm-rebuild.html delete mode 100644 deps/npm/html/doc/cli/npm-repo.html delete mode 100644 deps/npm/html/doc/cli/npm-restart.html delete mode 100644 deps/npm/html/doc/cli/npm-root.html delete mode 100644 deps/npm/html/doc/cli/npm-run-script.html delete mode 100644 deps/npm/html/doc/cli/npm-search.html delete mode 100644 deps/npm/html/doc/cli/npm-shrinkwrap.html delete mode 100644 deps/npm/html/doc/cli/npm-star.html delete mode 100644 deps/npm/html/doc/cli/npm-stars.html delete mode 100644 deps/npm/html/doc/cli/npm-start.html delete mode 100644 deps/npm/html/doc/cli/npm-stop.html delete mode 100644 deps/npm/html/doc/cli/npm-team.html delete mode 100644 deps/npm/html/doc/cli/npm-test.html delete mode 100644 deps/npm/html/doc/cli/npm-token.html delete mode 100644 deps/npm/html/doc/cli/npm-uninstall.html delete mode 100644 deps/npm/html/doc/cli/npm-unpublish.html delete mode 100644 deps/npm/html/doc/cli/npm-update.html delete mode 100644 deps/npm/html/doc/cli/npm-version.html delete mode 100644 deps/npm/html/doc/cli/npm-view.html delete mode 100644 deps/npm/html/doc/cli/npm-whoami.html delete mode 100644 deps/npm/html/doc/cli/npm.html delete mode 100644 deps/npm/html/doc/files/npm-folders.html delete mode 100644 deps/npm/html/doc/files/npm-global.html delete mode 100644 deps/npm/html/doc/files/npm-json.html delete mode 100644 deps/npm/html/doc/files/npm-package-locks.html delete mode 100644 deps/npm/html/doc/files/npm-shrinkwrap.json.html delete mode 100644 deps/npm/html/doc/files/npmrc.html delete mode 100644 deps/npm/html/doc/files/package-lock.json.html delete mode 100644 deps/npm/html/doc/files/package.json.html delete mode 100644 deps/npm/html/doc/index.html delete mode 100644 deps/npm/html/doc/misc/npm-coding-style.html delete mode 100644 deps/npm/html/doc/misc/npm-config.html delete mode 100644 deps/npm/html/doc/misc/npm-developers.html delete mode 100644 deps/npm/html/doc/misc/npm-disputes.html delete mode 100644 deps/npm/html/doc/misc/npm-index.html delete mode 100644 deps/npm/html/doc/misc/npm-orgs.html delete mode 100644 deps/npm/html/doc/misc/npm-registry.html delete mode 100644 deps/npm/html/doc/misc/npm-scope.html delete mode 100644 deps/npm/html/doc/misc/npm-scripts.html delete mode 100644 deps/npm/html/doc/misc/removing-npm.html delete mode 100644 deps/npm/html/doc/misc/semver.html delete mode 100644 deps/npm/html/docfoot.html delete mode 100644 deps/npm/html/dochead.html delete mode 100644 deps/npm/html/favicon.ico delete mode 100644 deps/npm/html/index.html delete mode 100644 deps/npm/html/static/style.css delete mode 100644 deps/npm/html/static/toc.js delete mode 100644 deps/npm/lib/access.js delete mode 100644 deps/npm/lib/adduser.js delete mode 100644 deps/npm/lib/auth/legacy.js delete mode 100644 deps/npm/lib/auth/oauth.js delete mode 100644 deps/npm/lib/auth/saml.js delete mode 100644 deps/npm/lib/auth/sso.js delete mode 100644 deps/npm/lib/bin.js delete mode 100644 deps/npm/lib/bugs.js delete mode 100644 deps/npm/lib/build.js delete mode 100644 deps/npm/lib/cache.js delete mode 100644 deps/npm/lib/completion.js delete mode 100644 deps/npm/lib/config.js delete mode 100644 deps/npm/lib/config/bin-links.js delete mode 100644 deps/npm/lib/config/clear-credentials-by-uri.js delete mode 100644 deps/npm/lib/config/cmd-list.js delete mode 100644 deps/npm/lib/config/core.js delete mode 100644 deps/npm/lib/config/defaults.js delete mode 100644 deps/npm/lib/config/fetch-opts.js delete mode 100644 deps/npm/lib/config/gentle-fs.js delete mode 100644 deps/npm/lib/config/get-credentials-by-uri.js delete mode 100644 deps/npm/lib/config/lifecycle.js delete mode 100644 deps/npm/lib/config/load-cafile.js delete mode 100644 deps/npm/lib/config/load-prefix.js delete mode 100644 deps/npm/lib/config/load-uid.js delete mode 100644 deps/npm/lib/config/nerf-dart.js delete mode 100644 deps/npm/lib/config/pacote.js delete mode 100644 deps/npm/lib/config/reg-client.js delete mode 100644 deps/npm/lib/config/set-credentials-by-uri.js delete mode 100644 deps/npm/lib/config/set-user.js delete mode 100644 deps/npm/lib/dedupe.js delete mode 100644 deps/npm/lib/deprecate.js delete mode 100644 deps/npm/lib/dist-tag.js delete mode 100644 deps/npm/lib/docs.js delete mode 100644 deps/npm/lib/doctor.js delete mode 100644 deps/npm/lib/doctor/check-files-permission.js delete mode 100644 deps/npm/lib/doctor/check-ping.js delete mode 100644 deps/npm/lib/doctor/get-git-path.js delete mode 100644 deps/npm/lib/doctor/get-latest-nodejs-version.js delete mode 100644 deps/npm/lib/doctor/get-latest-npm-version.js delete mode 100644 deps/npm/lib/doctor/verify-cached-files.js delete mode 100644 deps/npm/lib/edit.js delete mode 100644 deps/npm/lib/explore.js delete mode 100644 deps/npm/lib/fetch-package-metadata.js delete mode 100644 deps/npm/lib/fetch-package-metadata.md delete mode 100644 deps/npm/lib/get.js delete mode 100644 deps/npm/lib/help-search.js delete mode 100644 deps/npm/lib/help.js delete mode 100644 deps/npm/lib/init.js delete mode 100644 deps/npm/lib/install-test.js delete mode 100644 deps/npm/lib/install.js delete mode 100644 deps/npm/lib/install/access-error.js delete mode 100644 deps/npm/lib/install/action/build.js delete mode 100644 deps/npm/lib/install/action/extract-worker.js delete mode 100644 deps/npm/lib/install/action/extract.js delete mode 100644 deps/npm/lib/install/action/fetch.js delete mode 100644 deps/npm/lib/install/action/finalize.js delete mode 100644 deps/npm/lib/install/action/global-install.js delete mode 100644 deps/npm/lib/install/action/global-link.js delete mode 100644 deps/npm/lib/install/action/install.js delete mode 100644 deps/npm/lib/install/action/move.js delete mode 100644 deps/npm/lib/install/action/postinstall.js delete mode 100644 deps/npm/lib/install/action/preinstall.js delete mode 100644 deps/npm/lib/install/action/prepare.js delete mode 100644 deps/npm/lib/install/action/refresh-package-json.js delete mode 100644 deps/npm/lib/install/action/remove.js delete mode 100644 deps/npm/lib/install/action/unbuild.js delete mode 100644 deps/npm/lib/install/actions.js delete mode 100644 deps/npm/lib/install/and-add-parent-to-errors.js delete mode 100644 deps/npm/lib/install/and-finish-tracker.js delete mode 100644 deps/npm/lib/install/and-ignore-errors.js delete mode 100644 deps/npm/lib/install/check-permissions.js delete mode 100644 deps/npm/lib/install/copy-tree.js delete mode 100644 deps/npm/lib/install/decompose-actions.js delete mode 100644 deps/npm/lib/install/deps.js delete mode 100644 deps/npm/lib/install/diff-trees.js delete mode 100644 deps/npm/lib/install/exists.js delete mode 100644 deps/npm/lib/install/flatten-tree.js delete mode 100644 deps/npm/lib/install/get-requested.js delete mode 100644 deps/npm/lib/install/inflate-bundled.js delete mode 100644 deps/npm/lib/install/inflate-shrinkwrap.js delete mode 100644 deps/npm/lib/install/is-dev-dep.js delete mode 100644 deps/npm/lib/install/is-extraneous.js delete mode 100644 deps/npm/lib/install/is-fs-access-available.js delete mode 100644 deps/npm/lib/install/is-only-dev.js delete mode 100644 deps/npm/lib/install/is-only-optional.js delete mode 100644 deps/npm/lib/install/is-opt-dep.js delete mode 100644 deps/npm/lib/install/is-prod-dep.js delete mode 100644 deps/npm/lib/install/module-staging-path.js delete mode 100644 deps/npm/lib/install/mutate-into-logical-tree.js delete mode 100644 deps/npm/lib/install/node.js delete mode 100644 deps/npm/lib/install/read-shrinkwrap.js delete mode 100644 deps/npm/lib/install/realize-shrinkwrap-specifier.js delete mode 100644 deps/npm/lib/install/report-optional-failure.js delete mode 100644 deps/npm/lib/install/save.js delete mode 100644 deps/npm/lib/install/update-package-json.js delete mode 100644 deps/npm/lib/install/validate-args.js delete mode 100644 deps/npm/lib/install/validate-tree.js delete mode 100644 deps/npm/lib/install/writable.js delete mode 100644 deps/npm/lib/link.js delete mode 100644 deps/npm/lib/logout.js delete mode 100644 deps/npm/lib/ls.js delete mode 100644 deps/npm/lib/npm.js delete mode 100644 deps/npm/lib/outdated.js delete mode 100644 deps/npm/lib/owner.js delete mode 100644 deps/npm/lib/pack.js delete mode 100644 deps/npm/lib/ping.js delete mode 100644 deps/npm/lib/prefix.js delete mode 100644 deps/npm/lib/profile.js delete mode 100644 deps/npm/lib/prune.js delete mode 100644 deps/npm/lib/publish.js delete mode 100644 deps/npm/lib/rebuild.js delete mode 100644 deps/npm/lib/repo.js delete mode 100644 deps/npm/lib/restart.js delete mode 100644 deps/npm/lib/root.js delete mode 100644 deps/npm/lib/run-script.js delete mode 100644 deps/npm/lib/search.js delete mode 100644 deps/npm/lib/search/all-package-metadata.js delete mode 100644 deps/npm/lib/search/all-package-search.js delete mode 100644 deps/npm/lib/search/esearch.js delete mode 100644 deps/npm/lib/search/format-package-stream.js delete mode 100644 deps/npm/lib/search/package-filter.js delete mode 100644 deps/npm/lib/set.js delete mode 100644 deps/npm/lib/shrinkwrap.js delete mode 100644 deps/npm/lib/star.js delete mode 100644 deps/npm/lib/stars.js delete mode 100644 deps/npm/lib/start.js delete mode 100644 deps/npm/lib/stop.js delete mode 100644 deps/npm/lib/substack.js delete mode 100644 deps/npm/lib/team.js delete mode 100644 deps/npm/lib/test.js delete mode 100644 deps/npm/lib/token.js delete mode 100644 deps/npm/lib/unbuild.js delete mode 100644 deps/npm/lib/uninstall.js delete mode 100644 deps/npm/lib/unpublish.js delete mode 100644 deps/npm/lib/update.js delete mode 100644 deps/npm/lib/utils/ansi-trim.js delete mode 100644 deps/npm/lib/utils/child-path.js delete mode 100755 deps/npm/lib/utils/completion.sh delete mode 100644 deps/npm/lib/utils/completion/file-completion.js delete mode 100644 deps/npm/lib/utils/completion/installed-deep.js delete mode 100644 deps/npm/lib/utils/completion/installed-shallow.js delete mode 100644 deps/npm/lib/utils/correct-mkdir.js delete mode 100644 deps/npm/lib/utils/deep-sort-object.js delete mode 100644 deps/npm/lib/utils/depr-check.js delete mode 100644 deps/npm/lib/utils/did-you-mean.js delete mode 100644 deps/npm/lib/utils/error-handler.js delete mode 100644 deps/npm/lib/utils/error-message.js delete mode 100644 deps/npm/lib/utils/escape-arg.js delete mode 100644 deps/npm/lib/utils/escape-exec-path.js delete mode 100644 deps/npm/lib/utils/gently-rm.js delete mode 100644 deps/npm/lib/utils/get-publish-config.js delete mode 100644 deps/npm/lib/utils/git.js delete mode 100644 deps/npm/lib/utils/gunzip-maybe.js delete mode 100644 deps/npm/lib/utils/is-registry.js delete mode 100644 deps/npm/lib/utils/is-windows-bash.js delete mode 100644 deps/npm/lib/utils/is-windows-shell.js delete mode 100644 deps/npm/lib/utils/is-windows.js delete mode 100644 deps/npm/lib/utils/lifecycle-cmd.js delete mode 100644 deps/npm/lib/utils/lifecycle.js delete mode 100644 deps/npm/lib/utils/link.js delete mode 100644 deps/npm/lib/utils/locker.js delete mode 100644 deps/npm/lib/utils/map-to-registry.js delete mode 100644 deps/npm/lib/utils/metrics-launch.js delete mode 100644 deps/npm/lib/utils/metrics.js delete mode 100644 deps/npm/lib/utils/module-name.js delete mode 100644 deps/npm/lib/utils/move.js delete mode 100644 deps/npm/lib/utils/no-progress-while-running.js delete mode 100644 deps/npm/lib/utils/output.js delete mode 100644 deps/npm/lib/utils/package-id.js delete mode 100644 deps/npm/lib/utils/parse-json.js delete mode 100644 deps/npm/lib/utils/perf.js delete mode 100644 deps/npm/lib/utils/pick-manifest-from-registry-metadata.js delete mode 100644 deps/npm/lib/utils/pulse-till-done.js delete mode 100644 deps/npm/lib/utils/read-local-package.js delete mode 100644 deps/npm/lib/utils/read-user-info.js delete mode 100644 deps/npm/lib/utils/save-stack.js delete mode 100644 deps/npm/lib/utils/spawn.js delete mode 100644 deps/npm/lib/utils/temp-filename.js delete mode 100644 deps/npm/lib/utils/umask.js delete mode 100644 deps/npm/lib/utils/unix-format-path.js delete mode 100644 deps/npm/lib/utils/unsupported.js delete mode 100644 deps/npm/lib/utils/usage.js delete mode 100644 deps/npm/lib/utils/warn-deprecated.js delete mode 100644 deps/npm/lib/version.js delete mode 100644 deps/npm/lib/view.js delete mode 100644 deps/npm/lib/visnup.js delete mode 100644 deps/npm/lib/whoami.js delete mode 100644 deps/npm/lib/xmas.js delete mode 100644 deps/npm/make.bat delete mode 100644 deps/npm/man/man1/npm-README.1 delete mode 100644 deps/npm/man/man1/npm-access.1 delete mode 100644 deps/npm/man/man1/npm-adduser.1 delete mode 100644 deps/npm/man/man1/npm-bin.1 delete mode 100644 deps/npm/man/man1/npm-bugs.1 delete mode 100644 deps/npm/man/man1/npm-build.1 delete mode 100644 deps/npm/man/man1/npm-bundle.1 delete mode 100644 deps/npm/man/man1/npm-cache.1 delete mode 100644 deps/npm/man/man1/npm-completion.1 delete mode 100644 deps/npm/man/man1/npm-config.1 delete mode 100644 deps/npm/man/man1/npm-dedupe.1 delete mode 100644 deps/npm/man/man1/npm-deprecate.1 delete mode 100644 deps/npm/man/man1/npm-dist-tag.1 delete mode 100644 deps/npm/man/man1/npm-docs.1 delete mode 100644 deps/npm/man/man1/npm-doctor.1 delete mode 100644 deps/npm/man/man1/npm-edit.1 delete mode 100644 deps/npm/man/man1/npm-explore.1 delete mode 100644 deps/npm/man/man1/npm-help-search.1 delete mode 100644 deps/npm/man/man1/npm-help.1 delete mode 100644 deps/npm/man/man1/npm-init.1 delete mode 100644 deps/npm/man/man1/npm-install-test.1 delete mode 100644 deps/npm/man/man1/npm-install.1 delete mode 100644 deps/npm/man/man1/npm-link.1 delete mode 100644 deps/npm/man/man1/npm-logout.1 delete mode 100644 deps/npm/man/man1/npm-ls.1 delete mode 100644 deps/npm/man/man1/npm-outdated.1 delete mode 100644 deps/npm/man/man1/npm-owner.1 delete mode 100644 deps/npm/man/man1/npm-pack.1 delete mode 100644 deps/npm/man/man1/npm-ping.1 delete mode 100644 deps/npm/man/man1/npm-prefix.1 delete mode 100644 deps/npm/man/man1/npm-profile.1 delete mode 100644 deps/npm/man/man1/npm-prune.1 delete mode 100644 deps/npm/man/man1/npm-publish.1 delete mode 100644 deps/npm/man/man1/npm-rebuild.1 delete mode 100644 deps/npm/man/man1/npm-repo.1 delete mode 100644 deps/npm/man/man1/npm-restart.1 delete mode 100644 deps/npm/man/man1/npm-root.1 delete mode 100644 deps/npm/man/man1/npm-run-script.1 delete mode 100644 deps/npm/man/man1/npm-search.1 delete mode 100644 deps/npm/man/man1/npm-shrinkwrap.1 delete mode 100644 deps/npm/man/man1/npm-star.1 delete mode 100644 deps/npm/man/man1/npm-stars.1 delete mode 100644 deps/npm/man/man1/npm-start.1 delete mode 100644 deps/npm/man/man1/npm-stop.1 delete mode 100644 deps/npm/man/man1/npm-team.1 delete mode 100644 deps/npm/man/man1/npm-test.1 delete mode 100644 deps/npm/man/man1/npm-token.1 delete mode 100644 deps/npm/man/man1/npm-uninstall.1 delete mode 100644 deps/npm/man/man1/npm-unpublish.1 delete mode 100644 deps/npm/man/man1/npm-update.1 delete mode 100644 deps/npm/man/man1/npm-version.1 delete mode 100644 deps/npm/man/man1/npm-view.1 delete mode 100644 deps/npm/man/man1/npm-whoami.1 delete mode 100644 deps/npm/man/man1/npm.1 delete mode 100644 deps/npm/man/man1/npx.1 delete mode 100644 deps/npm/man/man5/npm-folders.5 delete mode 100644 deps/npm/man/man5/npm-global.5 delete mode 100644 deps/npm/man/man5/npm-json.5 delete mode 100644 deps/npm/man/man5/npm-package-locks.5 delete mode 100644 deps/npm/man/man5/npm-shrinkwrap.json.5 delete mode 100644 deps/npm/man/man5/npmrc.5 delete mode 100644 deps/npm/man/man5/package-lock.json.5 delete mode 100644 deps/npm/man/man5/package.json.5 delete mode 100644 deps/npm/man/man7/npm-coding-style.7 delete mode 100644 deps/npm/man/man7/npm-config.7 delete mode 100644 deps/npm/man/man7/npm-developers.7 delete mode 100644 deps/npm/man/man7/npm-disputes.7 delete mode 100644 deps/npm/man/man7/npm-index.7 delete mode 100644 deps/npm/man/man7/npm-orgs.7 delete mode 100644 deps/npm/man/man7/npm-registry.7 delete mode 100644 deps/npm/man/man7/npm-scope.7 delete mode 100644 deps/npm/man/man7/npm-scripts.7 delete mode 100644 deps/npm/man/man7/removing-npm.7 delete mode 100644 deps/npm/man/man7/semver.7 delete mode 100644 deps/npm/node_modules/JSONStream/.npmignore delete mode 100644 deps/npm/node_modules/JSONStream/.travis.yml delete mode 100644 deps/npm/node_modules/JSONStream/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/JSONStream/LICENSE.MIT delete mode 100644 deps/npm/node_modules/JSONStream/examples/all_docs.js delete mode 100755 deps/npm/node_modules/JSONStream/index.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/index.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/package.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/async.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/end.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/index.js delete mode 100644 deps/npm/node_modules/JSONStream/package.json delete mode 100644 deps/npm/node_modules/JSONStream/readme.markdown delete mode 100644 deps/npm/node_modules/JSONStream/test/bool.js delete mode 100644 deps/npm/node_modules/JSONStream/test/browser.js delete mode 100644 deps/npm/node_modules/JSONStream/test/destroy_missing.js delete mode 100644 deps/npm/node_modules/JSONStream/test/disabled/doubledot1.js delete mode 100644 deps/npm/node_modules/JSONStream/test/disabled/doubledot2.js delete mode 100644 deps/npm/node_modules/JSONStream/test/empty.js delete mode 100644 deps/npm/node_modules/JSONStream/test/error_contents.js delete mode 100644 deps/npm/node_modules/JSONStream/test/fixtures/all_npm.json delete mode 100644 deps/npm/node_modules/JSONStream/test/fixtures/couch_sample.json delete mode 100644 deps/npm/node_modules/JSONStream/test/fixtures/depth.json delete mode 100644 deps/npm/node_modules/JSONStream/test/fixtures/error.json delete mode 100644 deps/npm/node_modules/JSONStream/test/fixtures/header_footer.json delete mode 100644 deps/npm/node_modules/JSONStream/test/fn.js delete mode 100644 deps/npm/node_modules/JSONStream/test/gen.js delete mode 100644 deps/npm/node_modules/JSONStream/test/header_footer.js delete mode 100644 deps/npm/node_modules/JSONStream/test/issues.js delete mode 100644 deps/npm/node_modules/JSONStream/test/keys.js delete mode 100644 deps/npm/node_modules/JSONStream/test/map.js delete mode 100644 deps/npm/node_modules/JSONStream/test/multiple_objects.js delete mode 100644 deps/npm/node_modules/JSONStream/test/multiple_objects_error.js delete mode 100644 deps/npm/node_modules/JSONStream/test/null.js delete mode 100644 deps/npm/node_modules/JSONStream/test/parsejson.js delete mode 100644 deps/npm/node_modules/JSONStream/test/stringify.js delete mode 100644 deps/npm/node_modules/JSONStream/test/stringify_object.js delete mode 100644 deps/npm/node_modules/JSONStream/test/test.js delete mode 100644 deps/npm/node_modules/JSONStream/test/test2.js delete mode 100644 deps/npm/node_modules/JSONStream/test/two-ways.js delete mode 100644 deps/npm/node_modules/abbrev/LICENSE delete mode 100644 deps/npm/node_modules/abbrev/README.md delete mode 100644 deps/npm/node_modules/abbrev/abbrev.js delete mode 100644 deps/npm/node_modules/abbrev/package.json delete mode 100644 deps/npm/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/ansicolors/LICENSE delete mode 100644 deps/npm/node_modules/ansicolors/README.md delete mode 100644 deps/npm/node_modules/ansicolors/ansicolors.js delete mode 100644 deps/npm/node_modules/ansicolors/package.json delete mode 100644 deps/npm/node_modules/ansicolors/test/ansicolors.js delete mode 100644 deps/npm/node_modules/ansistyles/LICENSE delete mode 100644 deps/npm/node_modules/ansistyles/README.md delete mode 100644 deps/npm/node_modules/ansistyles/ansistyles.js delete mode 100644 deps/npm/node_modules/ansistyles/package.json delete mode 100644 deps/npm/node_modules/ansistyles/test/ansistyles.js delete mode 100644 deps/npm/node_modules/aproba/LICENSE delete mode 100644 deps/npm/node_modules/aproba/README.md delete mode 100644 deps/npm/node_modules/aproba/index.js delete mode 100644 deps/npm/node_modules/aproba/package.json delete mode 100644 deps/npm/node_modules/archy/.travis.yml delete mode 100644 deps/npm/node_modules/archy/LICENSE delete mode 100644 deps/npm/node_modules/archy/README.markdown delete mode 100644 deps/npm/node_modules/archy/examples/beep.js delete mode 100644 deps/npm/node_modules/archy/examples/multi_line.js delete mode 100644 deps/npm/node_modules/archy/index.js delete mode 100644 deps/npm/node_modules/archy/package.json delete mode 100644 deps/npm/node_modules/archy/test/beep.js delete mode 100644 deps/npm/node_modules/archy/test/multi_line.js delete mode 100644 deps/npm/node_modules/archy/test/non_unicode.js delete mode 100644 deps/npm/node_modules/bin-links/CHANGELOG.md delete mode 100644 deps/npm/node_modules/bin-links/LICENSE delete mode 100644 deps/npm/node_modules/bin-links/README.md delete mode 100644 deps/npm/node_modules/bin-links/index.js delete mode 100644 deps/npm/node_modules/bin-links/package.json delete mode 100644 deps/npm/node_modules/bluebird/LICENSE delete mode 100644 deps/npm/node_modules/bluebird/README.md delete mode 100644 deps/npm/node_modules/bluebird/changelog.md delete mode 100644 deps/npm/node_modules/bluebird/js/browser/bluebird.core.js delete mode 100644 deps/npm/node_modules/bluebird/js/browser/bluebird.core.min.js delete mode 100644 deps/npm/node_modules/bluebird/js/browser/bluebird.js delete mode 100644 deps/npm/node_modules/bluebird/js/browser/bluebird.min.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/any.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/assert.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/async.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/bind.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/bluebird.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/call_get.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/cancel.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/catch_filter.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/context.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/debuggability.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/direct_resolve.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/each.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/errors.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/es5.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/filter.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/finally.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/generators.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/join.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/map.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/method.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/nodeback.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/nodeify.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/promise.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/promise_array.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/promisify.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/props.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/queue.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/race.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/reduce.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/schedule.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/settle.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/some.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/synchronous_inspection.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/thenables.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/timers.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/using.js delete mode 100644 deps/npm/node_modules/bluebird/js/release/util.js delete mode 100644 deps/npm/node_modules/bluebird/package.json delete mode 100644 deps/npm/node_modules/cacache/CHANGELOG.md delete mode 100644 deps/npm/node_modules/cacache/LICENSE.md delete mode 100644 deps/npm/node_modules/cacache/README.es.md delete mode 100644 deps/npm/node_modules/cacache/README.md delete mode 100644 deps/npm/node_modules/cacache/en.js delete mode 100644 deps/npm/node_modules/cacache/es.js delete mode 100644 deps/npm/node_modules/cacache/get.js delete mode 100644 deps/npm/node_modules/cacache/index.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/path.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/read.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/rm.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/write.js delete mode 100644 deps/npm/node_modules/cacache/lib/entry-index.js delete mode 100644 deps/npm/node_modules/cacache/lib/memoization.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/move-file.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/tmp.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/y.js delete mode 100644 deps/npm/node_modules/cacache/lib/verify.js delete mode 100644 deps/npm/node_modules/cacache/locales/en.js delete mode 100644 deps/npm/node_modules/cacache/locales/en.json delete mode 100644 deps/npm/node_modules/cacache/locales/es.js delete mode 100644 deps/npm/node_modules/cacache/locales/es.json delete mode 100644 deps/npm/node_modules/cacache/ls.js delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/package.json delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/LICENSE delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/README.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/index.js delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/package.json delete mode 100644 deps/npm/node_modules/cacache/package.json delete mode 100644 deps/npm/node_modules/cacache/put.js delete mode 100644 deps/npm/node_modules/cacache/rm.js delete mode 100644 deps/npm/node_modules/cacache/verify.js delete mode 100644 deps/npm/node_modules/call-limit/README.md delete mode 100644 deps/npm/node_modules/call-limit/call-limit.js delete mode 100644 deps/npm/node_modules/call-limit/package.json delete mode 100644 deps/npm/node_modules/chownr/LICENSE delete mode 100644 deps/npm/node_modules/chownr/README.md delete mode 100644 deps/npm/node_modules/chownr/chownr.js delete mode 100644 deps/npm/node_modules/chownr/package.json delete mode 100644 deps/npm/node_modules/cli-table2/.npmignore delete mode 100644 deps/npm/node_modules/cli-table2/.travis.yml delete mode 100644 deps/npm/node_modules/cli-table2/README.md delete mode 100644 deps/npm/node_modules/cli-table2/advanced-usage.md delete mode 100644 deps/npm/node_modules/cli-table2/basic-usage.md delete mode 100644 deps/npm/node_modules/cli-table2/examples/basic-usage-examples.js delete mode 100644 deps/npm/node_modules/cli-table2/examples/col-and-row-span-examples.js delete mode 100644 deps/npm/node_modules/cli-table2/examples/screenshots/basic-usage-with-colors.png delete mode 100644 deps/npm/node_modules/cli-table2/examples/screenshots/multi-line-colors.png delete mode 100644 deps/npm/node_modules/cli-table2/examples/screenshots/truncation-with-colors.png delete mode 100644 deps/npm/node_modules/cli-table2/gulpfile.js delete mode 100644 deps/npm/node_modules/cli-table2/index.js delete mode 100644 deps/npm/node_modules/cli-table2/lib/print-example.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/LICENSE delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/ReadMe.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/examples/normal-usage.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/examples/safe-string.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/colors.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/trap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/zalgo.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/extendStringPrototype.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/america.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/rainbow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/random.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/zebra.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/styles.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/system/supports-colors.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/safe.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/themes/generic-logging.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/LICENSE delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/README.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/chunk.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/compact.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/difference.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/drop.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRightWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/fill.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/findIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/findLastIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/first.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/flatten.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/flattenDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/head.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/indexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/initial.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/intersection.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/last.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/lastIndexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/object.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/pull.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/pullAt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/remove.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/rest.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/slice.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedLastIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/tail.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/take.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRightWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/union.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/uniq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/unique.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzip.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzipWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/without.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/xor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/zip.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/chain.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/commit.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/concat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/lodash.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/plant.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/reverse.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/run.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/tap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/thru.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toJSON.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/value.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/valueOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperChain.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperCommit.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperConcat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperPlant.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperReverse.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperToString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperValue.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/all.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/any.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/at.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/collect.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/contains.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/countBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/detect.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/each.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/eachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/every.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/filter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/find.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findLast.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findWhere.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldl.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldr.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/groupBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/include.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/includes.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/indexBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/inject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/invoke.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/map.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/max.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/min.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/partition.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/pluck.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduceRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sample.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/select.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/shuffle.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/size.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/some.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByAll.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByOrder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/where.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/date.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/date/now.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/after.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/ary.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/backflow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/before.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/bind.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindAll.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/compose.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/curry.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/curryRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/debounce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/defer.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/delay.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/flow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/flowRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/memoize.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/modArgs.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/negate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/once.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/partial.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/partialRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/rearg.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/restParam.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/spread.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/throttle.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/wrap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LazyWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LodashWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/MapCache.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/SetCache.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayConcat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayCopy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEvery.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayExtremum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayFilter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayMap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayPush.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduceRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySome.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignOwnDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAssign.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCallback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCompareAscending.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCopy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCreate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDelay.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDifference.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEvery.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseExtremum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFill.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFilter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFind.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFindIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFlatten.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwnRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFunctions.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseGet.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIndexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqual.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqualDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsFunction.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsMatch.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseLodash.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatches.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatchesProperty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMerge.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMergeDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseProperty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePropertyDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePullAt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseRandom.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseReduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSetData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSlice.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSome.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortByOrder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseToString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseUniq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseValues.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWrapperValue.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndexBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bindCallback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bufferClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cacheIndexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cachePush.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsLeftIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsRightIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareAscending.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareMultiple.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgs.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgsRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAggregator.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAssigner.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseFor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBindWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCache.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCompounder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCtorWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCurry.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createExtremum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFind.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFlow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForOwn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createHybridWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createObjectMapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadDir.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadding.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartial.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartialWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createReduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createRound.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createSortedIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/deburrLetter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalArrays.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalByTag.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalObjects.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeHtmlChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeRegExpChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeStringChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getFuncName.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getLength.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getMatchData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getNative.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getView.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/indexOfNaN.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneByTag.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/invokePath.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isArrayLike.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIterateeCall.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLaziable.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLength.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isObjectLike.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isSpace.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isStrictComparable.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyReverse.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyValue.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapDelete.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapGet.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapHas.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapSet.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/metaMap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByCallback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEscape.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEvaluate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reInterpolate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/realNames.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reorder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/replaceHolders.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/setData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/shimKeys.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/sortedUniq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toIterable.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toPath.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedLeftIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedRightIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/unescapeHtmlChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/wrapperClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/clone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/cloneDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/eq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gte.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArguments.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isBoolean.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isDate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isElement.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEmpty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEqual.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isError.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFinite.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFunction.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isMatch.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNaN.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNative.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNull.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNumber.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isPlainObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isRegExp.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isTypedArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isUndefined.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lte.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toPlainObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/add.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/ceil.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/floor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/max.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/min.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/round.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/sum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/number.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/number/inRange.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/number/random.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/assign.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/create.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaultsDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/extend.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/findKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/findLastKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forInRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwnRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/functions.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/get.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/has.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/invert.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/keys.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/keysIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapKeys.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapValues.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/merge.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/methods.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/omit.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/pairs.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/pick.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/result.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/set.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/transform.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/values.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/valuesIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/camelCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/capitalize.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/deburr.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/endsWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/escape.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/escapeRegExp.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/kebabCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/pad.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/padLeft.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/padRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/parseInt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/repeat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/snakeCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/startCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/startsWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/template.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/templateSettings.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trim.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimLeft.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trunc.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/unescape.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/words.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/support.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/attempt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/callback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/constant.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/identity.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/iteratee.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matches.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matchesProperty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/method.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/methodOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/mixin.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/noop.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/property.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/propertyOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/range.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/times.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/uniqueId.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/package.json delete mode 100644 deps/npm/node_modules/cli-table2/src/cell.js delete mode 100644 deps/npm/node_modules/cli-table2/src/layout-manager.js delete mode 100644 deps/npm/node_modules/cli-table2/src/table.js delete mode 100644 deps/npm/node_modules/cli-table2/src/utils.js delete mode 100644 deps/npm/node_modules/cli-table2/test/cell-test.js delete mode 100644 deps/npm/node_modules/cli-table2/test/example-tests.js delete mode 100644 deps/npm/node_modules/cli-table2/test/layout-manager-test.js delete mode 100644 deps/npm/node_modules/cli-table2/test/original-cli-table-index-tests.js delete mode 100644 deps/npm/node_modules/cli-table2/test/original-cli-table-newlines-test.js delete mode 100644 deps/npm/node_modules/cli-table2/test/table-layout-test.js delete mode 100644 deps/npm/node_modules/cli-table2/test/table-test.js delete mode 100644 deps/npm/node_modules/cli-table2/test/utils-test.js delete mode 100644 deps/npm/node_modules/cli-table2/test/verify-legacy-compatibility-test.js delete mode 100644 deps/npm/node_modules/cmd-shim/.npmignore delete mode 100644 deps/npm/node_modules/cmd-shim/.travis.yml delete mode 100644 deps/npm/node_modules/cmd-shim/LICENSE delete mode 100644 deps/npm/node_modules/cmd-shim/README.md delete mode 100644 deps/npm/node_modules/cmd-shim/index.js delete mode 100644 deps/npm/node_modules/cmd-shim/package.json delete mode 100644 deps/npm/node_modules/cmd-shim/test/00-setup.js delete mode 100755 deps/npm/node_modules/cmd-shim/test/basic.js delete mode 100644 deps/npm/node_modules/cmd-shim/test/zz-cleanup.js delete mode 100644 deps/npm/node_modules/columnify/LICENSE delete mode 100644 deps/npm/node_modules/columnify/Makefile delete mode 100644 deps/npm/node_modules/columnify/Readme.md delete mode 100644 deps/npm/node_modules/columnify/columnify.js delete mode 100644 deps/npm/node_modules/columnify/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/Readme.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js delete mode 100644 deps/npm/node_modules/columnify/package.json delete mode 100644 deps/npm/node_modules/columnify/utils.js delete mode 100644 deps/npm/node_modules/columnify/width.js delete mode 100644 deps/npm/node_modules/config-chain/.npmignore delete mode 100644 deps/npm/node_modules/config-chain/LICENCE delete mode 100755 deps/npm/node_modules/config-chain/index.js delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/README.md delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/package.json delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js delete mode 100644 deps/npm/node_modules/config-chain/package.json delete mode 100644 deps/npm/node_modules/config-chain/readme.markdown delete mode 100644 deps/npm/node_modules/config-chain/test/broken.js delete mode 100644 deps/npm/node_modules/config-chain/test/broken.json delete mode 100644 deps/npm/node_modules/config-chain/test/chain-class.js delete mode 100644 deps/npm/node_modules/config-chain/test/env.js delete mode 100644 deps/npm/node_modules/config-chain/test/find-file.js delete mode 100644 deps/npm/node_modules/config-chain/test/get.js delete mode 100644 deps/npm/node_modules/config-chain/test/ignore-unfound-file.js delete mode 100644 deps/npm/node_modules/config-chain/test/ini.js delete mode 100644 deps/npm/node_modules/config-chain/test/save.js delete mode 100644 deps/npm/node_modules/debuglog/LICENSE delete mode 100644 deps/npm/node_modules/debuglog/README.md delete mode 100644 deps/npm/node_modules/debuglog/debuglog.js delete mode 100644 deps/npm/node_modules/debuglog/package.json delete mode 100644 deps/npm/node_modules/detect-indent/index.js delete mode 100644 deps/npm/node_modules/detect-indent/license delete mode 100644 deps/npm/node_modules/detect-indent/package.json delete mode 100644 deps/npm/node_modules/detect-indent/readme.md delete mode 100644 deps/npm/node_modules/dezalgo/.travis.yml delete mode 100644 deps/npm/node_modules/dezalgo/LICENSE delete mode 100644 deps/npm/node_modules/dezalgo/README.md delete mode 100644 deps/npm/node_modules/dezalgo/dezalgo.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/README.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/asap.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/package.json delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/raw.js delete mode 100644 deps/npm/node_modules/dezalgo/package.json delete mode 100644 deps/npm/node_modules/dezalgo/test/basic.js delete mode 100644 deps/npm/node_modules/editor/LICENSE delete mode 100644 deps/npm/node_modules/editor/README.markdown delete mode 100644 deps/npm/node_modules/editor/example/beep.json delete mode 100644 deps/npm/node_modules/editor/example/edit.js delete mode 100644 deps/npm/node_modules/editor/index.js delete mode 100644 deps/npm/node_modules/editor/package.json delete mode 100644 deps/npm/node_modules/find-npm-prefix/LICENSE delete mode 100644 deps/npm/node_modules/find-npm-prefix/README.md delete mode 100644 deps/npm/node_modules/find-npm-prefix/find-prefix.js delete mode 100644 deps/npm/node_modules/find-npm-prefix/package.json delete mode 100644 deps/npm/node_modules/find-npm-prefix/test/find-prefix.js delete mode 100644 deps/npm/node_modules/fs-vacuum/.eslintrc delete mode 100644 deps/npm/node_modules/fs-vacuum/.npmignore delete mode 100644 deps/npm/node_modules/fs-vacuum/.travis.yml delete mode 100644 deps/npm/node_modules/fs-vacuum/LICENSE delete mode 100644 deps/npm/node_modules/fs-vacuum/README.md delete mode 100644 deps/npm/node_modules/fs-vacuum/package.json delete mode 100644 deps/npm/node_modules/fs-vacuum/test/arguments.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/not-remove-home-directory.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js delete mode 100644 deps/npm/node_modules/fs-vacuum/test/racy-entries.js delete mode 100644 deps/npm/node_modules/fs-vacuum/vacuum.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/.npmignore delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/.travis.yml delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/LICENSE delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/README.md delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/index.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/package.json delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/test/basic.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/test/chown.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/test/rename-eperm.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/test/slow-close.js delete mode 100644 deps/npm/node_modules/fs-write-stream-atomic/test/toolong.js delete mode 100644 deps/npm/node_modules/gentle-fs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/gentle-fs/LICENSE delete mode 100644 deps/npm/node_modules/gentle-fs/README.md delete mode 100644 deps/npm/node_modules/gentle-fs/index.js delete mode 100644 deps/npm/node_modules/gentle-fs/lib/link.js delete mode 100644 deps/npm/node_modules/gentle-fs/lib/rm.js delete mode 100644 deps/npm/node_modules/gentle-fs/package.json delete mode 100644 deps/npm/node_modules/glob/LICENSE delete mode 100644 deps/npm/node_modules/glob/README.md delete mode 100644 deps/npm/node_modules/glob/changelog.md delete mode 100644 deps/npm/node_modules/glob/common.js delete mode 100644 deps/npm/node_modules/glob/glob.js delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/old.js delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/license delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md delete mode 100644 deps/npm/node_modules/glob/package.json delete mode 100644 deps/npm/node_modules/glob/sync.js delete mode 100644 deps/npm/node_modules/graceful-fs/LICENSE delete mode 100644 deps/npm/node_modules/graceful-fs/README.md delete mode 100644 deps/npm/node_modules/graceful-fs/fs.js delete mode 100644 deps/npm/node_modules/graceful-fs/graceful-fs.js delete mode 100644 deps/npm/node_modules/graceful-fs/legacy-streams.js delete mode 100644 deps/npm/node_modules/graceful-fs/package.json delete mode 100644 deps/npm/node_modules/graceful-fs/polyfills.js delete mode 100644 deps/npm/node_modules/has-unicode/LICENSE delete mode 100644 deps/npm/node_modules/has-unicode/README.md delete mode 100644 deps/npm/node_modules/has-unicode/index.js delete mode 100644 deps/npm/node_modules/has-unicode/package.json delete mode 100644 deps/npm/node_modules/hosted-git-info/LICENSE delete mode 100644 deps/npm/node_modules/hosted-git-info/README.md delete mode 100644 deps/npm/node_modules/hosted-git-info/git-host-info.js delete mode 100644 deps/npm/node_modules/hosted-git-info/git-host.js delete mode 100644 deps/npm/node_modules/hosted-git-info/index.js delete mode 100644 deps/npm/node_modules/hosted-git-info/package.json delete mode 100644 deps/npm/node_modules/iferr/.npmignore delete mode 100644 deps/npm/node_modules/iferr/LICENSE delete mode 100644 deps/npm/node_modules/iferr/README.md delete mode 100644 deps/npm/node_modules/iferr/index.coffee delete mode 100644 deps/npm/node_modules/iferr/index.js delete mode 100644 deps/npm/node_modules/iferr/package.json delete mode 100644 deps/npm/node_modules/iferr/test/index.coffee delete mode 100644 deps/npm/node_modules/iferr/test/mocha.opts delete mode 100644 deps/npm/node_modules/imurmurhash/README.md delete mode 100644 deps/npm/node_modules/imurmurhash/imurmurhash.js delete mode 100644 deps/npm/node_modules/imurmurhash/imurmurhash.min.js delete mode 100644 deps/npm/node_modules/imurmurhash/package.json delete mode 100644 deps/npm/node_modules/inflight/LICENSE delete mode 100644 deps/npm/node_modules/inflight/README.md delete mode 100644 deps/npm/node_modules/inflight/inflight.js delete mode 100644 deps/npm/node_modules/inflight/package.json delete mode 100644 deps/npm/node_modules/inherits/LICENSE delete mode 100644 deps/npm/node_modules/inherits/README.md delete mode 100644 deps/npm/node_modules/inherits/inherits.js delete mode 100644 deps/npm/node_modules/inherits/inherits_browser.js delete mode 100644 deps/npm/node_modules/inherits/package.json delete mode 100644 deps/npm/node_modules/ini/LICENSE delete mode 100644 deps/npm/node_modules/ini/README.md delete mode 100644 deps/npm/node_modules/ini/ini.js delete mode 100644 deps/npm/node_modules/ini/package.json delete mode 100644 deps/npm/node_modules/init-package-json/LICENSE delete mode 100644 deps/npm/node_modules/init-package-json/README.md delete mode 100644 deps/npm/node_modules/init-package-json/default-input.js delete mode 100644 deps/npm/node_modules/init-package-json/init-package-json.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/README.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/package.json delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js delete mode 100644 deps/npm/node_modules/init-package-json/package.json delete mode 100644 deps/npm/node_modules/is-cidr/.npmignore delete mode 100644 deps/npm/node_modules/is-cidr/.travis.yml delete mode 100644 deps/npm/node_modules/is-cidr/README.md delete mode 100644 deps/npm/node_modules/is-cidr/example/example.js delete mode 100644 deps/npm/node_modules/is-cidr/lib/index.js delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/.npmignore delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/README.md delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/lib/index.js delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/package.json delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/test.js delete mode 100644 deps/npm/node_modules/is-cidr/package.json delete mode 100644 deps/npm/node_modules/is-cidr/test/index.test.js delete mode 100644 deps/npm/node_modules/lazy-property/.npmignore delete mode 100644 deps/npm/node_modules/lazy-property/LICENSE delete mode 100644 deps/npm/node_modules/lazy-property/README.md delete mode 100644 deps/npm/node_modules/lazy-property/component.json delete mode 100644 deps/npm/node_modules/lazy-property/lazyProperty.js delete mode 100644 deps/npm/node_modules/lazy-property/package.json delete mode 100644 deps/npm/node_modules/libnpx/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/LICENSE.md delete mode 100644 deps/npm/node_modules/libnpx/README.md delete mode 100644 deps/npm/node_modules/libnpx/auto-fallback.js delete mode 100644 deps/npm/node_modules/libnpx/child.js delete mode 100644 deps/npm/node_modules/libnpx/get-prefix.js delete mode 100644 deps/npm/node_modules/libnpx/index.js delete mode 100644 deps/npm/node_modules/libnpx/libnpx.1 delete mode 100644 deps/npm/node_modules/libnpx/locales/ar.json delete mode 100644 deps/npm/node_modules/libnpx/locales/ca.json delete mode 100644 deps/npm/node_modules/libnpx/locales/cs.json delete mode 100644 deps/npm/node_modules/libnpx/locales/de.json delete mode 100644 deps/npm/node_modules/libnpx/locales/en.json delete mode 100644 deps/npm/node_modules/libnpx/locales/es.json delete mode 100644 deps/npm/node_modules/libnpx/locales/fr.json delete mode 100644 deps/npm/node_modules/libnpx/locales/id.json delete mode 100644 deps/npm/node_modules/libnpx/locales/it.json delete mode 100644 deps/npm/node_modules/libnpx/locales/ja.json delete mode 100644 deps/npm/node_modules/libnpx/locales/ko.json delete mode 100644 deps/npm/node_modules/libnpx/locales/nb.json delete mode 100644 deps/npm/node_modules/libnpx/locales/nl.json delete mode 100644 deps/npm/node_modules/libnpx/locales/nn.json delete mode 100644 deps/npm/node_modules/libnpx/locales/no.json delete mode 100644 deps/npm/node_modules/libnpx/locales/pl.json delete mode 100644 deps/npm/node_modules/libnpx/locales/pt_BR.json delete mode 100644 deps/npm/node_modules/libnpx/locales/ro.json delete mode 100644 deps/npm/node_modules/libnpx/locales/ru.json delete mode 100644 deps/npm/node_modules/libnpx/locales/sr.json delete mode 100644 deps/npm/node_modules/libnpx/locales/tr.json delete mode 100644 deps/npm/node_modules/libnpx/locales/uk.json delete mode 100644 deps/npm/node_modules/libnpx/locales/zh_CN.json delete mode 100644 deps/npm/node_modules/libnpx/locales/zh_TW.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/config.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/lib/main.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/completion.sh.hbs delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/apply-extends.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/argsert.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/assign.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/command.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/completion.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/levenshtein.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/obj-filter.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/usage.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/validation.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/yerror.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/be.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/de.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/en.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/es.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/fr.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/hi.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/hu.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/id.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/it.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/ja.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/ko.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/nb.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/nl.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pirate.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pl.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt_BR.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/ru.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/th.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/tr.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_CN.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_TW.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/readme.md delete mode 100755 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/errname.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/stdio.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/enoent.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/parse.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/lcid.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.editorconfig delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.istanbul.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.npmignore delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.travis.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/vendor/parse.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/vendor/unicode.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.npmignore delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.travis.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/README.markdown delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.npmignore delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.travis.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/test.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/yargs.js delete mode 100644 deps/npm/node_modules/libnpx/package.json delete mode 100644 deps/npm/node_modules/libnpx/parse-args.js delete mode 100644 deps/npm/node_modules/libnpx/util.js delete mode 100644 deps/npm/node_modules/libnpx/y.js delete mode 100644 deps/npm/node_modules/lockfile/.npmignore delete mode 100644 deps/npm/node_modules/lockfile/.travis.yml delete mode 100644 deps/npm/node_modules/lockfile/CHANGELOG.md delete mode 100644 deps/npm/node_modules/lockfile/LICENSE delete mode 100644 deps/npm/node_modules/lockfile/README.md delete mode 100644 deps/npm/node_modules/lockfile/gen-changelog.sh delete mode 100644 deps/npm/node_modules/lockfile/lockfile.js delete mode 100644 deps/npm/node_modules/lockfile/package.json delete mode 100644 deps/npm/node_modules/lockfile/test/basic.js delete mode 100644 deps/npm/node_modules/lockfile/test/fixtures/bad-child.js delete mode 100644 deps/npm/node_modules/lockfile/test/fixtures/child.js delete mode 100644 deps/npm/node_modules/lockfile/test/retry-time.js delete mode 100644 deps/npm/node_modules/lockfile/test/stale-contention.js delete mode 100644 deps/npm/node_modules/lockfile/test/unlock-no-cb.js delete mode 100644 deps/npm/node_modules/lodash._baseindexof/LICENSE.txt delete mode 100644 deps/npm/node_modules/lodash._baseindexof/README.md delete mode 100644 deps/npm/node_modules/lodash._baseindexof/index.js delete mode 100644 deps/npm/node_modules/lodash._baseindexof/package.json delete mode 100644 deps/npm/node_modules/lodash._baseuniq/LICENSE delete mode 100644 deps/npm/node_modules/lodash._baseuniq/README.md delete mode 100644 deps/npm/node_modules/lodash._baseuniq/index.js delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json delete mode 100644 deps/npm/node_modules/lodash._baseuniq/package.json delete mode 100644 deps/npm/node_modules/lodash._bindcallback/LICENSE.txt delete mode 100644 deps/npm/node_modules/lodash._bindcallback/README.md delete mode 100644 deps/npm/node_modules/lodash._bindcallback/index.js delete mode 100644 deps/npm/node_modules/lodash._bindcallback/package.json delete mode 100644 deps/npm/node_modules/lodash._cacheindexof/LICENSE.txt delete mode 100644 deps/npm/node_modules/lodash._cacheindexof/README.md delete mode 100644 deps/npm/node_modules/lodash._cacheindexof/index.js delete mode 100644 deps/npm/node_modules/lodash._cacheindexof/package.json delete mode 100644 deps/npm/node_modules/lodash._createcache/LICENSE delete mode 100644 deps/npm/node_modules/lodash._createcache/README.md delete mode 100644 deps/npm/node_modules/lodash._createcache/index.js delete mode 100644 deps/npm/node_modules/lodash._createcache/package.json delete mode 100644 deps/npm/node_modules/lodash._getnative/LICENSE delete mode 100644 deps/npm/node_modules/lodash._getnative/README.md delete mode 100644 deps/npm/node_modules/lodash._getnative/index.js delete mode 100644 deps/npm/node_modules/lodash._getnative/package.json delete mode 100644 deps/npm/node_modules/lodash.clonedeep/LICENSE delete mode 100644 deps/npm/node_modules/lodash.clonedeep/README.md delete mode 100644 deps/npm/node_modules/lodash.clonedeep/index.js delete mode 100644 deps/npm/node_modules/lodash.clonedeep/package.json delete mode 100644 deps/npm/node_modules/lodash.restparam/LICENSE.txt delete mode 100644 deps/npm/node_modules/lodash.restparam/README.md delete mode 100644 deps/npm/node_modules/lodash.restparam/index.js delete mode 100644 deps/npm/node_modules/lodash.restparam/package.json delete mode 100644 deps/npm/node_modules/lodash.union/LICENSE delete mode 100644 deps/npm/node_modules/lodash.union/README.md delete mode 100644 deps/npm/node_modules/lodash.union/index.js delete mode 100644 deps/npm/node_modules/lodash.union/package.json delete mode 100644 deps/npm/node_modules/lodash.uniq/LICENSE delete mode 100644 deps/npm/node_modules/lodash.uniq/README.md delete mode 100644 deps/npm/node_modules/lodash.uniq/index.js delete mode 100644 deps/npm/node_modules/lodash.uniq/package.json delete mode 100644 deps/npm/node_modules/lodash.without/LICENSE delete mode 100644 deps/npm/node_modules/lodash.without/README.md delete mode 100644 deps/npm/node_modules/lodash.without/index.js delete mode 100644 deps/npm/node_modules/lodash.without/package.json delete mode 100644 deps/npm/node_modules/lru-cache/LICENSE delete mode 100644 deps/npm/node_modules/lru-cache/README.md delete mode 100644 deps/npm/node_modules/lru-cache/index.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/LICENSE delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/README.md delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/map.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/package.json delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/test/basic.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/LICENSE delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/README.md delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/iterator.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/package.json delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/yallist.js delete mode 100644 deps/npm/node_modules/lru-cache/package.json delete mode 100644 deps/npm/node_modules/meant/.npmignore delete mode 100644 deps/npm/node_modules/meant/.travis.yml delete mode 100644 deps/npm/node_modules/meant/CHANGELOG.md delete mode 100644 deps/npm/node_modules/meant/LICENSE delete mode 100644 deps/npm/node_modules/meant/README.md delete mode 100644 deps/npm/node_modules/meant/index.js delete mode 100644 deps/npm/node_modules/meant/package.json delete mode 100644 deps/npm/node_modules/meant/test.js delete mode 100644 deps/npm/node_modules/mississippi/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/example/tarray.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/readme.markdown delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/tarray.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/readme.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/example.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/once.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/example.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/LICENSE.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/test-browser.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/collaborators.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.html delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/LICENCE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/Makefile delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/immutable.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/mutable.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/through2.js delete mode 100644 deps/npm/node_modules/mississippi/package.json delete mode 100644 deps/npm/node_modules/mississippi/readme.md delete mode 100644 deps/npm/node_modules/mkdirp/.travis.yml delete mode 100644 deps/npm/node_modules/mkdirp/LICENSE delete mode 100644 deps/npm/node_modules/mkdirp/README.markdown delete mode 100755 deps/npm/node_modules/mkdirp/bin/cmd.js delete mode 100644 deps/npm/node_modules/mkdirp/bin/usage.txt delete mode 100644 deps/npm/node_modules/mkdirp/examples/pow.js delete mode 100644 deps/npm/node_modules/mkdirp/index.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/index.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/package.json delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js delete mode 100644 deps/npm/node_modules/mkdirp/package.json delete mode 100644 deps/npm/node_modules/mkdirp/test/chmod.js delete mode 100644 deps/npm/node_modules/mkdirp/test/clobber.js delete mode 100644 deps/npm/node_modules/mkdirp/test/mkdirp.js delete mode 100644 deps/npm/node_modules/mkdirp/test/opts_fs.js delete mode 100644 deps/npm/node_modules/mkdirp/test/opts_fs_sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/perm.js delete mode 100644 deps/npm/node_modules/mkdirp/test/perm_sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/race.js delete mode 100644 deps/npm/node_modules/mkdirp/test/rel.js delete mode 100644 deps/npm/node_modules/mkdirp/test/return.js delete mode 100644 deps/npm/node_modules/mkdirp/test/return_sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/root.js delete mode 100644 deps/npm/node_modules/mkdirp/test/sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/umask.js delete mode 100644 deps/npm/node_modules/mkdirp/test/umask_sync.js delete mode 100644 deps/npm/node_modules/move-concurrently/LICENSE delete mode 100644 deps/npm/node_modules/move-concurrently/README.md delete mode 100644 deps/npm/node_modules/move-concurrently/move.js delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/LICENSE delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/README.md delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/is-windows.js delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/package.json delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/run-queue/README.md delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/run-queue/package.json delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/run-queue/queue.js delete mode 100644 deps/npm/node_modules/move-concurrently/package.json delete mode 100644 deps/npm/node_modules/node-gyp/.jshintrc delete mode 100644 deps/npm/node_modules/node-gyp/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/CHANGELOG.md delete mode 100644 deps/npm/node_modules/node-gyp/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/README.md delete mode 100644 deps/npm/node_modules/node-gyp/addon.gypi delete mode 100755 deps/npm/node_modules/node-gyp/bin/node-gyp.js delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/gyp/AUTHORS delete mode 100644 deps/npm/node_modules/node-gyp/gyp/DEPS delete mode 100644 deps/npm/node_modules/node-gyp/gyp/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/gyp/OWNERS delete mode 100644 deps/npm/node_modules/node-gyp/gyp/PRESUBMIT.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/buildbot/aosp_manifest.xml delete mode 100755 deps/npm/node_modules/node-gyp/gyp/buildbot/buildbot_run.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/OWNERS delete mode 100644 deps/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/cq_config.json delete mode 100644 deps/npm/node_modules/node-gyp/gyp/codereview.settings delete mode 100644 deps/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc delete mode 100755 deps/npm/node_modules/node-gyp/gyp/gyp delete mode 100644 deps/npm/node_modules/node-gyp/gyp/gyp.bat delete mode 100755 deps/npm/node_modules/node-gyp/gyp/gyp_main.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/gyptest.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ordered_dict.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/samples/samples delete mode 100644 deps/npm/node_modules/node-gyp/gyp/samples/samples.bat delete mode 100755 deps/npm/node_modules/node-gyp/gyp/setup.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py delete mode 100644 deps/npm/node_modules/node-gyp/lib/Find-VS2017.cs delete mode 100644 deps/npm/node_modules/node-gyp/lib/build.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/clean.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/configure.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/find-node-directory.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/find-vs2017.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/install.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/list.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/node-gyp.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/process-release.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/rebuild.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/remove.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/.travis.yml delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/filter-pipe.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/pipe.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/symlink-write.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/fstream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/abstract.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/collect.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/get-type.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/socket-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/.travis.yml delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/README.md delete mode 100755 deps/npm/node_modules/node-gyp/node_modules/nopt/bin/nopt.js delete mode 100755 deps/npm/node_modules/node-gyp/node_modules/nopt/examples/my-program.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/lib/nopt.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/test/basic.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/semver/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/semver/README.md delete mode 100755 deps/npm/node_modules/node-gyp/node_modules/semver/bin/semver delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/semver/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/semver/range.bnf delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/semver/semver.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/.travis.yml delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/examples/extracter.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/examples/packer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/examples/reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/entry-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/entry.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/extended-header-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/extended-header.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/extract.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/global-header-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/header.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/pack.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/lib/parse.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENCE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/block-stream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/tar.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/00-setup-fixtures.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/cb-never-called-1.0.1.tgz delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/dir-normalization.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/dir-normalization.tar delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/error-on-broken.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/extract-move.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/extract.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/fixtures.tgz delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/header.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/pack-no-proprietary.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/pack.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/parse-discard.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/parse.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/test/zz-cleanup.js delete mode 100644 deps/npm/node_modules/node-gyp/package.json delete mode 100644 deps/npm/node_modules/node-gyp/src/win_delay_load_hook.cc delete mode 100755 deps/npm/node_modules/node-gyp/test/docker.sh delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/ca.crt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/server.crt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/server.key delete mode 100644 deps/npm/node_modules/node-gyp/test/simple-proxy.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-addon.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-configure-python.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-download.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-accessible-sync.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-node-directory.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-python.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-options.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-process-release.js delete mode 100644 deps/npm/node_modules/nopt/.npmignore delete mode 100644 deps/npm/node_modules/nopt/.travis.yml delete mode 100644 deps/npm/node_modules/nopt/CHANGELOG.md delete mode 100644 deps/npm/node_modules/nopt/LICENSE delete mode 100644 deps/npm/node_modules/nopt/README.md delete mode 100755 deps/npm/node_modules/nopt/bin/nopt.js delete mode 100755 deps/npm/node_modules/nopt/examples/my-program.js delete mode 100644 deps/npm/node_modules/nopt/lib/nopt.js delete mode 100644 deps/npm/node_modules/nopt/package.json delete mode 100644 deps/npm/node_modules/nopt/test/basic.js delete mode 100644 deps/npm/node_modules/normalize-package-data/AUTHORS delete mode 100644 deps/npm/node_modules/normalize-package-data/LICENSE delete mode 100644 deps/npm/node_modules/normalize-package-data/README.md delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/extract_description.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/fixer.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/make_warning.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/normalize.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/safe_format.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/typos.json delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/warning_messages.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md delete mode 100644 deps/npm/node_modules/normalize-package-data/package.json delete mode 100644 deps/npm/node_modules/npm-cache-filename/LICENSE delete mode 100644 deps/npm/node_modules/npm-cache-filename/README.md delete mode 100644 deps/npm/node_modules/npm-cache-filename/index.js delete mode 100644 deps/npm/node_modules/npm-cache-filename/package.json delete mode 100644 deps/npm/node_modules/npm-cache-filename/test.js delete mode 100644 deps/npm/node_modules/npm-install-checks/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-install-checks/LICENSE delete mode 100644 deps/npm/node_modules/npm-install-checks/README.md delete mode 100644 deps/npm/node_modules/npm-install-checks/index.js delete mode 100644 deps/npm/node_modules/npm-install-checks/package.json delete mode 100644 deps/npm/node_modules/npm-install-checks/test/check-engine.js delete mode 100644 deps/npm/node_modules/npm-install-checks/test/check-git.js delete mode 100644 deps/npm/node_modules/npm-install-checks/test/check-platform.js delete mode 100644 deps/npm/node_modules/npm-lifecycle/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-lifecycle/LICENSE delete mode 100644 deps/npm/node_modules/npm-lifecycle/README.md delete mode 100644 deps/npm/node_modules/npm-lifecycle/index.js delete mode 100644 deps/npm/node_modules/npm-lifecycle/lib/spawn.js delete mode 100755 deps/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp delete mode 100755 deps/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp.cmd delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/LICENSE delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/README.md delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/lib/byline.js delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/package.json delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/index.js delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/license delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/package.json delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/readme.md delete mode 100644 deps/npm/node_modules/npm-lifecycle/package.json delete mode 100644 deps/npm/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/package.json delete mode 100644 deps/npm/node_modules/npm-profile/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/README.md delete mode 100644 deps/npm/node_modules/npm-profile/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/cache.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.es.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/en.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/es.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/get.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/path.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/read.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/rm.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/write.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/entry-index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/memoization.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/move-file.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/tmp.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/y.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/verify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/ls.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/put.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/rm.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/verify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/extend-node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/streams.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.editorconfig delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.editorconfig delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.eslintrc.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/bower.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.umd.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/test/api-test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/lib/smart-buffer.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/test/smart-buffer.test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/typings/index.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/warning.js delete mode 100644 deps/npm/node_modules/npm-profile/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/README.md delete mode 100644 deps/npm/node_modules/npm-registry-client/index.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/access.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/adduser.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/attempt.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/authify.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/deprecate.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/dist-tags/add.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/dist-tags/rm.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/dist-tags/set.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/dist-tags/update.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/fetch.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/get.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/initialize.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/logout.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/org.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/ping.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/publish.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/request.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/send-anonymous-CLI-metrics.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/star.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/stars.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/tag.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/team.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/unpublish.js delete mode 100644 deps/npm/node_modules/npm-registry-client/lib/whoami.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/ssri/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/package.json delete mode 100644 deps/npm/node_modules/npm-user-validate/LICENSE delete mode 100644 deps/npm/node_modules/npm-user-validate/README.md delete mode 100644 deps/npm/node_modules/npm-user-validate/npm-user-validate.js delete mode 100644 deps/npm/node_modules/npm-user-validate/package.json delete mode 100644 deps/npm/node_modules/npmlog/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/README.md delete mode 100644 deps/npm/node_modules/npmlog/log.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/base-theme.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/error.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/has-color.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/align.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/plumbing.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/process.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/render-template.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/set-immediate.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/set-interval.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/spin.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/template-item.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/theme-set.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/themes.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/wide-truncate.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/LICENSE.txt delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/package.json delete mode 100644 deps/npm/node_modules/npmlog/package.json delete mode 100644 deps/npm/node_modules/once/LICENSE delete mode 100644 deps/npm/node_modules/once/README.md delete mode 100644 deps/npm/node_modules/once/once.js delete mode 100644 deps/npm/node_modules/once/package.json delete mode 100644 deps/npm/node_modules/opener/LICENSE.txt delete mode 100644 deps/npm/node_modules/opener/README.md delete mode 100755 deps/npm/node_modules/opener/opener.js delete mode 100644 deps/npm/node_modules/opener/package.json delete mode 100644 deps/npm/node_modules/osenv/.npmignore delete mode 100644 deps/npm/node_modules/osenv/.travis.yml delete mode 100644 deps/npm/node_modules/osenv/LICENSE delete mode 100644 deps/npm/node_modules/osenv/README.md delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/index.js delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/license delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/package.json delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/license delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md delete mode 100644 deps/npm/node_modules/osenv/osenv.js delete mode 100644 deps/npm/node_modules/osenv/package.json delete mode 100644 deps/npm/node_modules/osenv/test/unix.js delete mode 100644 deps/npm/node_modules/osenv/test/windows.js delete mode 100644 deps/npm/node_modules/osenv/x.tap delete mode 100644 deps/npm/node_modules/pacote/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/LICENSE delete mode 100644 deps/npm/node_modules/pacote/README.md delete mode 100644 deps/npm/node_modules/pacote/extract.js delete mode 100644 deps/npm/node_modules/pacote/index.js delete mode 100644 deps/npm/node_modules/pacote/lib/extract-stream.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetch.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/directory.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/file.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/git.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/hosted.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/range.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/check-warning-header.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/fetch.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/index.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/manifest.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/pick-registry.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/registry-key.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/registry/tarball.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/remote.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/tag.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetchers/version.js delete mode 100644 deps/npm/node_modules/pacote/lib/finalize-manifest.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/cache-key.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/git.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/opt-check.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/pack-dir.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/silentlog.js delete mode 100644 deps/npm/node_modules/pacote/manifest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/extend-node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/streams.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/test/api-test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/lib/smart-buffer.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/test/smart-buffer.test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/typings/index.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/warning.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/.editorconfig delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.editorconfig delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.eslintrc.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/bower.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.umd.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/genfun.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/method.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/role.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/util.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/package.json delete mode 100644 deps/npm/node_modules/pacote/package.json delete mode 100644 deps/npm/node_modules/pacote/prefetch.js delete mode 100644 deps/npm/node_modules/pacote/tarball.js delete mode 100644 deps/npm/node_modules/path-is-inside/LICENSE.txt delete mode 100644 deps/npm/node_modules/path-is-inside/lib/path-is-inside.js delete mode 100644 deps/npm/node_modules/path-is-inside/package.json delete mode 100644 deps/npm/node_modules/promise-inflight/LICENSE delete mode 100644 deps/npm/node_modules/promise-inflight/README.md delete mode 100644 deps/npm/node_modules/promise-inflight/inflight.js delete mode 100644 deps/npm/node_modules/promise-inflight/package.json delete mode 100644 deps/npm/node_modules/qrcode-terminal/.npmignore delete mode 100644 deps/npm/node_modules/qrcode-terminal/.travis.yml delete mode 100644 deps/npm/node_modules/qrcode-terminal/LICENSE delete mode 100644 deps/npm/node_modules/qrcode-terminal/README.md delete mode 100755 deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/basic.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/basic.png delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/callback.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/small-qrcode.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/lib/main.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/package.json delete mode 100644 deps/npm/node_modules/qrcode-terminal/test/main.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMath.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMode.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js delete mode 100644 deps/npm/node_modules/query-string/index.js delete mode 100644 deps/npm/node_modules/query-string/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/index.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/package.json delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/readme.md delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/index.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/package.json delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/readme.md delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/index.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/package.json delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/readme.md delete mode 100644 deps/npm/node_modules/query-string/package.json delete mode 100644 deps/npm/node_modules/query-string/readme.md delete mode 100644 deps/npm/node_modules/qw/LICENSE delete mode 100644 deps/npm/node_modules/qw/README.md delete mode 100644 deps/npm/node_modules/qw/package.json delete mode 100644 deps/npm/node_modules/qw/qw.js delete mode 100644 deps/npm/node_modules/read-cmd-shim/.npmignore delete mode 100644 deps/npm/node_modules/read-cmd-shim/README.md delete mode 100644 deps/npm/node_modules/read-cmd-shim/index.js delete mode 100644 deps/npm/node_modules/read-cmd-shim/package.json delete mode 100644 deps/npm/node_modules/read-cmd-shim/test/integration.js delete mode 100644 deps/npm/node_modules/read-installed/.npmignore delete mode 100644 deps/npm/node_modules/read-installed/.travis.yml delete mode 100644 deps/npm/node_modules/read-installed/LICENSE delete mode 100644 deps/npm/node_modules/read-installed/README.md delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/LICENSE delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/README.md delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/package.json delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/test.js delete mode 100644 deps/npm/node_modules/read-installed/package.json delete mode 100644 deps/npm/node_modules/read-installed/read-installed.js delete mode 100644 deps/npm/node_modules/read-installed/test/basic.js delete mode 100644 deps/npm/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js delete mode 100644 deps/npm/node_modules/read-installed/test/depth-0.js delete mode 100644 deps/npm/node_modules/read-installed/test/depth-1.js delete mode 100644 deps/npm/node_modules/read-installed/test/dev.js delete mode 100644 deps/npm/node_modules/read-installed/test/empty.js delete mode 100644 deps/npm/node_modules/read-installed/test/extraneous-dev.js delete mode 100644 deps/npm/node_modules/read-installed/test/extraneous.js delete mode 100644 deps/npm/node_modules/read-installed/test/fixtures/extraneous-detected/package.json delete mode 100644 deps/npm/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json delete mode 100644 deps/npm/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json delete mode 100644 deps/npm/node_modules/read-installed/test/fixtures/grandparent-peer/package.json delete mode 100644 deps/npm/node_modules/read-installed/test/fixtures/package.json delete mode 100644 deps/npm/node_modules/read-installed/test/grandparent-peer-dev.js delete mode 100644 deps/npm/node_modules/read-installed/test/grandparent-peer.js delete mode 100644 deps/npm/node_modules/read-installed/test/issue-40.js delete mode 100644 deps/npm/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js delete mode 100644 deps/npm/node_modules/read-installed/test/noargs.js delete mode 100644 deps/npm/node_modules/read-installed/test/peer-dep-at-latest.js delete mode 100644 deps/npm/node_modules/read-package-json/LICENSE delete mode 100644 deps/npm/node_modules/read-package-json/README.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/README.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/index.js delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/package.json delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/slash/index.js delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/slash/package.json delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/slash/readme.md delete mode 100644 deps/npm/node_modules/read-package-json/package.json delete mode 100644 deps/npm/node_modules/read-package-json/read-json.js delete mode 100644 deps/npm/node_modules/read-package-tree/LICENSE delete mode 100644 deps/npm/node_modules/read-package-tree/README.md delete mode 100644 deps/npm/node_modules/read-package-tree/package.json delete mode 100644 deps/npm/node_modules/read-package-tree/rpt.js delete mode 100644 deps/npm/node_modules/read/LICENSE delete mode 100644 deps/npm/node_modules/read/README.md delete mode 100644 deps/npm/node_modules/read/lib/read.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/.travis.yml delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/LICENSE delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/README.md delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/index.html delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/base.css delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/index.html delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.css delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sorter.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov.info delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/mute.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/package.json delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js delete mode 100644 deps/npm/node_modules/read/package.json delete mode 100644 deps/npm/node_modules/readable-stream/.npmignore delete mode 100644 deps/npm/node_modules/readable-stream/.travis.yml delete mode 100644 deps/npm/node_modules/readable-stream/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/readable-stream/GOVERNANCE.md delete mode 100644 deps/npm/node_modules/readable-stream/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/README.md delete mode 100644 deps/npm/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md delete mode 100644 deps/npm/node_modules/readable-stream/duplex-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/duplex.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/stream-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/stream.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/component.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/index.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/test.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json delete mode 100644 deps/npm/node_modules/readable-stream/package.json delete mode 100644 deps/npm/node_modules/readable-stream/passthrough.js delete mode 100644 deps/npm/node_modules/readable-stream/readable-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/readable.js delete mode 100644 deps/npm/node_modules/readable-stream/transform.js delete mode 100644 deps/npm/node_modules/readable-stream/writable-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/writable.js delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/.travis.yml delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/LICENSE delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/README.md delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/package.json delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/readdir.js delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/basic.js delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep delete mode 100644 deps/npm/node_modules/request/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/LICENSE delete mode 100644 deps/npm/node_modules/request/README.md delete mode 100755 deps/npm/node_modules/request/index.js delete mode 100644 deps/npm/node_modules/request/lib/auth.js delete mode 100644 deps/npm/node_modules/request/lib/cookies.js delete mode 100644 deps/npm/node_modules/request/lib/getProxyFromURI.js delete mode 100644 deps/npm/node_modules/request/lib/har.js delete mode 100644 deps/npm/node_modules/request/lib/helpers.js delete mode 100644 deps/npm/node_modules/request/lib/multipart.js delete mode 100644 deps/npm/node_modules/request/lib/oauth.js delete mode 100644 deps/npm/node_modules/request/lib/querystring.js delete mode 100644 deps/npm/node_modules/request/lib/redirect.js delete mode 100644 deps/npm/node_modules/request/lib/tunnel.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/.tern-port delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/aws4.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/lru.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/License delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/extend/.jscs.json delete mode 100644 deps/npm/node_modules/request/node_modules/extend/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/extend/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/extend/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/extend/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/extend/component.json delete mode 100644 deps/npm/node_modules/request/node_modules/extend/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/extend/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/License delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/README.md.bak delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/lib/browser.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/lib/populate.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/bench.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/abort.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/async.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/defer.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/iterate.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_asynckit.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_parallel.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial_ordered.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/state.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/streamify.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/terminator.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/parallel.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serial.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serialOrdered.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/stream.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/lib/async.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/lib/error.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/lib/promise.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/.tonic_example.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.bundle.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js.map delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/nodent.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/$data.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.d.ts delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/cache.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/_rules.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/async.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/equal.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/error_classes.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/formats.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/resolve.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/rules.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/schema_obj.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/ucs2length.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/util.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limit.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitItems.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitLength.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitProperties.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/allOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/anyOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/coerce.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/const.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/contains.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/custom.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/defaults.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/definitions.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/dependencies.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/enum.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/errors.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/format.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/items.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/missing.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/multipleOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/not.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/oneOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/pattern.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/properties.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/propertyNames.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/ref.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/required.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/uniqueItems.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/validate.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limit.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitItems.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitLength.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitProperties.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/allOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/anyOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/const.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/contains.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/custom.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/dependencies.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/enum.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/format.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/items.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/multipleOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/not.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/oneOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/pattern.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/properties.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/propertyNames.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/ref.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/required.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/uniqueItems.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/validate.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/keyword.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/patternGroups.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/$data.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-04.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-06.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-v5.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/History.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/index.spec.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/tests.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/fixtures/schema.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/index.spec.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/key_cmp.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/nested.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/str.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/value_cmp.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/README.markdown delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/readme.markdown delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/cmp.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/nested.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/replacer.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/space.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/str.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/to-json.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/bundle.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/compile-dots.js delete mode 100755 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/info delete mode 100755 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/prepare-tests delete mode 100755 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/travis-gh-pages delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/afterRequest.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/beforeRequest.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/browser.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cache.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/content.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cookie.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/creator.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/entry.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/har.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/header.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/log.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/page.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/pageTimings.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/postData.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/query.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/request.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/response.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/timings.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/.npmignore delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/client.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/dist/browser.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/browser.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/client.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/index.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/server.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/utils.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/http_signing.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/AUTHORS delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/lib/jsprim.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.gitmodules delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile.targ delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/jsl.node.conf delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/lib/extsprintf.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/address delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/calendar delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/card delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/geo delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/interfaces delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-03.xml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-04.xml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/links.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/validate.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/test/tests.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/lib/verror.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv delete mode 100755 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-sign delete mode 100755 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-verify delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/algs.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/certificate.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/dhe.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ed-compat.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/errors.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/fingerprint.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/openssh-cert.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pem.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs1.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs8.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/rfc4253.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh-private.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509-pem.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/identity.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/key.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ssh-buffer.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-conv.1 delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-sign.1 delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-verify.1 delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/errors.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/reader.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/types.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/writer.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/reader.test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/writer.test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/LICENSE.txt delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/etc/dashdash.bash_completion.in delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/LICENSE-jsbn delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/ec.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/sec.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.html delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/AUTHORS.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.d.ts delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/LICENSE.md delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/isstream.js delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/.tm_properties delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js.map delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/license.txt delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/src/index.d.ts delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/src/performance-now.coffee delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/test/mocha.opts delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/test/performance-now.coffee delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/test/scripts.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-call.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-require.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/difference.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/initial-value.coffee delete mode 100644 deps/npm/node_modules/request/node_modules/qs/.editorconfig delete mode 100644 deps/npm/node_modules/request/node_modules/qs/.eslintignore delete mode 100644 deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/qs/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/qs/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/qs/dist/qs.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/formats.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/example.js delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/stringstream.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/package.json delete mode 100644 deps/npm/node_modules/request/package.json delete mode 100644 deps/npm/node_modules/request/request.js delete mode 100644 deps/npm/node_modules/retry/.npmignore delete mode 100644 deps/npm/node_modules/retry/License delete mode 100644 deps/npm/node_modules/retry/Makefile delete mode 100644 deps/npm/node_modules/retry/Readme.md delete mode 100644 deps/npm/node_modules/retry/equation.gif delete mode 100644 deps/npm/node_modules/retry/example/dns.js delete mode 100644 deps/npm/node_modules/retry/example/stop.js delete mode 100644 deps/npm/node_modules/retry/index.js delete mode 100644 deps/npm/node_modules/retry/lib/retry.js delete mode 100644 deps/npm/node_modules/retry/lib/retry_operation.js delete mode 100644 deps/npm/node_modules/retry/package.json delete mode 100644 deps/npm/node_modules/retry/test/common.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-forever.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-retry-operation.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-retry-wrap.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-timeouts.js delete mode 100644 deps/npm/node_modules/retry/test/runner.js delete mode 100644 deps/npm/node_modules/rimraf/LICENSE delete mode 100644 deps/npm/node_modules/rimraf/README.md delete mode 100755 deps/npm/node_modules/rimraf/bin.js delete mode 100644 deps/npm/node_modules/rimraf/package.json delete mode 100644 deps/npm/node_modules/rimraf/rimraf.js delete mode 100644 deps/npm/node_modules/safe-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/safe-buffer/LICENSE delete mode 100644 deps/npm/node_modules/safe-buffer/README.md delete mode 100644 deps/npm/node_modules/safe-buffer/index.js delete mode 100644 deps/npm/node_modules/safe-buffer/package.json delete mode 100644 deps/npm/node_modules/safe-buffer/test.js delete mode 100644 deps/npm/node_modules/semver/LICENSE delete mode 100644 deps/npm/node_modules/semver/README.md delete mode 100755 deps/npm/node_modules/semver/bin/semver delete mode 100644 deps/npm/node_modules/semver/package.json delete mode 100644 deps/npm/node_modules/semver/range.bnf delete mode 100644 deps/npm/node_modules/semver/semver.js delete mode 100644 deps/npm/node_modules/sha/.npmignore delete mode 100644 deps/npm/node_modules/sha/LICENSE delete mode 100644 deps/npm/node_modules/sha/README.md delete mode 100644 deps/npm/node_modules/sha/index.js delete mode 100644 deps/npm/node_modules/sha/package.json delete mode 100644 deps/npm/node_modules/slide/LICENSE delete mode 100644 deps/npm/node_modules/slide/README.md delete mode 100644 deps/npm/node_modules/slide/index.js delete mode 100644 deps/npm/node_modules/slide/lib/async-map-ordered.js delete mode 100644 deps/npm/node_modules/slide/lib/async-map.js delete mode 100644 deps/npm/node_modules/slide/lib/bind-actor.js delete mode 100644 deps/npm/node_modules/slide/lib/chain.js delete mode 100644 deps/npm/node_modules/slide/lib/slide.js delete mode 100644 deps/npm/node_modules/slide/package.json delete mode 100644 deps/npm/node_modules/sorted-object/LICENSE.txt delete mode 100644 deps/npm/node_modules/sorted-object/lib/sorted-object.js delete mode 100644 deps/npm/node_modules/sorted-object/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/.travis.yml delete mode 100644 deps/npm/node_modules/sorted-union-stream/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/example.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/LICENSE.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/duplex.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/float.patch delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/build/build.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/component.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/passthrough.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/readable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/transform.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/writable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/test.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.travis.yml delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.travis.yml delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/test.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/test.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/test.js delete mode 100644 deps/npm/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/ssri/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/tar/LICENSE delete mode 100644 deps/npm/node_modules/tar/README.md delete mode 100644 deps/npm/node_modules/tar/index.js delete mode 100644 deps/npm/node_modules/tar/lib/create.js delete mode 100644 deps/npm/node_modules/tar/lib/extract.js delete mode 100644 deps/npm/node_modules/tar/lib/header.js delete mode 100644 deps/npm/node_modules/tar/lib/high-level-opt.js delete mode 100644 deps/npm/node_modules/tar/lib/large-numbers.js delete mode 100644 deps/npm/node_modules/tar/lib/list.js delete mode 100644 deps/npm/node_modules/tar/lib/mkdir.js delete mode 100644 deps/npm/node_modules/tar/lib/pack.js delete mode 100644 deps/npm/node_modules/tar/lib/parse.js delete mode 100644 deps/npm/node_modules/tar/lib/pax.js delete mode 100644 deps/npm/node_modules/tar/lib/read-entry.js delete mode 100644 deps/npm/node_modules/tar/lib/replace.js delete mode 100644 deps/npm/node_modules/tar/lib/types.js delete mode 100644 deps/npm/node_modules/tar/lib/unpack.js delete mode 100644 deps/npm/node_modules/tar/lib/update.js delete mode 100644 deps/npm/node_modules/tar/lib/warn-mixin.js delete mode 100644 deps/npm/node_modules/tar/lib/winchars.js delete mode 100644 deps/npm/node_modules/tar/lib/write-entry.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/.npmignore delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/.travis.yml delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/README.md delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/b.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-minipass.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-through2.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-transform.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/nullsink.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/numbers.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/timer.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/test.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/d.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/e.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/eos.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/foo delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/index.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/minipass-benchmarks.xlsx delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/package.json delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/test/basic.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/test/empty-end.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/LICENSE delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/README.md delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/constants.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/index.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/package.json delete mode 100644 deps/npm/node_modules/tar/node_modules/yallist/LICENSE delete mode 100644 deps/npm/node_modules/tar/node_modules/yallist/README.md delete mode 100644 deps/npm/node_modules/tar/node_modules/yallist/iterator.js delete mode 100644 deps/npm/node_modules/tar/node_modules/yallist/package.json delete mode 100644 deps/npm/node_modules/tar/node_modules/yallist/yallist.js delete mode 100644 deps/npm/node_modules/tar/package.json delete mode 100644 deps/npm/node_modules/text-table/.travis.yml delete mode 100644 deps/npm/node_modules/text-table/LICENSE delete mode 100644 deps/npm/node_modules/text-table/example/align.js delete mode 100644 deps/npm/node_modules/text-table/example/center.js delete mode 100644 deps/npm/node_modules/text-table/example/dotalign.js delete mode 100644 deps/npm/node_modules/text-table/example/doubledot.js delete mode 100644 deps/npm/node_modules/text-table/example/table.js delete mode 100644 deps/npm/node_modules/text-table/index.js delete mode 100644 deps/npm/node_modules/text-table/package.json delete mode 100644 deps/npm/node_modules/text-table/readme.markdown delete mode 100644 deps/npm/node_modules/text-table/test/align.js delete mode 100644 deps/npm/node_modules/text-table/test/ansi-colors.js delete mode 100644 deps/npm/node_modules/text-table/test/center.js delete mode 100644 deps/npm/node_modules/text-table/test/dotalign.js delete mode 100644 deps/npm/node_modules/text-table/test/doubledot.js delete mode 100644 deps/npm/node_modules/text-table/test/table.js delete mode 100644 deps/npm/node_modules/uid-number/LICENSE delete mode 100644 deps/npm/node_modules/uid-number/README.md delete mode 100755 deps/npm/node_modules/uid-number/get-uid-gid.js delete mode 100644 deps/npm/node_modules/uid-number/package.json delete mode 100644 deps/npm/node_modules/uid-number/uid-number.js delete mode 100644 deps/npm/node_modules/umask/.npmignore delete mode 100644 deps/npm/node_modules/umask/ChangeLog delete mode 100644 deps/npm/node_modules/umask/LICENSE delete mode 100644 deps/npm/node_modules/umask/README.md delete mode 100644 deps/npm/node_modules/umask/index.js delete mode 100644 deps/npm/node_modules/umask/package.json delete mode 100644 deps/npm/node_modules/umask/test/simple.js delete mode 100644 deps/npm/node_modules/unique-filename/.npmignore delete mode 100644 deps/npm/node_modules/unique-filename/README.md delete mode 100644 deps/npm/node_modules/unique-filename/coverage/__root__/index.html delete mode 100644 deps/npm/node_modules/unique-filename/coverage/__root__/index.js.html delete mode 100644 deps/npm/node_modules/unique-filename/coverage/base.css delete mode 100644 deps/npm/node_modules/unique-filename/coverage/index.html delete mode 100644 deps/npm/node_modules/unique-filename/coverage/prettify.css delete mode 100644 deps/npm/node_modules/unique-filename/coverage/prettify.js delete mode 100644 deps/npm/node_modules/unique-filename/coverage/sort-arrow-sprite.png delete mode 100644 deps/npm/node_modules/unique-filename/coverage/sorter.js delete mode 100644 deps/npm/node_modules/unique-filename/index.js delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/README.md delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/index.js delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/package.json delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js delete mode 100644 deps/npm/node_modules/unique-filename/package.json delete mode 100644 deps/npm/node_modules/unique-filename/test/index.js delete mode 100644 deps/npm/node_modules/unpipe/HISTORY.md delete mode 100644 deps/npm/node_modules/unpipe/LICENSE delete mode 100644 deps/npm/node_modules/unpipe/README.md delete mode 100644 deps/npm/node_modules/unpipe/index.js delete mode 100644 deps/npm/node_modules/unpipe/package.json delete mode 100644 deps/npm/node_modules/update-notifier/check.js delete mode 100644 deps/npm/node_modules/update-notifier/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/boxes.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md delete mode 100755 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-npm/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-npm/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-npm/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/LICENSE.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/base64.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.BSD delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.MIT delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/browser.js delete mode 100755 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/lib/utils.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/example/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/readme.markdown delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/all_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/dash.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/default_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/dotted.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/kv_short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/long.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/num.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/parse_modified.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/stop_early.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/unknown.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/whitespace.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/test/ini.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/test/nested-env-vars.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/test/test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/registry-url.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/auth-token.test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/registry-url.test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/yarn.lock delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.BSD delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.MIT delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/browser.js delete mode 100755 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/example/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/readme.markdown delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/all_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/dash.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/default_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/dotted.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/kv_short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/long.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/num.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/parse_modified.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/stop_early.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/unknown.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/whitespace.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/ini.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/nested-env-vars.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/package.json delete mode 100644 deps/npm/node_modules/update-notifier/readme.md delete mode 100644 deps/npm/node_modules/uuid/.eslintrc.json delete mode 100644 deps/npm/node_modules/uuid/AUTHORS delete mode 100644 deps/npm/node_modules/uuid/HISTORY.md delete mode 100644 deps/npm/node_modules/uuid/LICENSE.md delete mode 100644 deps/npm/node_modules/uuid/README.md delete mode 100755 deps/npm/node_modules/uuid/bin/uuid delete mode 100644 deps/npm/node_modules/uuid/index.js delete mode 100644 deps/npm/node_modules/uuid/lib/bytesToUuid.js delete mode 100644 deps/npm/node_modules/uuid/lib/rng-browser.js delete mode 100644 deps/npm/node_modules/uuid/lib/rng.js delete mode 100644 deps/npm/node_modules/uuid/lib/sha1-browser.js delete mode 100644 deps/npm/node_modules/uuid/lib/sha1.js delete mode 100644 deps/npm/node_modules/uuid/package.json delete mode 100644 deps/npm/node_modules/uuid/v1.js delete mode 100644 deps/npm/node_modules/uuid/v4.js delete mode 100644 deps/npm/node_modules/uuid/v5.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/AUTHORS delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/.npmignore delete mode 100644 deps/npm/node_modules/validate-npm-package-name/.travis.yml delete mode 100644 deps/npm/node_modules/validate-npm-package-name/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-name/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-name/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/License delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/test.js delete mode 100644 deps/npm/node_modules/validate-npm-package-name/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/test/index.js delete mode 100644 deps/npm/node_modules/which/CHANGELOG.md delete mode 100644 deps/npm/node_modules/which/LICENSE delete mode 100644 deps/npm/node_modules/which/README.md delete mode 100755 deps/npm/node_modules/which/bin/which delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/.npmignore delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/LICENSE delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/README.md delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/index.js delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/mode.js delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/package.json delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/test/basic.js delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/windows.js delete mode 100644 deps/npm/node_modules/which/package.json delete mode 100644 deps/npm/node_modules/which/which.js delete mode 100644 deps/npm/node_modules/worker-farm/.travis.yml delete mode 100644 deps/npm/node_modules/worker-farm/LICENSE.md delete mode 100644 deps/npm/node_modules/worker-farm/README.md delete mode 100644 deps/npm/node_modules/worker-farm/examples/basic/child.js delete mode 100644 deps/npm/node_modules/worker-farm/examples/basic/index.js delete mode 100644 deps/npm/node_modules/worker-farm/examples/pi/calc.js delete mode 100644 deps/npm/node_modules/worker-farm/examples/pi/index.js delete mode 100644 deps/npm/node_modules/worker-farm/index.d.ts delete mode 100644 deps/npm/node_modules/worker-farm/lib/child/index.js delete mode 100644 deps/npm/node_modules/worker-farm/lib/farm.js delete mode 100644 deps/npm/node_modules/worker-farm/lib/fork.js delete mode 100644 deps/npm/node_modules/worker-farm/lib/index.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/.npmignore delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/README.md delete mode 100755 deps/npm/node_modules/worker-farm/node_modules/errno/build.js delete mode 100755 deps/npm/node_modules/worker-farm/node_modules/errno/cli.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/custom.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/errno.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.npmignore delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.travis.yml delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/LICENSE delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/README.md delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/package.json delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/prr.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/test.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/package.json delete mode 100755 deps/npm/node_modules/worker-farm/node_modules/errno/test.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/.npmignore delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/LICENCE delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/Makefile delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/README.md delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/immutable.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/mutable.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/package.json delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/test.js delete mode 100644 deps/npm/node_modules/worker-farm/package.json delete mode 100644 deps/npm/node_modules/wrappy/LICENSE delete mode 100644 deps/npm/node_modules/wrappy/README.md delete mode 100644 deps/npm/node_modules/wrappy/package.json delete mode 100644 deps/npm/node_modules/wrappy/wrappy.js delete mode 100644 deps/npm/node_modules/write-file-atomic/LICENSE delete mode 100644 deps/npm/node_modules/write-file-atomic/README.md delete mode 100644 deps/npm/node_modules/write-file-atomic/index.js delete mode 100644 deps/npm/node_modules/write-file-atomic/package.json delete mode 100644 deps/npm/package.json delete mode 100644 deps/npm/scripts/changelog.js delete mode 100755 deps/npm/scripts/clean-old.sh delete mode 100755 deps/npm/scripts/dep-update delete mode 100755 deps/npm/scripts/dev-dep-update delete mode 100755 deps/npm/scripts/doc-build.sh delete mode 100755 deps/npm/scripts/gen-changelog delete mode 100755 deps/npm/scripts/index-build.js delete mode 100755 deps/npm/scripts/install.sh delete mode 100755 deps/npm/scripts/maketest delete mode 100644 deps/npm/scripts/publish-tag.js delete mode 100644 deps/npm/scripts/release.sh delete mode 100755 deps/npm/scripts/relocate.sh delete mode 100755 deps/npm/scripts/update-authors.sh delete mode 100644 deps/npm/test/broken-under-nyc-and-travis/lifecycle-path.js delete mode 100644 deps/npm/test/broken-under-nyc-and-travis/whoami.js delete mode 100644 deps/npm/test/common-tap.js delete mode 100644 deps/npm/test/fixtures/config/builtin delete mode 100644 deps/npm/test/fixtures/config/globalconfig delete mode 100644 deps/npm/test/fixtures/config/malformed delete mode 100644 deps/npm/test/fixtures/config/multi-ca delete mode 100644 deps/npm/test/fixtures/config/userconfig delete mode 100644 deps/npm/test/fixtures/forked-underscore-1.5.1.tgz delete mode 100644 deps/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-bar.git.tar.gz delete mode 100644 deps/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-buzz.git.tar.gz delete mode 100644 deps/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-foo.git.tar.gz delete mode 100644 deps/npm/test/fixtures/github-com-BryanDonovan-npm-git-test.git.tar.gz delete mode 100644 deps/npm/test/fixtures/gitignore-and-npmignore-2.tar delete mode 100644 deps/npm/test/fixtures/gitignore-and-npmignore.tar delete mode 100644 deps/npm/test/fixtures/gitignore-and-npmignore.tgz delete mode 100644 deps/npm/test/fixtures/gitignore.tgz delete mode 100644 deps/npm/test/fixtures/npmignore.tgz delete mode 100644 deps/npm/test/fixtures/onload.js delete mode 100644 deps/npm/test/fixtures/scoped-underscore-1.3.1.tgz delete mode 100644 deps/npm/test/need-npm5-update/belongs-in-pacote/add-remote-git-get-resolved.js delete mode 100644 deps/npm/test/need-npm5-update/belongs-in-pacote/git-races.js delete mode 100644 deps/npm/test/need-npm5-update/ignore-shrinkwrap.js delete mode 100644 deps/npm/test/need-npm5-update/legacy-array-bin.js delete mode 100644 deps/npm/test/need-npm5-update/legacy-dir-bin.js delete mode 100644 deps/npm/test/need-npm5-update/legacy-npm-self-install.js delete mode 100644 deps/npm/test/need-npm5-update/legacy-optional-deps.js delete mode 100644 deps/npm/test/need-npm5-update/legacy-shrinkwrap.js delete mode 100644 deps/npm/test/need-npm5-update/lifecycle-signal.js delete mode 100644 deps/npm/test/need-npm5-update/move-no-clobber-dest-node-modules.js delete mode 100644 deps/npm/test/need-npm5-update/need-only-update-save-optional/update-save.js delete mode 100644 deps/npm/test/need-npm5-update/need-outdated/update-symlink.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-depth-deep.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-depth-integer.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-include-devdependencies.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-local.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-new-versions.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-notarget.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-private.js delete mode 100644 deps/npm/test/need-npm5-update/outdated-symlink.js delete mode 100644 deps/npm/test/need-npm5-update/peer-deps-invalid.js delete mode 100644 deps/npm/test/need-npm5-update/peer-deps-toplevel.js delete mode 100644 deps/npm/test/need-npm5-update/peer-deps-without-package-json.js delete mode 100644 deps/npm/test/need-npm5-update/rm-linked.js delete mode 100644 deps/npm/test/need-npm5-update/shrinkwrap-complete-except-dev.js delete mode 100644 deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js delete mode 100644 deps/npm/test/network/git-cache-locking.js delete mode 100644 deps/npm/test/network/git-cache-no-hooks.js delete mode 100644 deps/npm/test/network/legacy-bundled-git.js delete mode 100644 deps/npm/test/network/legacy-url-dep.js delete mode 100644 deps/npm/test/network/registry.js delete mode 100644 deps/npm/test/tap/00-check-mock-dep.js delete mode 100644 deps/npm/test/tap/00-config-setup.js delete mode 100644 deps/npm/test/tap/00-verify-bundle-deps.js delete mode 100644 deps/npm/test/tap/00-verify-ls-ok.js delete mode 100644 deps/npm/test/tap/00-verify-no-scoped.js delete mode 100644 deps/npm/test/tap/404-parent.js delete mode 100644 deps/npm/test/tap/404-private-registry-scoped.js delete mode 100644 deps/npm/test/tap/404-private-registry.js delete mode 100644 deps/npm/test/tap/access.js delete mode 100644 deps/npm/test/tap/add-named-update-protocol-port.js delete mode 100644 deps/npm/test/tap/add-remote-git-file.js delete mode 100644 deps/npm/test/tap/add-remote-git-shrinkwrap.js delete mode 100644 deps/npm/test/tap/add-remote-git-submodule.js delete mode 100644 deps/npm/test/tap/add-remote-git.js delete mode 100644 deps/npm/test/tap/adduser-always-auth.js delete mode 100644 deps/npm/test/tap/adduser-legacy-auth.js delete mode 100644 deps/npm/test/tap/adduser-oauth.js delete mode 100644 deps/npm/test/tap/adduser-saml.js delete mode 100644 deps/npm/test/tap/all-package-metadata-cache-stream-unit.js delete mode 100644 deps/npm/test/tap/all-package-metadata-entry-stream-unit.js delete mode 100644 deps/npm/test/tap/all-package-metadata-update-stream-unit.js delete mode 100644 deps/npm/test/tap/all-package-metadata-write-stream-unit.js delete mode 100644 deps/npm/test/tap/all-package-metadata.js delete mode 100644 deps/npm/test/tap/anon-cli-metrics.js delete mode 100644 deps/npm/test/tap/bearer-token-check.js delete mode 100644 deps/npm/test/tap/bin.js delete mode 100644 deps/npm/test/tap/bitbucket-https-url-with-creds-package.js delete mode 100644 deps/npm/test/tap/bitbucket-https-url-with-creds.js delete mode 100644 deps/npm/test/tap/bitbucket-shortcut-package.js delete mode 100644 deps/npm/test/tap/bitbucket-shortcut.js delete mode 100644 deps/npm/test/tap/bugs.js delete mode 100644 deps/npm/test/tap/build-already-built.js delete mode 100644 deps/npm/test/tap/builtin-config.js delete mode 100644 deps/npm/test/tap/bundled-dependencies-no-pkgjson.js delete mode 100644 deps/npm/test/tap/bundled-dependencies-nonarray.js delete mode 100644 deps/npm/test/tap/bundled-dependencies.js delete mode 100644 deps/npm/test/tap/bundled-no-add-to-move.js delete mode 100644 deps/npm/test/tap/bundled-transitive-deps.js delete mode 100644 deps/npm/test/tap/cache-add-unpublished.js delete mode 100644 deps/npm/test/tap/cache-shasum-fork.js delete mode 100644 deps/npm/test/tap/check-cpu-reqs.js delete mode 100644 deps/npm/test/tap/check-engine-reqs.js delete mode 100644 deps/npm/test/tap/check-install-self.js delete mode 100644 deps/npm/test/tap/check-os-reqs.js delete mode 100644 deps/npm/test/tap/check-permissions.js delete mode 100644 deps/npm/test/tap/ci-header.js delete mode 100644 deps/npm/test/tap/circular-dep.js delete mode 100644 deps/npm/test/tap/config-basic.js delete mode 100644 deps/npm/test/tap/config-builtin.js delete mode 100644 deps/npm/test/tap/config-certfile.js delete mode 100644 deps/npm/test/tap/config-credentials.js delete mode 100644 deps/npm/test/tap/config-edit.js delete mode 100644 deps/npm/test/tap/config-list.js delete mode 100644 deps/npm/test/tap/config-malformed.js delete mode 100644 deps/npm/test/tap/config-meta.js delete mode 100644 deps/npm/test/tap/config-new-cafile.js delete mode 100644 deps/npm/test/tap/config-private.js delete mode 100644 deps/npm/test/tap/config-project.js delete mode 100644 deps/npm/test/tap/config-save.js delete mode 100644 deps/npm/test/tap/correct-mkdir.js delete mode 100644 deps/npm/test/tap/cruft-test.js delete mode 100644 deps/npm/test/tap/debug-logs.js delete mode 100644 deps/npm/test/tap/dedupe-scoped.js delete mode 100644 deps/npm/test/tap/dedupe.js delete mode 100644 deps/npm/test/tap/deprecate.js delete mode 100644 deps/npm/test/tap/dist-tag.js delete mode 100644 deps/npm/test/tap/do-not-remove-other-bins.js delete mode 100644 deps/npm/test/tap/doctor.js delete mode 100644 deps/npm/test/tap/extraneous-dep-cycle-ls-ok.js delete mode 100644 deps/npm/test/tap/false-name.js delete mode 100644 deps/npm/test/tap/fetch-package-metadata.js delete mode 100644 deps/npm/test/tap/files-and-ignores.js delete mode 100644 deps/npm/test/tap/full-warning-messages.js delete mode 100644 deps/npm/test/tap/gently-rm-cmdshims.js delete mode 100644 deps/npm/test/tap/gently-rm-linked-module.js delete mode 100644 deps/npm/test/tap/gently-rm-overeager.js delete mode 100644 deps/npm/test/tap/gently-rm-symlinked-global-dir.js delete mode 100644 deps/npm/test/tap/get.js delete mode 100644 deps/npm/test/tap/gist-short-shortcut-package.js delete mode 100644 deps/npm/test/tap/gist-short-shortcut.js delete mode 100644 deps/npm/test/tap/gist-shortcut-package.js delete mode 100644 deps/npm/test/tap/gist-shortcut.js delete mode 100644 deps/npm/test/tap/git-dependency-install-link.js delete mode 100644 deps/npm/test/tap/git-npmignore.js delete mode 100644 deps/npm/test/tap/git-prepare.js delete mode 100644 deps/npm/test/tap/github-shortcut-package.js delete mode 100644 deps/npm/test/tap/github-shortcut.js delete mode 100644 deps/npm/test/tap/gitlab-shortcut-package.js delete mode 100644 deps/npm/test/tap/gitlab-shortcut.js delete mode 100644 deps/npm/test/tap/global-prefix-set-in-userconfig.js delete mode 100644 deps/npm/test/tap/graceful-restart.js delete mode 100644 deps/npm/test/tap/help.js delete mode 100644 deps/npm/test/tap/ignore-install-link.js delete mode 100644 deps/npm/test/tap/ignore-scripts.js delete mode 100644 deps/npm/test/tap/init-interrupt.js delete mode 100644 deps/npm/test/tap/install-actions.js delete mode 100644 deps/npm/test/tap/install-at-locally.js delete mode 100644 deps/npm/test/tap/install-bad-dep-format.js delete mode 100644 deps/npm/test/tap/install-bad-man.js delete mode 100644 deps/npm/test/tap/install-bin-null.js delete mode 100644 deps/npm/test/tap/install-cli-only-development.js delete mode 100644 deps/npm/test/tap/install-cli-only-production.js delete mode 100644 deps/npm/test/tap/install-cli-only-shrinkwrap.js delete mode 100644 deps/npm/test/tap/install-cli-production-nosave.js delete mode 100644 deps/npm/test/tap/install-cli-production.js delete mode 100644 deps/npm/test/tap/install-cli-unicode.js delete mode 100644 deps/npm/test/tap/install-duplicate-deps-warning.js delete mode 100644 deps/npm/test/tap/install-from-local.js delete mode 100644 deps/npm/test/tap/install-into-likenamed-folder.js delete mode 100644 deps/npm/test/tap/install-link-scripts.js delete mode 100644 deps/npm/test/tap/install-local-dep-cycle.js delete mode 100644 deps/npm/test/tap/install-man.js delete mode 100644 deps/npm/test/tap/install-noargs-dev.js delete mode 100644 deps/npm/test/tap/install-order.js delete mode 100644 deps/npm/test/tap/install-package-json-order.js delete mode 100644 deps/npm/test/tap/install-package-lock-only.js delete mode 100644 deps/npm/test/tap/install-parse-error.js delete mode 100644 deps/npm/test/tap/install-property-conflicts.js delete mode 100644 deps/npm/test/tap/install-report-just-installed.js delete mode 100644 deps/npm/test/tap/install-save-exact.js delete mode 100644 deps/npm/test/tap/install-save-local.js delete mode 100644 deps/npm/test/tap/install-save-prefix.js delete mode 100644 deps/npm/test/tap/install-scoped-already-installed.js delete mode 100644 deps/npm/test/tap/install-scoped-link.js delete mode 100644 deps/npm/test/tap/install-scoped-with-bundled-dependency.js delete mode 100644 deps/npm/test/tap/install-scoped-with-peer-dependency.js delete mode 100644 deps/npm/test/tap/install-shrinkwrapped-git.js delete mode 100644 deps/npm/test/tap/install-windows-newlines.js delete mode 100644 deps/npm/test/tap/install-with-dev-dep-duplicate.js delete mode 100644 deps/npm/test/tap/invalid-cmd-exit-code.js delete mode 100644 deps/npm/test/tap/invalid-dep-version-filtering.js delete mode 100644 deps/npm/test/tap/is-fs-access-available.js delete mode 100644 deps/npm/test/tap/is-registry.js delete mode 100644 deps/npm/test/tap/it.js delete mode 100644 deps/npm/test/tap/legacy-ignore-nested-nm.js delete mode 100644 deps/npm/test/tap/legacy-missing-bindir.js delete mode 100644 deps/npm/test/tap/legacy-no-auth-leak.js delete mode 100644 deps/npm/test/tap/legacy-platform-all.js delete mode 100644 deps/npm/test/tap/legacy-platform.js delete mode 100644 deps/npm/test/tap/legacy-private.js delete mode 100644 deps/npm/test/tap/legacy-test-package.js delete mode 100644 deps/npm/test/tap/lifecycle-INIT_CWD.js delete mode 100644 deps/npm/test/tap/lifecycle-order.js delete mode 100644 deps/npm/test/tap/link.js delete mode 100644 deps/npm/test/tap/local-args-relative-to-cwd.js delete mode 100644 deps/npm/test/tap/locker.js delete mode 100644 deps/npm/test/tap/lockfile-http-deps.js delete mode 100644 deps/npm/test/tap/logout-scoped.js delete mode 100644 deps/npm/test/tap/logout.js delete mode 100644 deps/npm/test/tap/ls-depth-cli.js delete mode 100644 deps/npm/test/tap/ls-depth-unmet.js delete mode 100644 deps/npm/test/tap/ls-env.js delete mode 100644 deps/npm/test/tap/ls-l-depth-0.js delete mode 100644 deps/npm/test/tap/ls-no-results.js delete mode 100644 deps/npm/test/tap/ls-production-and-dev.js delete mode 100644 deps/npm/test/tap/ls-top-errors.js delete mode 100644 deps/npm/test/tap/ls.js delete mode 100644 deps/npm/test/tap/map-to-registry.js delete mode 100644 deps/npm/test/tap/nerf-dart.js delete mode 100644 deps/npm/test/tap/nested-extraneous.js delete mode 100644 deps/npm/test/tap/no-global-warns.js delete mode 100644 deps/npm/test/tap/no-scan-full-global-dir.js delete mode 100644 deps/npm/test/tap/noargs-install-config-save.js delete mode 100644 deps/npm/test/tap/node-modules-path-munge.js delete mode 100644 deps/npm/test/tap/normalize-package-explode.js delete mode 100644 deps/npm/test/tap/npm-api-not-loaded-error.js delete mode 100644 deps/npm/test/tap/onload.js delete mode 100644 deps/npm/test/tap/optional-metadep-rollback-collision.js delete mode 100644 deps/npm/test/tap/outdated-bad-read-tree.js delete mode 100644 deps/npm/test/tap/outdated-color.js delete mode 100644 deps/npm/test/tap/outdated-depth.js delete mode 100644 deps/npm/test/tap/outdated-git.js delete mode 100644 deps/npm/test/tap/outdated-json.js delete mode 100644 deps/npm/test/tap/outdated-long.js delete mode 100644 deps/npm/test/tap/outdated.js delete mode 100644 deps/npm/test/tap/override-bundled.js delete mode 100644 deps/npm/test/tap/owner.js delete mode 100644 deps/npm/test/tap/pack-scoped.js delete mode 100644 deps/npm/test/tap/peer-deps.js delete mode 100644 deps/npm/test/tap/pick-manifest-from-registry-metadata.js delete mode 100644 deps/npm/test/tap/ping.js delete mode 100644 deps/npm/test/tap/prepare.js delete mode 100644 deps/npm/test/tap/prepublish-only.js delete mode 100644 deps/npm/test/tap/prepublish.js delete mode 100644 deps/npm/test/tap/process-logger.js delete mode 100644 deps/npm/test/tap/progress-config.js delete mode 100644 deps/npm/test/tap/prune-dev-dep-cycle.js delete mode 100644 deps/npm/test/tap/prune-dev-dep-with-bins.js delete mode 100644 deps/npm/test/tap/prune-with-dev-dep-duplicate.js delete mode 100644 deps/npm/test/tap/prune-with-only-dev-deps.js delete mode 100644 deps/npm/test/tap/prune.js delete mode 100644 deps/npm/test/tap/publish-access-scoped.js delete mode 100644 deps/npm/test/tap/publish-access-unscoped-restricted-fails.js delete mode 100644 deps/npm/test/tap/publish-access-unscoped.js delete mode 100644 deps/npm/test/tap/publish-config.js delete mode 100644 deps/npm/test/tap/publish-invalid-semver-tag.js delete mode 100644 deps/npm/test/tap/publish-scoped.js delete mode 100644 deps/npm/test/tap/pwd-prefix.js delete mode 100644 deps/npm/test/tap/referer.js delete mode 100644 deps/npm/test/tap/repo.js delete mode 100644 deps/npm/test/tap/retry-on-stale-cache.js delete mode 100644 deps/npm/test/tap/run-script-filter-private.js delete mode 100644 deps/npm/test/tap/run-script.js delete mode 100644 deps/npm/test/tap/scope-header.js delete mode 100644 deps/npm/test/tap/scripts-whitespace-windows.js delete mode 100644 deps/npm/test/tap/search.all-package-search.js delete mode 100644 deps/npm/test/tap/search.esearch.js delete mode 100644 deps/npm/test/tap/search.js delete mode 100644 deps/npm/test/tap/semver-doc.js delete mode 100644 deps/npm/test/tap/shared-linked.js delete mode 100644 deps/npm/test/tap/shrinkwrap-_auth.js delete mode 100644 deps/npm/test/tap/shrinkwrap-default-dev.js delete mode 100644 deps/npm/test/tap/shrinkwrap-dev-dependency.js delete mode 100644 deps/npm/test/tap/shrinkwrap-empty-deps.js delete mode 100644 deps/npm/test/tap/shrinkwrap-extra-metadata.js delete mode 100644 deps/npm/test/tap/shrinkwrap-global-auth.js delete mode 100644 deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js delete mode 100644 deps/npm/test/tap/shrinkwrap-lifecycle.js delete mode 100644 deps/npm/test/tap/shrinkwrap-local-dependency.js delete mode 100644 deps/npm/test/tap/shrinkwrap-nested.js delete mode 100644 deps/npm/test/tap/shrinkwrap-optional-dependency.js delete mode 100644 deps/npm/test/tap/shrinkwrap-optional-platform.js delete mode 100644 deps/npm/test/tap/shrinkwrap-optional-property.js delete mode 100644 deps/npm/test/tap/shrinkwrap-prod-dependency-also.js delete mode 100644 deps/npm/test/tap/shrinkwrap-prod-dependency.js delete mode 100644 deps/npm/test/tap/shrinkwrap-save-dev-with-existing-deps.js delete mode 100644 deps/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js delete mode 100644 deps/npm/test/tap/shrinkwrap-scoped-auth.js delete mode 100644 deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js delete mode 100644 deps/npm/test/tap/shrinkwrap-version-match.js delete mode 100644 deps/npm/test/tap/sorted-package-json.js delete mode 100644 deps/npm/test/tap/spawn-enoent-help.js delete mode 100644 deps/npm/test/tap/spawn-enoent.js delete mode 100644 deps/npm/test/tap/spec-local-specifiers.js delete mode 100644 deps/npm/test/tap/splat-with-only-prerelease-to-latest.js delete mode 100644 deps/npm/test/tap/startstop.js delete mode 100644 deps/npm/test/tap/symlink-cycle.js delete mode 100644 deps/npm/test/tap/tag-version-prefix.js delete mode 100644 deps/npm/test/tap/tagged-version-matching.js delete mode 100644 deps/npm/test/tap/team.js delete mode 100644 deps/npm/test/tap/test-run-ls.js delete mode 100644 deps/npm/test/tap/tree-style.js delete mode 100644 deps/npm/test/tap/umask-lifecycle.js delete mode 100644 deps/npm/test/tap/uninstall-in-reverse.js delete mode 100644 deps/npm/test/tap/uninstall-link-clean.js delete mode 100644 deps/npm/test/tap/uninstall-package.js delete mode 100644 deps/npm/test/tap/uninstall-save.js delete mode 100644 deps/npm/test/tap/unit-child-path.js delete mode 100644 deps/npm/test/tap/unit-deps-earliestInstallable.js delete mode 100644 deps/npm/test/tap/unit-deps-removeObsoleteDep.js delete mode 100644 deps/npm/test/tap/unit-deps-replaceModule.js delete mode 100644 deps/npm/test/tap/unit-module-name.js delete mode 100644 deps/npm/test/tap/unit-package-id.js delete mode 100644 deps/npm/test/tap/unpack-foreign-tarball.js delete mode 100644 deps/npm/test/tap/unpublish-config.js delete mode 100644 deps/npm/test/tap/unsupported.js delete mode 100644 deps/npm/test/tap/update-examples.js delete mode 100644 deps/npm/test/tap/update-path.js delete mode 100644 deps/npm/test/tap/upgrade-lifecycles.js delete mode 100644 deps/npm/test/tap/url-dependencies.js delete mode 100644 deps/npm/test/tap/verify-no-lifecycle-on-repo.js delete mode 100644 deps/npm/test/tap/version-allow-same-version.js delete mode 100644 deps/npm/test/tap/version-commit-hooks-default.js delete mode 100644 deps/npm/test/tap/version-commit-hooks.js delete mode 100644 deps/npm/test/tap/version-from-git.js delete mode 100644 deps/npm/test/tap/version-git-not-clean.js delete mode 100644 deps/npm/test/tap/version-lifecycle.js delete mode 100644 deps/npm/test/tap/version-message-config.js delete mode 100644 deps/npm/test/tap/version-no-git.js delete mode 100644 deps/npm/test/tap/version-no-package.js delete mode 100644 deps/npm/test/tap/version-no-tags.js delete mode 100644 deps/npm/test/tap/version-sub-directory-shrinkwrap.js delete mode 100644 deps/npm/test/tap/version-sub-directory.js delete mode 100644 deps/npm/test/tap/version-update-shrinkwrap.js delete mode 100644 deps/npm/test/tap/view.js delete mode 100644 deps/npm/test/tap/zz-cleanup.js create mode 100644 lib/dummystream.js create mode 100644 src/node_webkit.h diff --git a/common.gypi b/common.gypi index aaae133e1ac..30a7e1f776e 100644 --- a/common.gypi +++ b/common.gypi @@ -11,16 +11,18 @@ 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way 'python%': 'python', - 'node_shared%': 'false', + 'node_shared%': 'true', 'force_dynamic_crt%': 0, 'node_use_v8_platform%': 'true', 'node_use_bundled_v8%': 'true', 'node_module_version%': '', + 'mac_product_name': 'nwjs', 'node_tag%': '', 'uv_library%': 'static_library', - 'openssl_fips%': '', + 'openssl_fips': '', + 'llvm_version': '6.0', # Default to -O0 for debug builds. 'v8_optimized_debug%': 0, @@ -31,9 +33,12 @@ # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, + 'v8_host_byteorder': ' #endif @@ -200,3 +205,7 @@ int ares_create_query(const char *name, int dnsclass, int type, return ARES_SUCCESS; } + +#ifndef _WIN32 +#pragma clang diagnostic pop +#endif diff --git a/deps/cares/src/ares_process.c b/deps/cares/src/ares_process.c index df85524f624..ceef2fde0ef 100644 --- a/deps/cares/src/ares_process.c +++ b/deps/cares/src/ares_process.c @@ -513,7 +513,7 @@ static void read_udp_packets(ares_channel channel, fd_set *read_fds, else fromlen = sizeof(from.sa6); count = socket_recvfrom(channel, server->udp_socket, (void *)buf, - sizeof(buf), 0, &from.sa, &fromlen); + sizeof(buf), 0, &from.sa, (socklen_t *)&fromlen); } if (count == -1 && try_again(SOCKERRNO)) diff --git a/deps/http_parser/http_parser.c b/deps/http_parser/http_parser.c index 719617549d0..72bf757ddbc 100644 --- a/deps/http_parser/http_parser.c +++ b/deps/http_parser/http_parser.c @@ -2391,7 +2391,7 @@ http_parser_parse_url(const char *buf, size_t buflen, int is_connect, break; default: - assert(!"Unexpected state"); + assert(0 && "Unexpected state"); return 1; } diff --git a/deps/http_parser/http_parser.gyp b/deps/http_parser/http_parser.gyp index ef34ecaeaea..93d3259e38f 100644 --- a/deps/http_parser/http_parser.gyp +++ b/deps/http_parser/http_parser.gyp @@ -13,20 +13,10 @@ 'Debug': { 'defines': [ 'DEBUG', '_DEBUG' ], 'cflags': [ '-Wall', '-Wextra', '-O0', '-g', '-ftrapv' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - }, - }, }, 'Release': { 'defines': [ 'NDEBUG' ], 'cflags': [ '-Wall', '-Wextra', '-O3' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 0, # static release - }, - }, } }, 'msvs_settings': { @@ -39,6 +29,9 @@ }, }, 'conditions': [ + ['clang==1', { + 'cflags': ['-Wno-error=string-conversion'], + }], ['OS == "win"', { 'defines': [ 'WIN32' diff --git a/deps/nghttp2/nghttp2.gyp b/deps/nghttp2/nghttp2.gyp index 8da81485e5f..ad9ea688278 100644 --- a/deps/nghttp2/nghttp2.gyp +++ b/deps/nghttp2/nghttp2.gyp @@ -26,7 +26,7 @@ }, }, }], - ['debug_nghttp2 == 1', { + ['0 == 1', { 'defines': [ 'DEBUGBUILD=1' ] }] ], diff --git a/deps/npm/.github/CODEOWNERS b/deps/npm/.github/CODEOWNERS deleted file mode 100644 index ef8743136d8..00000000000 --- a/deps/npm/.github/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @npm/cli-team diff --git a/deps/npm/.github/issue_template.md b/deps/npm/.github/issue_template.md deleted file mode 100644 index f3a5861866a..00000000000 --- a/deps/npm/.github/issue_template.md +++ /dev/null @@ -1,69 +0,0 @@ -#### I'm opening this issue because: - - - [ ] npm is crashing. - - [ ] npm is producing an incorrect install. - - [ ] npm is doing something I don't understand. - - [ ] Other (_see below for feature requests_): - -#### What's going wrong? - -#### How can the CLI team reproduce the problem? - - - -### supporting information: - - - `npm -v` prints: - - `node -v` prints: - - `npm config get registry` prints: - - Windows, OS X/macOS, or Linux?: - - Network issues: - - Geographic location where npm was run: - - [ ] I use a proxy to connect to the npm registry. - - [ ] I use a proxy to connect to the web. - - [ ] I use a proxy when downloading Git repos. - - [ ] I access the npm registry via a VPN - - [ ] I don't use a proxy, but have limited or unreliable internet access. - - Container: - - [ ] I develop using Vagrant on Windows. - - [ ] I develop using Vagrant on OS X or Linux. - - [ ] I develop / deploy using Docker. - - [ ] I deploy to a PaaS (Triton, Heroku). - - - - diff --git a/deps/npm/.mailmap b/deps/npm/.mailmap deleted file mode 100644 index 86d870d26b4..00000000000 --- a/deps/npm/.mailmap +++ /dev/null @@ -1,67 +0,0 @@ -Alex K. Wolfe -Andrew Bradley -Andrew Lunny -Arlo Breault -Ashley Williams -Ashley Williams -Benjamin Coe -Benjamin Coe -Brian White -Cedric Nelson -Charlie Robbins -Dalmais Maxence -Danila Gerasimov -Dave Galbraith -David Beitey -Domenic Denicola -Einar Otto Stangvik -Emma Ramirez -Erik Wienhold -Evan Lucas -Evan Lucas -Faiq Raza -Forbes Lindesay -Forrest L Norvell -Gabriel Barros -Geoff Flarity -Gregers Gram Rygg -Ifeanyi Oraelosi -Isaac Z. Schlueter -Isaac Z. Schlueter isaacs -Jake Verbaten -James Sanders -James Treworgy -Jason Smith -Joshua Bennett -Jonas Weber -Julien Meddah -Kevin Lorenz -Kris Windham -Lin Clark -Luke Arduini -Maciej Małecki -Martin Ek -Max Goodman -Maxim Bogushevich -Maximilian Antoni -Michael Hayes -Nicolas Morel -Olivier Melcher -Ra'Shaun Stovall -Rebecca Turner -Rebecca Turner -Ryan Emery -Sam Mikes -Stephanie Snopek -Takaya Kobayashi -Ted Yavuzkurt -Thomas Reggi -Timo Weiß -Tony -Trent Mick -Visnu Pitiyanuvath -Will Elwood -Wout Mertens -Yeonghoon Park -Zeke Sikelianos -Zoujie Wzj diff --git a/deps/npm/.npmignore b/deps/npm/.npmignore deleted file mode 100644 index 8aa0c3e0aff..00000000000 --- a/deps/npm/.npmignore +++ /dev/null @@ -1,34 +0,0 @@ -*.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 -node_modules/marked -node_modules/ronn -node_modules/tap -node_modules/.bin -node_modules/npm-registry-mock -/npmrc -/release/ - -# don't need these in the npm package. -html/*.png - -# don't ignore .npmignore files -# these are used in some tests. -!.npmignore - -/npm-*.tgz - -*.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 deleted file mode 100644 index 108ecf90591..00000000000 --- a/deps/npm/.travis.yml +++ /dev/null @@ -1,38 +0,0 @@ -sudo: false -# need to declare the language as well as the matrix below -language: node_js -# having top-level `env:` adds a phantom build -# https://github.com/travis-ci/travis-ci/issues/4681 -#env: DEPLOY_VERSION=testing -matrix: - include: - # LTS is our most important target - - node_js: "8" - # DEPLOY_VERSION is used to set the couchapp setup mode for test/tap/registry.js - # only gather coverage info for LTS - env: DEPLOY_VERSION=testing COVERALLS_REPO_TOKEN="$COVERALLS_OPTIONAL_TOKEN" - script: - - "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" - env: DEPLOY_VERSION=testing - # then master - - node_js: "9" - env: DEPLOY_VERSION=testing - script: - - "standard" - - "node . run tap -- \"test/tap/*.js\" \"test/broken-under-nyc/*.js\"" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 -cache: - directories: - - node_modules/.cache -install: - - "node . install" -script: - - "node . run tap -- \"test/tap/*.js\" \"test/broken-under-nyc/*.js\"" diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS deleted file mode 100644 index 014462125a9..00000000000 --- a/deps/npm/AUTHORS +++ /dev/null @@ -1,538 +0,0 @@ -# Authors sorted by whether or not they're me -Isaac Z. Schlueter -Steve Steiner -Mikeal Rogers -Aaron Blohowiak -Martyn Smith -Charlie Robbins -Francisco Treacy -Cliffano Subagio -Christian Eager -Dav Glass -Alex K. Wolfe -James Sanders -Reid Burke -Arlo Breault -Timo Derstappen -Bart Teeuwisse -Ben Noordhuis -Tor Valamo -Whyme.Lyu <5longluna@gmail.com> -Olivier Melcher -Tomaž Muraus -Evan Meagher -Orlando Vazquez -Kai Chen -George Miroshnykov -Geoff Flarity -Max Goodman -Pete Kruckenberg -Laurie Harper -Chris Wong -Scott Bronson -Federico Romero -Visnu Pitiyanuvath -Irakli Gozalishvili -Mark Cahill -Tony -Iain Sproat -Trent Mick -Felix Geisendörfer -Jameson Little -Conny Brunnkvist -Will Elwood -Dean Landolt -Oleg Efimov -Martin Cooper -Jann Horn -Andrew Bradley -Maciej Małecki -Stephen Sugden -Michael Budde -Jason Smith -Gautham Pai -David Trejo -Paul Vorbach -George Ornbo -Tim Oxley -Tyler Green -Dave Pacheco -Danila Gerasimov -Rod Vagg -Christian Howe -Andrew Lunny -Henrik Hodne -Adam Blackburn -Kris Windham -Jens Grunert -Joost-Wim Boekesteijn -Dalmais Maxence -Marcus Ekwall -Aaron Stacy -Phillip Howell -Domenic Denicola -James Halliday -Jeremy Cantrell -Ribettes -Don Park -Einar Otto Stangvik -Kei Son -Nicolas Morel -Mark Dube -Nathan Rajlich -Maxim Bogushevich -Meaglin -Ben Evans -Nathan Zadoks -Brian White -Jed Schmidt -Ian Livingstone -Patrick Pfeiffer -Paul Miller -Ryan Emery -Carl Lange -Jan Lehnardt -Stuart P. Bentley -Johan Sköld -Stuart Knightley -Niggler -Paolo Fragomeni -Jaakko Manninen -Luke Arduini -Larz Conwell -Marcel Klehr -Robert Kowalski -Forbes Lindesay -Vaz Allen -Jake Verbaten -Schabse Laks -Florian Margaine -Johan Nordberg -Ian Babrou -Di Wu -Mathias Bynens -Matt McClure -Matt Lunn -Alexey Kreschuk -elisee -Robert Gieseke -François Frisch -Trevor Burnham -Alan Shaw -TJ Holowaychuk -Nicholas Kinsey -Paulo Cesar -Elan Shanker -Jon Spencer -Jason Diamond -Maximilian Antoni -Thom Blake -Jess Martin -Spain Train -Alex Rodionov -Matt Colyer -Evan You -bitspill -Gabriel Falkenberg -Alexej Yaroshevich -Quim Calpe -Steve Mason -Wil Moore III -Sergey Belov -Tom Huang -CamilleM -Sébastien Santoro -Evan Lucas -Quinn Slack -Alex Kocharin -Daniel Santiago -Denis Gladkikh -Andrew Horton -Zeke Sikelianos -Dylan Greene -Franck Cuny -Yeonghoon Park -Rafael de Oleza -Mikola Lysenko -Yazhong Liu -Neil Gentleman -Kris Kowal -Alex Gorbatchev -Shawn Wildermuth -Wesley de Souza -yoyoyogi -J. Tangelder -Jean Lauliac -Andrey Kislyuk -Thorsten Lorenz -Julian Gruber -Benjamin Coe -Alex Ford -Matt Hickford -Sean McGivern -C J Silverio -Robin Tweedie -Miroslav Bajtoš -David Glasser -Gianluca Casati -Forrest L Norvell -Karsten Tinnefeld -Bryan Burgers -David Beitey -Evan You -Zach Pomerantz -Chris Williams -sudodoki -Mick Thompson -Felix Rabe -Michael Hayes -Chris Dickinson -Bradley Meck -GeJ -Andrew Terris -Michael Nisi -fengmk2 -Adam Meadows -Chulki Lee -不四 -dead_horse -Kenan Yildirim -Laurie Voss -Rebecca Turner -Hunter Loftis -Peter Richardson -Jussi Kalliokoski -Filip Weiss -Timo Weiß -Christopher Hiller -Jérémy Lal -Anders Janmyr -Chris Meyers -Ludwig Magnusson -Wout Mertens -Nick Santos -Terin Stock -Faiq Raza -Thomas Torp -Sam Mikes -Mat Tyndall -Tauren Mills -Ron Martinez -Kazuhito Hokamura -Tristan Davies -David Volm -Lin Clark -Ben Page -Jeff Jo -martinvd -Mark J. Titorenko -Oddur Sigurdsson -Eric Mill -Gabriel Barros -KevinSheedy -Aleksey Smolenchuk -Ed Morley -Blaine Bublitz -Andrey Fedorov -Daijiro Wachi -Luc Thevenard -Aria Stewart -Charlie Rudolph -Vladimir Rutsky -Isaac Murchie -Marcin Wosinek -David Marr -Bryan English -Anthony Zotti -Karl Horky -Jordan Harband -Guðlaugur Stefán Egilsson -Helge Skogly Holm -Peter A. Shevtsov -Alain Kalker -Bryant Williams -Jonas Weber -Tim Whidden -Andreas -Karolis Narkevicius -Adrian Lynch -Richard Littauer -Oli Evans -Matt Brennan -Jeff Barczewski -Danny Fritz -Takaya Kobayashi -Ra'Shaun Stovall -Julien Meddah -Michiel Sikma -Jakob Krigovsky -Charmander <~@charmander.me> -Erik Wienhold -James Butler -Kevin Kragenbrink -Arnaud Rinquin -Mike MacCana -Antti Mattila -laiso -Matt Zorn -Kyle Mitchell -Jeremiah Senkpiel -Michael Klein -Simen Bekkhus -Victor -thefourtheye -Clay Carpenter -bangbang93 -Nick Malaguti -Cedric Nelson -Kat Marchán -Andrew -Eduardo Pinho -Rachel Hutchison -Ryan Temple -Eugene Sharygin -James Talmage -jane arc -Joseph Dykstra -Andrew Crites -Joshua Egan -Carlos Alberto -Thomas Cort -Thaddee Tyl -Steve Klabnik -Andrew Murray -Stephan Bönnemann -Kyle M. Tarplee -Derek Peterson -Greg Whiteley -murgatroid99 -Marcin Cieslak -João Reis -Matthew Hasbach -Jon Hall -Anna Henningsen -James Treworgy -James Hartig -Stephanie Snopek -Kent C. Dodds -Aaron Krause -Daniel K O'Leary -fscherwi -Thomas Reggi -Thomas Michael McTiernan -Jason Kurian -Sebastiaan Deckers -lady3bean -Tomi Carr -Juan Caicedo -Ashley Williams -Andrew Marcinkevičius -Jorrit Schippers -Alex Lukin -Aria Stewart -Tiago Rodrigues -Tim -Nick Williams -Louis Larry -Ben Gotow -Jakub Gieryluk -Kevin Lorenz -Martin von Gagern -Eymen Gunay -Martin Ek -Rafał Pocztarski -Mark Reeder -Chris Rebert -Scott Addie -Jeff McMahan -Tim Krins -Hal Henke -Julian Simioni -Jimb Esser -Alexis Campailla -Chris Chua -Beau Gunderson -Dave Galbraith -s100 -Sergey Simonchik -Vanja Radovanović -Jonathan Persson -Vedat Mahir YILMAZ -Samuel Reed -Rafał Legiędź -Jan Schär -Xcat Liu -harryh -Prayag Verma -Neil Kistner -Zoujie Wzj -Ryan Hendrickson -Arturo Coronel -Hutson Betts -Lewis Cowper -Adam Byrne -Ifeanyi Oraelosi -Robert Ludwig -Chris Warren -Scott Plumlee -Daniel Pedersen -rhgb -doug.wade -Zac -GriffinSchneider -Andres Kalle -thefourtheye -Yael -Yann Odeyer -James Monger -Thomas Hallock -Paul Irish -Paul O'Leary McCann -Francis Gulotta -Felix Rieseberg -Glen Mailer -Federico Brigante -Steve Mao -Anna Henningsen -Rachel Evans -Sam Minnee -Zirak -Daniel Lupu -Gianluca Casati -André Herculano -Wyatt Preul -Myles Borins -Elliot Lee -Dmitry Kirilyuk -Aaron Tribou -Tapani Moilanen -Han Seoul-Oh -Aleksey Shvayka -Emma Ramirez -Julian Duque -Simon MacDonald -Adam Stankiewicz -Gregers Gram Rygg -Peter Dave Hello -Jordan Klassen -Jason Palmer -Michael Hart -Sasha Koss -David Emmerson -Christophe Hurpeau -Daniel Paz-Soldan -Sakthipriyan Vairamani -Zach Renner -Christopher Hiller -Joshua Bennett -Andrew Meyer -Michael Jasper -Max -Szymon Nowak -Jason Karns -Lucas Holmquist -Ionică Bizău -Alex Chesters -Robert Gay -Steven -Tim Caswell -Anna Henningsen -Kim Røen -Douglas Wilson -Mike Engel -baderbuddy -Alex Jordan -Ville Lahdenvuo -Natalie Wolfe -Andrew Schmadel -Jonah Moses -Daijirō Wachi -Dmitry Litvinchenko -chocolateboy -Henry Zhu -Nate Goldman -Ted Yavuzkurt -Arseniy Maximov -Joshua Bennett -Evgeny Kulikov -Сковорода Никита Андреевич -Carol (Nichols || Goulding) -Jarid Margolin -David Cook -Brian Dukes -J F -Pavlo Liulia -Ján Dzurek -Lucas Theisen -Mike Sherov -薛定谔的猫 -Paweł Lula -Jakob Krigovsky -George Rawlinson -Jack Nagel -Andreas Kohn -Jason Wohlgemuth -Ryan Graham -Hirse -Colin Rotherham -Aki -Emily Marigold Klassen -Ramana Venkata -kierendixon -Rácz Tibor Zoltán -Guangcong Luo -Steven -Jan Pilzer -Leonard Martin -Teddy Katz -Simon Legg -Kin Lum -dax -Jože Mlakar -happylynx -Dominic Watson -Enrico Weigelt, metux IT consult -Brian Beck -Ramana Venkata -mmkal -Andrew Schmadel -AJ Jordan -Mark Banner -Richard Simko -Sanketh Katta -Tim Needham -leonardo rojas -Mark Peter Fejes -Ryan Florence -MichaelQQ -Anders D. Johnson -Benjamin Fernandes -Simon Kurtz -David Goss -Luis Gustavo Pereira -Amos Wenger -Samuel Marks -Victor Travieso -legodude17 -Joshua Chaitin-Pollak -Brendan Warkentin -Scott Santucci -Xavier Cambar -Vikram -Igor Nadj -Tong Li -tripu -Carsten Brandt -Marcin Szczepanski -Josh Clow -Jakub Holy -Alexandra Ulsh -Tom MacWright -Felicio Mununga -Gabor Szabo -Andreas Müller -Andrew Pitman -Jacob Wejendorp -Alejandro López -Victor Belozyorov -Bradley Farias diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md deleted file mode 100644 index 0e42392d652..00000000000 --- a/deps/npm/CHANGELOG.md +++ /dev/null @@ -1,1488 +0,0 @@ -## 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)) - -### Performance - -* [`39ba4aa74`](https://github.com/npm/npm/commit/39ba4aa7479220e61573c0c1977124c2199f49d0) - `tar@4.1.0`: Reduce number of overall fs operations during packing/unpacking. - -### 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. - ([@Rebecca Turner](https://github.com/Rebecca Turner)) - -## v5.5.0 (2017-10-04): - -Hey y'all, this is a big new feature release! We've got some security -related goodies plus a some quality-of-life improvements for anyone who uses -the public registry (so, virtually everyone). - -The changes largely came together in one piece, so I'm just gonna leave the commit line here: - -* [`f6ebf5e8b`](https://github.com/npm/npm/commit/f6ebf5e8bd6a212c7661e248c62c423f2b54d978) - [`f97ad6a38`](https://github.com/npm/npm/commit/f97ad6a38412581d059108ea29be470acb4fa510) - [`f644018e6`](https://github.com/npm/npm/commit/f644018e6ef1ff7523c6ec60ae55a24e87a9d9ae) - [`8af91528c`](https://github.com/npm/npm/commit/8af91528ce6277cd3a8c7ca8c8102671baf10d2f) - [`346a34260`](https://github.com/npm/npm/commit/346a34260b5fba7de62717135f3e083cc4820853) - Two factor authentication, profile editing and token management. - ([@iarna](https://github.com/iarna)) - -### TWO FACTOR AUTHENTICATION - -You can now enable two-factor authentication for your npm account. You can -even do it from the CLI. In fact, you have to, for the time being: - -``` -npm profile enable-tfa -``` - -With the default two-factor authentication mode you'll be prompted to enter -a one-time password when logging in, when publishing and when modifying access rights to -your modules. - -### TOKEN MANAGEMENT - -You can now create, list and delete authentication tokens from the comfort -of the command line. Authentication tokens created this way can have NEW -restrictions placed on them. For instance, you can create a `read-only` -token to give to your CI. It will be able to download your private modules -but it won't be able to publish or modify modules. You can also create -tokens that can only be used from certain network addresses. This way you -can lock down access to your corporate VPN or other trusted machines. - -Deleting tokens isn't new, you could [do it via the -website](https://www.npmjs.com/settings/tokens) but now you can do it via -the CLI as well. - -### CHANGE YOUR PASSWORD, SET YOUR EMAIL - -You can finally change your password from the CLI with `npm profile set -password`! You can also update your email address with `npm profile set -email
`. If you change your email address we'll send you a new -verification email so you verify that its yours. - -### AND EVERYTHING ELSE ON YOUR PROFILE - -You can also update all of the other attributes of your profile that -previously you could only update via the website: `fullname`, `homepage`, -`freenode`, `twitter` and `github`. - -### AVAILABLE STAND ALONE - -All of these features were implemented in a stand alone library, so if you -have use for them in your own project you can find them in -[npm-profile](https://www.npmjs.com/package/npm-profile) on the registry. -There's also a little mini-cli written just for it at -[npm-profile-cli](https://www.npmjs.com/package/npm-profile-cli). You might -also be interested in the [API -documentation](https://github.com/npm/registry/tree/master/docs) for these -new features: [user profile editing](https://github.com/npm/registry/blob/master/docs/user/profile.md) and -[authentication](https://github.com/npm/registry/blob/master/docs/user/authentication.md). - -### BUG FIXES - -* [`5ee55dc71`](https://github.com/npm/npm/commit/5ee55dc71b8b74b8418c3d5ec17483a07b3b6777) - install.sh: Drop support for upgrading from npm@1 as npm@5 can't run on - any Node.js version that ships npm@1. This fixes an issue some folks were seeing when trying - to upgrade using `curl | http://npmjs.com/install.sh`. - ([@iarna](https://github.com/iarna)) -* [`5cad1699a`](https://github.com/npm/npm/commit/5cad1699a7a0fc85ac7f77a95087a9647f75e344) - `npm-lifecycle@1.0.3` Fix a bug where when more than one lifecycle script - got queued to run, npm would crash. - ([@zkat](https://github.com/zkat)) -* [`cd256cbb2`](https://github.com/npm/npm/commit/cd256cbb2f97fcbcb82237e94b66eac80e493626) - `npm-packlist@1.1.9` Fix a bug where test directories would always be - excluded from published modules. - ([@isaacs](https://github.com/isaacs)) -* [`2a11f0215`](https://github.com/npm/npm/commit/2a11f021561acb1eb1ad4ad45ad955793b1eb4af) - Fix formatting of unsupported version warning - ([@iarna](https://github.com/iarna)) - -### DEPENDENCY UPDATES - -* [`6d2a285a5`](https://github.com/npm/npm/commit/6d2a285a58655f10834f64d38449eb1f3c8b6c47) - `npm-registry-client@8.5.0` -* [`69e64e27b`](https://github.com/npm/npm/commit/69e64e27bf58efd0b76b3cf6e8182c77f8cc452f) - `request@2.83.0` -* [`34e0f4209`](https://github.com/npm/npm/commit/34e0f42090f6153eb5462f742e402813e4da56c8) - `abbrev@1.1.1` -* [`10d31739d`](https://github.com/npm/npm/commit/10d31739d39765f1f0249f688bd934ffad92f872) - `aproba@1.2.0` -* [`2b02e86c0`](https://github.com/npm/npm/commit/2b02e86c06cf2a5fe7146404f5bfd27f190ee4f4) - `meant@1.0.1` -* [`b81fff808`](https://github.com/npm/npm/commit/b81fff808ee269361d3dcf38c1b6019f1708ae02) - `rimraf@2.6.2`: - Fixes a long standing bug in rimraf's attempts to work around Windows limitations - where it owns a file and can change its perms but can't remove it without - first changing its perms. This _may_ be an improvement for Windows users of npm under - some circumstances. - ([@isaacs](https://github.com/isaacs)) - -## v5.4.2 (2017-09-14): - -This is a small bug fix release wrapping up most of the issues introduced with 5.4.0. - -### Bugs - -* [`0b28ac72d`](https://github.com/npm/npm/commit/0b28ac72d29132e9b761717aba20506854465865) - [#18458](https://github.com/npm/npm/pull/18458) - Fix a bug on Windows where rolling back of failed optional dependencies would fail. - ([@marcins](https://github.com/marcins)) -* [`3a1b29991`](https://github.com/npm/npm/commit/3a1b299913ce94fdf25ed3ae5c88fe6699b04e24) - `write-file-atomic@2.1.0` Revert update of `write-file-atomic`. There were changes made to it - that were resulting in EACCES errors for many users. - ([@iarna](https://github.com/iarna)) -* [`cd8687e12`](https://github.com/npm/npm/commit/cd8687e1257f59a253436d69e8d79a29c85d00c8) - Fix a bug where if npm decided it needed to move a module during an upgrade it would strip - out much of the `package.json`. This would result in broken trees after package updates. -* [`5bd0244ee`](https://github.com/npm/npm/commit/5bd0244eec347ce435e88ff12148c35da7c69efe) - [#18385](https://github.com/npm/npm/pull/18385) - Fix `npm outdated` when run on non-registry dependencies. - ([@joshclow](https://github.com/joshclow)) - ([@iarna](https://github.com/iarna)) - -### Ux - -* [`339f17b1e`](https://github.com/npm/npm/commit/339f17b1e6816eccff7df97875db33917eccdd13) - Report unsupported node versions with greater granularity. - ([@iarna](https://github.com/iarna)) - -### Docs - -* [`b2ab6f43b`](https://github.com/npm/npm/commit/b2ab6f43b8ae645134238acd8dd3083e5ba8846e) - [#18397](https://github.com/npm/npm/pull/18397) - Document that the default loglevel with `npm@5` is `notice`. - ([@KenanY](https://github.com/KenanY)) -* [`e5aedcd82`](https://github.com/npm/npm/commit/e5aedcd82af81fa9e222f9210f6f890c72a18dd3) - [#18372](https://github.com/npm/npm/pull/18372) - In npm-config documentation, note that env vars use \_ in place of -. - ([@jakubholynet](https://github.com/jakubholynet)) - -## v5.4.1 (2017-09-06): - -This is a very small bug fix release to fix a problem where permissions on -installed binaries were being set incorrectly. - -* [`767ff6eee`](https://github.com/npm/npm/commit/767ff6eee7fa3a0f42ad677dedc0ec1f0dc15e7c) - [zkat/pacote#117](https://github.com/zkat/pacote/pull/117) - [#18324](https://github.com/npm/npm/issues/18324) - `pacote@6.0.2` - ([@zkat](https://github.com/zkat)) - -## v5.4.0 (2017-08-22): - -Here's another ~~small~~ big release, with a ~~handful~~ bunch of fixes and -a couple of ~~small~~ new features! This release has been incubating rather -longer than usual and it's grown quite a bit in that time. I'm also excited -to say that it has contributions from **27** different folks, which is a new -record for us. Our previous record was 5.1.0 at 21. Before that the record -had been held by 1.3.16 since _December of 2013_. - -![chart of contributor counts by version, showing an increasing rate over time and spikes mid in the 1.x series and later at 5.x](https://pbs.twimg.com/media/DH38rbZUwAAf9hS.jpg) - -If you can't get enough of the bleeding edge, I encourage you to check out -our canary release of npm. Get it with `npm install -g npmc`. It's going to -be seeing some exciting stuff in the next couple of weeks, starting with a -rewriten `npm dedupe`, but moving on to… well, you'll just have to wait and -find out. - -### PERFORMANCE - -* [`d080379f6`](https://github.com/npm/npm/commit/d080379f620c716afa2c1d2e2ffc0a1ac3459194) - `pacote@6.0.1` Updates extract to use tar@4, which is much faster than the - older tar@2. It reduces install times by as much as 10%. - ([@zkat](https://github.com/zkat)) -* [`4cd6a1774`](https://github.com/npm/npm/commit/4cd6a1774f774506323cae5685c9ca9a10deab63) - [`0195c0a8c`](https://github.com/npm/npm/commit/0195c0a8cdf816834c2f737372194ddc576c451d) - [#16804](https://github.com/npm/npm/pull/16804) - `tar@4.0.1` Update publish to use tar@4. tar@4 brings many advantages - over tar@2: It's faster, better tested and easier to work with. It also - produces exactly the same byte-for-byte output when producing tarballs - from the same set of files. This will have some nice carry on effects for - things like caching builds from git. And finally, last but certainly not - least, upgrading to it also let's us finally eliminate `fstream`—if - you know what that is you'll know why we're so relieved. - ([@isaacs](https://github.com/isaacs)) - -### FEATURES - -* [`1ac470dd2`](https://github.com/npm/npm/commit/1ac470dd283cc7758dc37721dd6331d5b316dc99) - [#10382](https://github.com/npm/npm/pull/10382) - If you make a typo when writing a command now, npm will print a brief "did you - mean..." message with some possible alternatives to what you meant. - ([@watilde](https://github.com/watilde)) -* [`20c46228d`](https://github.com/npm/npm/commit/20c46228d8f9243910f8c343f4830d52455d754e) - [#12356](https://github.com/npm/npm/pull/12356) - When running lifecycle scripts, `INIT_CWD` will now contain the original - working directory that npm was executed from. Remember that you can use `npm - run-script` even if you're not inside your package root directory! - ([@MichaelQQ](https://github.com/MichaelQQ)) -* [`be91e1726`](https://github.com/npm/npm/commit/be91e1726e9c21c4532723e4f413b73a93dd53d1) - [`4e7c41f4a`](https://github.com/npm/npm/commit/4e7c41f4a29744a9976cc22c77eee9d44172f21e) - `libnpx@9.6.0`: Fixes a number of issues on Windows and adds support for - several more languages: Korean, Norwegian (bokmål and nynorsk), Ukrainian, - Serbian, Bahasa Indonesia, Polish, Dutch and Arabic. - ([@zkat](https://github.com/zkat)) -* [`2dec601c6`](https://github.com/npm/npm/commit/2dec601c6d5a576751d50efbcf76eaef4deff31e) - [#17142](https://github.com/npm/npm/pull/17142) - Add the new `commit-hooks` option to `npm version` so that you can disable commit - hooks when committing the version bump. - ([@faazshift](https://github.com/faazshift)) -* [`bde151902`](https://github.com/npm/npm/commit/bde15190230b5c62dbd98095311eab71f6b52321) - [#14461](https://github.com/npm/npm/pull/14461) - Make output from `npm ping` clear as to its success or failure. - ([@legodude17](https://github.com/legodude17)) - -### BUGFIXES - -* [`b6d5549d2`](https://github.com/npm/npm/commit/b6d5549d2c2d38dd0e4319c56b69ad137f0d50cd) - [#17844](https://github.com/npm/npm/pull/17844) - Make package-lock.json sorting locale-agnostic. Previously, sorting would vary - by locale, due to using `localeCompare` for key sorting. This'll give you - a little package-lock.json churn as it reshuffles things, sorry! - ([@LotharSee](https://github.com/LotharSee)) -* [`44b98b9dd`](https://github.com/npm/npm/commit/44b98b9ddcfcccf68967fdf106fca52bf0c3da4b) - [#17919](https://github.com/npm/npm/pull/17919) - Fix a crash where `npm prune --production` would fail while removing `.bin`. - ([@fasterthanlime](https://github.com/fasterthanlime)) -* [`c3d1d3ba8`](https://github.com/npm/npm/commit/c3d1d3ba82aa41dfb2bd135e6cdc59f8d33cd9fb) - [#17816](https://github.com/npm/npm/pull/17816) - Fail more smoothly when attempting to install an invalid package name. - ([@SamuelMarks](https://github.com/SamuelMarks)) -* [`55ac2fca8`](https://github.com/npm/npm/commit/55ac2fca81bf08338302dc7dc2070494e71add5c) - [#12784](https://github.com/npm/npm/pull/12784) - Guard against stack overflows when marking packages as failed. - ([@vtravieso](https://github.com/vtravieso)) -* [`597cc0e4b`](https://github.com/npm/npm/commit/597cc0e4b5e6ee719014e3171d4e966df42a275c) - [#15087](https://github.com/npm/npm/pull/15087) - Stop outputting progressbars or using color on dumb terminals. - ([@iarna](https://github.com/iarna)) -* [`7a7710ba7`](https://github.com/npm/npm/commit/7a7710ba72e6f82414653c2e7e91fea9a1aba7e2) - [#15088](https://github.com/npm/npm/pull/15088) - Don't exclude modules that are both dev & prod when using `npm ls --production`. - ([@iarna](https://github.com/iarna)) -* [`867df2b02`](https://github.com/npm/npm/commit/867df2b0214689822b87b51578e347f353be97e8) - [#18164](https://github.com/npm/npm/pull/18164) - Only do multiple procs on OSX for now. We've seen a handful of issues - relating to this in Docker and in on Windows with antivirus. - ([@zkat](https://github.com/zkat)) -* [`23540af7b`](https://github.com/npm/npm/commit/23540af7b0ec5f12bbdc1558745c8c4f0861042b) - [#18117](https://github.com/npm/npm/pull/18117) - Some package managers would write spaces to the \_from field in package.json's in the - form of `name @spec`. This was causing npm to fail to interpret them. We now handle that - correctly and doubly make sure we don't do that ourselves. - ([@IgorNadj](https://github.com/IgorNadj)) -* [`0ef320cb4`](https://github.com/npm/npm/commit/0ef320cb40222693b7367b97c60ddffabc2d58c5) - [#16634](https://github.com/npm/npm/pull/16634) - Convert any bin script with a shbang a the start to Unix line-endings. (These sorts of scripts - are not compatible with Windows line-endings even on Windows.) - ([@ScottFreeCode](https://github.com/ScottFreeCode)) -* [`71191ca22`](https://github.com/npm/npm/commit/71191ca2227694355c49dfb187104f68df5126bd) - [#16476](https://github.com/npm/npm/pull/16476) - `npm-lifecycle@1.0.2` Running an install with `--ignore-scripts` was resulting in the - the package object being mutated to have the lifecycle scripts removed from it and that - in turn was being written out to disk, causing further problems. This fixes that: - No more mutation, no more unexpected changes. - ([@addaleax](https://github.com/addaleax)) -* [`459fa9d51`](https://github.com/npm/npm/commit/459fa9d51600904ee75ed6267b159367a1209793) - [npm/read-package-json#74](https://github.com/npm/read-package-json/pull/74) - [#17802](https://github.com/npm/npm/pull/17802) - `read-package-json@2.0.1` Use unix-style slashes for generated bin - entries, which lets them be cross platform even when produced on Windows. - ([@iarna](https://github.com/iarna)) -* [`5ec72ab5b`](https://github.com/npm/npm/commit/5ec72ab5b27c5c83cee9ff568cf75a9479d4b83a) - [#18229](https://github.com/npm/npm/pull/18229) - Make install.sh find nodejs on debian. - ([@cebe](https://github.com/cebe)) - -### DOCUMENTATION - -* [`b019680db`](https://github.com/npm/npm/commit/b019680db78ae0a6dff2289dbfe9f61fccbbe824) - [#10846](https://github.com/npm/npm/pull/10846) - Remind users that they have to install missing `peerDependencies` manually. - ([@ryanflorence](https://github.com/ryanflorence)) -* [`3aee5986a`](https://github.com/npm/npm/commit/3aee5986a65add2f815b24541b9f4b69d7fb445f) - [#17898](https://github.com/npm/npm/pull/17898) - Minor punctuation fixes to the README. - ([@AndersDJohnson](https://github.com/AndersDJohnson)) -* [`e0d0a7e1d`](https://github.com/npm/npm/commit/e0d0a7e1dda2c43822b17eb71f4d51900575cc61) - [#17832](https://github.com/npm/npm/pull/17832) - Fix grammar, format, and spelling in documentation for `run-script`. - ([@simonua](https://github.com/simonua)) -* [`3fd6a5f2f`](https://github.com/npm/npm/commit/3fd6a5f2f8802a9768dba2ec32c593b5db5a878d) - [#17897](https://github.com/npm/npm/pull/17897) - Add more info about using `files` with `npm pack`/`npm publish`. - ([@davidjgoss](https://github.com/davidjgoss)) -* [`f00cdc6eb`](https://github.com/npm/npm/commit/f00cdc6eb90a0735bc3c516720de0b1428c79c31) - [#17785](https://github.com/npm/npm/pull/17785) - Add a note about filenames for certificates on Windows, which use a different - extension and file type. - ([@lgp1985](https://github.com/lgp1985)) -* [`0cea6f974`](https://github.com/npm/npm/commit/0cea6f9741243b1937abfa300c2a111d9ed79143) - [#18022](https://github.com/npm/npm/pull/18022) - Clarify usage for the `files` field in `package.json`. - ([@xcambar](https://github.com/xcambar)) -* [`a0fdd1571`](https://github.com/npm/npm/commit/a0fdd15710971234cbc57086cd1a4dc037a39471) - [#15234](https://github.com/npm/npm/pull/15234) - Clarify the behavior of the `files` array in the package-json docs. - ([@jbcpollak](https://github.com/jbcpollak)) -* [`cecd6aa5d`](https://github.com/npm/npm/commit/cecd6aa5d4dd04af765b26b749c1cd032f7eb913) - [#18137](https://github.com/npm/npm/pull/18137) - Clarify interaction between npmignore and files in package.json. - ([@supertong](https://github.com/supertong)) -* [`6b8972039`](https://github.com/npm/npm/commit/6b89720396767961001e727fc985671ce88b901b) - [#18044](https://github.com/npm/npm/pull/18044) - Corrected the typo in package-locks docs. - ([@vikramnr](https://github.com/vikramnr)) -* [`6e012924f`](https://github.com/npm/npm/commit/6e012924f99c475bc3637c86ab6a113875405fc7) - [#17667](https://github.com/npm/npm/pull/17667) - Fix description of package.json in npm-scripts docs. - ([@tripu](https://github.com/tripu)) - -### POSSIBLY INTERESTING DEPENDENCY UPDATES - -* [`48d84171a`](https://github.com/npm/npm/commit/48d84171a302fde2510b3f31e4a004c5a4d39c73) - [`f60b05d63`](https://github.com/npm/npm/commit/f60b05d6307a7c46160ce98d6f3ccba89411c4ba) - `semver@5.4.1` Perf improvements. - ([@zkat](https://github.com/zkat)) -* [`f4650b5d4`](https://github.com/npm/npm/commit/f4650b5d4b2be2c04c229cc53aa930e260af9b4e) - `write-file-atomic@2.3.0`: - Serialize writes to the same file so that results are deterministic. - Cleanup tempfiles when process is interrupted or killed. - ([@ferm10n](https://github.com/ferm10n)) - ([@iarna](https://github.com/iarna)) - -### CHORES - -* [`96d78df98`](https://github.com/npm/npm/commit/96d78df9843187bc53be2c93913e8567003ccb73) - [`80e2f4960`](https://github.com/npm/npm/commit/80e2f4960691bc5dbd8320002e4d9143784b9ce9) - [`4f49f687b`](https://github.com/npm/npm/commit/4f49f687bbd54b6a0e406936ae35593d8e971e1e) - [`07d2296b1`](https://github.com/npm/npm/commit/07d2296b10e3d8d6f079eba3a61f0258501d7161) - [`a267ab430`](https://github.com/npm/npm/commit/a267ab4309883012a9d55934533c5915e9842277) - [#18176](https://github.com/npm/npm/pull/18176) - [#18025](https://github.com/npm/npm/pull/18025) - Move the lifecycle code out of npm into a separate library, - [`npm-lifecycle`](https://github.com/npm/lifecycle). Shh, I didn't tell you this, but this - portends to some pretty cool stuff to come very soon now. - ([@mikesherov](https://github.com/mikesherov)) -* [`0933c7eaf`](https://github.com/npm/npm/commit/0933c7eaf9cfcdf56471fe4e71c403e2016973da) - [#18025](https://github.com/npm/npm/pull/18025) - Force Travis to use Precise instead of Trusty. We have issues with our - couchdb setup and Trusty. =/ - ([@mikesherov](https://github.com/mikesherov)) -* [`afb086230`](https://github.com/npm/npm/commit/afb086230223f3c4fcddee4e958d18fce5db0ff9) - [#18138](https://github.com/npm/npm/pull/18138) - Fix typos in files-and-ignores test. - ([@supertong](https://github.com/supertong)) -* [`3e6d11cde`](https://github.com/npm/npm/commit/3e6d11cde096b4ee7b07e7569b37186aa2115b1a) - [#18175](https://github.com/npm/npm/pull/18175) - Update dependencies to eliminate transitive dependencies with the WTFPL license, which - some more serious corporate lawyery types aren't super comfortable with. - ([@zkat](https://github.com/zkat)) -* [`ee4c9bd8a`](https://github.com/npm/npm/commit/ee4c9bd8ae574a0d6b24725ba6c7b718d8aaad8d) - [#16474](https://github.com/npm/npm/pull/16474) - The tests in `test/tap/lifecycle-signal.js`, as well as the features - they are testing, are partially broken. This moves them from - being skipped in CI to being disabled only for certain platforms. - In particular, because `npm` spawns its lifecycle scripts in a - shell, signals are not necessarily forwarded by the shell and - won’t cause scripts to exit; also, shells may report the signal - they receive using their exit status, rather than terminating - themselves with a signal. - ([@addaleax](https://github.com/addaleax)) -* [`9462e5d9c`](https://github.com/npm/npm/commit/9462e5d9cfbaa50218de6d0a630d6552e72ad0a8) - [#16547](https://github.com/npm/npm/pull/16547) - Remove unused file: bin/read-package-json.js - ([@metux](https://github.com/metux)) -* [`0756d687d`](https://github.com/npm/npm/commit/0756d687d4ccfcd4a7fd83db0065eceb9261befb) - [#16550](https://github.com/npm/npm/pull/16550) - The build tools for the documentation need to be built/installed - before the documents, even with parallel builds. - Make has a simple mechanism which was made exactly for that: - target dependencies. - ([@metux](https://github.com/metux)) - -## v5.3.0 (2017-07-12): - -As mentioned before, we're continuing to do relatively rapid, smaller releases -as we keep working on stomping out `npm@5` issues! We've made a lot of progress -since 5.0 already, and this release is no exception. - -### FEATURES - -* [`1e3a46944`](https://github.com/npm/npm/commit/1e3a469448b5db8376e6f64022c4c0c78cdb1686) - [#17616](https://github.com/npm/npm/pull/17616) - Add `--link` filter option to `npm ls`. - ([@richardsimko](https://github.com/richardsimko)) -* [`33df0aaa`](https://github.com/npm/npm/commit/33df0aaaa7271dac982b86f2701d10152c4177c8) - `libnpx@9.2.0`: - * 4 new languages - Czech, Italian, Turkish, and Chinese (Traditional)! This means npx is available in 14 different languages! - * New --node-arg option lets you pass CLI arguments directly to node when the target binary is found to be a Node.js script. - ([@zkat](https://github.com/zkat)) - -### BUGFIXES - -* [`33df0aaa`](https://github.com/npm/npm/commit/33df0aaaa7271dac982b86f2701d10152c4177c8) - `libnpx@9.2.0`: - * npx should now work on (most) Windows installs. A couple of issues remain. - * Prevent auto-fallback from going into an infinite loop when npx disappears. - * `npx npx npx npx npx npx npx npx` works again. - * `update-notifier` will no longer run for the npx bundled with npm. - * `npx ` in a subdirectory of your project should be able to find your `node_modules/.bin` now. Oops - ([@zkat](https://github.com/zkat)) -* [`8e979bf80`](https://github.com/npm/npm/commit/8e979bf80fb93233f19db003f08443e26cfc5e64) - Revert change where npm stopped flattening modules that required peerDeps. - This caused problems because folks were using peer deps to indicate that the - target of the peer dep needed to be able to require the dependency and had - been relying on the fact that peer deps didn't change the shape of the tree - (as of npm@3). - The fix that will actually work for people is for a peer dep to insist on - never being installed deeper than the the thing it relies on. At the moment - this is tricky because the thing the peer dep relies on may not yet have - been added to the tree, so we don't know where it is. - ([@iarna](https://github.com/iarna)) -* [`7f28a77f3`](https://github.com/npm/npm/commit/7f28a77f33ef501065f22e8d5e8cffee3195dccd) - [#17733](https://github.com/npm/npm/pull/17733) - Split remove and unbuild actions into two to get uninstall lifecycles and the - removal of transitive symlinks during uninstallation to run in the right - order. - ([@iarna](https://github.com/iarna)) -* [`637f2548f`](https://github.com/npm/npm/commit/637f2548facae011eebf5e5c38bfe56a6c2db9fa) - [#17748](https://github.com/npm/npm/pull/17748) - When rolling back use symlink project-relative path, fixing some issues with - `fs-vacuum` getting confused while removing symlinked things. - ([@iarna](https://github.com/iarna)) -* [`f153b5b22`](https://github.com/npm/npm/commit/f153b5b22f647d4d403f5b8cecd2ce63ac75b07c) - [#17706](https://github.com/npm/npm/pull/17706) - Use semver to compare node versions in npm doctor instead of plain `>` - comparison. - ([@leo-shopify](https://github.com/leo-shopify)) -* [`542f7561`](https://github.com/npm/npm/commit/542f7561d173eca40eb8d838a16a0ed582fef989) - [#17742](https://github.com/npm/npm/pull/17742) - Fix issue where `npm version` would sometimes not commit package-locks. - ([@markpeterfejes](https://github.com/markpeterfejes)) -* [`51a9e63d`](https://github.com/npm/npm/commit/51a9e63d31cb5ac52259dcf1c364004286072426) - [#17777](https://github.com/npm/npm/pull/17777) - Fix bug exposed by other bugfixes where the wrong package would be removed. - ([@iarna](https://github.com/iarna)) - -### DOCUMENTATION - -Have we mentioned we really like documentation patches? Keep sending them in! -Small patches are just fine, and they're a great way to get started contributing -to npm! - -* [`fb42d55a9`](https://github.com/npm/npm/commit/fb42d55a9a97afa5ab7db38b3b99088cf68684ea) - [#17728](https://github.com/npm/npm/pull/17728) - Document semver git urls in package.json docs. - ([@sankethkatta](https://github.com/sankethkatta)) -* [`f398c700f`](https://github.com/npm/npm/commit/f398c700fb0f2f3665ebf45995a910ad16cd8d05) - [#17684](https://github.com/npm/npm/pull/17684) - Tweak heading hierarchy in package.json docs. - ([@sonicdoe](https://github.com/sonicdoe)) -* [`d5ad65e50`](https://github.com/npm/npm/commit/d5ad65e50a573cdf9df4155225e869cd6c88ca5e) - [#17691](https://github.com/npm/npm/pull/17691) - Explicitly document `--no-save` flag for uninstall. - ([@timneedham](https://github.com/timneedham)) - -## v5.2.0 (2017-07-05): - -It's only been a couple of days but we've got some bug fixes we wanted to -get out to you all. We also believe that -[`npx`](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) is ready to be bundled -with npm, which we're really excited about! - -### npx!!! - -npx is a tool intended to help round out the experience of using packages -from the npm registry — the same way npm makes it super easy to install and -manage dependencies hosted on the registry, npx is meant to make it easy to -use CLI tools and other executables hosted on the registry. It greatly -simplifies a number of things that, until now, required a bit of ceremony to -do with plain npm. - -![](https://cdn-images-1.medium.com/max/1600/1*OlIRsvVO5aK7ja9HmwXz_Q.gif) - -[@zkat](https://github.com/zkat) has a [great introduction post to npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) -that I highly recommend you give a read - -* [`fb040bee0`](https://github.com/npm/npm/commit/fb040bee0710759c60e45bf8fa2a3b8ddcf4212a) - [#17685](https://github.com/npm/npm/pull/17685) - Bundle npx with npm itself. - ([@zkat](https://github.com/zkat)) - -### BUG FIXES - -* [`9fe905c39`](https://github.com/npm/npm/commit/9fe905c399d07a3c00c7b22035ddb6b7762731e6) - [#17652](https://github.com/npm/npm/pull/17652) - Fix max callstack exceeded loops with trees with circular links. - ([@iarna](https://github.com/iarna)) -* [`c0a289b1b`](https://github.com/npm/npm/commit/c0a289b1ba6b99652c43a955b23acbf1de0b56ae) - [#17606](https://github.com/npm/npm/pull/17606) - Make sure that when write package.json and package-lock.json we always use unix path separators. - ([@Standard8](https://github.com/Standard8)) -* [`1658b79ca`](https://github.com/npm/npm/commit/1658b79cad89ccece5ae5ce3c2f691d44b933116) - [#17654](https://github.com/npm/npm/pull/17654) - Make `npm outdated` show results for globals again. Previously it never thought they were out of date. - ([@iarna](https://github.com/iarna)) -* [`06c154fd6`](https://github.com/npm/npm/commit/06c154fd653d18725d2e760ba825d43cdd807420) - [#17678](https://github.com/npm/npm/pull/17678) - Stop flattening modules that have peer dependencies. We're making this - change to support scenarios where the module requiring a peer dependency - is flattened but the peer dependency itself is not, due to conflicts. In - those cases the module requiring the peer dep can't be flattened past the - location its peer dep was placed in. This initial fix is naive, never - flattening peer deps, and we can look into doing something more - sophisticated later on. - ([@iarna](https://github.com/iarna)) -* [`88aafee8b`](https://github.com/npm/npm/commit/88aafee8b5b232b7eeb5690279a098d056575791) - [#17677](https://github.com/npm/npm/pull/17677) - There was an issue where updating a flattened dependency would sometimes - unflatten it. This only happened when the dependency had dependencies - that in turn required the original dependency. - ([@iarna](https://github.com/iarna)) -* [`b58ec8eab`](https://github.com/npm/npm/commit/b58ec8eab3b4141e7f1b8b42d8cc24f716a804d8) - [#17626](https://github.com/npm/npm/pull/17626) - Integrators who were building their own copies of npm ran into issues because - `make install` and https://npmjs.com/install.sh weren't aware that - `npm install` creates links now when given a directory to work on. This does not impact folks - installing npm with `npm install -g npm`. - ([@iarna](https://github.com/iarna)) - -### DOC FIXES - -* [`10bef735e`](https://github.com/npm/npm/commit/10bef735e825acc8278827d34df415dfcd8c67d4) - [#17645](https://github.com/npm/npm/pull/17645) - Fix some github issue links in the 5.1.0 changelog - ([@schmod](https://github.com/schmod)) -* [`85fa9dcb2`](https://github.com/npm/npm/commit/85fa9dcb2f0b4f51b515358e0184ec82a5845227) - [#17634](https://github.com/npm/npm/pull/17634) - Fix typo in package-lock docs. - ([@sonicdoe](https://github.com/sonicdoe)) -* [`688699bef`](https://github.com/npm/npm/commit/688699befc2d147288c69a9405fb8354ecaebe36) - [#17628](https://github.com/npm/npm/pull/17628) - Recommend that folks looking for support join us on https://package.community/ or message - [@npm_support](https://twitter.com/npm_support) on Twitter. - ([@strugee](https://github.com/strugee)) - - -## v5.1.0 (2017-07-05): - -Hey y'all~ - -We've got some goodies for you here, including `npm@5`'s first semver-minor -release! This version includes a huge number of fixes, particularly for some of -the critical bugs users were running into after upgrading npm. You should -overall see a much more stable experience, and we're going to continue hacking -on fixes for the time being. Semver-major releases, specially for tools like -npm, are bound to cause some instability, and getting `npm@5` stable is the CLI -team's top priority for now! - -Not that bugfixes are the only things that landed, either: between improvements -that fell out of the bugfixes, and some really cool work by community members -like [@mikesherov](https://github.com/mikesherov), `npm@5.1.0` is **_twice as -fast_** as `npm@5.0.0` in some benchmarks. We're not stopping there, either: you -can expect a steady stream of speed improvements over the course of the year. -It's not _top_ priority, but we'll keep doing what we can to make sure npm saves -its users as much time as possible. - -Hang on to your seats. At **100 commits**, this release is a bit of a doozy. 😎 - -### FEATURES - -Semver-minor releases, of course, mean that there's a new feature somewhere, -right? Here's what's bumping that number for us this time: - -* [`a09c1a69d`](https://github.com/npm/npm/commit/a09c1a69df05b753464cc1272cdccc6af0f4da5a) - [#16687](https://github.com/npm/npm/pull/16687) - Allow customizing the shell used to execute `run-script`s. - ([@mmkal](https://github.com/mmkal)) -* [`4f45ba222`](https://github.com/npm/npm/commit/4f45ba222e2ac6dbe6d696cb7a8e678bbda7c839) [`a48958598`](https://github.com/npm/npm/commit/a489585985540deed4edc03418636c9e97aa9e40) [`901bef0e1`](https://github.com/npm/npm/commit/901bef0e1ea806fc08d8d58744a9f813b6c020ab) - [#17508](https://github.com/npm/npm/pull/17508) - Add a new `requires` field to `package-lock.json` with information about the - _logical_ dependency tree. This includes references to the specific version - each package is intended to see, and can be used for many things, such as - [converting `package-lock.json` to other lockfile - formats](https://twitter.com/maybekatz/status/880578566907248640), various - optimizations, and verifying correctness of a package tree. - ([@iarna](https://github.com/iarna)) -* [`47e8fc8eb`](https://github.com/npm/npm/commit/47e8fc8eb9b5faccef9e03ab991cf37458c16249) - [#17508](https://github.com/npm/npm/pull/17508) - Make `npm ls` take package locks (and shrinkwraps) into account. This means - `npm ls` can now be used to see [which dependencies are - missing](https://twitter.com/maybekatz/status/880446509547794437), so long as - a package lock has been previously generated with it in. - ([@iarna](https://github.com/iarna)) -* [`f0075e7ca`](https://github.com/npm/npm/commit/f0075e7caa3e151424a254d7809ae4489ed8df90) - [#17508](https://github.com/npm/npm/pull/17508) - Take `package.json` changes into account when running installs -- if you - remove or add a dependency to `package.json` manually, npm will now pick that - up and update your tree and package lock accordingly. - ([@iarna](https://github.com/iarna)) -* [`83a5455aa`](https://github.com/npm/npm/commit/83a5455aac3c5cc2511ab504923b652b13bd66a0) - [#17205](https://github.com/npm/npm/pull/17205) - Add `npm udpate` as an alias for `npm update`, for symmetry with - `install`/`isntall`. - ([@gdassori](https://github.com/gdassori)) -* [`57225d394`](https://github.com/npm/npm/commit/57225d394b6174eb0be48393d8e18da0991f67b6) - [#17120](https://github.com/npm/npm/pull/17120) - npm will no longer warn about `preferGlobal`, and the option is now - deprecated. - ([@zkat](https://github.com/zkat)) -* [`82df7bb16`](https://github.com/npm/npm/commit/82df7bb16fc29c47a024db4a8c393e55f883744b) - [#17351](https://github.com/npm/npm/pull/17351) - As some of you may already know `npm build` doesn't do what a lot of people - expect: It's mainly an npm plumbing command, and is part of the more familiar - `npm rebuild` command. That said, a lot of users assume that this is the way - to run an npm `run-script` named `build`, which is an incredibly common script - name to use. To clarify things for users, and encourage them to use `npm run - build` instead, npm will now warn if `npm build` is run without any arguments. - ([@lennym](https://github.com/lennym)) - -### PERFORMANCE - -* [`59f86ef90`](https://github.com/npm/npm/commit/59f86ef90a58d8dc925c9613f1c96e68bee5ec7b) [`43be9d222`](https://github.com/npm/npm/commit/43be9d2222b23ebb0a427ed91824ae217e6d077a) [`e906cdd98`](https://github.com/npm/npm/commit/e906cdd980b4722e66618ce295c682b9a8ffaf8f) - [#16633](https://github.com/npm/npm/pull/16633) - npm now parallelizes tarball extraction across multiple child process workers. - This can significantly speed up installations, specially when installing from - cache, and will improve with number of processors. - ([@zkat](https://github.com/zkat)) -* [`e0849878d`](https://github.com/npm/npm/commit/e0849878dd248de8988c2ef3fc941054625712ca) - [#17441](https://github.com/npm/npm/pull/17441) - Avoid building environment for empty lifecycle scripts. This change alone - accounted for as much as a 15% speed boost for npm installations by outright - skipping entire steps of the installer when not needed. - ([@mikesherov](https://github.com/mikesherov)) -* [`265c2544c`](https://github.com/npm/npm/commit/265c2544c8ded10854909243482e6437ed03c261) - [npm/hosted-git-info#24](https://github.com/npm/hosted-git-info/pull/24) - `hosted-git-info@2.5.0`: Add caching to `fromURL`, which gets called many, - many times by the installer. This improved installation performance by around - 10% on realistic application repositories. - ([@mikesherov](https://github.com/mikesherov)) -* [`901d26cb`](https://github.com/npm/npm/commit/901d26cb656e7e773d9a38ef4eac9263b95e07c8) - [npm/read-package-json#20](https://github.com/npm/read-package-json/pull/70) - `read-package-json@2.0.9`: Speed up installs by as much as 20% by - reintroducing a previously-removed cache and making it actually be correct - this time around. - ([@mikesherov](https://github.com/mikesherov)) -* [`44e37045d`](https://github.com/npm/npm/commit/44e37045d77bc40adf339b423d42bf5e9b4d4d91) - Eliminate `Bluebird.promisifyAll` from our codebase. - ([@iarna](https://github.com/iarna)) -* [`3b4681b53`](https://github.com/npm/npm/commit/3b4681b53db7757985223932072875d099694677) - [#17508](https://github.com/npm/npm/pull/17508) - Stop calling `addBundle` on locked deps, speeding up the - `package-lock.json`-based fast path. - ([@iarna](https://github.com/iarna)) - -### BUGFIXES - -* [#17508](https://github.com/npm/npm/pull/17508) - This is a big PR that fixes a variety of issues when installing from package - locks. If you were previously having issues with missing dependencies or - unwanted removals, this might have fixed it: - * It introduces a new `package-lock.json` field, called `requires`, which tracks which modules a given module requires. - * It fixes [#16839](https://github.com/npm/npm/issues/16839) which was caused by not having this information available, particularly when git dependencies were involved. - * It fixes [#16866](https://github.com/npm/npm/issues/16866), allowing the `package.json` to trump the `package-lock.json`. - * `npm ls` now loads the shrinkwrap, which opens the door to showing a full tree of dependencies even when nothing is yet installed. (It doesn't do that yet though.) - ([@iarna](https://github.com/iarna)) -* [`656544c31`](https://github.com/npm/npm/commit/656544c31cdef3cef64fc10c24f03a8ae2685e35) [`d21ab57c3`](https://github.com/npm/npm/commit/d21ab57c3ef4f01d41fb6c2103debe884a17dc22) - [#16637](https://github.com/npm/npm/pull/16637) - Fix some cases where `npm prune` was leaving some dependencies unpruned if - to-be-pruned dependencies depended on them. - ([@exogen](https://github.com/exogen)) -* [`394436b09`](https://github.com/npm/npm/commit/394436b098dcca2d252061f95c4eeb92c4a7027c) - [#17552](https://github.com/npm/npm/pull/17552) - Make `refresh-package-json` re-verify the package platform. This fixes an - issue most notably experienced by Windows users using `create-react-app` where - `fsevents` would not short-circuit and cause a crash during its - otherwise-skipped native build phase. - ([@zkat](https://github.com/zkat)) -* [`9e5a94354`](https://github.com/npm/npm/commit/9e5a943547b29c8d022192afd9398b3a136a7e5a) - [#17590](https://github.com/npm/npm/pull/17590) - Fix an issue where `npm@5` would crash when trying to remove packages - installed with `npm@<5`. - ([@iarna](https://github.com/iarna)) -* [`c3b586aaf`](https://github.com/npm/npm/commit/c3b586aafa9eabac572eb6e2b8a7266536dbc65b) - [#17141](https://github.com/npm/npm/issues/17141) - Don't update the package.json when modifying packages that don't go there. - This was previously causing `package.json` to get a `"false": {}` field added. - ([@iarna](https://github.com/iarna)) -* [`d04a23de2`](https://github.com/npm/npm/commit/d04a23de21dd9991b32029d839b71e10e07b400d) [`4a5b360d5`](https://github.com/npm/npm/commit/4a5b360d561f565703024085da0927ccafe8793e) [`d9e53db48`](https://github.com/npm/npm/commit/d9e53db48ca227b21bb67df48c9b3580cb390e9e) - `pacote@2.7.38`: - * [zkat/pacote#102](https://github.com/zkat/pacote/pull/102) Fix issue with tar extraction and special characters. - * Enable loose semver parsing in some missing corner cases. - ([@colinrotherham](https://github.com/colinrotherham), [@zkat](https://github.com/zkat), [@mcibique](https://github.com/mcibique)) -* [`e2f815f87`](https://github.com/npm/npm/commit/e2f815f87676b7c50b896e939cee15a01aa976e4) - [#17104](https://github.com/npm/npm/pull/17104) - Write an empty str and wait for flush to exit to reduce issues with npm - exiting before all output is complete when it's a child process. - ([@zkat](https://github.com/zkat)) -* [`835fcec60`](https://github.com/npm/npm/commit/835fcec601204971083aa3a281c3a9da6061a7c2) - [#17060](https://github.com/npm/npm/pull/17060) - Make git repos with prepare scripts always install with both dev and prod - flags. - ([@intellix](https://github.com/intellix)) -* [`f1dc8a175`](https://github.com/npm/npm/commit/f1dc8a175eed56f1ed23bd5773e5e10beaf6cb31) - [#16879](https://github.com/npm/npm/pull/16879) - Fix support for `always-auth` and `_auth`. They are now both available in both - unscoped and registry-scoped configurations. - ([@jozemlakar](https://github.com/jozemlakar)) -* [`ddd8a1ca2`](https://github.com/npm/npm/commit/ddd8a1ca2fa3377199af74ede9d0c1a406d19793) - Serialize package specs to prevent `[object Object]` showing up in logs during - extraction. - ([@zkat](https://github.com/zkat)) -* [`99ef3b52c`](https://github.com/npm/npm/commit/99ef3b52caa7507e87a4257e622f8964b1c1f5f3) - [#17505](https://github.com/npm/npm/pull/17505) - Stop trying to commit updated `npm-shrinkwrap.json` and `package-lock.json` if - they're `.gitignore`d. - ([@zkat](https://github.com/zkat)) -* [`58be2ec59`](https://github.com/npm/npm/commit/58be2ec596dfb0353ad2570e6750e408339f1478) - Make sure uid and gid are getting correctly set even when they're `0`. This - should fix some Docker-related issues with bad permissions/broken ownership. - ([@rgrove](https://github.com/rgrove)) - ([@zkat](https://github.com/zkat)) -* [`9d1e3b6fa`](https://github.com/npm/npm/commit/9d1e3b6fa01bb563d76018ee153259d9507658cf) - [#17506](https://github.com/npm/npm/pull/17506) - Skip writing package.json and locks if on-disk version is identical to the new - one. - ([@zkat](https://github.com/zkat)) -* [`3fc6477a8`](https://github.com/npm/npm/commit/3fc6477a89773786e6c43ef43a23e5cdc662ff8e) - [#17592](https://github.com/npm/npm/pull/17592) - Fix an issue where `npm install -g .` on a package with no `name` field would - cause the entire global `node_modules` directory to be replaced with a symlink - to `$CWD`. lol. - ([@iarna](https://github.com/iarna)) -* [`06ba0a14a`](https://github.com/npm/npm/commit/06ba0a14a6c1c8cdcc8c062b68c8c63041b0cec0) - [#17591](https://github.com/npm/npm/pull/17591) - Fix spurious removal reporting: if you tried to remove something that didn't - actually exist, npm would tell you it removed 1 package even though there was - nothing to do. - ([@iarna](https://github.com/iarna)) -* [`20ff05f8`](https://github.com/npm/npm/commit/20ff05f8fe0ad8c36e1323d30b63b4d2ff7e11ef) - [#17629](https://github.com/npm/npm/pull/17629) - When removing a link, keep dependencies installed inside of it instead of - removing them, if the link is outside the scope of the current project. This - fixes an issue where removing globally-linked packages would remove all their - dependencies in the source directory, as well as some ergonomic issues when - using links in other situations. - ([@iarna](https://github.com/iarna)) - -### DOCS - -* [`fd5fab595`](https://github.com/npm/npm/commit/fd5fab5955a20a9bb8c0e77092ada1435f73a8d2) - [#16441](https://github.com/npm/npm/pull/16441) - Add spec for `npm-shrinkwrap.json` and `package-lock.json` from RFC. - ([@iarna](https://github.com/iarna)) -* [`9589c1ccb`](https://github.com/npm/npm/commit/9589c1ccb3f794abaaa48c2a647ada311dd881ef) - [#17451](https://github.com/npm/npm/pull/17451) - Fix typo in changelog. - ([@watilde](https://github.com/watilde)) -* [`f8e76d856`](https://github.com/npm/npm/commit/f8e76d8566ae1965e57d348df74edad0643b66a6) - [#17370](https://github.com/npm/npm/pull/17370) - Correct the default prefix config path for Windows operating systems in the - documentation for npm folders. - ([@kierendixon](https://github.com/kierendixon)) -* [`d0f3b5a12`](https://github.com/npm/npm/commit/d0f3b5a127718b0347c6622a2b9c28341c530d36) - [#17369](https://github.com/npm/npm/pull/17369) - Fix `npm-config` reference to `userconfig` & `globalconfig` environment - variables. - ([@racztiborzoltan](https://github.com/racztiborzoltan)) -* [`87629880a`](https://github.com/npm/npm/commit/87629880a71baec352c1b5345bc29268d6212467) - [#17336](https://github.com/npm/npm/pull/17336) - Remove note in docs about `prepublish` being entirely removed. - ([@Hirse](https://github.com/Hirse)) -* [`a1058afd9`](https://github.com/npm/npm/commit/a1058afd9a7a569bd0ac65b86eadd4fe077a7221) - [#17169](https://github.com/npm/npm/pull/17169) - Document `--no-package-lock` flag. - ([@leggsimon](https://github.com/leggsimon)) -* [`32fc6e41a`](https://github.com/npm/npm/commit/32fc6e41a2ce4dbcd5ce1e5f291e2e2efc779d48) - [#17250](https://github.com/npm/npm/pull/17250) - Fix a typo in the shrinkwrap docs. - ([@Zarel](https://github.com/Zarel)) -* [`f19bd3c8c`](https://github.com/npm/npm/commit/f19bd3c8cbd37c8a99487d6b5035282580ac3e9d) - [#17249](https://github.com/npm/npm/pull/17249) - Fix a package-lock.json cross-reference link. - ([@not-an-aardvark](https://github.com/not-an-aardvark)) -* [`153245edc`](https://github.com/npm/npm/commit/153245edc4845db670ada5e95ef384561706a751) - [#17075](https://github.com/npm/npm/pull/17075/files) - Fix a typo in `npm-config` docs. - ([@KennethKinLum](https://github.com/KennethKinLum)) -* [`c9b534a14`](https://github.com/npm/npm/commit/c9b534a148818d1a97787c0dfdba5f64ce3618a6) - [#17074](https://github.com/npm/npm/pull/17074) - Clarify config documention with multiple boolean flags. - ([@KennethKinLum](https://github.com/KennethKinLum)) -* [`e111b0a40`](https://github.com/npm/npm/commit/e111b0a40c4bc6691d7b8d67ddce5419e67bfd27) - [#16768](https://github.com/npm/npm/pull/16768) - Document the `-l` option to `npm config list`. - ([@happylynx](https://github.com/happylynx)) -* [`5a803ebad`](https://github.com/npm/npm/commit/5a803ebadd61229bca3d64fb3ef1981729b2548e) - [#16548](https://github.com/npm/npm/pull/16548) - Fix permissions for documentation files. Some of them had `+x` set. (???) - ([@metux](https://github.com/metux)) -* [`d57d4f48c`](https://github.com/npm/npm/commit/d57d4f48c6cd00fdf1e694eb49e9358071d8e105) - [#17319](https://github.com/npm/npm/pull/17319) - Document that the `--silent` option for `npm run-script` can be used to - suppress `npm ERR!` output on errors. - ([@styfle](https://github.com/styfle)) - -### MISC - -Not all contributions need to be visible features, docs, or bugfixes! It's super -helpful when community members go over our code and help clean it up, too! - -* [`9e5b76140`](https://github.com/npm/npm/commit/9e5b76140ffdb7dcd12aa402793644213fb8c5d7) - [#17411](https://github.com/npm/npm/pull/17411) - Convert all callback-style `move` usage to use Promises. - ([@vramana](https://github.com/vramana)) -* [`0711c08f7`](https://github.com/npm/npm/commit/0711c08f779ac641ec42ecc96f604c8861008b28) - [#17394](https://github.com/npm/npm/pull/17394) - Remove unused argument in `deepSortObject`. - ([@vramana](https://github.com/vramana)) -* [`7d650048c`](https://github.com/npm/npm/commit/7d650048c8ed5faa0486492f1eeb698e7383e32f) - [#17563](https://github.com/npm/npm/pull/17563) - Refactor some code to use `Object.assign`. - ([@vramana](https://github.com/vramana)) -* [`993f673f0`](https://github.com/npm/npm/commit/993f673f056aea5f602ea04b1e697b027c267a2d) - [#17600](https://github.com/npm/npm/pull/17600) - Remove an old comment. - ([@vramana](https://github.com/vramana)) - -## v5.0.4 (2017-06-13): - -Hey y'all. This is another minor patch release with a variety of little fixes -we've been accumulating~ - -* [`f0a37ace9`](https://github.com/npm/npm/commit/f0a37ace9ab7879cab20f2b0fcd7840bfc305feb) - Fix `npm doctor` when hitting registries without `ping`. - ([@zkat](https://github.com/zkat)) -* [`64f0105e8`](https://github.com/npm/npm/commit/64f0105e81352b42b72900d83b437b90afc6d9ce) - Fix invalid format error when setting cache-related headers. - ([@zkat](https://github.com/zkat)) -* [`d2969c80e`](https://github.com/npm/npm/commit/d2969c80e4178faebf0f7c4cab6eb610dd953cc6) - Fix spurious `EINTEGRITY` issue. - ([@zkat](https://github.com/zkat)) -* [`800cb2b4e`](https://github.com/npm/npm/commit/800cb2b4e2d0bd00b5c9082a896f2110e907eb0b) - [#17076](https://github.com/npm/npm/pull/17076) - Use legacy `from` field to improve upgrade experience from legacy shrinkwraps - and installs. - ([@zkat](https://github.com/zkat)) -* [`4100d47ea`](https://github.com/npm/npm/commit/4100d47ea58b4966c02604f71350b5316108df6a) - [#17007](https://github.com/npm/npm/pull/17007) - Restore loose semver parsing to match older npm behavior when running into - invalid semver ranges in dependencies. - ([@zkat](https://github.com/zkat)) -* [`35316cce2`](https://github.com/npm/npm/commit/35316cce2ca2d8eb94161ec7fe7e8f7bec7b3aa7) - [#17005](https://github.com/npm/npm/pull/17005) - Emulate npm@4's behavior of simply marking the peerDep as invalid, instead of - crashing. - ([@zkat](https://github.com/zkat)) -* [`e7e8ee5c5`](https://github.com/npm/npm/commit/e7e8ee5c57c7238655677e118a8809b652019f53) - [#16937](https://github.com/npm/npm/pull/16937) - Workaround for separate bug where `requested` was somehow null. - ([@forivall](https://github.com/forivall)) -* [`2d9629bb2`](https://github.com/npm/npm/commit/2d9629bb2043cff47eaad2654a64d2cef5725356) - Better logging output for git errors. - ([@zkat](https://github.com/zkat)) -* [`2235aea73`](https://github.com/npm/npm/commit/2235aea73569fb9711a06fa6344ef31247177dcd) - More scp-url fixes: parsing only worked correctly when a committish was - present. - ([@zkat](https://github.com/zkat)) -* [`80c33cf5e`](https://github.com/npm/npm/commit/80c33cf5e6ef207450949764de41ea96538c636e) - Standardize package permissions on tarball extraction, instead of using perms - from the tarball. This matches previous npm behavior and fixes a number of - incompatibilities in the wild. - ([@zkat](https://github.com/zkat)) -* [`2b1e40efb`](https://github.com/npm/npm/commit/2b1e40efba0b3d1004259efa4275cf42144e3ce3) - Limit shallow cloning to hosts which are known to support it. - ([@zkat](https://github.com/zkat)) - -## v5.0.3 (2017-06-05) - -Happy Monday, y'all! We've got another npm release for you with the fruits of -our ongoing bugsquashing efforts. You can expect at least one more this week, -but probably more -- and as we announced last week, we'll be merging fixes more -rapidly into the `npmc` canary so you can get everything as soon as possible! - -Hope y'all are enjoying npm5 in the meantime, and don't hesitate to file issues -for anything you find! The goal is to get this release rock-solid as soon as we -can. 💚 - -* [`6e12a5cc0`](https://github.com/npm/npm/commit/6e12a5cc022cb5a157a37df7283b6d7b3d49bdab) - Bump several dependencies to get improvements and bugfixes: - * `cacache`: content files (the tarballs) are now read-only. - * `pacote`: fix failing clones with bad heads, send extra TLS-related opts to proxy, enable global auth configurations and `_auth`-based auth. - * `ssri`: stop crashing with `can't call method find of undefined` when running into a weird `opts.integrity`/`opts.algorithms` conflict during verification. - ([@zkat](https://github.com/zkat)) -* [`89cc8e3e1`](https://github.com/npm/npm/commit/89cc8e3e12dad67fd9844accf4d41deb4c180c5c) - [#16917](https://github.com/npm/npm/pull/16917) - Send `ca`, `cert` and `key` config through to network layer. - ([@colinrotherham](https://github.com/colinrotherham)) -* [`6a9b51c67`](https://github.com/npm/npm/commit/6a9b51c67ba3df0372991631992748329b84f2e7) - [#16929](https://github.com/npm/npm/pull/16929) - Send `npm-session` header value with registry requests again. - ([@zarenner](https://github.com/zarenner)) -* [`662a15ab7`](https://github.com/npm/npm/commit/662a15ab7e790e87f5e5a35252f05d5a4a0724a1) - Fix `npm doctor` so it stop complaining about read-only content files in the - cache. - ([@zkat](https://github.com/zkat)) -* [`191d10a66`](https://github.com/npm/npm/commit/191d10a6616d72e26d89fd00f5a4f6158bfbc526) - [#16918](https://github.com/npm/npm/pull/16918) - Clarify prepublish deprecation message. - ([@Hirse](https://github.com/Hirse)) - -## v5.0.2 (2017-06-02) - -Here's another patch release, soon after the other! - -This particular release includes a slew of fixes to npm's git support, which was -causing some issues for a chunk of people, specially those who were using -self-hosted/Enterprise repos. All of those should be back in working condition -now. - -There's another shiny thing you might wanna know about: npm has a Canary release -now! The `npm5` experiment we did during our beta proved to be incredibly -successful: users were able to have a tight feedback loop between reports and -getting the bugfixes they needed, and the CLI team was able to roll out -experimental patches and have the community try them out right away. So we want -to keep doing that. - -From now on, you'll be able to install the 'npm canary' with `npm i -g npmc`. -This release will be a separate binary (`npmc`. Because canary. Get it?), which -will update independently of the main CLI. Most of the time, this will track -`release-next` or something close to it. We might occasionally toss experimental -branches in there to see if our more adventurous users run into anything -interesting with it. For example, the current canary (`npmc@5.0.1-canary.6`) -includes an [experimental multiproc -branch](https://github.com/npm/npm/pull/16633) that parallelizes tarball -extraction across multiple processes. - -If you find any issues while running the canary version, please report them and -let us know it came from `npmc`! It would be tremendously helpful, and finding -things early is a huge reason to have it there. Happy hacking! - -### A NOTE ABOUT THE ISSUE TRACKER - -Just a heads up: We're preparing to do a massive cleanup of the issue tracker. -It's been a long time since it was something we could really keep up with, and -we didn't have a process for dealing with it that could actually be sustainable. - -We're still sussing the details out, and we'll talk about it more when we're -about to do it, but the plan is essentially to close old, abandoned issues and -start over. We will also [add some automation](https://github.com/probot) around -issue management so that things that we can't keep up with don't just stay -around forever. - -Stay tuned! - -### GIT YOLO - -* [`1f26e9567`](https://github.com/npm/npm/commit/1f26e9567a6d14088704e121ebe787c38b6849a4) - `pacote@2.7.27`: Fixes installing committishes that look like semver, even - though they're not using the required `#semver:` syntax. - ([@zkat](https://github.com/zkat)) -* [`85ea1e0b9`](https://github.com/npm/npm/commit/85ea1e0b9478551265d03d545e7dc750b9edf547) - `npm-package-arg@5.1.1`: This includes the npa git-parsing patch to make it so - non-hosted SCP-style identifiers are correctly handled. Previously, npa would - mangle them (even though hosted-git-info is doing the right thing for them). - ([@zkat](https://github.com/zkat)) - -### COOL NEW OUTPUT - -The new summary output has been really well received! One downside that reared -its head as more people used it, though, is that it doesn't really tell you -anything about the toplevel versions it installed. So, if you did `npm i -g -foo`, it would just say "added 1 package". This patch by -[@rmg](https://github.com/rmg) keeps things concise while still telling you -what you got! So now, you'll see something like this: - -``` -$ npm i -g foo bar -+ foo@1.2.3 -+ bar@3.2.1 -added 234 packages in .005ms -``` - -* [`362f9fd5b`](https://github.com/npm/npm/commit/362f9fd5bec65301082416b4292b8fe3eb7f824a) - [#16899](https://github.com/npm/npm/pull/16899) - For every package that is given as an argument to install, print the name and - version that was actually installed. - ([@rmg](https://github.com/rmg)) - -### OTHER BUGFIXES - -* [`a47593a98`](https://github.com/npm/npm/commit/a47593a98a402143081d7077d2ac677d13083010) - [#16835](https://github.com/npm/npm/pull/16835) - Fix a crash while installing with `--no-shrinkwrap`. - ([@jacknagel](https://github.com/jacknagel)) - -### DOC UPATES - -* [`89e0cb816`](https://github.com/npm/npm/commit/89e0cb8165dd9c3c7ac74d531617f367099608f4) - [#16818](https://github.com/npm/npm/pull/16818) - Fixes a spelling error in the docs. Because the CLI team has trouble spelling - "package", I guess. - ([@ankon](https://github.com/ankon)) -* [`c01fbc46e`](https://github.com/npm/npm/commit/c01fbc46e151bcfb359fd68dd7faa392789b4f55) - [#16895](https://github.com/npm/npm/pull/16895) - Remove `--save` from `npm init` instructions, since it's now the default. - ([@jhwohlgemuth](https://github.com/jhwohlgemuth)) -* [`80c42d218`](https://github.com/npm/npm/commit/80c42d2181dd4d1b79fcee4e9233df268dfb30b7) - Guard against cycles when inflating bundles, as symlinks are bundles now. - ([@iarna](https://github.com/iarna)) -* [`7fe7f8665`](https://github.com/npm/npm/commit/7fe7f86658798db6667df89afc75588c0e43bc94) - [#16674](https://github.com/npm/npm/issues/16674) - Write the builtin config for `npmc`, not just `npm`. This is hardcoded for npm - self-installations and is needed for Canary to work right. - ([@zkat](https://github.com/zkat)) - -### DEP UPDATES - -* [`63df4fcdd`](https://github.com/npm/npm/commit/63df4fcddc7445efb50cc7d8e09cdd45146d3e39) - [#16894](https://github.com/npm/npm/pull/16894) - [`node-gyp@3.6.2`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md#v362-2017-06-01): - Fixes an issue parsing SDK versions on Windows, among other things. - ([@refack](https://github.com/refack)) -* [`5bb15c3c4`](https://github.com/npm/npm/commit/5bb15c3c4f0d7d77c73fd6dafa38ac36549b6e00) - `read-package-tree@5.1.6`: Fixes some racyness while reading the tree. - ([@iarna](https://github.com/iarna)) -* [`a6f7a52e7`](https://github.com/npm/npm/commit/a6f7a52e7) - `aproba@1.1.2`: Remove nested function declaration for speed up - ([@mikesherov](https://github.com/mikesherov)) - -## v5.0.1 (2017-05-31): - -Hey y'all! Hope you're enjoying the new npm! - -As you all know, fresh software that's gone through major overhauls tends to -miss a lot of spots the old one used to handle well enough, and `npm@5` is no -exception. The CLI team will be doing faster release cycles that go directly to -the `latest` tag for a couple of weeks while 5 stabilizes a bit and we're -confident the common low-hanging fruit people are running into are all taken -care of. - -With that said: this is our first patch release! The biggest focus is fixing up -a number of git-related issues that folks ran into right out the door. It also -fixes other things, like some proxy/auth-related issues, and even has a neat -speed boost! (You can expect more speed bumps in the coming releases as pending -work starts landing, too!) - -Thanks everyone who's been reporting issues and submitting patches! - -### BUGFIXES - -* [`e61e68dac`](https://github.com/npm/npm/commit/e61e68dac4fa51c0540a064204a75b19f8052e58) - [#16762](https://github.com/npm/npm/pull/16762) - Make `npm publish` obey the `--tag` flag again. - ([@zkat](https://github.com/zkat)) -* [`923fd58d3`](https://github.com/npm/npm/commit/923fd58d312f40f8c17b232ad1dfc8e2ff622dbd) - [#16749](https://github.com/npm/npm/pull/16749) - Speed up installations by nearly 20% by... removing one line of code. (hah) - ([@mikesherov](https://github.com/mikesherov)) -* [`9aac984cb`](https://github.com/npm/npm/commit/9aac984cbbfef22182ee42b51a193c0b47146ad6) - Guard against a particular failure mode for a bug still being hunted down. - ([@iarna](https://github.com/iarna)) -* [`80ab521f1`](https://github.com/npm/npm/commit/80ab521f18d34df109de0c5dc9eb1cde5ff6d7e8) - Pull in dependency updates for various core deps: - * New `pacote` fixes several git-related bugs. - * `ssri` update fixes crash on early node@4 versions. - * `make-fetch-happen` update fixes proxy authentication issue. - * `npm-user-validate` adds regex for blocking usernames with illegal chars. - ([@zkat](https://github.com/zkat)) -* [`7e5ce87b8`](https://github.com/npm/npm/commit/7e5ce87b84880c7433ee4c07d2dd6ce8806df436) - `pacote@2.7.26`: - Fixes various other git issues related to commit hashes. - ([@zkat](https://github.com/zkat)) -* [`acbe85bfc`](https://github.com/npm/npm/commit/acbe85bfc1a68d19ca339a3fb71da0cffbf58926) - [#16791](https://github.com/npm/npm/pull/16791) - `npm view` was calling `cb` prematurely and giving partial output when called - in a child process. - ([@zkat](https://github.com/zkat)) -* [`ebafe48af`](https://github.com/npm/npm/commit/ebafe48af91f702ccefc8c619d52fed3b8dfd3c7) - [#16750](https://github.com/npm/npm/pull/16750) - Hamilpatch the Musical: Talk less, complete more. - ([@aredridel](https://github.com/aredridel)) - -### DOCUMENTATION - -* [`dc2823a6c`](https://github.com/npm/npm/commit/dc2823a6c5fc098041e61515c643570819d059d2) - [#16799](https://github.com/npm/npm/pull/16799) - Document that `package-lock.json` is never allowed in tarballs. - ([@sonicdoe](https://github.com/sonicdoe)) -* [`f3cb84b44`](https://github.com/npm/npm/commit/f3cb84b446c51d628ee0033cdf13752c15b31a29) - [#16771](https://github.com/npm/npm/pull/16771) - Fix `npm -l` usage information for the `test` command. - ([@grawlinson](https://github.com/grawlinson)) - -### OTHER CHANGES - -* [`661262309`](https://github.com/npm/npm/commit/66126230912ab5ab35287b40a9908e036fa73994) - [#16756](https://github.com/npm/npm/pull/16756) - remove unused argument - ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) -* [`c3e0b4287`](https://github.com/npm/npm/commit/c3e0b4287ea69735cc367aa7bb7e7aa9a6d9804b) - [#16296](https://github.com/npm/npm/pull/16296) - preserve same name convention for command - ([@desfero](https://github.com/desfero)) -* [`9f814831d`](https://github.com/npm/npm/commit/9f814831d330dde7702973186aea06caaa77ff31) - [#16757](https://github.com/npm/npm/pull/16757) - remove unused argument - ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) -* [`3cb843239`](https://github.com/npm/npm/commit/3cb8432397b3666d88c31131dbb4599016a983ff) - minor linter fix - ([@zkat](https://github.com/zkat)) - -## v5.0.0 (2017-05-25) - -Wowowowowow npm@5! - -This release marks months of hard work for the young, scrappy, and hungry CLI -team, and includes some changes we've been hoping to do for literally years. -npm@5 takes npm a pretty big step forward, significantly improving its -performance in almost all common situations, fixing a bunch of old errors due to -the architecture, and just generally making it more robust and fault-tolerant. -It comes with changes to make life easier for people doing monorepos, for users -who want consistency/security guarantees, and brings semver support to git -dependencies. See below for all the deets! - -### Breaking Changes - -* Existing npm caches will no longer be used: you will have to redownload any cached packages. There is no tool or intention to reuse old caches. ([#15666](https://github.com/npm/npm/pull/15666)) - -* `npm install ./packages/subdir` will now create a symlink instead of a regular installation. `file://path/to/tarball.tgz` will not change -- only directories are symlinked. ([#15900](https://github.com/npm/npm/pull/15900)) - -* npm will now scold you if you capitalize its name. seriously it will fight you. - -* [npm will `--save` by default now](https://twitter.com/maybekatz/status/859229741676625920). Additionally, `package-lock.json` will be automatically created unless an `npm-shrinkwrap.json` exists. ([#15666](https://github.com/npm/npm/pull/15666)) - -* Git dependencies support semver through `user/repo#semver:^1.2.3` ([#15308](https://github.com/npm/npm/pull/15308)) ([#15666](https://github.com/npm/npm/pull/15666)) ([@sankethkatta](https://github.com/sankethkatta)) - -* Git dependencies with `prepare` scripts will have their `devDependencies` installed, and `npm install` run in their directory before being packed. - -* `npm cache` commands have been rewritten and don't really work anything like they did before. ([#15666](https://github.com/npm/npm/pull/15666)) - -* `--cache-min` and `--cache-max` have been deprecated. ([#15666](https://github.com/npm/npm/pull/15666)) - -* Running npm while offline will no longer insist on retrying network requests. npm will now immediately fall back to cache if possible, or fail. ([#15666](https://github.com/npm/npm/pull/15666)) - -* package locks no longer exclude `optionalDependencies` that failed to build. This means package-lock.json and npm-shrinkwrap.json should now be cross-platform. ([#15900](https://github.com/npm/npm/pull/15900)) - -* If you generated your package lock against registry A, and you switch to registry B, npm will now try to [install the packages from registry B, instead of A](https://twitter.com/maybekatz/status/862834964932435969). If you want to use different registries for different packages, use scope-specific registries (`npm config set @myscope:registry=https://myownregist.ry/packages/`). Different registries for different unscoped packages are not supported anymore. - -* Shrinkwrap and package-lock no longer warn and exit without saving the lockfile. - -* Local tarballs can now only be installed if they have a file extensions `.tar`, `.tar.gz`, or `.tgz`. - -* A new loglevel, `notice`, has been added and set as default. - -* One binary to rule them all: `./cli.js` has been removed in favor of `./bin/npm-cli.js`. In case you were doing something with `./cli.js` itself. ([#12096](https://github.com/npm/npm/pull/12096)) ([@watilde](https://github.com/watilde)) - -* Stub file removed ([#16204](https://github.com/npm/npm/pull/16204)) ([@watilde](https://github.com/watilde)) - -* The "extremely legacy" `_token` couchToken has been removed. ([#12986](https://github.com/npm/npm/pull/12986)) - -### Feature Summary - -#### Installer changes - -* A new, standardised lockfile feature meant for cross-package-manager compatibility (`package-lock.json`), and a new format and semantics for shrinkwrap. ([#16441](https://github.com/npm/npm/pull/16441)) - -* `--save` is no longer necessary. All installs will be saved by default. You can prevent saving with `--no-save`. Installing optional and dev deps is unchanged: use `-D/--save-dev` and `-O/--save-optional` if you want them saved into those fields instead. Note that since npm@3, npm will automatically update npm-shrinkwrap.json when you save: this will also be true for `package-lock.json`. ([#15666](https://github.com/npm/npm/pull/15666)) - -* Installing a package directory now ends up creating a symlink and does the Right Thing™ as far as saving to and installing from the package lock goes. If you have a monorepo, this might make things much easier to work with, and probably a lot faster too. 😁 ([#15900](https://github.com/npm/npm/pull/15900)) - -* Project-level (toplevel) `preinstall` scripts now run before anything else, and can modify `node_modules` before the CLI reads it. - -* Two new scripts have been added, `prepack` and `postpack`, which will run on both `npm pack` and `npm publish`, but NOT on `npm install` (without arguments). Combined with the fact that `prepublishOnly` is run before the tarball is generated, this should round out the general story as far as putzing around with your code before publication. - -* Git dependencies with `prepare` scripts will now [have their devDependencies installed, and their prepare script executed](https://twitter.com/maybekatz/status/860363896443371520) as if under `npm pack`. - -* Git dependencies now support semver-based matching: `npm install git://github.com/npm/npm#semver:^5` (#15308, #15666) - -* `node-gyp` now supports `node-gyp.cmd` on Windows ([#14568](https://github.com/npm/npm/pull/14568)) - -* npm no longer blasts your screen with the whole installed tree. Instead, you'll see a summary report of the install that is much kinder on your shell real-estate. Specially for large projects. ([#15914](https://github.com/npm/npm/pull/15914)): -``` -$ npm install -npm added 125, removed 32, updated 148 and moved 5 packages in 5.032s. -$ -``` - -* `--parseable` and `--json` now work more consistently across various commands, particularly `install` and `ls`. - -* Indentation is now [detected and preserved](https://twitter.com/maybekatz/status/860690502932340737) for `package.json`, `package-lock.json`, and `npm-shrinkwrap.json`. If the package lock is missing, it will default to `package.json`'s current indentation. - -#### Publishing - -* New [publishes will now include *both* `sha512`](https://twitter.com/maybekatz/status/863201943082065920) and `sha1` checksums. Versions of npm from 5 onwards will use the strongest algorithm available to verify downloads. [npm/npm-registry-client#157](https://github.com/npm/npm-registry-client/pull/157) - -#### Cache Rewrite! - -We've been talking about rewriting the cache for a loooong time. So here it is. -Lots of exciting stuff ahead. The rewrite will also enable some exciting future -features, but we'll talk about those when they're actually in the works. #15666 -is the main PR for all these changes. Additional PRs/commits are linked inline. - -* Package metadata, package download, and caching infrastructure replaced. - -* It's a bit faster. [Hopefully it will be noticeable](https://twitter.com/maybekatz/status/865393382260056064). 🤔 - -* With the shrinkwrap and package-lock changes, tarballs will be looked up in the cache by content address (and verified with it). - -* Corrupted cache entries will [automatically be removed and re-fetched](https://twitter.com/maybekatz/status/854933138182557696) on integrity check failure. - -* npm CLI now supports tarball hashes with any hash function supported by Node.js. That is, it will [use `sha512` for tarballs from registries that send a `sha512` checksum as the tarball hash](https://twitter.com/maybekatz/status/858137093624573953). Publishing with `sha512` is added by [npm/npm-registry-client#157](https://github.com/npm/npm-registry-client/pull/157) and may be backfilled by the registry for older entries. - -* Remote tarball requests are now cached. This means that even if you're missing the `integrity` field in your shrinkwrap or package-lock, npm will be able to install from the cache. - -* Downloads for large packages are streamed in and out of disk. npm is now able to install packages of """any""" size without running out of memory. Support for publishing them is pending (due to registry limitations). - -* [Automatic fallback-to-offline mode](https://twitter.com/maybekatz/status/854176565587984384). npm will seamlessly use your cache if you are offline, or if you lose access to a particular registry (for example, if you can no longer access a private npm repo, or if your git host is unavailable). - -* A new `--prefer-offline` option will make npm skip any conditional requests (304 checks) for stale cache data, and *only* hit the network if something is missing from the cache. - -* A new `--prefer-online` option that will force npm to revalidate cached data (with 304 checks), ignoring any staleness checks, and refreshing the cache with revalidated, fresh data. - -* A new `--offline` option will force npm to use the cache or exit. It will error with an `ENOTCACHED` code if anything it tries to install isn't already in the cache. - -* A new `npm cache verify` command that will garbage collect your cache, reducing disk usage for things you don't need (-handwave-), and will do full integrity verification on both the index and the content. This is also hooked into `npm doctor` as part of its larger suite of checking tools. - -* The new cache is *very* fault tolerant and supports concurrent access. - * Multiple npm processes will not corrupt a shared cache. - * Corrupted data will not be installed. Data is checked on both insertion and extraction, and treated as if it were missing if found to be corrupted. I will literally bake you a cookie if you manage to corrupt the cache in such a way that you end up with the wrong data in your installation (installer bugs notwithstanding). - * `npm cache clear` is no longer useful for anything except clearing up disk space. - -* Package metadata is cached separately per registry and package type: you can't have package name conflicts between locally-installed packages, private repo packages, and public repo packages. Identical tarball data will still be shared/deduplicated as long as their hashes match. - -* HTTP cache-related headers and features are "fully" (lol) supported for both metadata and tarball requests -- if you have your own registry, you can define your own cache settings the CLI will obey! - -* `prepublishOnly` now runs *before* the tarball to publish is created, after `prepare` has run. diff --git a/deps/npm/CONTRIBUTING.md b/deps/npm/CONTRIBUTING.md deleted file mode 100644 index 9fb7853af86..00000000000 --- a/deps/npm/CONTRIBUTING.md +++ /dev/null @@ -1,82 +0,0 @@ -# npm CLI Contributor Roles and Responsibilities - -## Table of Contents - -* [Introduction](#introduction) -* [Roles](#roles) - * [Community Members](#community-members) - * [Collaborators](#collaborators) - * [npm, Inc Employeees](#npm-inc-employees) - - -## Introduction - -Welcome to the npm CLI Contributor Guide! This document outlines the npm CLI repository's process for community interaction and contribution. This includes the issue tracker, pull requests, wiki pages, and, to a certain extent, outside communication in the context of the npm CLI. It defines roles, responsibilities, and procedures, and is an entry point for anyone wishing to contribute their time and effort to making npm a better tool for the JavaScript community! - -All interactions in the npm repository are covered by the [npm Code of Conduct](https://www.npmjs.com/policies/conduct) - -## Roles - -There are three main roles for people participating in the npm issue tracker. Each has a specific set of abilities and responsibilities: [Community members](#community-members), [Collaborators](#collaborators), and [npm, Inc employees](#npm-inc-employees). - -Failure to comply with the expected responsibilities of each role, or violating the Code of Conduct will result in punitive action relative to the transgression, ranging from a warning to full removal from the project, at the discretion of npm employees. - -### Community Members - -This includes anyone who may show up to the npm/npm repo with issues, PRs, comments etc. They may not have any other involvement with npm. - -#### Abilities - -* Open issues and PRs -* Comment on issues and PRs - -#### Responsibilities - -* Comment on issues when they have a reference to the answer. -* If community members aren't sure they are correct and don't have a reference to the answer, please leave the issue and try another one. -* Defer to collaborators and npm employees for answers. -* Make sure to search for [the troubleshooting doc](./TROUBLESHOOTING.md) and search on the issue tracker for similar issues before opening a new one. -* Any users with urgent support needs are welcome to email support@npmjs.com, and our dedicated support team will be happy to help. - -PLEASE don't @ collaborators or npm employees on issues. The CLI team is small, and has many outstanding commitments to fulfill. - -### Collaborators - -These are folks who have the ability to label and close issues. The role of collaborators may expand over time, but for now it is a limited (& important) role. This is an excellent way to contribute to npm without writing code. - -Community members may become collaborators by showing consistent, proven track record of quality contributions to the project, a reasonable level of proficiency with the CLI, and regular participation through the tracker and other related mediums, including regular contact with the CLI team itself. This role entails a higher level of responsibility than community member, so we ask for a higher level of understanding and commitment. - -Collaborators who become inactive for 3 months or longer may have their collaborator privileges removed until they are ready to return. - -#### Abilities - -* Label/triage new issues -* Respond to ongoing issues -* Close resolved issues. - -#### Responsibilities - -* Only answer questions when they know the answer, and provide a reference to the answer. -* If collaborators aren't totally confident about their answer, please leave the issue and try another one. -* If they've responded to an issue, it becomes their responsibility to see it to resolution. -* Close issues if there's no response within a month. -* Defer to fellow Collaborators & npm employees for answers (Again, please don't @ collaborators or npm employees, thank you!) -* Make sure to search for [the troubleshooting doc](./TROUBLESHOOTING.md) and search on the issue tracker for similar issues before opening a new one. - -### npm, Inc Employees - -Folks who work at npm, Inc, who have a responsibility to ensure the stability and functionality of the tools npm offers. - -#### Abilities -* Label/triage new issues -* Respond to ongoing issues -* Close resolved issues -* Land PRs - -Please note that this is a living document, and the CLI team will put up PRs to it as needed. - -#### Responsibilities - -* Preserve and promote the health of the CLI, the registry, the website, etc. - -In special cases, [Collaborators](#collaborators) may request time to speak with an npm employee directly, by contacting them and coordinating a time/place. diff --git a/deps/npm/LICENSE b/deps/npm/LICENSE deleted file mode 100644 index 0b6c2287459..00000000000 --- a/deps/npm/LICENSE +++ /dev/null @@ -1,235 +0,0 @@ -The npm application -Copyright (c) npm, Inc. and Contributors -Licensed on the terms of The Artistic License 2.0 - -Node package dependencies of the npm application -Copyright (c) their respective copyright owners -Licensed on their respective license terms - -The npm public registry at https://registry.npmjs.org -and the npm website at https://www.npmjs.com -Operated by npm, Inc. -Use governed by terms published on https://www.npmjs.com - -"Node.js" -Trademark Joyent, Inc., https://joyent.com -Neither npm nor npm, Inc. are affiliated with Joyent, Inc. - -The Node.js application -Project of Node Foundation, https://nodejs.org - -The npm Logo -Copyright (c) Mathias Pettersson and Brian Hammond - -"Gubblebum Blocky" typeface -Copyright (c) Tjarda Koster, https://jelloween.deviantart.com -Used with permission - - --------- - - -The Artistic License 2.0 - -Copyright (c) 2000-2006, The Perl Foundation. - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -This license establishes the terms under which a given free software -Package may be copied, modified, distributed, and/or redistributed. -The intent is that the Copyright Holder maintains some artistic -control over the development of that Package while still keeping the -Package available as open source and free software. - -You are always permitted to make arrangements wholly outside of this -license directly with the Copyright Holder of a given Package. If the -terms of this license do not permit the full use that you propose to -make of the Package, you should contact the Copyright Holder and seek -a different licensing arrangement. - -Definitions - - "Copyright Holder" means the individual(s) or organization(s) - named in the copyright notice for the entire Package. - - "Contributor" means any party that has contributed code or other - material to the Package, in accordance with the Copyright Holder's - procedures. - - "You" and "your" means any person who would like to copy, - distribute, or modify the Package. - - "Package" means the collection of files distributed by the - Copyright Holder, and derivatives of that collection and/or of - those files. A given Package may consist of either the Standard - Version, or a Modified Version. - - "Distribute" means providing a copy of the Package or making it - accessible to anyone else, or in the case of a company or - organization, to others outside of your company or organization. - - "Distributor Fee" means any fee that you charge for Distributing - this Package or providing support for this Package to another - party. It does not mean licensing fees. - - "Standard Version" refers to the Package if it has not been - modified, or has been modified only in ways explicitly requested - by the Copyright Holder. - - "Modified Version" means the Package, if it has been changed, and - such changes were not explicitly requested by the Copyright - Holder. - - "Original License" means this Artistic License as Distributed with - the Standard Version of the Package, in its current version or as - it may be modified by The Perl Foundation in the future. - - "Source" form means the source code, documentation source, and - configuration files for the Package. - - "Compiled" form means the compiled bytecode, object code, binary, - or any other form resulting from mechanical transformation or - translation of the Source form. - - -Permission for Use and Modification Without Distribution - -(1) You are permitted to use the Standard Version and create and use -Modified Versions for any purpose without restriction, provided that -you do not Distribute the Modified Version. - - -Permissions for Redistribution of the Standard Version - -(2) You may Distribute verbatim copies of the Source form of the -Standard Version of this Package in any medium without restriction, -either gratis or for a Distributor Fee, provided that you duplicate -all of the original copyright notices and associated disclaimers. At -your discretion, such verbatim copies may or may not include a -Compiled form of the Package. - -(3) You may apply any bug fixes, portability changes, and other -modifications made available from the Copyright Holder. The resulting -Package will still be considered the Standard Version, and as such -will be subject to the Original License. - - -Distribution of Modified Versions of the Package as Source - -(4) You may Distribute your Modified Version as Source (either gratis -or for a Distributor Fee, and with or without a Compiled form of the -Modified Version) provided that you clearly document how it differs -from the Standard Version, including, but not limited to, documenting -any non-standard features, executables, or modules, and provided that -you do at least ONE of the following: - - (a) make the Modified Version available to the Copyright Holder - of the Standard Version, under the Original License, so that the - Copyright Holder may include your modifications in the Standard - Version. - - (b) ensure that installation of your Modified Version does not - prevent the user installing or running the Standard Version. In - addition, the Modified Version must bear a name that is different - from the name of the Standard Version. - - (c) allow anyone who receives a copy of the Modified Version to - make the Source form of the Modified Version available to others - under - - (i) the Original License or - - (ii) a license that permits the licensee to freely copy, - modify and redistribute the Modified Version using the same - licensing terms that apply to the copy that the licensee - received, and requires that the Source form of the Modified - Version, and of any works derived from it, be made freely - available in that license fees are prohibited but Distributor - Fees are allowed. - - -Distribution of Compiled Forms of the Standard Version -or Modified Versions without the Source - -(5) You may Distribute Compiled forms of the Standard Version without -the Source, provided that you include complete instructions on how to -get the Source of the Standard Version. Such instructions must be -valid at the time of your distribution. If these instructions, at any -time while you are carrying out such distribution, become invalid, you -must provide new instructions on demand or cease further distribution. -If you provide valid instructions or cease distribution within thirty -days after you become aware that the instructions are invalid, then -you do not forfeit any of your rights under this license. - -(6) You may Distribute a Modified Version in Compiled form without -the Source, provided that you comply with Section 4 with respect to -the Source of the Modified Version. - - -Aggregating or Linking the Package - -(7) You may aggregate the Package (either the Standard Version or -Modified Version) with other packages and Distribute the resulting -aggregation provided that you do not charge a licensing fee for the -Package. Distributor Fees are permitted, and licensing fees for other -components in the aggregation are permitted. The terms of this license -apply to the use and Distribution of the Standard or Modified Versions -as included in the aggregation. - -(8) You are permitted to link Modified and Standard Versions with -other works, to embed the Package in a larger work of your own, or to -build stand-alone binary or bytecode versions of applications that -include the Package, and Distribute the result without restriction, -provided the result does not expose a direct interface to the Package. - - -Items That are Not Considered Part of a Modified Version - -(9) Works (including, but not limited to, modules and scripts) that -merely extend or make use of the Package, do not, by themselves, cause -the Package to be a Modified Version. In addition, such works are not -considered parts of the Package itself, and are not subject to the -terms of this license. - - -General Provisions - -(10) Any use, modification, and distribution of the Standard or -Modified Versions is governed by this Artistic License. By using, -modifying or distributing the Package, you accept this license. Do not -use, modify, or distribute the Package, if you do not accept this -license. - -(11) If your Modified Version has been derived from a Modified -Version made by someone other than you, you are nevertheless required -to ensure that your Modified Version complies with the requirements of -this license. - -(12) This license does not grant you the right to use any trademark, -service mark, tradename, or logo of the Copyright Holder. - -(13) This license includes the non-exclusive, worldwide, -free-of-charge patent license to make, have made, use, offer to sell, -sell, import and otherwise transfer the Package with respect to any -patent claims licensable by the Copyright Holder that are necessarily -infringed by the Package. If you institute patent litigation -(including a cross-claim or counterclaim) against any party alleging -that the Package constitutes direct or contributory patent -infringement, then this Artistic License to you shall terminate on the -date that such litigation is filed. - -(14) Disclaimer of Warranty: -THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS -IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL -LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - --------- diff --git a/deps/npm/Makefile b/deps/npm/Makefile deleted file mode 100644 index 42b7beda933..00000000000 --- a/deps/npm/Makefile +++ /dev/null @@ -1,190 +0,0 @@ -# vim: set softtabstop=2 shiftwidth=2: -SHELL = bash - -PUBLISHTAG = $(shell node scripts/publish-tag.js) -BRANCH = $(shell git rev-parse --abbrev-ref HEAD) - -markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md - -html_docdeps = html/dochead.html \ - html/docfoot.html \ - scripts/doc-build.sh \ - package.json - -cli_mandocs = $(shell find doc/cli -name '*.md' \ - |sed 's|.md|.1|g' \ - |sed 's|doc/cli/|man/man1/|g' ) \ - man/man1/npm-README.1 \ - man/man1/npx.1 - -files_mandocs = $(shell find doc/files -name '*.md' \ - |sed 's|.md|.5|g' \ - |sed 's|doc/files/|man/man5/|g' ) \ - man/man5/npm-json.5 \ - man/man5/npm-global.5 - -misc_mandocs = $(shell find doc/misc -name '*.md' \ - |sed 's|.md|.7|g' \ - |sed 's|doc/misc/|man/man7/|g' ) \ - man/man7/npm-index.7 - -cli_htmldocs = $(shell find doc/cli -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/cli/|html/doc/cli/|g' ) \ - html/doc/README.html - -files_htmldocs = $(shell find doc/files -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/files/|html/doc/files/|g' ) \ - html/doc/files/npm-json.html \ - html/doc/files/npm-global.html - -misc_htmldocs = $(shell find doc/misc -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/misc/|html/doc/misc/|g' ) \ - html/doc/index.html - -mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs) - -htmldocs = $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs) - -all: doc - -latest: - @echo "Installing latest published npm" - @echo "Use 'make install' or 'make link' to install the code" - @echo "in this folder that you're looking at right now." - node bin/npm-cli.js install -g -f npm ${NPMOPTS} - -install: all - node bin/npm-cli.js install -g -f ${NPMOPTS} $(shell node bin/npm-cli.js pack | tail -1) - -# backwards compat -dev: install - -link: uninstall - node bin/npm-cli.js link -f - -clean: markedclean marked-manclean doc-clean uninstall - rm -rf npmrc - node bin/npm-cli.js cache clean - -uninstall: - node bin/npm-cli.js rm npm -g -f - -doc: $(mandocs) $(htmldocs) - -markedclean: - rm -rf node_modules/marked node_modules/.bin/marked .building_marked - -marked-manclean: - rm -rf node_modules/marked-man node_modules/.bin/marked-man .building_marked-man - -docclean: doc-clean -doc-clean: - rm -rf \ - .building_marked \ - .building_marked-man \ - html/doc \ - man - -## build-time tools for the documentation -build-doc-tools := node_modules/.bin/marked \ - node_modules/.bin/marked-man - -# use `npm install marked-man` for this to work. -man/man1/npm-README.1: README.md scripts/doc-build.sh package.json $(build-doc-tools) - @[ -d man/man1 ] || mkdir -p man/man1 - scripts/doc-build.sh $< $@ - -man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json $(build-doc-tools) - @[ -d man/man1 ] || mkdir -p man/man1 - scripts/doc-build.sh $< $@ - -man/man1/npx.1: node_modules/libnpx/libnpx.1 - cat $< | sed s/libnpx/npx/ > $@ - -man/man5/npm-json.5: man/man5/package.json.5 - cp $< $@ - -man/man5/npm-global.5: man/man5/npm-folders.5 - cp $< $@ - -man/man5/%.5: doc/files/%.md scripts/doc-build.sh package.json $(build-doc-tools) - @[ -d man/man5 ] || mkdir -p man/man5 - scripts/doc-build.sh $< $@ - -doc/misc/npm-index.md: scripts/index-build.js package.json $(build-doc-tools) - node scripts/index-build.js > $@ - -html/doc/index.html: doc/misc/npm-index.md $(html_docdeps) $(build-doc-tools) - @[ -d html/doc ] || mkdir -p html/doc - scripts/doc-build.sh $< $@ - -man/man7/%.7: doc/misc/%.md scripts/doc-build.sh package.json $(build-doc-tools) - @[ -d man/man7 ] || mkdir -p man/man7 - scripts/doc-build.sh $< $@ - -html/doc/README.html: README.md $(html_docdeps) $(build-doc-tools) - @[ -d html/doc ] || mkdir -p html/doc - scripts/doc-build.sh $< $@ - -html/doc/cli/%.html: doc/cli/%.md $(html_docdeps) $(build-doc-tools) - @[ -d html/doc/cli ] || mkdir -p html/doc/cli - scripts/doc-build.sh $< $@ - -html/doc/files/npm-json.html: html/doc/files/package.json.html - cp $< $@ - -html/doc/files/npm-global.html: html/doc/files/npm-folders.html - cp $< $@ - -html/doc/files/%.html: doc/files/%.md $(html_docdeps) $(build-doc-tools) - @[ -d html/doc/files ] || mkdir -p html/doc/files - scripts/doc-build.sh $< $@ - -html/doc/misc/%.html: doc/misc/%.md $(html_docdeps) $(build-doc-tools) - @[ -d html/doc/misc ] || mkdir -p html/doc/misc - scripts/doc-build.sh $< $@ - - -marked: node_modules/.bin/marked - -node_modules/.bin/marked: - node bin/npm-cli.js install marked --no-global --no-timing --no-save - -marked-man: node_modules/.bin/marked-man - -node_modules/.bin/marked-man: - node bin/npm-cli.js install marked-man --no-global --no-timing --no-save - -doc: man - -man: $(cli_docs) - -test: doc - node bin/npm-cli.js test - -tag: - node bin/npm-cli.js tag npm@$(PUBLISHTAG) latest - -ls-ok: - node . ls >/dev/null - -gitclean: - git clean -fd - -publish: gitclean ls-ok link doc-clean doc - @git push origin :v$(shell node bin/npm-cli.js --no-timing -v) 2>&1 || true - git push origin $(BRANCH) &&\ - git push origin --tags &&\ - node bin/npm-cli.js publish --tag=$(PUBLISHTAG) - -release: gitclean ls-ok markedclean marked-manclean doc-clean doc - node bin/npm-cli.js prune --production --no-save - @bash scripts/release.sh - -sandwich: - @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13) - -.PHONY: all latest install dev link doc clean uninstall test man doc-clean docclean release ls-ok realclean diff --git a/deps/npm/README.md b/deps/npm/README.md deleted file mode 100644 index d394af73dd2..00000000000 --- a/deps/npm/README.md +++ /dev/null @@ -1,169 +0,0 @@ -npm(1) -- a JavaScript package manager -============================== - -[![Build Status](https://img.shields.io/travis/npm/npm/latest.svg)](https://travis-ci.org/npm/npm) - -## SYNOPSIS - -This is just enough info to get you up and running. - -Much more info available via `npm help` once it's installed. - -## IMPORTANT - -**You need node v4 or higher to run this program.** - -To install an old **and unsupported** version of npm that works on node v0.12 -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 - by default.** - -You can configure npm to use any compatible registry you -like, and even run your own registry. Check out the [doc on -registries](https://docs.npmjs.com/misc/registry). - -Use of someone else's registry may be governed by terms of use. The -terms of use for the default public registry are available at -. - -## Super Easy Install - -npm is bundled with [node](https://nodejs.org/en/download/). - -### Windows Computers - -[Get the MSI](https://nodejs.org/en/download/). npm is in it. - -### Apple Macintosh Computers - -[Get the pkg](https://nodejs.org/en/download/). npm is in it. - -### Other Sorts of Unices - -Run `make install`. npm will be installed with node. - -If you want a more fancy pants install (a different version, customized -paths, etc.) then read on. - -## Fancy Install (Unix) - -There's a pretty robust install script at -. You can download that and run it. - -Here's an example using curl: - -```sh -curl -L https://www.npmjs.com/install.sh | sh -``` - -### Slightly Fancier - -You can set any npm configuration params with that script: - -```sh -npm_config_prefix=/some/path sh install.sh -``` - -Or, you can run it in uber-debuggery mode: - -```sh -npm_debug=1 sh install.sh -``` - -### Even Fancier - -Get the code with git. Use `make` to build the docs and do other stuff. -If you plan on hacking on npm, `make link` is your friend. - -If you've got the npm source code, you can also semi-permanently set -arbitrary config keys using the `./configure --key=val ...`, and then -run npm commands by doing `node bin/npm-cli.js `. (This is helpful -for testing, or running stuff without actually installing npm itself.) - -## Windows Install or Upgrade - -Many improvements for Windows users have been made in npm 3 - you will have a better -experience if you run a recent version of npm. To upgrade, either use [Microsoft's -upgrade tool](https://github.com/felixrieseberg/npm-windows-upgrade), -[download a new version of Node](https://nodejs.org/en/download/), -or follow the Windows upgrade instructions in the -[npm Troubleshooting Guide](./TROUBLESHOOTING.md). - -If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly. - -## Installing on Cygwin - -No. - -## Uninstalling - -So sad to see you go. - -```sh -sudo npm uninstall npm -g -``` -Or, if that fails, - -```sh -sudo make uninstall -``` - -## More Severe Uninstalling - -Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed. - -If you would like to remove all the packages that you have installed, -then you can use the `npm ls` command to find them, and then `npm rm` to -remove them. - -To remove cruft left behind by npm 0.x, you can use the included -`clean-old.sh` script file. You can run it conveniently like this: - -```sh -npm explore npm -g -- sh scripts/clean-old.sh -``` - -npm uses two configuration files, one for per-user configs, and another -for global (every-user) configs. You can view them by doing: - -```sh -npm config get userconfig # defaults to ~/.npmrc -npm config get globalconfig # defaults to /usr/local/etc/npmrc -``` - -Uninstalling npm does not remove configuration files by default. You -must remove them yourself manually if you want them gone. Note that -this means that future npm installs will not remember the settings that -you have chosen. - -## More Docs - -Check out the [docs](https://docs.npmjs.com/). - -You can use the `npm help` command to read any of them. - -If you're a developer, and you want to use npm to publish your program, -you should [read this](https://docs.npmjs.com/misc/developers). - -## BUGS - -When you find issues, please report them: - -* web: - - -Be sure to include *all* of the output from the npm command that didn't work -as expected. The `npm-debug.log` file is also helpful to provide. - -You can also find npm people in `#npm` on https://package.community/ or -[on Twitter](https://twitter.com/npm_support). Whoever responds will no -doubt tell you to put the output in a gist or email. - -## SEE ALSO - -* npm(1) -* npm-help(1) -* npm-index(7) diff --git a/deps/npm/TROUBLESHOOTING.md b/deps/npm/TROUBLESHOOTING.md deleted file mode 100644 index 0320075c512..00000000000 --- a/deps/npm/TROUBLESHOOTING.md +++ /dev/null @@ -1,192 +0,0 @@ -# Troubleshooting Common Issues - -## Using this Document - -Search for the error message you're getting and see if there's a match, or skim the [table of contents](#table-of-contents) below for topics that seem relevant to the issue you're having. Each issue section has steps to work around or fix the particular issue, and have examples of common error messages. - -If you do not find the issue below, try searching the issue tracker itself for potential duplicates before opening a new issue. - -If you're reading this document because you noticed an issue with npm's web site, please let the [web team](https://github.com/npm/www/issues) know. - -### Updating this Document - -If you think something should be added here, make a PR that includes the following: - -0. a summary -0. one or more example errors -0. steps to debug and fix -0. links to at least one related issue from the tracker - -For more details of the content and formatting of these entries, refer to examples below. - -## Table of Contents - -* [Upgrading npm](#upgrading-npm) -* [Proxies and Networking](#proxy-and-networking-issues) -* [Cannot find module](#cannot-find-module) -* [Shasum Check Fails](#shasum-check-fails) -* [No Git](#no-git) - -## Upgrading npm - -Whenever you get npm errors, it's a good idea to first check your npm version and upgrade to latest whenever possible. We still see people running npm@1 (!) and in those cases, installing the latest version of npm usually solves the problem. - -You can check your npm version by running `npm -v`. - -### Steps to Fix -* Upgrading on \*nix (OSX, Linux, etc.) - -(You may need to prefix these commands with sudo, especially on Linux, or OS X if you installed Node using its default installer.) -You can upgrade to the latest version of npm using: -`npm install -g npm@latest` -Or upgrade to the most recent LTS release: -`npm install -g npm@lts` - -* Upgrading on Windows - -We have a [detailed guide](https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows) for upgrading on windows on our wiki. - -## Proxy and Networking Issues - -npm might not be able to connect to the registry for various reasons. Perhaps your machine is behind a firewall that needs to be opened, or you require a corporate proxy to access the npm registry. This issue can manifest in a wide number of different ways. Usually, strange network errors are an instance of this specific problem. - -Sometimes, users may have install failures due to Git/Github access issues. Git/GitHub access is separate from npm registry access. For users in some locations (India in particular), problems installing packages may be due to connectivity problems reaching GitHub and not the npm registry. - -If you believe your network is configured and working correctly, and you're still having problems installing, please let the [registry team](https://github.com/npm/registry/issues) know you're having trouble. - -### Steps to Fix - -0. Make sure you have a working internet connection. Can you reach https://registry.npmjs.org? Can you reach other sites? If other sites are unreachable, this is not a problem with npm. - -0. Check http://status.npmjs.org/ for any potential current service outages. - -0. If your company has a process for domain whitelisting for developers, make sure https://registry.npmjs.org is a whitelisted domain. - -0. If you're in China, consider using https://npm.taobao.org/ as a registry, which sits behind the Firewall. - -0. On Windows, npm does not access proxies configured at the system level, so you need to configure them manually in order for npm to access them. Make sure [you have added the appropriate proxy configuration to `.npmrc`](https://docs.npmjs.com/misc/config#https-proxy). - -0. If you already have a proxy configured, it might be configured incorrectly or use the wrong credentials. Verify your credentials, test the specific credentials with a separate application. - -0. The proxy itself, on the server, might also have a configuration error. In this case, you'll need to work with your system administrator to verify that the proxy, and HTTPS, are configured correctly. You may test it by running regular HTTPS requests. - -### Example Errors - -This error can manifest in a wide range of different ways: - -``` -npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE -npm ERR! unable to verify the first certificate -``` -``` -npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY -npm ERR! unable to get local issuer certificate -``` -``` -npm ERR! code DEPTH_ZERO_SELF_SIGNED_CERT -npm ERR! self signed certificate -``` -``` -124 error code ECONNREFUSED -125 error errno ECONNREFUSED -126 error syscall connect -``` -``` -136 error Unexpected token < -136 error -136 error -136 error ERROR: Cache Access Denied -``` -``` -31 verbose stack Error: connect ETIMEDOUT 123.123.123.123:443 -``` -``` -108 error code EAI_AGAIN -109 error errno EAI_AGAIN -110 error syscall getaddrinfo -111 error getaddrinfo EAI_AGAIN proxy.yourcorp.com:811 -``` -``` -npm ERR! Error: getaddrinfo ESRCH -npm ERR! at errnoException (dns.js:37:11) -npm ERR! at Object.onanswer as oncomplete -``` -``` -35 error Unexpected token u -35 error function FindProxyForURL(url, host) { -``` - -### Related issues -* [#14318](https://github.com/npm/npm/issues/14318) -* [#15059](https://github.com/npm/npm/issues/15059) -* [#14336](https://github.com/npm/npm/issues/14336) - -## Cannot find module - -If *when running npm* (not your application), you get an error about a module not being found, this almost certainly means that there's something wrong with your npm installation. - -If this happens when trying to start your application, you might not have installed your package's dependencies yet. - -### Steps to Fix - -0. If this happens when you try to start your application, try running `npm install` to install the app's dependencies. Make sure all its actual dependencies are listed in `package.json` - -0. If this happens on any npm command, please reinstall. - -### Examples - -``` -module.js:338 - throw err; - ^ -Error: Cannot find module -``` -### Related Issues - -* [#14699](https://github.com/npm/npm/issues/14699) - -## Shasum Check Fails - -This is a common issue which used to be caused by caching issues. Nowadays, the cache has been improved, so it's likely to be an install issue, which can be caused by network problems (sometimes even [proxy issues](#proxy-and-networking-issues)), a node bug, or possibly some sort of npm bug. - -### Steps to Fix - -0. Try running `npm install` again. It may have been a momentary hiccup or corruption during package download. - -0. Check http://status.npmjs.org/ for any potential current service outages. - -0. If the shasum error specifically has `Actual: da39a3ee5e6b4b0d3255bfef95601890afd80709`, with this exact shasum, it means the package download was empty, which is certainly a networking issue. - -0. Make sure your [network connection and proxy settings](#proxy-and-networking-issues) are ok. - -0. Update your node version to the latest stable version. - -### Examples - -``` -npm ERR! shasum check failed for C:\Users\some-user\AppData\Local\Temp\npm-9356-7 -d74e411\registry.npmjs.org\some-package\-\some-package-1.0.0.tgz -npm ERR! Expected: 652294c14651db29fa93bd2d5ff2983a4f08c636 -npm ERR! Actual: c45474b40e6a7474633ec6f2b0315feaf15c61f2 -npm ERR! From: https://registry.npmjs.org/some-package/-/some-package-1.0.0.tgz -``` - -### Related Issues -* [#14720](https://github.com/npm/npm/issues/14720) -* [#13405](https://github.com/npm/npm/issues/13405) - -## No Git -If your install fails and you see a message saying you don't have git installed, it should be resolved by installing git. - -### Steps to Fix - -0. [Install git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) following the instructions for your machine. - -### Examples - -npm ERR! not found: git -ENOGIT - -### Related Issues - -* [#11095](https://github.com/npm/npm/issues/11095) diff --git a/deps/npm/appveyor.yml b/deps/npm/appveyor.yml deleted file mode 100644 index 7b97e79d626..00000000000 --- a/deps/npm/appveyor.yml +++ /dev/null @@ -1,34 +0,0 @@ -environment: - matrix: - # LTS is our most important target - - nodejs_version: "6" - # previous LTS is next most important - - nodejs_version: "4" - - nodejs_version: "7" - # then master - - nodejs_version: "8" - COVERALLS_REPO_TOKEN: - secure: XdC0aySefK0HLh1GNk6aKrzZPbCfPQLyA4mYtFGEp4DrTuZA/iuCUS0LDqFYO8JQ -platform: - - x86 - - x64 -install: - - ps: Install-Product node $env:nodejs_version $env:platform - - npm config set spin false - - npm rebuild - - node . install -g . - - set "PATH=%APPDATA%\npm;C:\Program Files\Git\mingw64\libexec;%PATH%" - - npm install --loglevel=http -test_script: - - node --version - - npm --version - - npm run test -- --reporter=classic -notifications: -- provider: Slack - incoming_webhook: - secure: vXiG5AgpqxJsXZ0N0CTYDuVrX6RMjBybZKtOx6IbRxCyjgd+DAx6Z9/0XgYQjuof7QFJY3M/U6HxaREQVYbNVHA+C5N5dNALRbKzAC8QNbA= -# GO_FAST -matrix: - fast_finish: true -# we don't need the builds, we just need tests -build: off diff --git a/deps/npm/bin/node-gyp-bin/node-gyp b/deps/npm/bin/node-gyp-bin/node-gyp deleted file mode 100755 index 70efb6f339f..00000000000 --- a/deps/npm/bin/node-gyp-bin/node-gyp +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -if [ "x$npm_config_node_gyp" = "x" ]; then - node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@" -else - "$npm_config_node_gyp" "$@" -fi diff --git a/deps/npm/bin/node-gyp-bin/node-gyp.cmd b/deps/npm/bin/node-gyp-bin/node-gyp.cmd deleted file mode 100755 index 083c9c58a50..00000000000 --- a/deps/npm/bin/node-gyp-bin/node-gyp.cmd +++ /dev/null @@ -1,5 +0,0 @@ -if not defined npm_config_node_gyp ( - node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %* -) else ( - node "%npm_config_node_gyp%" %* -) diff --git a/deps/npm/bin/npm b/deps/npm/bin/npm deleted file mode 100755 index 5acd6fb61a7..00000000000 --- a/deps/npm/bin/npm +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix - -basedir=`dirname "$0"` - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -NODE_EXE="$basedir/node.exe" -if ! [ -x "$NODE_EXE" ]; then - NODE_EXE=node -fi - -NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js" - -case `uname` in - *MINGW*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" - if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then - NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" - fi - ;; - *CYGWIN*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" - if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then - NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" - fi - ;; -esac - -"$NODE_EXE" "$NPM_CLI_JS" "$@" diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js deleted file mode 100755 index e2c013b5df8..00000000000 --- a/deps/npm/bin/npm-cli.js +++ /dev/null @@ -1,92 +0,0 @@ -#!/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*/ - if (typeof WScript !== 'undefined') { - WScript.echo( - 'npm does not work when run\n' + - 'with the Windows Scripting Host\n\n' + - "'cd' to a different directory,\n" + - "or type 'npm.cmd ',\n" + - "or type 'node npm '." - ) - WScript.quit(1) - return - } - - process.title = 'npm' - - var unsupported = require('../lib/utils/unsupported.js') - unsupported.checkForBrokenNode() - - var log = require('npmlog') - log.pause() // will be unpaused when config is loaded. - log.info('it worked if it ends with', 'ok') - - 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 - var types = configDefs.types - var nopt = require('nopt') - - // if npm is called as "npmg" or "npm_g", then - // run in global mode. - if (path.basename(process.argv[1]).slice(-1) === 'g') { - process.argv.splice(1, 1, 'npm', '-g') - } - - log.verbose('cli', process.argv) - - var conf = nopt(types, shorthands) - npm.argv = conf.argv.remain - if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift() - else conf.usage = true - - if (conf.version) { - console.log(npm.version) - return errorHandler.exit(0) - } - - if (conf.versions) { - npm.command = 'version' - conf.usage = false - npm.argv = [] - } - - log.info('using', 'npm@%s', npm.version) - log.info('using', 'node@%s', process.version) - - process.on('uncaughtException', errorHandler) - - if (conf.usage && npm.command !== 'help') { - npm.argv.unshift(npm.command) - npm.command = 'help' - } - - // now actually fire up npm and run the command. - // this is how to use npm programmatically: - conf._exit = true - npm.load(conf, function (er) { - if (er) return errorHandler(er) - 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') - } - errorHandler.apply(this, arguments) - }) - }) -})() diff --git a/deps/npm/bin/npm.cmd b/deps/npm/bin/npm.cmd deleted file mode 100644 index 880554dcdd6..00000000000 --- a/deps/npm/bin/npm.cmd +++ /dev/null @@ -1,19 +0,0 @@ -:: Created by npm, please don't edit manually. -@ECHO OFF - -SETLOCAL - -SET "NODE_EXE=%~dp0\node.exe" -IF NOT EXIST "%NODE_EXE%" ( - SET "NODE_EXE=node" -) - -SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" -FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( - SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js" -) -IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" ( - SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%" -) - -"%NODE_EXE%" "%NPM_CLI_JS%" %* diff --git a/deps/npm/bin/npx b/deps/npm/bin/npx deleted file mode 100644 index a49c608bab8..00000000000 --- a/deps/npm/bin/npx +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix - -basedir=`dirname "$0"` - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -NODE_EXE="$basedir/node.exe" -if ! [ -x "$NODE_EXE" ]; then - NODE_EXE=node -fi - -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_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_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 - ;; -esac - -"$NODE_EXE" "$NPX_CLI_JS" "$@" diff --git a/deps/npm/bin/npx-cli.js b/deps/npm/bin/npx-cli.js deleted file mode 100755 index f4043650599..00000000000 --- a/deps/npm/bin/npx-cli.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -const npx = require('libnpx') -const path = require('path') - -const NPM_PATH = path.join(__dirname, 'npm-cli.js') - -npx(npx.parseArgs(process.argv, NPM_PATH)) diff --git a/deps/npm/bin/npx.cmd b/deps/npm/bin/npx.cmd deleted file mode 100644 index 02fcbd9ffc2..00000000000 --- a/deps/npm/bin/npx.cmd +++ /dev/null @@ -1,19 +0,0 @@ -:: Created by npm, please don't edit manually. -@ECHO OFF - -SETLOCAL - -SET "NODE_EXE=%~dp0\node.exe" -IF NOT EXIST "%NODE_EXE%" ( - SET "NODE_EXE=node" -) - -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 ( - SET "NPM_PREFIX_NPX_CLI_JS=%%F\node_modules\npm\bin\npx-cli.js" -) -IF EXIST "%NPM_PREFIX_NPX_CLI_JS%" ( - SET "NPX_CLI_JS=%NPM_PREFIX_NPX_CLI_JS%" -) - -"%NODE_EXE%" "%NPX_CLI_JS%" %* diff --git a/deps/npm/changelogs/CHANGELOG-1.md b/deps/npm/changelogs/CHANGELOG-1.md deleted file mode 100644 index ea409c3d998..00000000000 --- a/deps/npm/changelogs/CHANGELOG-1.md +++ /dev/null @@ -1,743 +0,0 @@ -### v1.4.29 (2015-10-29): - -#### THINGS ARE HAPPENING IN LTS LAND - -In a special one-off release as part of the [strategy to get a version of npm -into Node LTS that works with the current -registry](https://github.com/nodejs/LTS/issues/37), modify npm to print out -this deprecation banner literally every time npm is invoked to do anything: - -``` -npm WARN deprecated This version of npm lacks support for important features, -npm WARN deprecated such as scoped packages, offered by the primary npm -npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the -npm WARN deprecated latest stable version. To upgrade to npm@2, run: -npm WARN deprecated -npm WARN deprecated npm -g install npm@latest-2 -npm WARN deprecated -npm WARN deprecated To upgrade to the latest stable version, run: -npm WARN deprecated -npm WARN deprecated npm -g install npm@latest -npm WARN deprecated -npm WARN deprecated (Depending on how Node.js was installed on your system, you -npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if -npm WARN deprecated on Windows, run them from an Administrator prompt.) -npm WARN deprecated -npm WARN deprecated If you're running the version of npm bundled with -npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS -npm WARN deprecated will be bundled with a version of npm@2, which has some small -npm WARN deprecated backwards-incompatible changes made to `npm run-script` and -npm WARN deprecated semver behavior. -``` - -The message basically tells the tale: Node 0.10 will finally be getting -`npm@2`, so those of you who haven't upgraded your build systems to deal with -its (relatively small) breaking changes should do so now. - -Also, this version doesn't even pretend that it can deal with scoped packages, -which, given the confusing behavior of older versions of `npm@1.4`, where it -would sometimes try to install packages from GitHub, is a distinct improvement. - -There is no good reason for you as an end user to upgrade to this version of -npm yourself. - -* [`709e9b4`](https://github.com/npm/npm/commit/709e9b44f5df9817a1c4babfbf26a2329bd265fb) - Print 20-line deprecation banner on all command invocations. - ([@othiym23](https://github.com/othiym23)) -* [`0c29d09`](https://github.com/npm/npm/commit/0c29d0906608e8e174bd30a7a245e19795326051) - Crash out immediately with an exhortation to upgrade on attempts to use - scoped packages. ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-4 (2014-07-18): - -* fall back to `_auth` config as default auth when using default registry - ([@isaacs](https://github.com/isaacs)) -* support for 'init.version' for those who don't want to deal with semver 0.0.x - oddities ([@rvagg](https://github.com/rvagg)) -* [`be06213`](https://github.com/npm/npm/commit/be06213415f2d51a50d2c792b4cd0d3412a9a7b1) - remove residual support for `win` log level - ([@aterris](https://github.com/aterris)) - -### v1.5.0-alpha-3 (2014-07-17): - -* [`a3a85dd`](https://github.com/npm/npm/commit/a3a85dd004c9245a71ad2f0213bd1a9a90d64cd6) - `--save` scoped packages correctly ([@othiym23](https://github.com/othiym23)) -* [`18a3385`](https://github.com/npm/npm/commit/18a3385bcf8bfb8312239216afbffb7eec759150) - `npm-registry-client@3.0.2` ([@othiym23](https://github.com/othiym23)) -* [`375988b`](https://github.com/npm/npm/commit/375988b9bf5aa5170f06a790d624d31b1eb32c6d) - invalid package names are an early error for optional deps - ([@othiym23](https://github.com/othiym23)) -* consistently use `node-package-arg` instead of arbitrary package spec - splitting ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-2 (2014-07-01): - -* [`54cf625`](https://github.com/npm/npm/commit/54cf62534e3331e3f454e609e44f0b944e819283) - fix handling for 301s in `npm-registry-client@3.0.1` - ([@Raynos](https://github.com/Raynos)) -* [`e410861`](https://github.com/npm/npm/commit/e410861c69a3799c1874614cb5b87af8124ff98d) - don't crash if no username set on `whoami` - ([@isaacs](https://github.com/isaacs)) -* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406) - respect `--json` for output ([@isaacs](https://github.com/isaacs)) -* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6) - outdated: Don't show headings if there's nothing to output - ([@isaacs](https://github.com/isaacs)) -* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3) - outdated: Default to `latest` rather than `*` for unspecified deps - ([@isaacs](https://github.com/isaacs)) - -### v1.5.0-alpha-1 (2014-07-01): - -* [`eef4884`](https://github.com/npm/npm/commit/eef4884d6487ee029813e60a5f9c54e67925d9fa) - use the correct piece of the spec for GitHub shortcuts - ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-0 (2014-07-01): - -* [`7f55057`](https://github.com/npm/npm/commit/7f55057807cfdd9ceaf6331968e666424f48116c) - install scoped packages ([#5239](https://github.com/npm/npm/issues/5239)) - ([@othiym23](https://github.com/othiym23)) -* [`0df7e16`](https://github.com/npm/npm/commit/0df7e16c0232d8f4d036ebf4ec3563215517caac) - publish scoped packages ([#5239](https://github.com/npm/npm/issues/5239)) - ([@othiym23](https://github.com/othiym23)) -* [`0689ba2`](https://github.com/npm/npm/commit/0689ba249b92b4c6279a26804c96af6f92b3a501) - support (and save) --scope=@s config - ([@othiym23](https://github.com/othiym23)) -* [`f34878f`](https://github.com/npm/npm/commit/f34878fc4cee29901e4daf7bace94be01e25cad7) - scope credentials to registry ([@othiym23](https://github.com/othiym23)) -* [`0ac7ca2`](https://github.com/npm/npm/commit/0ac7ca233f7a69751fe4386af6c4daa3ee9fc0da) - capture and store bearer tokens when sent by registry - ([@othiym23](https://github.com/othiym23)) -* [`63c3277`](https://github.com/npm/npm/commit/63c3277f089b2c4417e922826bdc313ac854cad6) - only delete files that are created by npm - ([@othiym23](https://github.com/othiym23)) -* [`4f54043`](https://github.com/npm/npm/commit/4f540437091d1cbca3915cd20c2da83c2a88bb8e) - `npm-package-arg@2.0.0` ([@othiym23](https://github.com/othiym23)) -* [`9e1460e`](https://github.com/npm/npm/commit/9e1460e6ac9433019758481ec031358f4af4cd44) - `read-package-json@1.2.3` ([@othiym23](https://github.com/othiym23)) -* [`719d8ad`](https://github.com/npm/npm/commit/719d8adb9082401f905ff4207ede494661f8a554) - `fs-vacuum@1.2.1` ([@othiym23](https://github.com/othiym23)) -* [`9ef8fe4`](https://github.com/npm/npm/commit/9ef8fe4d6ead3acb3e88c712000e2d3a9480ebec) - `async-some@1.0.0` ([@othiym23](https://github.com/othiym23)) -* [`a964f65`](https://github.com/npm/npm/commit/a964f65ab662107b62a4ca58535ce817e8cca331) - `npmconf@2.0.1` ([@othiym23](https://github.com/othiym23)) -* [`113765b`](https://github.com/npm/npm/commit/113765bfb7d3801917c1d9f124b8b3d942bec89a) - `npm-registry-client@3.0.0` ([@othiym23](https://github.com/othiym23)) - -### v1.4.28 (2014-09-12): - -* [`f4540b6`](https://github.com/npm/npm/commit/f4540b6537a87e653d7495a9ddcf72949fdd4d14) - [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just - before the CLI exits ([@isaacs](https://github.com/isaacs)) -* [`1eabfd5`](https://github.com/npm/npm/commit/1eabfd5c03f33c2bd28823714ff02059eeee3899) - [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all - callbacks have finished before proceeding - ([@othiym23](https://github.com/othiym23)) - -### v1.4.27 (2014-09-04): - -* [`4cf3c8f`](https://github.com/npm/npm/commit/4cf3c8fd78c9e2693a5f899f50c28f4823c88e2e) - [#6007](https://github.com/npm/npm/issues/6007) request@2.42.0: properly set - headers on proxy requests ([@isaacs](https://github.com/isaacs)) -* [`403cb52`](https://github.com/npm/npm/commit/403cb526be1472bb7545fa8e62d4976382cdbbe5) - [#6055](https://github.com/npm/npm/issues/6055) npmconf@1.1.8: restore - case-insensitivity of environmental config - ([@iarna](https://github.com/iarna)) - -### v1.4.26 (2014-08-28): - -* [`eceea95`](https://github.com/npm/npm/commit/eceea95c804fa15b18e91c52c0beb08d42a3e77d) - `github-url-from-git@1.4.0`: add support for git+https and git+ssh - ([@stefanbuck](https://github.com/stefanbuck)) -* [`e561758`](https://github.com/npm/npm/commit/e5617587e7d7ab686192391ce55357dbc7fed0a3) - `columnify@1.2.1` ([@othiym23](https://github.com/othiym23)) -* [`0c4fab3`](https://github.com/npm/npm/commit/0c4fab372ee76eab01dda83b6749429a8564902e) - `cmd-shim@2.0.0`: upgrade to graceful-fs 3 - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`2d69e4d`](https://github.com/npm/npm/commit/2d69e4d95777671958b5e08d3b2f5844109d73e4) - `github-url-from-username-repo@1.0.0`: accept slashes in branch names - ([@robertkowalski](https://github.com/robertkowalski)) -* [`81f9b2b`](https://github.com/npm/npm/commit/81f9b2bac9d34c223ea093281ba3c495f23f10d1) - ensure lifecycle spawn errors caught properly - ([@isaacs](https://github.com/isaacs)) -* [`bfaab8c`](https://github.com/npm/npm/commit/bfaab8c6e0942382a96b250634ded22454c36b5a) - `npm-registry-client@2.0.7`: properly encode % in passwords - ([@isaacs](https://github.com/isaacs)) -* [`91cfb58`](https://github.com/npm/npm/commit/91cfb58dda851377ec604782263519f01fd96ad8) - doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs)) - -### v1.4.25 (2014-08-21): - -* [`64c0ec2`](https://github.com/npm/npm/commit/64c0ec241ef5d83761ca8de54acb3c41b079956e) - `npm-registry-client@2.0.6`: Print the notification header returned by the - registry, and make sure status codes are printed without gratuitous quotes - around them. - ([@othiym23](https://github.com/othiym23)) -* [`a8ed12b`](https://github.com/npm/npm/commit/a8ed12b) `tar@1.0.1`: - Add test for removing an extract target immediately after unpacking. - ([@isaacs](https://github.com/isaacs)) -* [`70fd11d`](https://github.com/npm/npm/commit/70fd11d) - `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`, - and `retries` options. Part 2 of race condition leading to `ENOENT` - errors. - ([@isaacs](https://github.com/isaacs)) -* [`0072c4d`](https://github.com/npm/npm/commit/0072c4d) - `fstream@1.0.2`: Fix a double-finish call which can result in excess - FS operations after the `close` event. Part 2 of race condition - leading to `ENOENT` errors. - ([@isaacs](https://github.com/isaacs)) - -### v1.4.24 (2014-08-14): - -* [`9344bd9`](https://github.com/npm/npm/commit/9344bd9b2929b5c399a0e0e0b34d45bce7bc24bb) - doc: add new changelog ([@othiym23](https://github.com/othiym23)) -* [`4be76fd`](https://github.com/npm/npm/commit/4be76fd65e895883c337a99f275ccc8c801adda3) - doc: update version doc to include `pre-*` increment args - ([@isaacs](https://github.com/isaacs)) -* [`e4f2620`](https://github.com/npm/npm/commit/e4f262036080a282ad60e236a9aeebd39fde9fe4) - build: add `make tag` to tag current release as `latest` - ([@isaacs](https://github.com/isaacs)) -* [`ec2596a`](https://github.com/npm/npm/commit/ec2596a7cb626772780b25b0a94a7e547a812bd5) - build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs)) -* [`9ee55f8`](https://github.com/npm/npm/commit/9ee55f892b8b473032a43c59912c5684fd1b39e6) - build: add script to output `v1.4-next` publish tag - ([@isaacs](https://github.com/isaacs)) -* [`aecb56f`](https://github.com/npm/npm/commit/aecb56f95a84687ea46920a0b98aaa587fee1568) - build: remove outdated `docpublish` make target - ([@isaacs](https://github.com/isaacs)) -* [`b57a9b7`](https://github.com/npm/npm/commit/b57a9b7ccd13e6b38831ed63595c8ea5763da247) - build: remove unpublish step from `make publish` - ([@isaacs](https://github.com/isaacs)) -* [`2c6acb9`](https://github.com/npm/npm/commit/2c6acb96c71c16106965d5cd829b67195dd673c7) - install: rename `.gitignore` when unpacking foreign tarballs - ([@isaacs](https://github.com/isaacs)) -* [`22f3681`](https://github.com/npm/npm/commit/22f3681923e993a47fc1769ba735bfa3dd138082) - cache: detect non-gzipped tar files more reliably - ([@isaacs](https://github.com/isaacs)) - -### v1.4.23 (2014-07-31): - -* [`8dd11d1`](https://github.com/npm/npm/commit/8dd11d1) update several - dependencies to avoid using `semver`s starting with 0. - -### v1.4.22 (2014-07-31): - -* [`d9a9e84`](https://github.com/npm/npm/commit/d9a9e84) `read-package-json@1.2.4` - ([@isaacs](https://github.com/isaacs)) -* [`86f0340`](https://github.com/npm/npm/commit/86f0340) - `github-url-from-git@1.2.0` ([@isaacs](https://github.com/isaacs)) -* [`a94136a`](https://github.com/npm/npm/commit/a94136a) `fstream@0.1.29` - ([@isaacs](https://github.com/isaacs)) -* [`bb82d18`](https://github.com/npm/npm/commit/bb82d18) `glob@4.0.5` - ([@isaacs](https://github.com/isaacs)) -* [`5b6bcf4`](https://github.com/npm/npm/commit/5b6bcf4) `cmd-shim@1.1.2` - ([@isaacs](https://github.com/isaacs)) -* [`c2aa8b3`](https://github.com/npm/npm/commit/c2aa8b3) license: Cleaned up - legalese with actual lawyer ([@isaacs](https://github.com/isaacs)) -* [`63fe0ee`](https://github.com/npm/npm/commit/63fe0ee) `init-package-json@1.0.0` - ([@isaacs](https://github.com/isaacs)) - -### v1.4.21 (2014-07-14): - -* [`88f51aa`](https://github.com/npm/npm/commit/88f51aa27eb9a958d1fa7ec50fee5cfdedd05110) - fix handling for 301s in `npm-registry-client@2.0.3` - ([@Raynos](https://github.com/Raynos)) - -### v1.4.20 (2014-07-02): - -* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406) - respect `--json` for output ([@isaacs](https://github.com/isaacs)) -* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6) - outdated: Don't show headings if there's nothing to output - ([@isaacs](https://github.com/isaacs)) -* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3) - outdated: Default to `latest` rather than `*` for unspecified deps - ([@isaacs](https://github.com/isaacs)) - -### v1.4.19 (2014-07-01): - -* [`f687433`](https://github.com/npm/npm/commit/f687433) relative URLS for - working non-root registry URLS ([@othiym23](https://github.com/othiym23)) -* [`bea190c`](https://github.com/npm/npm/commit/bea190c) - [#5591](https://github.com/npm/npm/issues/5591) bump nopt and npmconf - ([@isaacs](https://github.com/isaacs)) - -### v1.4.18 (2014-06-29): - -* Bump glob dependency from 4.0.2 to 4.0.3. It now uses graceful-fs when - available, increasing resilience to [various filesystem - errors](https://github.com/isaacs/node-graceful-fs#improvements-over-fs-module). - ([@isaacs](https://github.com/isaacs)) - -### v1.4.17 (2014-06-27): - -* replace escape codes with ansicolors - ([@othiym23](https://github.com/othiym23)) -* Allow to build all the docs OOTB. ([@GeJ](https://github.com/GeJ)) -* Use core.longpaths on win32 git - fixes - [#5525](https://github.com/npm/npm/issues/5525) ([@bmeck](https://github.com/bmeck)) -* `npmconf@1.1.2` ([@isaacs](https://github.com/isaacs)) -* Consolidate color sniffing in config/log loading process - ([@isaacs](https://github.com/isaacs)) -* add verbose log when project config file is ignored - ([@isaacs](https://github.com/isaacs)) -* npmconf: Float patch to remove 'scope' from config defs - ([@isaacs](https://github.com/isaacs)) -* doc: npm-explore can't handle a version - ([@robertkowalski](https://github.com/robertkowalski)) -* Add user-friendly errors for ENOSPC and EROFS. - ([@voodootikigod](https://github.com/voodootikigod)) -* bump tar and fstream deps ([@isaacs](https://github.com/isaacs)) -* Run the npm-registry-couchapp tests along with npm tests - ([@isaacs](https://github.com/isaacs)) - -### v1.2.8000 (2014-06-17): - -* Same as v1.4.16, but with the spinner disabled, and a version number that - starts with v1.2. - -### v1.4.16 (2014-06-17): - -* `npm-registry-client@2.0.2` ([@isaacs](https://github.com/isaacs)) -* `fstream@0.1.27` ([@isaacs](https://github.com/isaacs)) -* `sha@1.2.4` ([@isaacs](https://github.com/isaacs)) -* `rimraf@2.2.8` ([@isaacs](https://github.com/isaacs)) -* `npmlog@1.0.1` ([@isaacs](https://github.com/isaacs)) -* `npm-registry-client@2.0.1` ([@isaacs](https://github.com/isaacs)) -* removed redundant dependency ([@othiym23](https://github.com/othiym23)) -* `npmconf@1.0.5` ([@isaacs](https://github.com/isaacs)) -* Properly handle errors that can occur in the config-loading process - ([@isaacs](https://github.com/isaacs)) - -### v1.4.15 (2014-06-10): - -* cache: atomic de-race-ified package.json writing - ([@isaacs](https://github.com/isaacs)) -* `fstream@0.1.26` ([@isaacs](https://github.com/isaacs)) -* `graceful-fs@3.0.2` ([@isaacs](https://github.com/isaacs)) -* `osenv@0.1.0` ([@isaacs](https://github.com/isaacs)) -* Only spin the spinner when we're fetching stuff - ([@isaacs](https://github.com/isaacs)) -* Update `osenv@0.1.0` which removes ~/tmp as possible tmp-folder - ([@robertkowalski](https://github.com/robertkowalski)) -* `ini@1.2.1` ([@isaacs](https://github.com/isaacs)) -* `graceful-fs@3` ([@isaacs](https://github.com/isaacs)) -* Update glob and things depending on glob - ([@isaacs](https://github.com/isaacs)) -* github-url-from-username-repo and read-package-json updates - ([@isaacs](https://github.com/isaacs)) -* `editor@0.1.0` ([@isaacs](https://github.com/isaacs)) -* `columnify@1.1.0` ([@isaacs](https://github.com/isaacs)) -* bump ansi and associated deps ([@isaacs](https://github.com/isaacs)) - -### v1.4.14 (2014-06-05): - -* char-spinner: update to not bork windows - ([@isaacs](https://github.com/isaacs)) - -### v1.4.13 (2014-05-23): - -* Fix `npm install` on a tarball. - ([`ed3abf1`](https://github.com/npm/npm/commit/ed3abf1aa10000f0f687330e976d78d1955557f6), - [#5330](https://github.com/npm/npm/issues/5330), - [@othiym23](https://github.com/othiym23)) -* Fix an issue with the spinner on Node 0.8. - ([`9f00306`](https://github.com/npm/npm/commit/9f003067909440390198c0b8f92560d84da37762), - [@isaacs](https://github.com/isaacs)) -* Re-add `npm.commands.cache.clean` and `npm.commands.cache.read` APIs, and - document `npm.commands.cache.*` as npm-cache(3). - ([`e06799e`](https://github.com/npm/npm/commit/e06799e77e60c1fc51869619083a25e074d368b3), - [@isaacs](https://github.com/isaacs)) - -### v1.4.12 (2014-05-23): - -* remove normalize-package-data from top level, de-^-ify inflight dep - ([@isaacs](https://github.com/isaacs)) -* Always sort saved bundleDependencies ([@isaacs](https://github.com/isaacs)) -* add inflight to bundledDependencies - ([@othiym23](https://github.com/othiym23)) - -### v1.4.11 (2014-05-22): - -* fix `npm ls` labeling issue -* `node-gyp@0.13.1` -* default repository to https:// instead of git:// -* addLocalTarball: Remove extraneous unpack - ([@isaacs](https://github.com/isaacs)) -* Massive cache folder refactor ([@othiym23](https://github.com/othiym23) and - [@isaacs](https://github.com/isaacs)) -* Busy Spinner, no http noise ([@isaacs](https://github.com/isaacs)) -* Per-project .npmrc file support ([@isaacs](https://github.com/isaacs)) -* `npmconf@1.0.0`, Refactor config/uid/prefix loading process - ([@isaacs](https://github.com/isaacs)) -* Allow once-disallowed characters in passwords - ([@isaacs](https://github.com/isaacs)) -* Send npm version as 'version' header ([@isaacs](https://github.com/isaacs)) -* fix cygwin encoding issue (Karsten Tinnefeld) -* Allow non-github repositories with `npm repo` - ([@evanlucas](https://github.com/evanlucas)) -* Allow peer deps to be satisfied by grandparent -* Stop optional deps moving into deps on `update --save` - ([@timoxley](https://github.com/timoxley)) -* Ensure only matching deps update with `update --save*` - ([@timoxley](https://github.com/timoxley)) -* Add support for `prerelease`, `preminor`, `prepatch` to `npm version` - -### v1.4.10 (2014-05-05): - -* Don't set referer if already set -* fetch: Send referer and npm-session headers -* `run-script`: Support `--parseable` and `--json` -* list runnable scripts ([@evanlucas](https://github.com/evanlucas)) -* Use marked instead of ronn for html docs - -### v1.4.9 (2014-05-01): - -* Send referer header (with any potentially private stuff redacted) -* Fix critical typo bug in previous npm release - -### v1.4.8 (2014-05-01): - -* Check SHA before using files from cache -* adduser: allow change of the saved password -* Make `npm install` respect `config.unicode` -* Fix lifecycle to pass `Infinity` for config env value -* Don't return 0 exit code on invalid command -* cache: Handle 404s and other HTTP errors as errors -* Resolve ~ in path configs to env.HOME -* Include npm version in default user-agent conf -* npm init: Use ISC as default license, use save-prefix for deps -* Many test and doc fixes - -### v1.4.7 (2014-04-15): - -* Add `--save-prefix` option that can be used to override the default of `^` - when using `npm install --save` and its counterparts. - ([`64eefdf`](https://github.com/npm/npm/commit/64eefdfe26bb27db8dc90e3ab5d27a5ef18a4470), - [@thlorenz](https://github.com/thlorenz)) -* Allow `--silent` to silence the echoing of commands that occurs with `npm - run`. - ([`c95cf08`](https://github.com/npm/npm/commit/c95cf086e5b97dbb48ff95a72517b203a8f29eab), - [@Raynos](https://github.com/Raynos)) -* Some speed improvements to the cache, which should improve install times. - ([`cb94310`](https://github.com/npm/npm/commit/cb94310a6adb18cb7b881eacb8d67171eda8b744), - [`3b0870f`](https://github.com/npm/npm/commit/3b0870fb2f40358b3051abdab6be4319d196b99d), - [`120f5a9`](https://github.com/npm/npm/commit/120f5a93437bbbea9249801574a2f33e44e81c33), - [@isaacs](https://github.com/isaacs)) -* Improve ability to retry registry requests when a subset of the registry - servers are down. - ([`4a5257d`](https://github.com/npm/npm/commit/4a5257de3870ac3dafa39667379f19f6dcd6093e), - https://github.com/npm/npm-registry-client/commit/7686d02cb0b844626d6a401e58c0755ef3bc8432, - [@isaacs](https://github.com/isaacs)) -* Fix marking of peer dependencies as extraneous. - ([`779b164`](https://github.com/npm/npm/commit/779b1649764607b062c031c7e5c972151b4a1754), - https://github.com/npm/read-installed/commit/6680ba6ef235b1ca3273a00b70869798ad662ddc, - [@isaacs](https://github.com/isaacs)) -* Fix npm crashing when doing `npm shrinkwrap` in the presence of a - `package.json` with no dependencies. - ([`a9d9fa5`](https://github.com/npm/npm/commit/a9d9fa5ad3b8c925a589422b7be28d2735f320b0), - [@kislyuk](https://github.com/kislyuk)) -* Fix error when using `npm view` on packages that have no versions or have - been unpublished. - ([`94df2f5`](https://github.com/npm/npm/commit/94df2f56d684b35d1df043660180fc321b743dc8), - [@juliangruber](https://github.com/juliangruber); - [`2241a09`](https://github.com/npm/npm/commit/2241a09c843669c70633c399ce698cec3add40b3), - [@isaacs](https://github.com/isaacs)) - -### v1.4.6 (2014-03-19): - -* Fix extraneous package detection to work in more cases. - ([`f671286`](https://github.com/npm/npm/commit/f671286), npm/read-installed#20, - [@LaurentVB](https://github.com/LaurentVB)) - -### v1.4.5 (2014-03-18): - -* Sort dependencies in `package.json` when doing `npm install --save` and all - its variants. - ([`6fd6ff7`](https://github.com/npm/npm/commit/6fd6ff7e536ea6acd33037b1878d4eca1f931985), - [@domenic](https://github.com/domenic)) -* Add `--save-exact` option, usable alongside `--save` and its variants, which - will write the exact version number into `package.json` instead of the - appropriate semver-compatibility range. - ([`17f07df`](https://github.com/npm/npm/commit/17f07df8ad8e594304c2445bf7489cb53346f2c5), - [@timoxley](https://github.com/timoxley)) -* Accept gzipped content from the registry to speed up downloads and save - bandwidth. - ([`a3762de`](https://github.com/npm/npm/commit/a3762de843b842be8fa0ab57cdcd6b164f145942), - npm/npm-registry-client#40, [@fengmk2](https://github.com/fengmk2)) -* Fix `npm ls`'s `--depth` and `--log` options. - ([`1d29b17`](https://github.com/npm/npm/commit/1d29b17f5193d52a5c4faa412a95313dcf41ed91), - npm/read-installed#13, [@zertosh](https://github.com/zertosh)) -* Fix "Adding a cache directory to the cache will make the world implode" in - certain cases. - ([`9a4b2c4`](https://github.com/npm/npm/commit/9a4b2c4667c2b1e0054e3d5611ab86acb1760834), - domenic/path-is-inside#1, [@pmarques](https://github.com/pmarques)) -* Fix readmes not being uploaded in certain rare cases. - ([`527b72c`](https://github.com/npm/npm/commit/527b72cca6c55762b51e592c48a9f28cc7e2ff8b), - [@isaacs](https://github.com/isaacs)) - -### v1.4.4 (2014-02-20): - -* Add `npm t` as an alias for `npm test` (which is itself an alias for `npm run - test`, or even `npm run-script test`). We like making running your tests - easy. ([`14e650b`](https://github.com/npm/npm/commit/14e650bce0bfebba10094c961ac104a61417a5de), [@isaacs](https://github.com/isaacs)) - -### v1.4.3 (2014-02-16): - -* Add back `npm prune --production`, which was removed in 1.3.24. - ([`acc4d02`](https://github.com/npm/npm/commit/acc4d023c57d07704b20a0955e4bf10ee91bdc83), - [@davglass](https://github.com/davglass)) -* Default `npm install --save` and its counterparts to use the `^` version - specifier, instead of `~`. - ([`0a3151c`](https://github.com/npm/npm/commit/0a3151c9cbeb50c1c65895685c2eabdc7e2608dc), - [@mikolalysenko](https://github.com/mikolalysenko)) -* Make `npm shrinkwrap` output dependencies in a sorted order, so that diffs - between shrinkwrap files should be saner now. - ([`059b2bf`](https://github.com/npm/npm/commit/059b2bfd06ae775205a37257dca80142596a0113), - [@Raynos](https://github.com/Raynos)) -* Fix `npm dedupe` not correctly respecting dependency constraints. - ([`86028e9`](https://github.com/npm/npm/commit/86028e9fd8524d5e520ce01ba2ebab5a030103fc), - [@rafeca](https://github.com/rafeca)) -* Fix `npm ls` giving spurious warnings when you used `"latest"` as a version - specifier. - (https://github.com/npm/read-installed/commit/d2956400e0386931c926e0f30c334840e0938f14, - [@bajtos](https://github.com/bajtos)) -* Fixed a bug where using `npm link` on packages without a `name` value could - cause npm to delete itself. - ([`401a642`](https://github.com/npm/npm/commit/401a64286aa6665a94d1d2f13604f7014c5fce87), - [@isaacs](https://github.com/isaacs)) -* Fixed `npm install ./pkg@1.2.3` to actually install the directory at - `pkg@1.2.3`; before it would try to find version `1.2.3` of the package - `./pkg` in the npm registry. - ([`46d8768`](https://github.com/npm/npm/commit/46d876821d1dd94c050d5ebc86444bed12c56739), - [@rlidwka](https://github.com/rlidwka); see also - [`f851b79`](https://github.com/npm/npm/commit/f851b79a71d9a5f5125aa85877c94faaf91bea5f)) -* Fix `npm outdated` to respect the `color` configuration option. - ([`d4f6f3f`](https://github.com/npm/npm/commit/d4f6f3ff83bd14fb60d3ac6392cb8eb6b1c55ce1), - [@timoxley](https://github.com/timoxley)) -* Fix `npm outdated --parseable`. - ([`9575a23`](https://github.com/npm/npm/commit/9575a23f955ce3e75b509c89504ef0bd707c8cf6), - [@yhpark](https://github.com/yhpark)) -* Fix a lockfile-related errors when using certain Git URLs. - ([`164b97e`](https://github.com/npm/npm/commit/164b97e6089f64e686db7a9a24016f245effc37f), - [@nigelzor](https://github.com/nigelzor)) - -### v1.4.2 (2014-02-13): - -* Fixed an issue related to mid-publish GET requests made against the registry. - (https://github.com/npm/npm-registry-client/commit/acbec48372bc1816c67c9e7cbf814cf50437ff93, - [@isaacs](https://github.com/isaacs)) - -### v1.4.1 (2014-02-13): - -* Fix `npm shrinkwrap` forgetting to shrinkwrap dependencies that were also - development dependencies. - ([`9c575c5`](https://github.com/npm/npm/commit/9c575c56efa9b0c8b0d4a17cb9c1de3833004bcd), - [@diwu1989](https://github.com/diwu1989)) -* Fixed publishing of pre-existing packages with uppercase characters in their - name. - (https://github.com/npm/npm-registry-client/commit/9345d3b6c3d8510dd5c4418f27ee1fce59acebad, - [@isaacs](https://github.com/isaacs)) - -### v1.4.0 (2014-02-12): - -* Remove `npm publish --force`. See - https://github.com/npm/npmjs.org/issues/148. - ([@isaacs](https://github.com/isaacs), - npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a) -* Other changes to the registry client related to saved configs and couch - logins. ([@isaacs](https://github.com/isaacs); - npm/npm-registry-client@25e2b019a1588155e5f87d035c27e79963b75951, - npm/npm-registry-client@9e41e9101b68036e0f078398785f618575f3cdde, - npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a) -* Show an error to the user when doing `npm update` and the `package.json` - specifies a version that does not exist. - ([@evanlucas](https://github.com/evanlucas), - [`027a33a`](https://github.com/npm/npm/commit/027a33a5c594124cc1d82ddec5aee2c18bc8dc32)) -* Fix some issues with cache ownership in certain installation configurations. - ([@outcoldman](https://github.com/outcoldman), - [`a132690`](https://github.com/npm/npm/commit/a132690a2876cda5dcd1e4ca751f21dfcb11cb9e)) -* Fix issues where GitHub shorthand dependencies `user/repo` were not always - treated the same as full Git URLs. - ([@robertkowalski](https://github.com/robertkowalski), - https://github.com/meryn/normalize-package-data/commit/005d0b637aec1895117fcb4e3b49185eebf9e240) - -### v1.3.26 (2014-02-02): - -* Fixes and updates to publishing code - ([`735427a`](https://github.com/npm/npm/commit/735427a69ba4fe92aafa2d88f202aaa42920a9e2) - and - [`c0ac832`](https://github.com/npm/npm/commit/c0ac83224d49aa62e55577f8f27d53bbfd640dc5), - [@isaacs](https://github.com/isaacs)) -* Fix `npm bugs` with no arguments. - ([`b99d465`](https://github.com/npm/npm/commit/b99d465221ac03bca30976cbf4d62ca80ab34091), - [@Hoops](https://github.com/Hoops)) - -### v1.3.25 (2014-01-25): - -* Remove gubblebum blocky font from documentation headers. - ([`6940c9a`](https://github.com/npm/npm/commit/6940c9a100160056dc6be8f54a7ad7fa8ceda7e2), - [@isaacs](https://github.com/isaacs)) - -### v1.3.24 (2014-01-19): - -* Make the search output prettier, with nice truncated columns, and a `--long` - option to create wrapping columns. - ([`20439b2`](https://github.com/npm/npm/commit/20439b2) and - [`3a6942d`](https://github.com/npm/npm/commit/3a6942d), - [@timoxley](https://github.com/timoxley)) -* Support multiple packagenames in `npm docs`. - ([`823010b`](https://github.com/npm/npm/commit/823010b), - [@timoxley](https://github.com/timoxley)) -* Fix the `npm adduser` bug regarding "Error: default value must be string or - number" again. ([`b9b4248`](https://github.com/npm/npm/commit/b9b4248), - [@isaacs](https://github.com/isaacs)) -* Fix `scripts` entries containing whitespaces on Windows. - ([`80282ed`](https://github.com/npm/npm/commit/80282ed), - [@robertkowalski](https://github.com/robertkowalski)) -* Fix `npm update` for Git URLs that have credentials in them - ([`93fc364`](https://github.com/npm/npm/commit/93fc364), - [@danielsantiago](https://github.com/danielsantiago)) -* Fix `npm install` overwriting `npm link`-ed dependencies when they are tagged - Git dependencies. ([`af9bbd9`](https://github.com/npm/npm/commit/af9bbd9), - [@evanlucas](https://github.com/evanlucas)) -* Remove `npm prune --production` since it buggily removed some dependencies - that were necessary for production; see - [#4509](https://github.com/npm/npm/issues/4509). Hopefully it can make its - triumphant return, one day. - ([`1101b6a`](https://github.com/npm/npm/commit/1101b6a), - [@isaacs](https://github.com/isaacs)) - -Dependency updates: -* [`909cccf`](https://github.com/npm/npm/commit/909cccf) `read-package-json@1.1.6` -* [`a3891b6`](https://github.com/npm/npm/commit/a3891b6) `rimraf@2.2.6` -* [`ac6efbc`](https://github.com/npm/npm/commit/ac6efbc) `sha@1.2.3` -* [`dd30038`](https://github.com/npm/npm/commit/dd30038) `node-gyp@0.12.2` -* [`c8c3ebe`](https://github.com/npm/npm/commit/c8c3ebe) `npm-registry-client@0.3.3` -* [`4315286`](https://github.com/npm/npm/commit/4315286) `npmconf@0.1.12` - -### v1.3.23 (2014-01-03): - -* Properly handle installations that contained a certain class of circular - dependencies. - ([`5dc93e8`](https://github.com/npm/npm/commit/5dc93e8c82604c45b6067b1acf1c768e0bfce754), - [@substack](https://github.com/substack)) - -### v1.3.22 (2013-12-25): - -* Fix a critical bug in `npm adduser` that would manifest in the error message - "Error: default value must be string or number." - ([`fba4bd2`](https://github.com/npm/npm/commit/fba4bd24bc2ab00ccfeda2043aa53af7d75ef7ce), - [@isaacs](https://github.com/isaacs)) -* Allow `npm bugs` in the current directory to open the current package's bugs - URL. - ([`d04cf64`](https://github.com/npm/npm/commit/d04cf6483932c693452f3f778c2fa90f6153a4af), - [@evanlucas](https://github.com/evanlucas)) -* Several fixes to various error messages to include more useful or updated - information. - ([`1e6f2a7`](https://github.com/npm/npm/commit/1e6f2a72ca058335f9f5e7ca22d01e1a8bb0f9f7), - [`ff46366`](https://github.com/npm/npm/commit/ff46366bd40ff0ef33c7bac8400bc912c56201d1), - [`8b4bb48`](https://github.com/npm/npm/commit/8b4bb4815d80a3612186dc5549d698e7b988eb03); - [@rlidwka](https://github.com/rlidwka), - [@evanlucas](https://github.com/evanlucas)) - -### v1.3.21 (2013-12-17): - -* Fix a critical bug that prevented publishing due to incorrect hash - calculation. - ([`4ca4a2c`](https://github.com/npm/npm-registry-client/commit/4ca4a2c6333144299428be6b572e2691aa59852e), - [@dominictarr](https://github.com/dominictarr)) - -### v1.3.20 (2013-12-17): - -* Fixes a critical bug in v1.3.19. Thankfully, due to that bug, no one could - install npm v1.3.19 :) - -### v1.3.19 (2013-12-16): - -* Adds atomic PUTs for publishing packages, which should result in far fewer - requests and less room for replication errors on the server-side. - -### v1.3.18 (2013-12-16): - -* Added an `--ignore-scripts` option, which will prevent `package.json` scripts - from being run. Most notably, this will work on `npm install`, so e.g. `npm - install --ignore-scripts` will not run preinstall and prepublish scripts. - ([`d7e67bf`](https://github.com/npm/npm/commit/d7e67bf0d94b085652ec1c87d595afa6f650a8f6), - [@sqs](https://github.com/sqs)) -* Fixed a bug introduced in 1.3.16 that would manifest with certain cache - configurations, by causing spurious errors saying "Adding a cache directory - to the cache will make the world implode." - ([`966373f`](https://github.com/npm/npm/commit/966373fad8d741637f9744882bde9f6e94000865), - [@domenic](https://github.com/domenic)) -* Re-fixed the multiple download of URL dependencies, whose fix was reverted in - 1.3.17. - ([`a362c3f`](https://github.com/npm/npm/commit/a362c3f1919987419ed8a37c8defa19d2e6697b0), - [@spmason](https://github.com/spmason)) - -### v1.3.17 (2013-12-11): - -* This release reverts - [`644c2ff`](https://github.com/npm/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7), - which avoided re-downloading URL and shinkwrap dependencies when doing `npm - install`. You can see the in-depth reasoning in - [`d8c907e`](https://github.com/npm/npm/commit/d8c907edc2019b75cff0f53467e34e0ffd7e5fba); - the problem was, that the patch changed the behavior of `npm install -f` to - reinstall all dependencies. -* A new version of the no-re-downloading fix has been submitted as - [#4303](https://github.com/npm/npm/issues/4303) and will hopefully be - included in the next release. - -### v1.3.16 (2013-12-11): - -* Git URL dependencies are now updated on `npm install`, fixing a two-year old - bug - ([`5829ecf`](https://github.com/npm/npm/commit/5829ecf032b392d2133bd351f53d3c644961396b), - [@robertkowalski](https://github.com/robertkowalski)). Additional progress on - reducing the resulting Git-related I/O is tracked as - [#4191](https://github.com/npm/npm/issues/4191), but for now, this will be a - big improvement. -* Added a `--json` mode to `npm outdated` to give a parseable output. - ([`0b6c9b7`](https://github.com/npm/npm/commit/0b6c9b7c8c5579f4d7d37a0c24d9b7a12ccbe5fe), - [@yyx990803](https://github.com/yyx990803)) -* Made `npm outdated` much prettier and more useful. It now outputs a - color-coded and easy-to-read table. - ([`fd3017f`](https://github.com/npm/npm/commit/fd3017fc3e9d42acf6394a5285122edb4dc16106), - [@quimcalpe](https://github.com/quimcalpe)) -* Added the `--depth` option to `npm outdated`, so that e.g. you can do `npm - outdated --depth=0` to show only top-level outdated dependencies. - ([`1d184ef`](https://github.com/npm/npm/commit/1d184ef3f4b4bc309d38e9128732e3e6fb46d49c), - [@yyx990803](https://github.com/yyx990803)) -* Added a `--no-git-tag-version` option to `npm version`, for doing the usual - job of `npm version` minus the Git tagging. This could be useful if you need - to increase the version in other related files before actually adding the - tag. - ([`59ca984`](https://github.com/npm/npm/commit/59ca9841ba4f4b2f11b8e72533f385c77ae9f8bd), - [@evanlucas](https://github.com/evanlucas)) -* Made `npm repo` and `npm docs` work without any arguments, adding them to the - list of npm commands that work on the package in the current directory when - invoked without arguments. - ([`bf9048e`](https://github.com/npm/npm/commit/bf9048e2fa16d43fbc4b328d162b0a194ca484e8), - [@robertkowalski](https://github.com/robertkowalski); - [`07600d0`](https://github.com/npm/npm/commit/07600d006c652507cb04ac0dae9780e35073dd67), - [@wilmoore](https://github.com/wilmoore)). There are a few other commands we - still want to implement this for; see - [#4204](https://github.com/npm/npm/issues/4204). -* Pass through the `GIT_SSL_NO_VERIFY` environment variable to Git, if it is - set; we currently do this with a few other environment variables, but we - missed that one. - ([`c625de9`](https://github.com/npm/npm/commit/c625de91770df24c189c77d2e4bc821f2265efa8), - [@arikon](https://github.com/arikon)) -* Fixed `npm dedupe` on Windows due to incorrect path separators being used - ([`7677de4`](https://github.com/npm/npm/commit/7677de4583100bc39407093ecc6bc13715bf8161), - [@mcolyer](https://github.com/mcolyer)). -* Fixed the `npm help` command when multiple words were searched for; it - previously gave a `ReferenceError`. - ([`6a28dd1`](https://github.com/npm/npm/commit/6a28dd147c6957a93db12b1081c6e0da44fe5e3c), - [@dereckson](https://github.com/dereckson)) -* Stopped re-downloading URL and shrinkwrap dependencies, as demonstrated in - [#3463](https://github.com/npm/npm/issues/3463) - ([`644c2ff`](https://github.com/isaacs/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7), - [@spmason](https://github.com/spmason)). You can use the `--force` option to - force re-download and installation of all dependencies. diff --git a/deps/npm/changelogs/CHANGELOG-2.md b/deps/npm/changelogs/CHANGELOG-2.md deleted file mode 100644 index d79982385ef..00000000000 --- a/deps/npm/changelogs/CHANGELOG-2.md +++ /dev/null @@ -1,5344 +0,0 @@ -### v2.15.12 (2017-03-24): - -This version brings the latest `node-gyp` to a soon to be released Node.js -4.x. The `node-gyp` update is paticularly important to Windows folks due to -its addition of Visual Studio 2017 support. - -* [`cdd60e733`](https://github.com/npm/npm/commit/cdd60e733905a9994e1d6d832996bfdd12abeaee) - `node-gyp@3.6.0`: - Improvements to how Python is located. New `--devdir` flag. - Support for VS2017. - Chakracore support on ARM. - Remove path-array dependency, reducing size significantly. - ([@bnoordhuis](https://github.com/bnoordhuis)) - ([@mhart](https://github.com/mhart)) - ([@refack](https://github.com/refack)) - ([@kunalspathak](https://github.com/kunalspathak)) - -### v2.15.11 (2016-09-08): - -On we go with our monthly release cadence! This week is pretty much all -dependency updates and some documentation changes, as can be expected by now. - -Note that `npm@4` will almost certainly be released next month! It's not final -what we'll end up doing as far as LTS support goes, but the current thinking is -that, considering how small and resource-constrained our team is, support for -`npm@2` will be reduced to essentially maintenance, so we can better focus on -`npm@3` as the new LTS version (which will go into `node@6`), and `npm@4` as our -next main development version. - -#### DOCUMENTATION UPDATES - -* [`8f71038`](https://github.com/npm/npm/commit/8f71038310501ad5bc7445b2fa2ff0eaa377919a) - [#13892](https://github.com/npm/npm/pull/13892) - Update `LICENSE` file to match license on `master`. - ([@rvagg](https://github.com/rvagg)) -* [`e81b4f1`](https://github.com/npm/npm/commit/e81b4f1d18a4d79b7af8342747f2ed7dc3e84f0a) - [#12438](https://github.com/npm/npm/issues/12438) - Remind folks to use `#!/usr/bin/env node` in their `bin` scripts to make files - executable directly. - ([@mxstbr](https://github.com/mxstbr)) -* [`f89789f`](https://github.com/npm/npm/commit/f89789f43d65bfc74f64f15a99356841377e1af3) - [#13655](https://github.com/npm/npm/pull/13655) - Document line comment syntax for `.npmrc`. - ([@mdjasper](https://github.com/mdjasper)) -* [`5cd3abc`](https://github.com/npm/npm/commit/5cd3abc3511515e09b4a1b781c0520e84c267c5b) - [#13493](https://github.com/npm/npm/pull/13493) - Document that the user config file can itself be configured either through the - `$NPM_CONFIG_USERCONFIG` environment variable, or `--userconfig` command line - flag. - ([@jasonkarns](https://github.com/jasonkarns)) -* [`dd71ca0`](https://github.com/npm/npm/commit/dd71ca0efc2094b824ccc9e23af0fc915499f2e6) - [#13911](https://github.com/npm/npm/pull/13911) - Minor documentation reword and cleanup. - ([@othiym23](https://github.com/othiym23)) -* [`f7a320c`](https://github.com/npm/npm/commit/f7a320c816947d578a050c97e0fb9878954be0e8) - [#13682](https://github.com/npm/npm/pull/13682) - Minor grammar fix in documentation for `npm scripts`. - ([@Ajedi32](https://github.com/Ajedi32)) -* [`e5cb5e8`](https://github.com/npm/npm/commit/e5cb5e8fcf4642836fedf3f3421c994a8e27e19b) - [#13717](https://github.com/npm/npm/pull/13717) - Document that `npm link` will link the files specified in the `bin` field of - `package.json` to `{prefix}/bin/{name}`. - ([@legodude17](https://github.com/legodude17)) - -#### DEPENDENCY UPDATES -* [`8bef026`](https://github.com/npm/npm/commit/8bef026603b6da888edf0d41308d9e532abfcd54) - `graceful-fs@4.1.6` - ([@francescoinfante](https://github.com/francescoinfante)) -* [`9f73f4a`](https://github.com/npm/npm/commit/9f73f4aab5f56b256c5cf9e461e81abfa2844945) - `glob@7.0.6` - ([@isaacs](https://github.com/isaacs)) -* [`5391b7e`](https://github.com/npm/npm/commit/5391b7e8cd4401fbadbf54e810fdc965a3662a21) - `which@1.2.1` - ([@isaacs](https://github.com/isaacs)) -* [`43bfec8`](https://github.com/npm/npm/commit/43bfec8376dd8ded7d56a8dabd6139919544760e) - `retry@0.10.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`39305f1`](https://github.com/npm/npm/commit/39305f1c76f74bf9789c769ef72a94ea9a81d119) - `readable-stream@2.1.5` - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`a5512fa`](https://github.com/npm/npm/commit/a5512fafd72e23755e77e28f1122b008bc12a733) - `once@1.4.0` - ([@zkochan](https://github.com/zkochan)) -* [`06a208b`](https://github.com/npm/npm/commit/06a208b178c1de3d0da58bc35a854d200fea8ef0) - `npm-registry-client@7.2.1`: - * [npm/npm-registry-client#142](https://github.com/npm/npm-registry-client/pull/142) Fix `EventEmitter` warning spam from error handlers on socket. ([@addaleax](https://github.com/addaleax)) - * [npm/npm-registry-client#131](https://github.com/npm/npm-registry-client/pull/131) Adds support for streaming request bodies. ([@aredridel](https://github.com/aredridel)) - * Fixes [#13656](https://github.com/npm/npm/issues/13656). - * Dependency updates. - * Documentation improvements. - ([@othiym23](https://github.com/othiym23)) -* [`4f759be`](https://github.com/npm/npm/commit/4f759be1fb5e23180b970350e58f40a513daa680) - `inherits@2.0.3` - ([@isaacs](https://github.com/isaacs)) -* [`4258b76`](https://github.com/npm/npm/commit/4258b764e2565f6294ae1e34a5653895290b62e3) - `tap@7.1.1` - ([@isaacs](https://github.com/isaacs)) - -### v2.15.10 (2016-08-11): - -Hi all, today's our first release coming out of the new monthly release -cadence. See below for details. We're all recovered from conferences now and -raring to go! For LTS we see some bug fixes, documentation improvements and -a host of dependency updates. - -The most dramatic bug fix is probably the inclusion of scoped modules in -bundled dependencies. Prior to this release and -[v3.10.7](https://github.com/npm/npm/releases/v3.10.7), npm had ignored -scoped modules found in `bundleDependencies` entirely. - -#### NEW RELEASE CADENCE - -Releasing npm has been, for the most part, a very prominent part of our -weekly process process. As part of our efforts to find the most effective -ways to allocate our team's resources, we decided last month that we would -try and slow our releases down to a monthly cadence, and see if we found -ourselves with as much extra time and attention as we expected to have. -Process experiments are useful for finding more effective ways to do our -work, and we're at least going to keep doing this for a whole quarter, and -then measure how well it worked out. It's entirely likely that we'll switch -back to a more frequent cadence, specially if we find that the value that -weekly cadence was providing the community is not worth sacrificing for a -bit of extra time. Does this affect you significantly? Let us know! - -#### WINDOWS CORNER CASES - -* [`405c404`](https://github.com/npm/npm/commit/405c4048c69c14d66e6179aba0c8a35e504e8041) - [#13023](https://github.com/npm/npm/pull/13023) - Fixed a Windows issue with the cache where callbacks could be called more than once. - ([@zkat](https://github.com/zkat)) - -* [`bf348dc`](https://github.com/npm/npm/commit/bf348dcfb944dc4b9f71b779bf172f86a2e1f474) - [#13023](https://github.com/npm/npm/pull/13023) - Fixed a Windows corner case with correct-mkdir where if SUDO_UID or - SUDO_GID were set then we would try to chown things even though that can't - work on Windows. - ([@zkat](https://github.com/zkat)) - -#### RACES IN THE CACHE - -* [`68f29f1`](https://github.com/npm/npm/commit/68f29f18f65c7a7e1c58eb6933af41d786971379) - [#12669](https://github.com/npm/npm/issues/12669) - Ignore ENOENT errors on chownr while adding packages to cache. This change - works around problems with race conditions and local packages. - ([@julianduque](https://github.com/julianduque)) - -#### BETTER GIT ENVIRONMENT WHITELISTING - -* [`5e96566`](https://github.com/npm/npm/commit/5e96566088f0d88c1ed10c5a9cbb7c0cd4aa2aee) - [#13358](https://github.com/npm/npm/pull/13358) - Add GIT_EXEC_PATH to Git environment whitelist. - ([@mhart](https://github.com/mhart)) - -#### DOCUMENTATION - -* [`363e381`](https://github.com/npm/npm/commit/363e381a4076ead89707a00cc4a447b1d59df3bc) - [#13319](https://github.com/npm/npm/pull/13319) - As Node.js 0.8 is no longer supported, remove mention of it from the README. - ([@watilde](https://github.com/watilde)) -* [`e8fafa8`](https://github.com/npm/npm/commit/e8fafa887c60eb8842c76c4b3dffe85eb49fa434) - [#10167](https://github.com/npm/npm/pull/10167) - Clarify in scope documentation that npm@2 is required for scoped packages. - ([@danpaz](https://github.com/danpaz)) - -#### DEPENDENCIES - -* [`66ef279`](https://github.com/npm/npm/commit/66ef279b7c3b3e4f9454474dddd057cc1f21873b) - [npm/fstream-npm#22](https://github.com/npm/fstream-npm/pull/22) - `fstream@1.1.1`: - Always include NOTICE files now. Fix inclusion of scoped modules as bundled dependencies. - ([@kemitchell](https://github.com/kemitchell)) - ([@forivall](https://github.com/forivall)) -* [`fe8385b`](https://github.com/npm/npm/commit/fe8385bd655502feb175eed175a6a06cafb2247a) - `glob@7.0.5`: - Update minimatch dep for security fix. See the minimatch update below for details. - ([@isaacs](https://github.com/isaacs)) -* [`51d49d2`](https://github.com/npm/npm/commit/51d49d2f79b4c69264de73a492ed54f87188d554) - [isaacs/node-graceful-fs#71](https://github.com/isaacs/node-graceful-fs/pull/71) - `graceful-fs@4.1.5`: - `graceful-fs` had a [bug fix](https://github.com/isaacs/node-graceful-fs/pull/71) which - fixes a problem ([nodejs/node#7846](https://github.com/nodejs/node/pull/7846)) exposed - by recent changes to Node.js. - ([@thefourtheye](https://github.com/thefourtheye)) -* [`5c8f39d`](https://github.com/npm/npm/commit/5c8f39d152c43e96b9006ffe865646a36a433a8a) - `minimatch@3.0.3`: - Handle extremely long and terrible patterns more gracefully. - There were some magic numbers that assumed that every extglob pattern starts - and ends with a specific number of characters in the regular expression. - Since !(||) patterns are a little bit more complicated, this led to creating - an invalid regular expression and throwing. - ([@isaacs](https://github.com/isaacs)) -* [`d681e16`](https://github.com/npm/npm/commit/d681e16a475a49d6196af9a5cedaaf88712f3a9f) - [npm/npm-user-validate#9](https://github.com/npm/npm-user-validate/pull/9) - `npm-user-validate@0.1.5`: - Use correct, lower username length limit. - ([@aredridel](https://github.com/aredridel)) -* [`f918994`](https://github.com/npm/npm/commit/f918994bd05ca965766cd573606ac35fb3032d6e) - `request@2.74.0`: - Update `request` dependency `tough-cookie` to `2.3.0` to - to address [https://nodesecurity.io/advisories/130](https://nodesecurity.io/advisories/130). - Versions 0.9.7 through 2.2.2 contain a vulnerable regular expression that, - under certain conditions involving long strings of semicolons in the - "Set-Cookie" header, causes the event loop to block for excessive amounts of - time. - ([@stash-sfdc](https://github.com/stash-sfdc)) -* [`5540cc4`](https://github.com/npm/npm/commit/5540cc4d6bde65071fb6fc2cb074e8598bd1276f) - [isaacs/rimraf#111](https://github.com/isaacs/rimraf/issues/111) - `rimraf@2.5.4`: Clarify assertions: cb is required, options are not. - ([@isaacs](https://github.com/isaacs)) -* [`6357928`](https://github.com/npm/npm/commit/6357928673be85f520dae2104fea58c35742bd65) - `spdx-license-ids@1.2.2`: - New licenses synced from spdx.org. - ([@shinnn](https://github.com/shinnn)) - -### v2.15.9 (2016-06-30): - -What's this? An LTS release? Yes, that is indeed so. Small, as usual, and as -LTSs should be, really, but a release nonetheless! - -The star of the show is an updated `node-gyp` with some goodies. The rest is -just docs and some CI stuff. - -Happy hacking! - -#### DEPENDENCY UPDATE! - -* [`f9a07cc`](https://github.com/npm/npm/commit/f9a07cc873f1915827d8df97d0c43204d1eb128c) - [#13200](https://github.com/npm/npm/pull/13200) - [`node-gyp@3.4.0`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md): - AIX, Visual Studio 2015, and logging improvements. Oh my~! - ([@rvagg](https://github.com/rvagg)) - -#### CI TWEAKS - -* [`bee83b8`](https://github.com/npm/npm/commit/bee83b8500c31aba65451dfcb082f9b5d1d5ce34) - Globally install `rimraf` on CI to make the LTS self-install work better. - ([@othiym23](https://github.com/othiym23)) -* [`6b8c0ab`](https://github.com/npm/npm/commit/6b8c0ab6fcbf8a37e8693acb8bbac22293b10893) - This new Travis configuration only runs coverage checks against Node.js LTS, - which speeds up all the other test runs. By, like, a lot. Also, the entire - file has been extensively commented, so the next time we need to mess with it, - we'll be able to better remember why all the weird bits are there. - ([@othiym23](https://github.com/othiym23)) - -#### DOCUMENTATION FIXES - -* [`2c7a5be`](https://github.com/npm/npm/commit/2c7a5be080276e3fdca3375ab0f8f5edffff753e) - [#13156](https://github.com/npm/npm/pull/13156) - Fix old reference to `doc/install` in a source comment. - ([@sheerun](https://github.com/sheerun)) -* [`e1cf78c`](https://github.com/npm/npm/commit/e1cf78c5b77f95383bd4a7fc6eeb8adbbe68e12e) - [#13189](https://github.com/npm/npm/pull/13189) - [#13113](https://github.com/npm/npm/issues/13113) - [#13189](https://github.com/npm/npm/pull/13189) - Fixes a link to `npm-tag(3)` that was breaking to instead point to - `npm-dist-tag(1)`, as reported by [@SimenB](https://github.com/SimenB) - ([@macdonst](https://github.com/macdonst)) - -### v2.15.8 (2016-06-17): - -There's a very important bug fix and a long-awaited (and significant!) -deprecation in this hotfix release. [Hold on.](http://butt.holdings/) - -#### *WHOA* - -When Node.js 6.0.0 was released, the CLI team noticed an alarming upsurge in -bugs related to important files (like `README.md`) not being included in -published packages. The new bugs looked much like -[#5082](https://github.com/npm/npm/issues/5082), which had been around in one -form or another since April, 2014. #5082 used to be a very rare (and obnoxious) -bug that the CLI team hadn't had much luck reproducing, and we'd basically -marked it down as a race condition that arose on machines using slow and / or -rotating-media-based hard drives. - -Under 6.0.0, the behavior was reliable enough to be nearly deterministic, and -made it very difficult for publishers using `.npmignore` files in combination -with `"files"` stanzas in `package.json` to get their packages onto the -registry without one or more files missing from the packed tarball. The entire -saga is contained within [the issue](https://github.com/npm/npm/issues/5082), -but the summary is that an improvement to the performance of -[`fs.realpath()`](https://nodejs.org/api/fs.html#fs_fs_realpath_path_options_callback) -made it much more likely that the packing code would lose the race. - -Fixing this has proven to be very difficult, in part because the code used by -npm to produce package tarballs is more complicated than, strictly speaking, it -needs to be. [**@evanlucas**](https://github.com/evanlucas) contributed [a -patch](https://github.com/npm/fstream/pull/50) that passed the tests in a -[special test suite](https://github.com/othiym23/eliminate-5082) that I -([**@othiym23**](https://github.com/othiym23)) created (with help from -[**@addaleax**](https://github.com/addaleax)), but only _after_ we'd released -the fixed version of that package did we learn that it actually made the -problem _worse_ in other situations in npm proper. Eventually, -[**@rvagg**](https://github.com/rvagg) put together a more durable fix that -appears to completely address the errant behavior under Node.js 6.0.0. That's -the patch included in this release. Everybody should chip in for redback -insurance for Rod and his family; he's done the community a huge favor. - -Does this mean the long (2+ year) saga of #5082 is now over? At this point, I'm -going to quote from my latest summary on the issue: - -> The CLI team (mostly me, with input from the rest of the team) has decided that -> the overall complexity of the interaction between `fstream`, `fstream-ignore`, -> `fstream-npm`, and `node-tar` has grown more convoluted than the team is -> comfortable (maybe even capable of) supporting. -> -> - While I believe that @rvagg's (very targeted) fix addresses _this_ issue, I -> would be shocked if there aren't other race conditions in npm's packing -> logic. I've already identified a couple other places in the code that are -> most likely race conditions, even if they're harder to trigger than the -> current one. -> - The way that dependency bundling is integrated leads to a situation in -> which a bunch of logic is duplicated between `fstream-npm` and -> `lib/utils/tar.js` in npm itself, and the way `fstream`'s extension -> mechanism works makes this difficult to clean up. This caused a nasty -> regression ([#13088](https://github.com/npm/fstream/pull/50), see below) as -> of ~`npm@3.8.7` where the dependencies of `bundledDependencies` were no -> longer being included in the built package tarballs. -> - The interaction between `.npmignore`, `.gitignore`, and `files` is hopelessly -> complicated, scattered in many places throughout the code. We've been -> discussing [making the ignores and includes logic clearer and more -> predictable](https://github.com/npm/npm/wiki/Files-and-Ignores), and the -> current code fights our efforts to clean that up. -> -> So, our intention is still to replace `fstream`, `fstream-ignore`, and -> `fstream-npm` with something much simpler and purpose-built. There's no real -> reason to have a stream abstraction here when a simple recursive-descent -> filesystem visitor and a synchronous function that can answer whether a given -> path should be included in the packed tarball would do the job adequately. -> -> What's not yet clear is whether we'll need to replace `node-tar` in the -> process. `node-tar` is a very robust implementation of tar (it handles, like, -> everything), and it also includes some very important tweaks to prevent several -> classes of security exploits involving maliciously crafted packages. However, -> its packing API involves passing in an `fstream` instance, so we'd either need -> to produce something that follows enough of `fstream`'s contract for `node-tar` -> to keep working, or swap `node-tar` out for something like `tar-stream` (and -> then ensuring that our use of `tar-stream` is secure, which could involve -> security patches for either npm or `tar-stream`). - -The testing and review of `fstream@1.0.10` that the team has done leads us to -believe that this bug is fixed, but I'm feeling more than a little paranoid -about fstream now, so it's important that people keep a close eye on their -publishes for a while and let us know immediately if they notice any -irregularities. - -* [`2c49265`](https://github.com/npm/npm/commit/2c49265c6746d29ae0cd5f3532d28c5950f9847e) - [#5082](https://github.com/npm/npm/issues/5082) `fstream@1.0.10`: Ensure that - entries are collected after a paused stream resumes. - ([@rvagg](https://github.com/rvagg)) -* [`92e4344`](https://github.com/npm/npm/commit/92e43444d9204f749f83512aeab5d5e0a2d085a7) - [#5082](https://github.com/npm/npm/issues/5082) Remove the warning introduced - in `npm@3.10.0`, because it should no longer be necessary. - ([@othiym23](https://github.com/othiym23)) - -#### GOODBYE, FAITHFUL FRIEND - -At NodeConf Adventure 2016 (RIP in peace, Mikeal Rogers's NodeConf!), the CLI -team had an opportunity to talk to representatives from some of the larger -companies that we knew were still using Node.js 0.8 in production. After asking -them whether they were still using 0.8, we got back blank stares and questions -like, "0.8? You mean, from four years ago?" After establishing that being able -to run npm in their legacy environments was no longer necessary, the CLI team -made the decision to drop support for 0.8. (Faithful observers of our [team -meetings](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+npm+cli+team+meeting+) -will have known this was the plan for NodeConf since the beginning of 2016.) - -In practice, this means only what's in the commit below: we've removed 0.8 from -our continuous integration test matrix below, and will no longer be habitually -testing changes under Node 0.8. We may also give ourselves permission to use -`setImmediate()` in test code. However, since the project still supports -Node.js 0.10 and 0.12, it's unlikely that patches that rely on ES 2015 -functionality will land anytime soon. - -Looking forward, the team's current plan is to drop support for Node.js 0.10 -when its LTS maintenace window expires in October, 2016, and 0.12 when its -maintenance / LTS window ends at the end of 2016. We will also drop support for -Node.js 5.x when Node.js 6 becomes LTS and Node.js 7 is released, also in the -October-December 2016 timeframe. - -(Confused about Node.js's LTS policy? [Don't -be!](https://github.com/nodejs/LTS) If you look at [this -diagram](https://github.com/nodejs/LTS/blob/ce364a94b0e0619eba570cd57be396573e1ef889/schedule.png), -it should make all of the preceding clear.) - -If, in practice, this doesn't work with distribution packagers or other -community stakeholders responsible for packaging and distributing Node.js and -npm, please reach out to us. Aligning the npm CLI's LTS policy with Node's -helps everybody minimize the amount of work they need to do, and since all of -our teams are small and very busy, this is somewhere between a necessity and -non-negotiable. - -* [`4a1ecc0`](https://github.com/npm/npm/commit/4a1ecc068fb2660bd9bc3e2e2372aa0176d2193b) - Remove 0.8 from the Node.js testing matrix, and reorder to match real-world - priority, with comments. ([@othiym23](https://github.com/othiym23)) - -### v2.15.7 (2016-06-16): - -It pains me greatly that we haven't been able to fix -[#5082](https://github.com/npm/npm/issues/5082) yet, but warning you away from -potentially publishing incomplete packages takes priority over feeling cheesy -about landing a warning to help keep y'all out of trouble, so here you go -(_please read this next bit_ (_please clap_)): - -#### DANGER: PUBLISHING ON NODE 6.0.0 - -Publishing and packing are buggy under Node versions greater than 6.0.0. -Please use Node.js LTS (4.4.x) to publish packages. See -[#5082](https://github.com/npm/npm/issues/5082) for details and current -status. - -* [`dff00ce`](https://github.com/npm/npm/commit/dff00cedd56b9c04370f840299a7e657a7a835c6) - [#13077](https://github.com/npm/npm/pull/13077) - Warn when using Node 6+. - ([@othiym23](https://github.com/othiym23)) - -#### PACKAGING CHANGES - -* [`1877171`](https://github.com/npm/npm/commit/1877171648e20595a82de34073b643f7e01a339f) - [#12873](https://github.com/npm/npm/issues/12873) - Ignore `.nyc_output`. This will help avoid an accidental publish or commit filled with - code coverage data. - ([@TheAlphaNerd](https://github.com/TheAlphaNerd)) - -#### DOCUMENTATION CHANGES - -* [`470ae86`](https://github.com/npm/npm/commit/470ae86e052ae2f29ebec15b7547230b6240042e) - [#12983](https://github.com/npm/npm/pull/12983) - Describe how to run the lifecycle scripts of dependencies. How you do - this changed with `npm` v2. - ([@Tapppi](https://github.com/Tapppi)) -* [`9cedf37`](https://github.com/npm/npm/commit/9cedf37e5a3e26d0ffd6351af8cac974e3e011c2) - [#12776](https://github.com/npm/npm/pull/12776) - Remove mention of `` arg for `run-script`. - ([@fibo](https://github.com/fibo)) -* [`55b8424`](https://github.com/npm/npm/commit/55b8424d7229f2021cac55f0b03de72403e7c0ff) - [#12840](https://github.com/npm/npm/pull/12840) - Remove sexualized language from comment. - ([@geek](https://github.com/geek)) -* [`d6bf0c3`](https://github.com/npm/npm/commit/d6bf0c393788a6398bf80b41c57956f2dbcf3b39) - [#12802](https://github.com/npm/npm/pull/12802) - Small grammar fix in `doc/cli/npm.md`. - ([@andresilveira](https://github.com/andresilveira)) - -#### DEPENDENCY UPDATES - -* [`2c2c568`](https://github.com/npm/npm/commit/2c2c56857ff801d5fe1b6d3157870cd16e65891b) - `readable-stream@2.1.4`: Brought up to date with Node 6.1.0's streams implementation. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`d682e64`](https://github.com/npm/npm/commit/d682e6445845b0a2584935d5e2942409c43f6916) - [npm/npm-user-validate#8](https://github.com/npm/npm-user-validate/pull/8) - `npm-user-validate@0.1.4`: Add a maximum length limit for usernames based on - the (arbitrary) limit imposed by the primary npm registry. - ([@aredridel](https://github.com/aredridel)) -* [`448b65b`](https://github.com/npm/npm/commit/448b65b48cda3b782b714057fb4b8311cc1fa36a) - `which@1.2.10`: Remove unused dependency `is-absolute`, bug fixes. - ([@isaacs](https://github.com/isaacs)) -* [`7d15434`](https://github.com/npm/npm/commit/7d15434f0b0af8e70b119835b21968217224664f) - `require-inject@1.4.0`: Add `requireInject.withEmptyCache` and - `requireInject.installGlobally.andClearCache` to support loading modules to be - injected with an empty cache. - ([@iarna](https://github.com/iarna)) -* [`31845c0`](https://github.com/npm/npm/commit/31845c081bc6f3f8a2f3d83a3c792dccffbaa2a8) - `init-package-json@1.9.4`: - Replace use of reserved identifier `package` in, uh, the package. - ([@adius](https://github.com/adius)) -* [`d73ef3e`](https://github.com/npm/npm/commit/d73ef3e6b18d4905de668c5115bc6042905a02d9) - `glob@7.0.4`: Use userland `fs.realpath` implementation to get glob working under Node 6. - ([@isaacs](https://github.com/isaacs)) -* [`b47da85`](https://github.com/npm/npm/commit/b47da85cf83b946f2c8d29ab612c92028f31f6b0) - `inflight@1.0.5`: Correct link to package repository, add `"files"` stanza. - ([@iarna](https://github.com/iarna), [@jamestalmage](https://github.com/jamestalmage)) -* [`04815e4`](https://github.com/npm/npm/commit/04815e436035de785279fd000cdbc821cc1f3447) - [npm/npmlog#32](https://github.com/npm/npmlog/pull/32) - `npmlog@2.0.4`: Add `"files"` stanza to `package.json`. - ([@jamestalmage](https://github.com/jamestalmage)) -* [`9e29ad2`](https://github.com/npm/npm/commit/9e29ad227300bb970e7bcd21029944d4733e40db) - `wrappy@1.0.2`: Add `"files"` stanza to `package.json`. - ([@jamestalmage](https://github.com/jamestalmage)) -* [`44af4d4`](https://github.com/npm/npm/commit/44af4d475ac65bdce6d088173273ce4a4f74a49e) - `abbrev@1.0.9` ([@jorrit](https://github.com/jorrit)) -* [`6c977c0`](https://github.com/npm/npm/commit/6c977c0031d074479a26c7bec6ec83fd6c6526b2) - `npm-registry-client@7.1.2`: Add support for newer versions of `npmlog`. - ([@iarna](https://github.com/iarna)) - -### v2.15.6 (2016-05-12): - -I have a couple of doc fixes and a shrinkwrap fix for you all this week. - -#### PEER DEPENDENCIES AND SHRINKWRAPS - -* [`55c998a`](https://github.com/npm/npm/commit/55c998a098a306b90a84beef163a8890f9a616b1) - [#5135](https://github.com/npm/npm/issues/5135) - Fix a bug where peerDependencies & shrinkwraps didn't play nice together. (Where - the peerDependency resolver would end up installing its dep when it wasn't needed.) - ([@majgis](https://github.com/majgis)) - -#### NPM AND `node-gyp` DOCS IMPROVEMENTS - -* [`1826908`](https://github.com/npm/npm/commit/1826908b991510d8fbc71a0d0f2c01ff24fd83c2) - [#12636](https://github.com/npm/npm/pull/12636) - Improve `npm-scripts` documentation regarding when `node-gyp` is used. - ([@reconbot](https://github.com/reconbot)) -* [`f9ff7f3`](https://github.com/npm/npm/commit/f9ff7f36cc2c2c3fbb4f6eef91491b589d049d5f) - [#12586](https://github.com/npm/npm/pull/12586) - Correct `package.json` documentation as to when `node-gyp rebuild` called. - This now matches https://docs.npmjs.com/misc/scripts#default-values - ([@reconbot](https://github.com/reconbot)) - -### v2.15.5 (2016-05-05): - -This is a minor LTS release, bringing dependencies up to date and updating -our CI matrix to match what we support. - -Some of the dependency updates come out of our getting the development -branch's tests passing on Windows and so bring in fixes for a few Windows -related corner cases. - -#### CI UPDATES - -* [`bb6f0e5`](https://github.com/npm/npm/commit/bb6f0e5c95d4ad186768b1c962dd4c399f90ddb1) - [#12487](https://github.com/npm/npm/pull/12487) - Remove iojs from CI, add Node.js 6, prioritize 4 over 5. - ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES - -* [`f2f8753`](https://github.com/npm/npm/commit/f2f8753c4aef2a604a4bdca2677711c940234b8f) - `which@1.2.8`: - Properly handle relative path executables. - ([@isaacs](https://github.com/isaacs)) -* [`e287ca9`](https://github.com/npm/npm/commit/e287ca99c37680d8e4cfacf4cfebe2da98884865) - `read-package-json@2.0.4`: - Fix Windows issue with ENOTDIR detection. - ([@zkat](https://github.com/zkat)) -* [`1a0ce6c`](https://github.com/npm/npm/commit/1a0ce6cff4c347bad035dc89bba2ceed9dacbf73) - `realize-package-specifier@3.0.3`: - Use npa with windows fix. - Fix relative path resolution when the local file might also be a tag. - ([@zkat](https://github.com/zkat)) - ([@iarna](https://github.com/iarna)) -* [`a475c9a`](https://github.com/npm/npm/commit/a475c9a4e4b36d00080b11f379657ce68185adc6) - `lru-cache@4.0.1`: - Use Symbol if available. - ([@isaacs](https://github.com/isaacs)) -* [`7141e08`](https://github.com/npm/npm/commit/7141e08816c620b1889d7537c30dc5b254de4d1f) - `sorted-object@2.0.0` - ([@iamstarkov](https://github.com/iamstarkov)) -* [`27c6190`](https://github.com/npm/npm/commit/27c6190216cc8a5a280f0efbabb3444581968d40) - `request@2.72.0` - ([@simov](https://github.com/simov)) -* [`ab90daf`](https://github.com/npm/npm/commit/ab90daf70ba51b51f722fb4cd74ac5267621c4b4) - `readable-stream@2.1.2` - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`b1715f8`](https://github.com/npm/npm/commit/b1715f805426403273225bcfa91d1a52d7b56eb8) - `graceful-fs@4.1.4` - ([@isaacs](https://github.com/isaacs)) -* [`ca97de6`](https://github.com/npm/npm/commit/ca97de6c18059ef420235f4706898ad8758904e6) - `block-stream@0.0.9` - ([@isaacs](https://github.com/isaacs)) - -### v2.15.4 (2016-04-21): - -Gosh, it's been a peaceful couple of weeks! - -Overall, the CLI team has been focused on the project to [get the test suite -passing on Windows](https://github.com/npm/npm/pull/11444). Our efforts should -be paying off soon -- there's only a couple of tests left! - -It's very unlikely those particular changes will make their way into our current -`npm@2` LTS release, I think, but it will help `npm@3` a lot, as well as -whatever version makes it into [`node@6`, which will eventually be the next -Node.js LTS](https://github.com/nodejs/node/pull/6155). - -As far as this week goes, we've got a couple of dep updates and doc fixes. -Always happy to see community contributions flying in. 💚 - -#### DEP UPDATE MAGIC - -* [`b178c4a`](https://github.com/npm/npm/commit/b178c4ac9ce91c0a0794526a38b553c759132d18) - `spdx-license-ids@1.2.1`: - Minor project-related tweaks -- no license changes. - ([@shinnn](https://github.com/shinnn)) -* [`1adf179`](https://github.com/npm/npm/commit/1adf179948ab8cb97dfb2f46a61e9f37d944c42a) - `normalize-git-url@3.0.2`: - Fixes `file://` URLs on Windows. Turns out stuff like `file://C:\hello` is - actually fairly weird for a URL (it's not actually a valid URL, but we're just - gonna pretend.😉) - ([@zkat](https://github.com/zkat)) -* [`9cfd56c`](https://github.com/npm/npm/commit/9cfd56cdadc040c0b2fa7654cdb5e7d22dbef7cb) - `fs-vacuum@1.2.9`: - This one goes out to our fans at Big Blue: There was an AIX-specific issue - where `fs.rmDir` was failing with `EEXIST` instead of `ENOTEMPTY` with - non-empty directories. - ([@richardlau](https://github.com/richardlau)) - -#### HOORAY DOC CONTRIBUTIONS - -No seriously, we love these. Keep 'em comin'! - -* [`2afe8bf`](https://github.com/npm/npm/commit/2afe8bf415a159baa181a8102f72c96e1d189bc9) - [#12415](https://github.com/npm/npm/pull/12415) - Clarify that the `--cert` and `--key` options are actual certs and keys, not - paths to files containing them. - ([@rvedotrc](https://github.com/rvedotrc)) -* [`3522560`](https://github.com/npm/npm/commit/3522560b0a4bb6c9717a34f9728f156fd9760cad) - [#12107](https://github.com/npm/npm/pull/12107) - Document `npm login` as an alias to `npm adduser`. People are still surprised - by this so often. - ([@gnerkus](https://github.com/gnerkus)) - -### v2.15.3 (2016-03-31): - -Hiiiiiii!~👋 - -We're really happy to be getting more and more community contributions! Keep it -up! We really appreciate folks trying to help us, and we'll do our best to help -point you in the right direction. Even things like documentation are a huge -help. And remember -- you get socks for it, too!🎁 - -This week is as quiet as usual, aside from fixing a regression to `npm -deprecate` you might want to pay attention to! Other than that, just docs and -deps, as any good LTS release train should be. 🙆 - -#### FIXME - -* [`6e0b66e`](https://github.com/npm/npm/commit/6e0b66e282aa27d1b5371e2babaa859924121730) - [#11884](https://github.com/npm/npm/pull/11884) - Include `node_modules` in the list of files and directories that npm won't - include in packages ordinarily. (Modules listed in `bundledDependencies` and - things that those modules rely on, ARE included of course.) - ([@Jameskmonger](https://github.com/Jameskmonger)) -* [`9896290`](https://github.com/npm/npm/commit/98962909b160364030705575202ad133971033c1) - [#12079](https://github.com/npm/npm/pull/12079) - Back in `npm@2.13.1` we included [a patch that made it so `npm install pkg` - was basically `npm install pkg@latest` instead of - `pkg@*`](https://github.com/npm/npm/pull/9170) This is probably what most - users expected, but it also ended up [breaking `npm - deprecate`](https://github.com/npm/npm/pull/9170) when no version was provided - for a package. In that case, we were using `*` to mean "deprecate all - versions" and relying on the `pkg` -> `pkg@*` conversion. This patch fixes - `npm deprecate pkg` to work as it used to by special casing that particular - command's behavior. - ([@polm](https://github.com/polm)) -* [`6c1628f`](https://github.com/npm/npm/commit/6c1628f62b657db6c116be13849d00933a3388cd) - [#12146](https://github.com/npm/npm/pull/12146) - Adds `make doc-clean` to `prepublish` script, to clear out previously built - docs before publishing a new npm version. - ([@watilde](https://github.com/watilde)) -* [`6d3017e`](https://github.com/npm/npm/commit/6d3017e6eed8a771b395d10130ac1f498e2d3211) - [#12146](https://github.com/npm/npm/pull/12146) - Adds `doc-clean` phony target to `make publish`. - ([@watilde](https://github.com/watilde)) - -#### DOCS - -* [`d43921c`](https://github.com/npm/npm/commit/d43921c546617cdb94bbee444d7d67ef55f38dc5) - [#12147](https://github.com/npm/npm/pull/12147) - Document that the current behavior of `engines` is just to warn if the node - platform is incompatible. - ([@reconbot](https://github.com/reconbot)) -* [`3cfe99e`](https://github.com/npm/npm/commit/3cfe99e3a757c5d8cbb1c2789410e9802563abac) - [#12093](https://github.com/npm/npm/pull/12093) - Update `bugs` url in `package.json` to use the `https` URL for Github. - ([@watilde](https://github.com/watilde)) -* [`ecf865f`](https://github.com/npm/npm/commit/ecf865f4eed1419c75442e0d52bc34ba1647de15) - [#12075](https://github.com/npm/npm/pull/12075) - Add the `--ignore-scripts` flag to the `npm install` docs. - ([@paulirish](https://github.com/paulirish)) -* [`f0e6db3`](https://github.com/npm/npm/commit/f0e6db32827d88680ef2320e60c0863754a4fbc5) - [#12063](https://github.com/npm/npm/pull/12063) - Various minor fixes to the html docs homepage. - ([@watilde](https://github.com/watilde)) - -#### DEPS - -* [`e2660de`](https://github.com/npm/npm/commit/e2660de1c08ed68a1c6fc4ee75d10376595979be) - `npmlog@2.0.3` - ([@iarna](https://github.com/iarna)) - -### v2.15.2 (2016-03-24): - -It's always nice to see new contributors. 💚 - -This week sees another small release, but we're still chugging along on our -[Windows efforts](https://github.com/npm/npm/pull/11444). - -There's also some small process changes to our LTS process relatively recently -that you might wanna know about! 💁 - -For one, the `2.x` branch was removed in favor of just `lts`. If you're making -PRs exclusively against npm's LTS, please use that name from now on. `2.x` was -deleted. - -Also, [@othiym23](https://github.com/othiym23) put some time into [writing down -our LTS process and policy](https://github.com/npm/npm/wiki/LTS). Check it out -and ping us if you have questions or comments about it! - -In general, we're trying to make sure all our policy and such for our -contributors is written down, and we hope it makes it easier in general for -y'all. Forrest is also working on a shiny new Contributor's Guide right now, but -we'll link to that in the (near?) future, when it's ready to roll out. - -#### TESTS - -* [`1d0e468`](https://github.com/npm/npm/commit/1d0e468c06c7b8e2b95b7fe874a3399a16d9db74) - [#11931](https://github.com/npm/npm/pull/11931) - Removes a bunch of old, disabled tests that have just been sitting around, - doing nothing. - ([@othiym23](https://github.com/othiym23)) -* [`7ae8aa1`](https://github.com/npm/npm/commit/7ae8aa1d9dc47761024f6756114205db3fb2c80b) - [#11987](https://github.com/npm/npm/pull/11987) - There was a failure in the `outdated-symlink` test caused by using the default - registry instead of the mock registry tests. - ([@yodeyer](https://github.com/yodeyer)) - -#### DOCS - -* [`b2649fb`](https://github.com/npm/npm/commit/b2649fb360f239aadef1ab51a580cbf4fdf29722) - [#12006](https://github.com/npm/npm/pull/12006) - Access was Team and Team was Access, but someone from the community rolled - around and corrected it for us. Thanks a bunch! - ([@yaelz](https://github.com/yaelz)) - -### v2.15.1 (2016-03-17): - -#### SECURITY ADVISORY: BEARER TOKEN DISCLOSURE - -This release includes [the fix for a -vulnerability](https://github.com/npm/npm/commit/fea8cc92cee02c720b58f95f14d315507ccad401) -that could cause the unintentional leakage of bearer tokens. - -Here are details on this vulnerability and how it affects you. - -##### DETAILS - -Since 2014, npm’s registry has used HTTP bearer tokens to authenticate requests -from the npm’s command-line interface. A design flaw meant that the CLI was -sending these bearer tokens with _every_ request made by logged-in users, -regardless of the destination of their request. (The bearers only should have -been included for requests made against a registry or registries used for the -current install.) - -An attacker could exploit this flaw by setting up an HTTP server that could -collect authentication information, then use this authentication information to -impersonate the users whose tokens they collected. This impersonation would -allow them to do anything the compromised users could do, including publishing -new versions of packages. - -With the fixes we’ve released, the CLI will only send bearer tokens with -requests made against a registry. - -##### THINK YOU'RE AT RISK? REGENERATE YOUR TOKENS - -If you believe that your bearer token may have been leaked, [invalidate your -current npm bearer tokens](https://www.npmjs.com/settings/tokens) and rerun -`npm login` to generate new tokens. Keep in mind that this may cause continuous -integration builds in services like Travis to break, in which case you’ll need -to update the tokens in your CI server’s configuration. - -##### WILL THIS BREAK MY CURRENT SETUP? - -Maybe. - -npm’s CLI team believes that the fix won’t break any existing registry setups. -Due to the large number of registry software suites out in the wild, though, -it’s possible our change will be breaking in some cases. - -If so, please [file an issue](https://github.com/npm/npm/issues/new) describing -the software you’re using and how it broke. Our team will work with you to -mitigate the breakage. - -##### CREDIT & THANKS - -Thanks to Mitar, Will White & the team at Mapbox, Max Motovilov, and James -Taylor for reporting this vulnerability to npm. - -### BACK TO YOUR REGULARLY SCHEDULED PROGRAMMING - -Aside from that, it's another one of those releases again! Docs and tests, it -turns out, have a pretty easy time getting into LTS releases, and boring is -exactly how LTS should be. 💁 - -#### DOCS - -* [`981c89c`](https://github.com/npm/npm/commit/981c89c8e398ca22ab6bf466123b25728ef6f543) - [#11820](https://github.com/npm/npm/pull/11820) - The basic explanation for how `npm link` works was a bit confusing, and - somewhat incorrect. It should be clearer now. - ([@rhgb](https://github.com/rhgb)) -* [`35b2b45`](https://github.com/npm/npm/commit/35b2b45f181dcbfb297f53b577dc1f26efcf3aba) - [#11787](https://github.com/npm/npm/pull/11787) - The `verison` alias for `npm version` no longer shows up in the command list - when you do `npm -h`. - ([@doug-wade](https://github.com/doug-wade)) -* [`1c9d00f`](https://github.com/npm/npm/commit/1c9d00f788298a81a8a7293d7dcf430f01bdd7fd) - [#11786](https://github.com/npm/npm/pull/11786) - Add a comment to the `npm-scope.md` docs about `npm@>=2` being required in - order to use scoped packaged. - ([@doug-wade](https://github.com/doug-wade)) -* [`7d64fb1`](https://github.com/npm/npm/commit/7d64fb1452d360aa736f31c85d6776ce570b2365) - [#11762](https://github.com/npm/npm/pull/11762) - Roll back patch that previously advised people to use `--depth Infinity` - instead of `--depth 9999`. Just keep using `--depth 9999`. - ([@GriffinSchneider](https://github.com/GriffinSchneider)) - -#### TESTS - -* [`98a9ee4`](https://github.com/npm/npm/commit/98a9ee4773f83994b8eb63c0ff75a9283408ba1a) - [#11912](https://github.com/npm/npm/pull/11912) - Did you know npm can install itself? `npm install -g npm` is the way to - upgrade! Turns out that one of the tests that verified this functionality got - rewritten as part of our recent push for better tests, and in the process - omitted a detail about *how* the test ran. We're testing that corner case - again, now, by moving the install folder to `/tmp`, where the original legacy - test ran. - ([@iarna](https://github.com/iarna)) - -### v2.15.0 (2016-03-10): - -#### WHY IS THIS SEMVER-MINOR I THOUGHT THIS WAS LTS - -A brief note about LTS this week! - -npm, as you may know if you're using this `2.x` branch, has an LTS process for -releases. We also try and play nice with [Node.js' own LTS release -process](https://github.com/nodejs/LTS#lts-plan). That means we generally try to -avoid things like minor version bumps on our `2.x` branch (which is also tagged -`lts` in the `dist-tag`s). - -That said, we had a minor-bump update recently for `npm@3.8.0` which added a -`maxsockets` option to allow users to configure the number of concurrent sockets -that npm would keep open at a time -- a setting that has the potential to help a -bunch for people with fussy routers or internet connections that aren't very -happy with Node.js applications' usual concurrency storm. This change was done -to `npm-registry-client`, which we don't have a parallel LTS-tracking branch -for. - -After talking it over, we ended up deciding that this was a reasonable enough -addition to LTS, even though it's *technically* a `semver-minor` bump, taking -into account both its potential for bugfixing (specially on `2.x`!) and the -general hassle it would be to maintain another branch for `npm-registry-client`. - - -* [`6dd61e7`](https://github.com/npm/npm/commit/6dd61e781c145480dc255a3e6a748729868443fd) - Expose `maxsockets` config setting from new `npm-registry-client`. - ([@misterbyrne](https://github.com/misterbyrne)) -* [`8a021c3`](https://github.com/npm/npm/commit/8a021c35184e665bd1f3f70ae2f478af812ab614) - `npm-registry-client@7.1.0`: - Adds support for configuring the max number of concurrent sockets, defaulting - to `50`. - ([@iarna](https://github.com/iarna)) - -#### DOC PATCH IS HERE TOO - -* [`0ae9f74`](https://github.com/npm/npm/commit/0ae9f740001a1bdf5920bc464cf9e284d5d139f0) - [#11748](https://github.com/npm/npm/pull/11748) - Add command aliases as a separate section in documentation for npm - subcommands. - ([@watilde](https://github.com/watilde)) - -#### DEP UPDATES - -* [`bfc3888`](https://github.com/npm/npm/commit/bfc38887f832f701c16b7ee410c4e0220a90399f) - `strip-ansi@3.0.1` - ([@jbnicolai](https://github.com/jbnicolai)) -* [`d5f4d51`](https://github.com/npm/npm/commit/d5f4d51a1b7ea78d7431c7ed4fed30200b2622f8) - `node-gyp@3.3.1`: Fixes Android generator - ([@bnoordhuis](https://github.com/bnoordhuis)) -* [`4119df8`](https://github.com/npm/npm/commit/4119df8aecd2ae57b0492ad8c9a480d900833008) - `glob@7.0.3`: Some path-related fixes for Windows. - ([@isaacs](https://github.com/isaacs)) - -### v2.14.22 (2016-03-03): - -This week is all documentation improvements. In case you hadn't noticed, we -*love* doc patches. We love them so much, we give socks away if you submit -documentation PRs! - -These folks are all getting socks if they ask for them. The socks are -super-sweet. Do you have yours yet? 👣 - -* [`3f3c7d0`](https://github.com/npm/npm/commit/3f3c7d080f052a5db91ff6091f8b1b13f26b53d6) - [#11441](https://github.com/npm/npm/pull/11441) - Add a link to the [Contribution - Guidelines](https://github.com/npm/npm/wiki/Contributing-Guidelines) to the - main npm docs. - ([@watilde](https://github.com/watilde)) -* [`9f87bb1`](https://github.com/npm/npm/commit/9f87bb1934acb33b678c17b7827165b17c071a82) - [#11441](https://github.com/npm/npm/pull/11441) - Remove Google Group email from npm docs about contributing. - ([@watilde](https://github.com/watilde)) -* [`93eaab3`](https://github.com/npm/npm/commit/93eaab3ee5ad16c7d90d1a4b38a95403fcf3f0f6) - [#11474](https://github.com/npm/npm/pull/11474) - Fix an invalid JSON error overlooked in - [#11196](https://github.com/npm/npm/pull/11196). - ([@robludwig](https://github.com/robludwig)) -* [`a407ca2`](https://github.com/npm/npm/commit/a407ca2bcf6a05117e55cf2ab69376e09094995e) - [#11483](https://github.com/npm/npm/pull/11483) - Add more details and an example to the documentation for bundledDependencies. - ([@gnerkus](https://github.com/gnerkus)) -* [`2c851a2`](https://github.com/npm/npm/commit/2c851a231afd874baa77c42ea5ba539c454ac79c) - [#11490](https://github.com/npm/npm/pull/11490) - Document the `--registry` flag for `npm search`. - ([@plumlee](https://github.com/plumlee)) - -### v2.14.21 (2016-02-25): - -Good news, everyone! There's a new LTS release with a few shinies here and there! - -#### USE THIS ONE INSTEAD - -We had some cases where the versions of npm and node used in some scripting situations were different than the ideal, or what folks actually expected. These should be particularly helpful to our Windows friends! <3 - -* [`02813c5`](https://github.com/npm/npm/commit/02813c55782a9def23f7f1e614edc38c6c88aed3) [#9253](https://github.com/npm/npm/issues/9253) Fix a bug where, when running lifecycle scripts, if the Node.js binary you ran `npm` with wasn't in your `PATH`, `npm` wouldn't use it to run your scripts. ([@segrey](https://github.com/segrey) and [@narqo](https://github.com/narqo)) -* [`a985dd5`](https://github.com/npm/npm/commit/a985dd50e06ee51ba5544577f977c7440c227ba2) [#11526](https://github.com/npm/npm/pull/11526) Prefer locally installed npm in Git Bash -- previous behavior was to use the global one. This was done previously for other shells, but not for Git Bash. ([@destroyerofbuilds](https://github.com/destroyerofbuilds)) - -#### SOCKS FOR THE SOCK GOD - -* [`f961092`](https://github.com/npm/npm/commit/f9610920079d8b88ae464b30007a92c594bd85a8) - [#11636.](https://github.com/npm/npm/issues/11636.) - Document the `--save-bundle` option for `npm install`. - ([@datyayu](https://github.com/datyayu)) -* [`7c908b6`](https://github.com/npm/npm/commit/7c908b618f7123f0a3b860c71eb779e33df35964) - [#11644](https://github.com/npm/npm/pull/11644) - Add documentation for the `test` directory for packages. - ([@lewiscowper](https://github.com/lewiscowper)) - -#### INTERNAL TEST IMPROVEMENTS - -The npm CLI team's time recently has been sunk into npm's many years of tech debt. Specifically, we've been working on improving the test suite. This isn't user visible, but in future should mean a more stable, easier to contribute to npm. Ordinarily we don't report these kinds of changes in the change log, but I thought I might share this week as this chunk is bigger than usual. - -These patches were previously released for `npm@3`, and then ported back to `npm@2` LTS. - -* [`437c537`](https://github.com/npm/npm/commit/437c537e2be5923c6d2c2753154564ba13db8fd9) [#11613](https://github.com/npm/npm/pull/11613) Fix up one of the tests after rebasing the legacy test rewrite to `npm@2`. ([@zkat](https://github.com/zkat)) -* [`55abd0c`](https://github.com/npm/npm/commit/55abd0cc20e87a144d33ce2d459f65e7506da576) [#11613](https://github.com/npm/npm/pull/11613) Test that the `package.json` `files` section and `.npmignore` do what they're supposed to. ([@zkat](https://github.com/zkat)) -* [`a2b99b6`](https://github.com/npm/npm/commit/a2b99b6273ada14b2121ebc0acb7933e630edd9d) [#11613](https://github.com/npm/npm/pull/11613) Test that npm's distribution binary is complete and can be installed and used. ([@iarna](https://github.com/iarna)) -* [`8a8c36c`](https://github.com/npm/npm/commit/8a8c36ce51166006022e5c5d4f8655bbc458d651) [#11613](https://github.com/npm/npm/pull/11613) Test that environment variables are properly passed into scripts. - ([@iarna](https://github.com/zkat)) -* [`a95b550`](https://github.com/npm/npm/commit/a95b5507616bd51e83d7eab5f2337b1aff6480b1) [#11613](https://github.com/npm/npm/pull/11613) Test that we don't leak auth info into the environment. ([@iarna](https://github.com/iarna)) -* [`a1c1c52`](https://github.com/npm/npm/commit/a1c1c52efeab24f6dba154d054f85d9efc833486) [#11613](https://github.com/npm/npm/pull/11613) Remove all the relatively cryptic legacy tests and creates new tap tests that check the same functionality. The *legacy* tests were tests that were originally a shell script that was ported to javascript early in `npm`'s history. ([@iarna](https:\\github.com/iarna) and [@zkat](https://github.com/zkat)) -* [`9d89581`](https://github.com/npm/npm/commit/9d895811d3ee70c2e672f3d8fa06574495b5b488) [#11613](https://github.com/npm/npm/pull/11613) `tacks@1.0.9`: Add a package that provides a tool to generate fixtures from folders and, relatedly, a module that an create and tear down filesystem fixtures easily. ([@iarna](https://github.com/iarna)) - -### v2.14.20 (2016-02-18): - -Hope y'all are having a nice week! As usual, it's a fairly limited release. The -most notable thing is some dependency updates that might help the Node.js CI -setup for Windows run a little better, even if we have some work to do on that -path length things, still. - -#### WHITTLING AWAY AT PATH LENGTHS - -So for all of you who don't know -- Node.js does, in fact, support long Windows -paths. Unfortunately, depending on the tool and the Windows version, a lot of -external tooling does not. This means, for example, that some (all?) versions of -Windows Explorer *can literally never delete npm from their system entirely -because of deeply-nested npm dependencies*. Which is pretty gnarly. - -Incidentally, if you run into that in particularly, you can use -[rimraf](npm.im/rimraf) to remove such files 💁. - -The latest victim of this issue was the Node.js CI setup for testing on Windows, -which uses some tooling or another that croaks on the usual path length limit -for that OS: 255 characters. - -This issue, of course, is largely not a problem as of `npm@3`, with its flat -trees, but it still occasionally and viciously bites LTS. - -We've taken another baby step towards alleviating this in this release by -updating a couple of dependencies that were preventing `npmlog` from deduping, -and then doing a dedupe on that and `gauge`. Hopefully it helps. - -* [`4199551`](https://github.com/npm/npm/commit/41995517e617674710748ab6d262670c96124393) - [#11528](https://github.com/npm/npm/pull/11528) - `npm-install-checks@1.0.7`: Just updates the version of npmlog so we can - dedupe it better. - ([@zkat](https://github.com/zkat)) -* [`14d72c7`](https://github.com/npm/npm/commit/14d72c756b89e2d167eb52c1849263dbddcb9f35) - [#11552](https://github.com/npm/npm/pull/11552) - [#11528](https://github.com/npm/npm/pull/11528) - `node-gyp@3.3.0`: AIX support, new `gyp`, update `npmlog` (for the dedupe), - adds `--cafile` command line option, and allows configuration of Node.js and - io.js mirrors. - ([@rvagg](https://github.com/rvagg)) -* [`0453cb9`](https://github.com/npm/npm/commit/0453cb94b33520eb723b7072cd2654b1d0142533) - [#11528](https://github.com/npm/npm/pull/11528) - Do a `dedupe` on `gauge` to flatten our dependencies a bit more. - ([@zkat](https://github.com/zkat)) - -#### OTHER DEP STUFF - -* [`686c0b3`](https://github.com/npm/npm/commit/686c0b37ec3a7b65f9b3849e1099805e5221c408) - `rimraf@2.5.2`: Just updates to glob@7. - ([@isaacs](https://github.com/isaacs)) - -#### @wyze, DOCUMENTATION HERO OF THE PEOPLE, GETS THEIR OWN HEADER - -* [`7232948`](https://github.com/npm/npm/commit/72329484c775376cb40d5b348f453eaaf2f0b821) - [#11416](https://github.com/npm/npm/pull/11416) - Logout docs were using a section copy-pasted from the adduser docs. - ([@wyze](https://github.com/wyze)) -* [`922b33a`](https://github.com/npm/npm/commit/922b33aba4362e1e90f42e9348f061a1cc73eafb) - [#11414](https://github.com/npm/npm/pull/11414) - Add colon for consistency. - ([@wyze](https://github.com/wyze)) - -### v2.14.19 (2016-02-11): - -Really tiny micro-release this week! The main thing to note is a dependency -update that means we no longer have `graceful-fs@3` in our dependency tree. This -has some implications for being able to run on future Node.js releases, so -better to get this out the door. 😁 - -#### DEPS - -* [`a556e0f`](https://github.com/npm/npm/commit/a556e0f9dcb5d7b44224ba9c16c9d0dc6c8d2532) - `cmd-shim@2.0.2`: Final straggler using `graceful-fs@<4`. - ([@ForbesLindesay](https://github.com/ForbesLindesay)) - -#### DOCS - -* [`69a2d59`](https://github.com/npm/npm/commit/69a2d599bf0cba674ee268483e9bd5c14333b89f) - [#11391](https://github.com/npm/npm/pull/11391) - Fixed versions of `shrinkwrap.json` in examples in documentation for `npm - shrinkwrap`, which did not quite match up. - ([@xcatliu](https://github.com/xcatliu)) - -### v2.14.18 (2016-02-04): - -Clearly our docs are perfect after all those wonderful PRs, 'cause this week's -gonna be all about dependency updates. Note: There is a small security-related -fix included here! - -#### SECURITY-RELATED DEPENDENCY UPDATE - -* [`5c095ef`](https://github.com/npm/npm/commit/5c095eff8dc006980d4d083f2007e4dacff23be3) - [#11341](https://github.com/npm/npm/pull/11341) - `request@2.69.0`: Includes security-related dependency updates involving - `hawk` and `is-my-json-valid` - ([@remy](https://github.com/remy) and [@simov](https://github.com/simov)) - -#### OTHER DEPENDENCY UPDATES - -* [`f9c2668`](https://github.com/npm/npm/commit/f9c2668ca3e6e2602d91250ce61280e5e12d0a00) - `which@1.2.4` - ([@isaacs](https://github.com/isaacs)) -* [`2907c43`](https://github.com/npm/npm/commit/2907c43ad4ef87e5f730c2576f680d6837fcbad0) - `spdx-license-ids@1.2.0` - ([@shinnn](https://github.com/shinnn)) -* [`7734069`](https://github.com/npm/npm/commit/773406960bf7f4a87b2ecb6ebf593c62d0e9f95d) - `rimraf@2.5.1` - ([@isaacs](https://github.com/isaacs)) -* [`f4b39a7`](https://github.com/npm/npm/commit/f4b39a7dd5e1335d92aa22c46d99abb33f271b8b) - `retry@0.9.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`ded1e7a`](https://github.com/npm/npm/commit/ded1e7a1c9c7bec29bb7c30a8f85546670e75b56) - Nest `retry@0.8.0` inside `npm-registry-client` to prevent invalid - dependency issue until the latter gets a dependency update. - ([@zkat](https://github.com/zkat)) -* [`ab9f867`](https://github.com/npm/npm/commit/ab9f8679f9687f91ad03adaab6211a897aeebbae) - `read-package-json@2.0.3` - ([@iarna](https://github.com/iarna)) -* [`b638c41`](https://github.com/npm/npm/commit/b638c41607bb936b9eaaceba2aeeda1d34e3a9b2) - `npmlog@2.0.2` - ([@iarna](https://github.com/iarna)) -* [`49f34af`](https://github.com/npm/npm/commit/49f34af463a674359269025d8438feb6a7c69960) - `init-package-json@1.9.3` - ([@iarna](https://github.com/iarna)) -* [`2305dab`](https://github.com/npm/npm/commit/2305dab4e7bff09bb7686cec653cf1e663dbf15d) - `graceful-fs@4.1.3`: Fixed `.close()` not being patched. - ([@isaacs](https://github.com/isaacs)) -* [`18496d9`](https://github.com/npm/npm/commit/18496d9a0fff94e3652655998e8333056aa52b15) - `fs-write-stream-atomic@1.0.8` - ([@iarna](https://github.com/iarna)) -* [`6637bc7`](https://github.com/npm/npm/commit/6637bc7a0e194d82554cd7c91e1794018fef5943) - `config-chain@1.1.10` - ([@dominictarr](https://github.com/dominictarr)) -* [`4222bad`](https://github.com/npm/npm/commit/4222badffed9e9edacea6a8a96a99a164d376158) - `columnify@1.5.4` - ([@timoxley](https://github.com/timoxley)) -* [`df9016f`](https://github.com/npm/npm/commit/df9016f327a2a9ce492ebc75b882b03069438e13) - `ansi@0.3.1`: Added a license file. - ([@TooTallNate](https://github.com/TooTallNate)) - -### v2.14.17 (2016-01-28): - -Another week, another small LTS release! - -#### BETTER ERROR REPORTING YAY - -So as it turns out, when stuff goes wrong, it's actually nice to give people a -better clue rather than just say "oh well 😏". - -* [`5b8ccb9`](https://github.com/npm/npm/commit/5b8ccb91cf11b4edb463609cd4ed1dee84ed4db0) - [#11289](https://github.com/npm/npm/pull/11289) - There is an obscure feature that lets you monkey-patch npm when it starts up. - If the module being required with this feature failed, it would previous just - make npm error out– this reduces that to a warning. - ([@evanlucas](https://github.com/evanlucas)) -* [`556e42a`](https://github.com/npm/npm/commit/556e42ac6bab078722ddc1dc6cce4428d001133b) - [#11300](https://github.com/npm/npm/pull/11300) - Report symlinked packages as 'linked' in the output for `npm outdated`. - ([@halhenke](https://github.com/halhenke)) -* [`3842317`](https://github.com/npm/npm/commit/3842317583e0ea2eca78e39aa03f5bc06ba21de7) - [#11290](https://github.com/npm/npm/pull/11290) - Suppress warnings about pre-release node versions. This should get node's CI - passing on non-Windows platforms without needing to modify the node version to - get rid of the pre-release suffix. - ([@iarna](https://github.com/iarna)) - -#### EVERYONE WANTS THOSE NPM SOCKS, GEEZE - -Did you know that you can get npm socks for contributing to our docs? I bet -these people do, and now so do you! - -* [`dcde451`](https://github.com/npm/npm/commit/dcde451cb85a6ca08acc6ef45782c652f1d8fc89) - [#11232](https://github.com/npm/npm/pull/11232) - Update automatically included/excluded packages in `package.json`. - ([@jscissr](https://github.com/jscissr)) -* [`e3f8d5b`](https://github.com/npm/npm/commit/e3f8d5be5ac5ec1d72db42f7abf50cc4a8c5935c) - [#11273](https://github.com/npm/npm/pull/11273) - Add an example for `npm view versions`. - ([@vedatmahir](https://github.com/vedatmahir)) -* [`6a06ef2`](https://github.com/npm/npm/commit/6a06ef2252748089f0013de951f2d06160b90306) - [#11272](https://github.com/npm/npm/pull/11272) - Fix a typo in `npm-update.md`. - ([@jonathanp](https://github.com/jonathanp)) -* [`2515ff1`](https://github.com/npm/npm/commit/2515ff1de28f0b261fb25c79a66bd762a65961c4) - [#11215](https://github.com/npm/npm/pull/11215) - Correct small thinko in docs for SPDX expressions. - ([@kemitchell](https://github.com/kemitchell)) -* [`70f897b`](https://github.com/npm/npm/commit/70f897b03da9a5d5d4fd34614e9ee40e6f9e9653) - [#11196](https://github.com/npm/npm/pull/11196) - Make JSON snippets valid JSON in `npm update` docs. - ([@s100](https://github.com/s100)) - -### v2.14.16 (2016-01-21): - -Good to see you all again! It's been a while since we had an LTS release, and -the team continues to work hard to both get the issue tracker under control, and -get our test suite to be awesome and reliable. - -This is also the first LTS release of this year. - -We're gonna have an interesting time -- most of our focus this year will be -around stability and maintainability of the CLI, so you might actually end up -seeing a number of updates even over here, just for the sake of making sure -we're stable, that bugs get fixed, and tests have proper coverage. - -What better way to start this effort, then, than getting Travis tests green, fix -a few things here and there, and tweak a bunch of documentation? 😁 - -#### FIX ALL THE BUGS AND TWEAK ALL THE THINGS - -* [`24b13fb`](https://github.com/npm/npm/commit/24b13fbc57d34db1d5b0a37bcca122c00deba978) - [#11158](https://github.com/npm/npm/pull/11158) - Fix custom node-gyp env var quoting on Windows. - ([@orangemocha](https://github.com/orangemocha)) -* [`e2503f2`](https://github.com/npm/npm/commit/e2503f2be40157b05a9c500ec3b5d16090ffee50) - [#11142](https://github.com/npm/npm/pull/11142) - Fix race condition with `correctMkdir` in the cache directory. - ([@Jimbly](https://github.com/Jimbly)) - -* [`5c0e4c4`](https://github.com/npm/npm/commit/5c0e4c45a29d774ab729e86044377d4e5e424252) - [#10940](https://github.com/npm/npm/pull/10940) - Ignore failures replacing `package.json`. writeFileAtomic is not atomic in - Windows, it fails if the file is being accessed concurrently. - ([@orangemocha](https://github.com/orangemocha)) -* [`2c44d8d`](https://github.com/npm/npm/commit/2c44d8dc8c267d5e054d0175ce2f4750f0986463) - [#10903](https://github.com/npm/npm/pull/10903) - Add tests for `npm adduser --scope`. - ([@ekmartin](https://github.com/ekmartin)) -* [`4cb25d0`](https://github.com/npm/npm/commit/4cb25d0fed5c7792dfd1aec891380ecc1f8a5761) - [#10903](https://github.com/npm/npm/pull/10903) - Add a message informing users when they have been successfully logged in. - ([@ekmartin](https://github.com/ekmartin)) -* [`fe3ec6d`](https://github.com/npm/npm/commit/fe3ec6d6658262054c0c19c55373c21e84ab9f17) - [#10628](https://github.com/npm/npm/pull/10628) - Tell users how to open an issue with a package that has errored. - ([@trodrigues](https://github.com/trodrigues)) - -#### DOCS DOCS DOCS - -We got a TON of lovely documentation patches, too! Thanks all for submitting! - -* [`22482a1`](https://github.com/npm/npm/commit/22482a1f22079d72c3f8ca55c2f0c153bdd024c0) - [#11188](https://github.com/npm/npm/pull/11188) - Briefly explain what's included when you publish. - ([@beaugunderson](https://github.com/beaugunderson)) -* [`fa47724`](https://github.com/npm/npm/commit/fa4772438df0c66a19309dd1c1a3ce43cbee5461) - [#11150](https://github.com/npm/npm/pull/11150) - Advise use of `--depth Infinity` instead of `--depth 9999` in `npm update`. - ([@halhenke](https://github.com/halhenke)) -* [`248ddfe`](https://github.com/npm/npm/commit/248ddfe8f7ddd3318e14bf61de41cab4a638c8a3) - [#11130](https://github.com/npm/npm/pull/11130) - Nuke "using npm programmatically" section from README. The programmatic npm - API is unsupported, and is not guaranteed not to break in non-major versions. - Removing this section so newcomers aren't encouraged to discover or use it. - ([@ljharb](https://github.com/ljharb)) -* [`ae9c452`](https://github.com/npm/npm/commit/ae9c4521222d60ab4a69c19fee5e361c62f41fae) - [#11128](https://github.com/npm/npm/pull/11128) - Add link to local paths section indocs for `package.json`. - ([@orangejulius](https://github.com/orangejulius)) -* [`663a8c6`](https://github.com/npm/npm/commit/663a8c6b4b1647f9b86c15ef32e30023edc8c060) - [#11044](https://github.com/npm/npm/pull/11044) - Update default value documentation for the color option in npm's config. - ([@scottaddie](https://github.com/scottaddie)) -* [`5c1dda0`](https://github.com/npm/npm/commit/5c1dda0d3a18b2954872dba33fbc696ff0700ffe) - [#11037](https://github.com/npm/npm/pull/11037) - Correct the name property max length constraint verbiage. - ([@scottaddie](https://github.com/scottaddie)) -* [`8288365`](https://github.com/npm/npm/commit/8288365d08e97fa3a5b0d31703c015a8be49e07f) - [#10990](https://github.com/npm/npm/pull/10990) - Update folder docs to reflect that process.installPrefix was removed as of - 0.8.x. - ([@jeffmcmahan](https://github.com/jeffmcmahan)) -* [`61d63fa`](https://github.com/npm/npm/commit/61d63fa22c4f09742180c2de460a4ffb6c32738e) - [#10790](https://github.com/npm/npm/pull/10790) - Clarify that `npm install foo` is the same as `npm install foo@latest` now. - ([@cvrebert](https://github.com/cvrebert)) -* [`442c920`](https://github.com/npm/npm/commit/442c9207f375354c91d36df8711ba2d33e1c97f3) - [#10789](https://github.com/npm/npm/pull/10789) - Link over to `npm-dist-tag(1)` in `npm install` docs when they talk about the - `pkg@` syntax. - ([@cvrebert](https://github.com/cvrebert)) -* [`dca7a5e`](https://github.com/npm/npm/commit/dca7a5e2be3bfa306a870a123707d35c732406c0) - [#10788](https://github.com/npm/npm/pull/10788) - Link to tag docs in docs for `npm publish --tag`. - ([@cvrebert](https://github.com/cvrebert)) -* [`a72904e`](https://github.com/npm/npm/commit/a72904e8d4ab1d43ae8150fbe3f6468b0cbb1efd) - [#10787](https://github.com/npm/npm/pull/10787) - Explain why the `latest` tag matters. - ([@cvrebert](https://github.com/cvrebert)) -* [`9d0697a`](https://github.com/npm/npm/commit/9d0697a534046df7efda32170014041bbc1f4e7d) - [#10785](https://github.com/npm/npm/pull/10785) - Replace some quite marks in `npm dist-tag` docs for the sake of consistency. - ([@cvrebert](https://github.com/cvrebert)) - -#### I REALLY LIKE GREEN. CAN YOU TELL? - -So Travis is all green now on `npm@2`, thanks to the removal of nock and a few -other test suite tweaks. This is a fantastic step towards making sure we can all -have confidence in our test suite! 🎉 - -* [`64995be`](https://github.com/npm/npm/commit/64995be6d874356b15c136f9867302d805dfe1e9) [`75ab216`](https://github.com/npm/npm/commit/75ab2164cf79e28ac7f7ebe714f3c5aee99c6626) [`a9f6fe9`](https://github.com/npm/npm/commit/a9f6fe9dc558f17c4a7b9eb83329ac080f7df4b7) [`649c193`](https://github.com/npm/npm/commit/649c193adadf714c2819837f9372a29d724a5ec0) [`94cb05e`](https://github.com/npm/npm/commit/94cb05eaa9e5ad6675cf15c4ac0a44fbdde05900) [`6541690`](https://github.com/npm/npm/commit/65416907008061ac5a5f66b1630a57776803b526) [`255be6f`](https://github.com/npm/npm/commit/255be6f5bca9e3d216f3a5cbdf6714c6c9fcf132) [`9e84fa4`](https://github.com/npm/npm/commit/9e84fa43c49d04cf86ca1678e2a61412f5559cb9) [`8a587b0`](https://github.com/npm/npm/commit/8a587b0c1696ae7302891fa6355fc3e8670e00d3) [`bf812a5`](https://github.com/npm/npm/commit/bf812a54e497a573493346399798aa0b9373ac24) - [#10903](https://github.com/npm/npm/pull/10903) - Get rid of nock from tests, and get Travis green. - ([@zkat](https://github.com/zkat) and [@iarna](https://github.com/iarna)) -* [`70a5310`](https://github.com/npm/npm/commit/70a5310712c6666e753ca8f3bfff4a780ec6292d) - `npm-registry-couchapp@2.6.12`: - Better 0.8 compatibility, and ability to run in travis docker stuff. This - means the test suite should run a lot faster, too! - ([@iarna](https://github.com/iarna)) -* [`28fae39`](https://github.com/npm/npm/commit/28fae399212eda5554e6c0ffd8c9591144ab7b9d) - Get rid of sudo, for Travis! - ([@zkat](https://github.com/zkat)) - -### v2.14.15 (2015-12-10): - -Did you know that Bob Ross reached the rank of master sergeant in the US Air -Force before becoming perhaps the most soothing painter of all time? - -#### TWO HAPPY LITTLE BUG FIXES - -* [`f482664`](https://github.com/npm/npm/commit/f4826645dc6b5c0f05c5f9187efb28c1a293554f) - [#10505](https://github.com/npm/npm/issues/10505) `npm ls --json --depth=0` - now respects the depth parameter, when it is zero and when it is not zero. - ([@MarkReeder](https://github.com/MarkReeder)) -* [`529fa1f`](https://github.com/npm/npm/commit/529fa1ff2c6432a773af99a1c5209c0865f7a19c) - [#9099](https://github.com/npm/npm/issues/9099) I had always thought you - could run `npm version` from subdirectories in your project, which is great, - because now you can. I guess I was just ahead of my time. - ([@ekmartin](https://github.com/ekmartin)) - -#### NOW PAINT IN SOME NICE DOCS CHANGES - -* [`1fc7f2b`](https://github.com/npm/npm/commit/1fc7f2b523ea760e08adb9b861b28e3ba450e565) - [#10546](https://github.com/npm/npm/issues/10546) Goodbye, FAQ! You were - cheeky and fun until you weren't! Don't worry: npm still loves everyone, - especially you! ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`7fe6950`](https://github.com/npm/npm/commit/7fe6950b44d241bb4d90857a44d89d750af1e2b3) - [#10570](https://github.com/npm/npm/issues/10570) Update documentation URLs - to be HTTPS everywhere sensible. No HTTP shall be spared! - ([@rsp](https://github.com/rsp)) -* [`96ebb90`](https://github.com/npm/npm/commit/96ebb902439e4f6f37f8beffb589769146fecf24) - [#10650](https://github.com/npm/npm/issues/10650) Correctly note that there - are two lifecycle scripts run by an install phase in an example, instead of - three. ([@eymengunay](https://github.com/eymengunay)) -* [`5196893`](https://github.com/npm/npm/commit/5196893a7496f68a514b83641ff6b72f14d664dd) - [#10687](https://github.com/npm/npm/issues/10687) `npm outdated`'s output can - be a little puzzling sometimes. I've attempted to make it clearer, with some - examples, of what's going on with "wanted" and "latest" in more cases. - ([@othiym23](https://github.com/othiym23)) -* [`8e6712d`](https://github.com/npm/npm/commit/8e6712d4ee128858cab36c77723e35bddbb977ba) - [#10700](https://github.com/npm/npm/issues/10700) Hey, do you remember when - `search.npmjs.org` was a thing? I think I do? The last time I used it was in - like 2012, and it's gone now, so remove it from the docs. - ([@gagern](https://github.com/gagern)) -* [`27d2612`](https://github.com/npm/npm/commit/27d2612b3f5aa88b12c943d04e162ce4c3a350ae) - `semver@5.1.0`: Include BNF for SemVer expression grammar (which is also now - included in `npm help semver`). ([@isaacs](https://github.com/isaacs)) - -#### LAND YOUR DEPENDENCY UPGRADES IN PAIRS SO EVERYONE HAS A FRIEND - -* [`fc6c3c5`](https://github.com/npm/npm/commit/fc6c3c53a31e9e11c2616fcd378202e5b80bf286) - `request@2.67.0` ([@simov](https://github.com/simov)) -* [`07013fd`](https://github.com/npm/npm/commit/07013fd0fd55a2eb31fb9334631ee5d0dd5c41bb) - [isaacs/rimraf#89](https://github.com/isaacs/rimraf/pull/89) `rimraf@2.4.4` - ([@zerok](https://github.com/zerok)) -* [`bc149be`](https://github.com/npm/npm/commit/bc149bef871f0f00639509898cece531af3aa8b3) - [isaacs/once#7](https://github.com/isaacs/once/pull/7) `once@1.3.3` - ([@floatdrop](https://github.com/floatdrop)) -* [`ac598d3`](https://github.com/npm/npm/commit/ac598d36e1ad207bc0d8a7eadfd84b26146aec1f) - `lru-cache@3.2.0` ([@isaacs](https://github.com/isaacs)) -* [`1b915ce`](https://github.com/npm/npm/commit/1b915ce1e0787ccb6d8aa235d002d66565f2175d) - `npm-registry-client@7.0.9` ([@othiym23](https://github.com/othiym23)) -* [`df7dd78`](https://github.com/npm/npm/commit/df7dd78b8fe3cc58202996fa6c994fc55419bfa5) - `tap@2.3.1` ([@isaacs](https://github.com/isaacs)) - -### v2.14.14 (2015-12-03): - -#### FIX URL IN LICENSE - -The license incorrectly identified the registry URL as `registry.npmjs.com` and -this has been corrected to `registry.npmjs.org`. - -* [`6051a69`](https://github.com/npm/npm/commit/6051a69b1adc80f5f200077067e831643f655bd4) - [#10685](https://github.com/npm/npm/pull/10685) - Fix npm public registry URL in notices. - ([@kemitchell](https://github.com/kemitchell)) - -#### NO MORE MD5 - -We updated modules that had been using MD5 for non-security purposes. While -this is perfectly safe, if you compile Node in FIPS-compliance mode it will -explode if you try to use MD5. We've replaced MD5 with Murmur, which conveys -our intent better and is faster to boot. - -* [`30b5994`](https://github.com/npm/npm/commit/30b599496a9762482e1cef945a378e3a534fd366) - [#10629](https://github.com/npm/npm/issues/10629) - `write-file-atomic@1.1.4` - ([@othiym23](https://github.com/othiym23)) -* [`68c63ff`](https://github.com/npm/npm/commit/68c63ff1279d3d5ea7b2c970ab5562a8e0536f27) - [#10629](https://github.com/npm/npm/issues/10629) - `fs-write-stream-atomic@1.0.5` - ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES - -* [`e48e5a9`](https://github.com/npm/npm/commit/e48e5a90b4dcf76124b7e9ea3b295c1383e7f0c8) - [nodejs/node-gyp#831](https://github.com/nodejs/node-gyp/pull/831) - `node-gyp@3.2.1`: Improved \*BSD support. - ([@bnoordhuis](https://github.com/bnoordhuis)) - -### v2.14.13 (2015-11-25): - -#### THE npm CLI !== THE npm REGISTRY !== npm, INC. - -npm-the-CLI is licensed under the terms of the [Artistic License -2.0](https://github.com/npm/npm/blob/8d79c1a39dae908f27eaa37ff6b23515d505ef29/LICENSE), -which is a liberal open-source license that allows you to take this code and do -pretty much whatever you like with it (that is, of course, not legal language, -and if you're doing anything with npm that leaves you in doubt about your legal -rights, please seek the review of qualified counsel, which is to say, not -members of the CLI team, none of whom have passed the bar, to my knowledge). At -the same time the primary registry the CLI uses when looking up and downloading -packages is a commercial service run by npm, Inc., and it has its own [Terms of -Use](https://www.npmjs.com/policies/terms). - -Aside from clarifying the terms of use (and trying to make sure they're more -widely known), the only recent changes to npm's licenses have been making the -split between the CLI and registry clearer. You are still free to do whatever -you like with the CLI's source, and you are free to view, download, and publish -packages to and from `registry.npmjs.org`, but now the existing terms under -which you can do so are more clearly documented. Aside from the two commits -below, see also [the release notes for -`npm@2.14.11`](https://github.com/npm/npm/releases/tag/v2.14.11), which is where -the split between the CLI's code and the terms of use for the registry was -first made more clear. - -* [`1f3e936`](https://github.com/npm/npm/commit/1f3e936aab6840667948ef281e0c3621df365131) - [#10532](https://github.com/npm/npm/issues/10532) Clarify that - `registry.npmjs.org` is the default, but that you're free to use the npm CLI - with whatever registry you wish. ([@kemitchell](https://github.com/kemitchell)) -* [`6733539`](https://github.com/npm/npm/commit/6733539eeb9b32a5f2d1a6aa797987e2252fa760) - [#10532](https://github.com/npm/npm/issues/10532) Having semi-duplicate - release information in `README.md` was confusing and potentially inaccurate, - so remove it. ([@kemitchell](https://github.com/kemitchell)) - -#### EASE UP ON WINDOWS BASH USERS - -It turns out that a fair number of us use bash on Windows (through MINGW or -bundled with Git, plz – Cygwin is still a bridge too far, for both npm and -Node.js). [@jakub-g](https://github.com/jakub-g) did us all a favor and relaxed -the check for npm completion to support MINGW bash. Thanks, Jakub! - -* [`460cc09`](https://github.com/npm/npm/commit/460cc0950fd6a005c4e5c4f85af807814209b2bb) - [#10156](https://github.com/npm/npm/issues/10156) completion: enable on - Windows in git bash ([@jakub-g](https://github.com/jakub-g)) - -#### MAKE NODE-GYP A LITTLE BLUER - -* [`333e118`](https://github.com/npm/npm/commit/333e1181082842c21edc62f0ce515928424dff1f) - `node-gyp@3.2.0`: Support AIX, use `which` to find Python, updated to a newer - version of `gyp`, and more! ([@bnoordhuis](https://github.com/bnoordhuis)) - -#### WE LIKE SPDX AND ALL BUT IT'S NOT ACTUALLY A DIRECT DEP, SORRY - -* [`1f4b4bb`](https://github.com/npm/npm/commit/1f4b4bbdf8758281beecb7eaf75d05a6c4a77c15) - Removed `spdx` as a direct npm dependency, since we don't actually need it at - that level, and updated subdeps for `validate-npm-package-license` - ([@othiym23](https://github.com/othiym23)) - -#### A BOUNTEOUS THANKSGIVING CORNUCOPIA OF DOC TWEAKS - -These are great! Keep them coming! Sorry for letting them pile up so deep, -everybody. Also, a belated Thanksgiving to our Canadian friends, and a happy -Thanksgiving to all our friends in the USA. - -* [`6101f44`](https://github.com/npm/npm/commit/6101f44737645d9379c3396fae81bbc4d94e1f7e) - [#10250](https://github.com/npm/npm/issues/10250) Correct order of `org:team` - in `npm team` documentation. ([@louislarry](https://github.com/louislarry)) -* [`e8769f9`](https://github.com/npm/npm/commit/e8769f9807b91582c15ef130733e2e72b6c7bda4) - [#10371](https://github.com/npm/npm/issues/10371) Remove broken / duplicate - link to tag. ([@WickyNilliams](https://github.com/WickyNilliams)) -* [`1ae2dbe`](https://github.com/npm/npm/commit/1ae2dbe759feb80d8634569221ec6ee2c6d1d1ff) - [#10419](https://github.com/npm/npm/issues/10419) Remove references to - nonexistent `npm-rm(1)` documentation. ([@KenanY](https://github.com/KenanY)) -* [`777a271`](https://github.com/npm/npm/commit/777a271830a42d4ee62540a89f764a6e7d62de19) - [#10474](https://github.com/npm/npm/issues/10474) Clarify that install finds - dependencies in `package.json`. ([@sleekweasel](https://github.com/sleekweasel)) -* [`dcf4b5c`](https://github.com/npm/npm/commit/dcf4b5cbece1b0ef55ab7665d9acacc0b6b7cd6e) - [#10497](https://github.com/npm/npm/issues/10497) Clarify what a package is - slightly. ([@aredridel](https://github.com/aredridel)) -* [`447b3d6`](https://github.com/npm/npm/commit/447b3d669b2b6c483b8203754ac0a002c67bf015) - [#10539](https://github.com/npm/npm/issues/10539) Remove an extra, spuriously - capitalized letter. ([@alexlukin-softgrad](https://github.com/alexlukin-softgrad)) - -### v2.14.12 (2015-11-19): - -#### TEEN ORCS AT THE GATES - -This week heralds the general release of the primary npm registry's [new -support for private packages for -organizations](http://blog.npmjs.org/post/133542170540/private-packages-for-organizations). -For many potential users, it's the missing piece needed to make it easy for you -to move your organization's private work onto npm. And now it's here! The -functionality to support it has been in place in the CLI for a while now, -thanks to [@zkat](https://github.com/zkat)'s hard work. - -During our final testing before the release, our ace support team member -[@snopeks](https://github.com/snopeks) noticed that there had been some drift -between the CLI team's implementation and what npm was actually preparing to -ship. In the interests of everyone having a smooth experience with this -_extremely useful_ new feature, we quickly made a few changes to square up the -CLI and the web site experiences. - -* [`0e8b15e`](https://github.com/npm/npm/commit/0e8b15e9fbc89e31bd00e573b648846beddfb835) - [#9327](https://github.com/npm/npm/issues/9327) `npm access` no longer has - problems when run in a directory that doesn't contain a `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`c4e939c`](https://github.com/npm/npm/commit/c4e939c1d493601d25dcb88e6ffcca73076fd3fd) - [npm/npm-registry-client#126](https://github.com/npm/npm-registry-client/issues/126) - `npm-registry-client@7.0.8`: Allow the CLI to grant, revoke, and list - permissions on unscoped (public) packages on the primary registry. - ([@othiym23](https://github.com/othiym23)) - -#### A BRIEF NOTE ON NPM'S BACKWARDS COMPATIBILITY - -We don't often have much to say about the changes we make to our internal -testing and tooling, but I'm going to take this opportunity to reiterate that -npm tries hard to maintain compatibility with a wide variety of Node versions. -As this change shows, we want to ensure that npm works the same across: - -* Node.js 0.8 -* Node.js 0.10 -* Node.js 0.12 -* the latest io.js release -* Node.js 4 LTS -* Node.js 5 - -Contributors who send us pull requests often notice that it's very rare that -our tests pass across all of those versions (ironically, almost entirely due to -the packages we use for testing instead of any issues within npm itself). We're -currently beginning an effort, lasting the rest of 2015, to clean up our test -suite, and not only get it passing on all of the above versions of Node.js, but -working solidly on Windows as well. This is a compounding form of technical -debt that we're finally paying down, and our hope is that cleaning up the tests -will produce a more robust CLI that's a lot easier to write patches for. - -* [`d743620`](https://github.com/npm/npm/commit/d743620a0005213a65d25de771661b4d48a09717) - [#10233](https://github.com/npm/npm/issues/10233) Update Node.js versions - that Travis uses to test npm. ([@iarna](https://github.com/iarna)) - -#### TYPOS IN THE LICENSE, OH MY - -* [`58ac241`](https://github.com/npm/npm/commit/58ac241f556b2c202a8ee33321965e2540361ca7) - [#10478](https://github.com/npm/npm/issues/10478) Correct two typos in npm's - LICENSE. ([@jorrit](https://github.com/jorrit)) - -### v2.14.11 (2015-11-12): - -#### ASK FOR NOTHING, GET LATEST - -When you run `npm install foo`, you probably expect that you'll get the -`latest` version of `foo`, whatever that is. And good news! That's what this -change makes it do. - -We _think_ this is what everyone wants, but if this causes problems for you, we -want to know! If it proves problematic for people we will consider reverting it -(preferrably before this becomes `npm@latest`). - -Previously, when you ran `npm install foo` we would act as if you typed `npm -install foo@*`. Now, like any range-type specifier, in addition to matching the -range, it would also have to be `<=` the value of the `latest` dist-tag. -Further, it would exclude prerelease versions from the list of versions -considered for a match. - -This worked as expected most of the time, unless your `latest` was a prerelease -version, in which case that version wouldn't be used, to everyone's surprise. - -* [`6f0a646`](https://github.com/npm/npm/commit/6f0a646cd865b24fe3ff25365bf5421780e63e01) - [#10189](https://github.com/npm/npm/issues/10189) `npm-package-arg@4.1.0`: - Change the default version from `*` to `latest`. - ([@zkat](https://github.com/zkat)) - -#### LICENSE CLARIFICATION - -* [`54a9046`](https://github.com/npm/npm/commit/54a90461f068ea89baa5d70248cdf1581897936d) - [#10326](https://github.com/npm/npm/issues/10326) Clarify what-all is covered - by npm's license and point to the registry's terms of use. - ([@kemitchell](https://github.com/kemitchell)) - -#### CLOSER TO GREEN TRAVIS - -* [`28efd3d`](https://github.com/npm/npm/commit/28efd3d7dfb2fa3755076ae706ea4d38c6ee6900) - [#10232](https://github.com/npm/npm/issues/10232) `nock@1.9.0`: Downgrade - nock to a version that doesn't depend on streams2 in core so that more of our - tests can pass in 0.8. ([@iarna](https://github.com/iarna)) - -#### A BUG FIX - -* [`eacac8f`](https://github.com/npm/npm/commit/eacac8f05014d15217c3d8264d0b00a72eafe2d2) - [#9965](https://github.com/npm/npm/issues/9965) Fix a corrupt `package.json` - file introduced by a merge conflict in - [`022691a`](https://github.com/npm/npm/commit/022691a). - ([@waynebloss](https://github.com/waynebloss)) - -#### A DEPENDENCY UPGRADE - -* [`ea7d8e0`](https://github.com/npm/npm/commit/ea7d8e00a67a3d5877ed72c9728909c848468a9b) - [npm/nopt#51](https://github.com/npm/nopt/pull/51) `nopt@3.0.6`: Allow - types checked to be validated by passed-in name in addition to the JS name of - the type / class. ([@wbecker](https://github.com/wbecker)) - -### v2.14.10 (2015-11-05): - -There's nothing in here that that isn't in the `npm@3.4.0` release notes, but -all of the commit shasums have been adjusted to be correct. Enjoy! - -#### BUG FIXES VIA DEPENDENCY UPDATES - -* [`204c558`](https://github.com/npm/npm/commit/204c558c06637a753c0b41d0cf19f564a1ac3715) - [#8640](https://github.com/npm/npm/issues/8640) - [npm/normalize-package-data#69](https://github.com/npm/normalize-package-data/pull/69) - `normalize-package-data@2.3.5`: Fix a bug where if you didn't specify the - name of a scoped module's binary, it would install it such that it was - impossible to call it. ([@iarna](https://github.com/iarna)) -* [`bbdf4ee`](https://github.com/npm/npm/commit/bbdf4ee0a3cd12be6a2ace255b67d573a72f1f8f) - [npm/fstream-npm#14](https://github.com/npm/fstream-npm/pull/14) - `fstream-npm@1.0.7`: Only filter `config.gypi` when it's in the build - directory. ([@mscdex](https://github.com/mscdex)) -* [`d82ff81`](https://github.com/npm/npm/commit/d82ff81403e906931fac701775723626dcb443b3) - [npm/fstream-npm#15](https://github.com/npm/fstream-npm/pull/15) - `fstream-npm@1.0.6`: Stop including directories that happened to have names - matching whitelisted npm files in npm module tarballs. The most common cause - was that if you had a README directory then everything in it would be - included if wanted it or not. ([@taion](https://github.com/taion)) - -#### DOCUMENTATION FIXES - -* [`16361d1`](https://github.com/npm/npm/commit/16361d122f2ff6d1a4729c66153b7c24c698fd19) - [#10036](https://github.com/npm/npm/pull/10036) Fix typo / over-abbreviation. - ([@ifdattic](https://github.com/ifdattic)) -* [`d1343dd`](https://github.com/npm/npm/commit/d1343dda42f113dc322f95687f5a8c7d71a97c35) - [#10176](https://github.com/npm/npm/pull/10176) Fix broken link, scopes => - scope. ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`110663d`](https://github.com/npm/npm/commit/110663d000a3908a4853393d9abae481700cf4dc) - [#9460](https://github.com/npm/npm/issue/9460) Specifying the default command - run by "npm start" and the fact that you can pass it arguments. - ([@JuanCaicedo](https://github.com/JuanCaicedo)) - -#### DEPENDENCY UPDATES FOR THEIR OWN SAKE - -* [`7476d2d`](https://github.com/npm/npm/commit/7476d2d31552a41671c425aa7fcc2844e0381008) - [npm/npmlog#19](https://github.com/npm/npmlog/pull/19) - `npmlog@2.0.0`: Make it possible to emit log messages with `error` as the - prefix. - ([@bengl](https://github.com/bengl)) -* [`6ca7888`](https://github.com/npm/npm/commit/6ca7888862cfe8bf802dc7c66632c102acd94cf5) - `read-package-json@2.0.2`: Minor cleanups. - ([@KenanY](https://github.com/KenanY)) - -### v2.14.9 (2015-10-29): - -There's still life in `npm@2`, but for now, enjoy these dependency upgrades! -Also, [@othiym23](https://github.com/othiym23) says hi! _waves_ -[@zkat](https://github.com/zkat) has her hands full, and -[@iarna](https://github.com/iarna)'s handling `npm@3`, so I'm dealing with -`npm@2` and the totally nonexistent weird bridge `npm@1.4` LTS release that may -or may not be happening this week. - -#### CAN'T STOP WON'T STOP UPDATING THOSE DEPENDENCIES - -* [`f52f0cb`](https://github.com/npm/npm/commit/f52f0cb51526314197e9d67619feebbd82a397b7) - [#10150](https://github.com/npm/npm/issues/10150) `chmodr@1.0.2`: Use - `fs.lstat()` to check if an entry is a directory, making `chmodr()` work - properly with NFS mounts on Windows. ([@sheerun](https://github.com/sheerun)) -* [`f7011d7`](https://github.com/npm/npm/commit/f7011d7b3b1d9148a6cd8f7b8359d6fe3269a912) - [#10150](https://github.com/npm/npm/issues/10150) `which@1.2.0`: Additional - command-line parameters, which is nice but not used by npm. - ([@isaacs](https://github.com/isaacs)) -* [`ebcc0d8`](https://github.com/npm/npm/commit/ebcc0d8629388da0b849bbbad590382cd7268f51) - [#10150](https://github.com/npm/npm/issues/10150) `minimatch@3.0.0`: Don't - package browser version. ([@isaacs](https://github.com/isaacs)) -* [`8c98dce`](https://github.com/npm/npm/commit/8c98dce5ffe242bafbe92b849e73e8de1803e256) - [#10150](https://github.com/npm/npm/issues/10150) `fstream-ignore@1.0.3`: - Upgrade to use `minimatch@3` (for deduping purposes). - ([@othiym23](https://github.com/othiym23)) -* [`db9ef33`](https://github.com/npm/npm/commit/db9ef337c253ecf21c921055bf8742e10d1cb3bb) - [#10150](https://github.com/npm/npm/issues/10150) `request@2.65.0`: - Dependency upgrades and a few bug fixes, mostly related to cookie handling. - ([@simov](https://github.com/simov)) - -#### DEVDEPENDENCIES TOO, I GUESS, IT'S COOL - -* [`dfbf621`](https://github.com/npm/npm/commit/dfbf621afa09c46991249b4f9a995d1823ea7ede) - [#10150](https://github.com/npm/npm/issues/10150) `tap@2.2.0`: Better - handling of test order handling (including some test fixes for npm). - ([@isaacs](https://github.com/isaacs)) -* [`cf5ad5a`](https://github.com/npm/npm/commit/cf5ad5a8c88bfd72e30ef8a8d1d3c5508e0b3c23) - [#10150](https://github.com/npm/npm/issues/10150) `nock@2.16.0`: More - expectations, documentation, and bug fixes. - ([@pgte](https://github.com/pgte)) - -### v2.14.8 (2015-10-08): - -#### SLOWLY RECOVERING FROM FEELINGS - -OS&F is definitely my favorite convention I've gone to. Y'all should check it -out next year! Rebecca and Kat are back, although Forrest is out at -[&yet conf](http://andyetconf.com/). - -This week sees another tiny LTS release with non-code-related patches -- just -CI/release things. - -Meanwhile, have you heard? `npm@3` is much faster now! Go upgrade with `npm -install -g npm@latest` and give it a whirl if you haven't already! - -#### IF YOU CHANGE CASING ON A FILE, YOU ARE NOT MY FRIEND - -Seriously. I love me some case-sensitive filesystems, but a lot of us have to -deal with `git` and its funky support for case normalizing systems. Have mercy -and just don't bother if all you're changing is casing, please? Otherwise, I -have to do this little dance to prevent horrible conflicts. - -* [`c3a7b61`](https://github.com/npm/npm/commit/c3a7b619786650a45653c8b55b8741fc7bb5cfda) - [#9804](https://github.com/npm/npm/pulls/9804) Remove the readme file with - weird casing. - ([@zkat](https://github.com/zkat)) -* [`f3f619e`](https://github.com/npm/npm/commit/f3f619e06e4be1378dbf286f897b50e9c69c9557) - [#9804](https://github.com/npm/npm/pulls/9804) Add the readme file back in, - with desired casing. - ([@zkat](https://github.com/zkat)) - -#### IDK. OUR CI DOESN'T EVEN FULLY WORK YET BUT SURE - -Either way, it's nice to make sure we're running stuff on the latest Node. `4.2` -is getting released very soon, though (this week?), and that'll be the first -official LTS release! - -* [`bd0b9ab`](https://github.com/npm/npm/commit/bd0b9ab6e60a31448794bbd88f94672572c3cb55) - [#9827](https://github.com/npm/npm/pulls/9827) Add node `4.0` and `4.1` to - TravisCI - ([@JaKXz](https://github.com/JaKXz)) - -### v2.14.7 (2015-10-01): - -#### MORE RELEASE STAGGERING?! - -Hi all, and greetings from [Open Source & Feelings](http://osfeels.com)! - -So we're switching gears a little with how we handle our weekly releases: from -now on, we're going to stagger release weeks between dependency bumps and -regular patches. So, this week, aside from a doc change, we'll be doing only -version bumps. Expect actual patches next week! - -#### TOTALLY FOLLOWING THE RULES ALREADY - -So I snuck this in, because it's our own [@snopeks](https://github.com/snopeks)' -first contribution to the main `npm` repo. She's been helping with building -support documents for Orgs, and contributed her general intro guide to the new -feature so you can read it with `npm help orgs` right in your terminal! - -* [`8324ea0`](https://github.com/npm/npm/commit/8324ea023ace4e08b6b8959ad199e2457af9f9cf) - [#9761](https://github.com/npm/npm/pull/9761) Added general user guide for - Orgs. - ([@snopeks](https://github.com/snopeks)) - -#### JUST. ONE. MORE. - -* [`9a502ca`](https://github.com/npm/npm/commit/9a502ca96e2d43ec75a8f684c9ca33af7e910f0a) - Use unique package name in tests to work around weird test-state-based - failures. - ([@iarna](https://github.com/iarna)) - -#### OKAY ACTUALLY THE THING I WAS SUPPOSED TO DO - -Anyway -- here's your version bump! :) - -* [`4aeb94c`](https://github.com/npm/npm/commit/4aeb94c9f0df3f41802cf2e0397a998f3b527c25) - `request@2.64.0`: No longer defaulting to `application/json` for `json` - requests. Also some minor doc and packaging patches. - ([@simov](https://github.com/simov)) - `minimatch@3.0.0`: No longer packaging browser modules. - ([@isaacs](https://github.com/isaacs)) -* [`a18b213`](https://github.com/npm/npm/commit/a18b213e6945a8f5faf882927829ac95f844e2aa) - `glob@5.0.15`: Upgraded `minimatch` dependency. - ([@isaacs](https://github.com/isaacs)) -* [`9eb64d4`](https://github.com/npm/npm/commit/9eb64e44509519ca9d788502edb2eba4cea5c86b) - `nock@2.13.0` - ([@pgte](https://github.com/pgte)) - -### v2.14.6 (2015-09-24): - -#### `¯\_(ツ)_/¯` - -Since `2.x` is LTS now, you can expect a slowdown in overall release sizes. On -top of that, we had our all-company-npm-internal-conf thing on Monday and -Tuesday so there wasn't really time to do much at all. - -Still, we're bringing you a couple of tiny little changes this week! - -* [`7b7da13`](https://github.com/npm/npm/commit/7b7da13c6cdf5eae53c20d5c69afc4c16e6f715d) - [#9471](https://github.com/npm/npm/pull/9471) When the port for a tarball is - different than the registry it's in, but the hostname is the same, the - protocol is now allowed to change, too. - ([@fastest963](https://github.com/fastest963)) -* [`6643ada`](https://github.com/npm/npm/commit/6643adaf9f37f08893e3ad28b797c55a36b2a152) - `request@2.63.0`: Use `application/json` as the default content type when - making `json` requests. - ([@simov](https://github.com/simov)) - -### v2.14.5 (2015-09-17): - -#### NPM IS DEAD. LONG LIVE NPM - -That's right folks. As of this week, `npm@next` is `npm@3`, which means it'll be -`npm@latest` next week! There's some really great shiny new things over there, -and you should really take a look. - -Many kudos to [@iarna](https://github.com/iarna) for her hard work on `npm@3`! - -Don't worry, we'll keep `2.x` around for a while (as LTS), but you won't see -many, if any, new features on this end. From now on, we're going to use -`latest-2` and `next-2` as the dist tags for the `npm@2` branch. - -#### OKAY THAT'S FINE CAN I DEPRECATE THINGS NOW? - -Yes! Specially if you're using scoped packages. Apparently, deprecating them -never worked, but that should be better now. :) - -* [`eca7b24`](https://github.com/npm/npm/commit/eca7b24de9a0090da02a93a69726f5e70ab80543) - [#9558](https://github.com/npm/npm/issues/9558) Add tests for npm deprecate. - ([@zkat](https://github.com/zkat)) -* [`648fe16`](https://github.com/npm/npm/commit/648fe16157ef0db22395ae056d1dd4b4c1605bf4) - [#9558](https://github.com/npm/npm/issues/9558) `npm-registry-client@7.0.7`: - Fixes `npm deprecate` so you can actually deprecate scoped modules now (it - never worked). - ([@zkat](https://github.com/zkat)) - -#### WTF IS `node-waf` - -idk. Some old thing. We don't talk about it anymore. - -* [`cf1b39f`](https://github.com/npm/npm/commit/cf1b39fc95a9ffad7fba4c2fee705c53b19d1d16) - [#9584](https://github.com/npm/npm/issues/9584) Fix ancient references to - `node-waf` in the docs to refer to the `node-gyp` version of things. - ([@KenanY](https://github.com/KenanY)) - -#### THE `graceful-fs` AND `node-gyp` SAGA CONTINUES - -Last week had some sweeping `graceful-fs` upgrades, and this takes care of one -of the stragglers, as well as bumping `node-gyp`. `node@4` users might be -excited about this, or even `node@<4` users who previously had to cherry-pick a -bunch of patches to get the latest npm working. - -* [`e07354f`](https://github.com/npm/npm/commit/e07354f3ff3a6be568fe950f1f825897f72912d8) - `sha@2.0.1`: Upgraded graceful-fs! - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`83cb6ee`](https://github.com/npm/npm/commit/83cb6ee4045b85e565e9678ca1878877e1dc75bd) - `node-gyp@3.0.3` - ([@rvagg](https://github.com/rvagg)) - -#### DEPS! DEPS! MORE DEPS! OK STOP DEPS - -* [`0d60888`](https://github.com/npm/npm/commit/0d608889615a1cb63f5f852337e955053f201aeb) - `normalize-package-data@2.3.4`: Use an external package to check for built-in - node modules. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`79b4dac`](https://github.com/npm/npm/commit/79b4dac11f1c2d8ad5489fc3104734e1c10d4793) - `retry@0.8.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`c164941`](https://github.com/npm/npm/commit/c164941d3c792904d5b126a4fd36eefbe0699f52) - `request@2.62.0`: node 4 added to build targets. Option initialization issues - fixed. - ([@simov](https://github.com/simov)) -* [`0fd878a`](https://github.com/npm/npm/commit/0fd878a44d5ae303325808d1f00df4dce7549d50) - `lru-cache@2.7.0`: Cache serialization support and fixes a cache length bug. - ([@isaacs](https://github.com/isaacs)) -* [`6a7a114`](https://github.com/npm/npm/commit/6a7a114a45b4699995d6e09164fdfd0fa1274591) - `nock@2.12.0` - ([@pgte](https://github.com/pgte)) -* [`6b25e6d`](https://github.com/npm/npm/commit/6b25e6d2235c11f4444104db4545cb42a0267666) - `semver@5.0.3`: Removed uglify-js dead code. - ([@isaacs](https://github.com/isaacs)) - -### v2.14.4 (2015-09-10): - -#### THE GREAT NODEv4 SAGA - -So [Node 4 is out now](https://nodejs.org/en/blog/release/v4.0.0/) and that's -going to involve a number of things over in npm land. Most importantly, it's the -last major release that will include the `2.x` branch of npm. That also means -that `2.x` is going to go into LTS mode in the coming weeks -- once `npm@3` -becomes our official `latest` release. You can most likely expect Node 5 to -include `npm@3` by default, whenever that happens. We'll go into more detail -about LTS at that point, as well, so keep your eyes peeled for announcements! - -#### NODE IS DEAD. LONG LIVE NODE! - -Node 4 being released means that a few things that used to be floating patches -are finally making it right into npm proper. This week, we've got two such -updates, both to dependencies: - -* [`505d9e4`](https://github.com/npm/npm/commit/505d9e40c13b8b0bb3f70ee9886f7b73ba569407) - `node-gyp@3.0.1`: Support for node nightlies and compilation for both node and - io.js without extra patching - ([@rvagg](https://github.com/rvagg)) - -[@thefourtheye](https://github.com/thefourtheye) was kind enough to submit a -*bunch* of PRs to npm's dependencies updating them to `graceful-fs@4.1.2`, which -mainly makes it so we're no longer monkey-patching `fs`. The following are all -updates related to this: - -* [`10cb189`](https://github.com/npm/npm/commit/10cb189c773fef804214018d57509cc7a943184b) - `write-file-atomic@1.1.3` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`edfb80b`](https://github.com/npm/npm/commit/edfb80b39f8cfce9a993f139eb98248001198e09) - `tar@2.2.1` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`aa6e1ee`](https://github.com/npm/npm/commit/aa6e1eede7d71fa69d7256afdfbaa3406bc39a5b) - `read-package-json@2.0.1` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`18971a3`](https://github.com/npm/npm/commit/18971a361635ed3958ecd39b63930ae1e56f8612) - `read-installed@4.0.3` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`a4cba71`](https://github.com/npm/npm/commit/a4cba71bd2532236fda7385bf55e8790cafd4f0a) - `fstream@1.0.8` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`70a38e2`](https://github.com/npm/npm/commit/70a38e29418951ac61ab6cf269d188074fe8ac3a) - `fs-write-stream-atomic@1.0.4` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`9cbd20f`](https://github.com/npm/npm/commit/9cbd20f691e37960e4ba12d401abd1069657cb47) - `fs-vacuum@1.2.7` - ([@thefourtheye](https://github.com/thefourtheye)) - -#### OTHER PATCHES - -* [`c4dd521`](https://github.com/npm/npm/commit/c4dd5213b2f3283ea0392845e5f78cac4573529e) - [#9506](https://github.com/npm/npm/issues/9506) Make `npm link` work on - Windows when using node pre-release/RC releases. - ([@jon-hall](https://github.com/jon-hall)) -* [`b6bc29c`](https://github.com/npm/npm/commit/b6bc29c1401b3d6b570c09cbef1866bdb0436b59) - [#9544](https://github.com/npm/npm/issues/9549) `process.binding` is being - deprecated, so our only direct usage has been removed. - ([@ChALkeR](https://github.com/ChALkeR)) - -#### MORE DEPENDENCIES! - -* [`d940594`](https://github.com/npm/npm/commit/d940594e479a7f012b6dd6952e8ef985ba2a6216) - `tap@1.4.1` - ([@isaacs](https://github.com/isaacs)) -* [`ee38486`](https://github.com/npm/npm/commit/ee3848669331fd98879a3175789d963543f67ce3) - `which@1.1.2`: Added tests for Windows-related dead code that was previously - helping a silent failure happen. Travis stuff, too. - ([@isaacs](https://github.com/isaacs)) - -#### DOC UPDATES - -* [`475daf5`](https://github.com/npm/npm/commit/475daf54ad07777938d1d7ee1a3e576961e84510) - [#9492](https://github.com/npm/npm/issues/9492) Clarify how `.npmignore` and - `.gitignore` are found and used by npm. - ([@addaleax](https://github.com/addaleax)) -* [`b2c391d`](https://github.com/npm/npm/commit/b2c391d7833249626a6d7650363a83bcc778717a) - `nopt@3.0.4`: Minor clarifications to docs about how array and errors work. - ([@zkat](https://github.com/zkat)) - -### v2.14.3 (2015-09-03): - -#### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID. - -Our closed beta for Teens and Orcs is happening! The web team is hard at work -making sure everything looks pretty and usable and such. Once we fix things -stemming from that beta, you can expect the feature to be available publicly. -Some time after that, it'll even be available for free for FOSS orgs. It'll Be -Done When It's Done™. - -#### OH GOOD, I CAN ACTUALLY UPSTREAM NOW - -Looks like last week's release foiled our own test suite when trying to upstream -it to Node! Just a friendly reminder that no, `.npmrc` is no longer included -then you pack/release a package! [@othiym23](https://github.com/othiym23) and -[@isaacs](https://github.com/isaacs) managed to suss the really strange test -failures resulting from that, and we've patched it in this release. - -* [`01a3428`](https://github.com/npm/npm/commit/01a3428534b754dca89a56fd1e49f55cb22f6f25) - [#9476](https://github.com/npm/npm/issues/9476) test: Recreate missing - `.npmrc` files when missing so downstream packagers can run tests on packed - npm. - ([@othiym23](https://github.com/othiym23)) - -#### TALKING ABOUT THE CHANGELOG IN THE CHANGELOG IS LIKE, POMO OR SOMETHING - -* [`c1e7a83`](https://github.com/npm/npm/commit/c1e7a83c0ae7aadf01aecc57cf8a0ae2009d4da8) - [#9431](https://github.com/npm/npm/issues/9431) CHANGELOG: clarify - windows-related nature of patch - ([@saper](https://github.com/saper)) - -#### devDependencies UPDATED - -No actual dep updates this week, but we're bumping a couple of devDeps: - -* [`8454835`](https://github.com/npm/npm/commit/84548351bfd63e3e305d195abbcad24c6b7c3e8e) - `tap@1.4.0`: Add `t.contains()` as alias to `t.match()` - ([@isaacs](https://github.com/isaacs)) -* [`13d2216`](https://github.com/npm/npm/commit/13d22161bcdeb6e1ed095d5ba2f77e6abfffa5eb) - `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode - ([@isaacs](https://github.com/isaacs)) - -### v2.14.2 (2015-08-27): - -#### GETTING THAT PESKY `preferGlobal` WARNING RIGHT - -So apparently the `preferGlobal` option hasn't quite been warning correctly for -some time. But now it should be all better! tl;dr: if you try and install a -dependency with `preferGlobal: true`, and it's _not already_ in your -`package.json`, you'll get a warning that the author would really rather you -install it with `--global`. This should prevent Windows PowerShell from thinking -npm has failed just because of a benign warning. - -* [`bbb25f3`](https://github.com/npm/npm/commit/bbb25f30d582f8979168c79233a9f8f840974f90) - [#8841](https://github.com/npm/npm/issues/8841) - [#9409](https://github.com/npm/npm/issues/9409) The `preferGlobal` - warning shouldn't happen if the dependency being installed is listed in - `devDependencies`. ([@saper](https://github.com/saper)) -* [`222fcec`](https://github.com/npm/npm/commit/222fcec85ccd30d35899e5037079fb14625af4e2) - [#9409](https://github.com/npm/npm/issues/9409) `preferGlobal` now prints a - warning when there are no dependencies for the current package. - ([@zkat](https://github.com/zkat)) -* [`5cfed6d`](https://github.com/npm/npm/commit/5cfed6d7a1a5f2731688cfc8293b5e43a6355393) - [#9409](https://github.com/npm/npm/issues/9409) Verify that - `preferGlobal` is warning as expected (when a `preferGlobal` dependency is - installed, but isn't listed in either `dependencies` or `devDependencies`). - ([@zkat](https://github.com/zkat)) - -#### BUMP +1 - -* [`eeafce2`](https://github.com/npm/npm/commit/eeafce2d06883c0f51bf403415b6bc5f2647eba3) - `validate-npm-package-license@3.0.1`: Include additional metadata in parsed license object, - useful for license checkers. ([@kemitchell](https://github.com/kemitchell)) -* [`1502a28`](https://github.com/npm/npm/commit/1502a285f84aa548806b3eafc8889e6288e810f3) - `normalise-package-data@2.3.2`: Updated to use `validate-npm-package-license@3.0.1`. - ([@othiym23](https://github.com/othiym23)) -* [`cbde823`](https://github.com/npm/npm/commit/cbde8233436bf0ea62a4740869b4990322c20659) - `init-package-json@1.9.1`: Add a `silent` option to suppress output on writing the - generated `package.json`. Also, updated to use `validate-npm-package-license@3.0.1`. - ([@zkat](https://github.com/zkat)) -* [`08fda46`](https://github.com/npm/npm/commit/08fda465452b4d77f1ced8050ee3a35a77fc30a5) - `tar@2.2.0`: Minor improvements. ([@othiym23](https://github.com/othiym23)) -* [`dc2f20b`](https://github.com/npm/npm/commit/dc2f20b53fff77203139c863b48da0e959df2ac9) - `rimraf@2.4.3`: `EPERM` now triggers a delay / retry loop (since Windows throws - this when things still hold a handle). ([@isaacs](https://github.com/isaacs)) -* [`e8acb27`](https://github.com/npm/npm/commit/e8acb273aa67ee0394d0431650e1b2a7d09c8554) - `read@1.0.7`: Fix licensing ambiguity. ([@isaacs](https://github.com/isaacs)) - -#### OTHER STUFF THAT'S RELEVANT - -* [`73a1ee0`](https://github.com/npm/npm/commit/73a1ee0be90fa1928521b63f28bef83b8ffab61d) - [#9386](https://github.com/npm/npm/issues/9386) Include additional unignorable files in - documentation. - ([@mjhasbach](https://github.com/mjhasbach)) -* [`0313e40`](https://github.com/npm/npm/commit/0313e40ee0f757fce8861be590ad668c23d7be53) - [#9396](https://github.com/npm/npm/issues/9396) Improve the `EISDIR` error - message returned by npm's error-handling code to give users a better hint of - what's most likely going on. Usually, error reports with this error code are - about people trying to install things without a `package.json`. - ([@KenanY](https://github.com/KenanY)) -* [`2677457`](https://github.com/npm/npm/commit/26774579c739c5951351e58263cf4d6ea3d66ec8) - [#9360](https://github.com/npm/npm/issues/9360) Make it easier to run - only _some_ of npm tests with lifecycle scripts via `npm tap test/tap/testname.js`. - ([@iarna](https://github.com/iarna)) - -### v2.14.1 (2015-08-20): - -#### SECURITY FIX - -There are patches for two information leaks of moderate severity in `npm@2.14.1`: - -1. In some cases, npm was leaking sensitive credential information into the - child environment when running package and lifecycle scripts. This could - lead to packages being published with files (most notably `config.gypi`, a - file created by `node-gyp` that is a cache of environmental information - regenerated on every run) containing the bearer tokens used to authenticate - users to the registry. Users with affected packages have been notified (and - the affected tokens invalidated), and now npm has been modified to not - upload files that could contain this information, as well as scrubbing the - sensitive information out of the environment passed to child scripts. -2. Per-package `.npmrc` files are used by some maintainers as a way to scope - those packages to a specific registry and its credentials. This is a - reasonable use case, but by default `.npmrc` was packed into packages, - leaking those credentials. npm will no longer include `.npmrc` when packing - tarballs. - -If you maintain packages and believe you may be affected by either -of the above scenarios (especially if you've received a security -notification from npm recently), please upgrade to `npm@2.14.1` as -soon as possible. If you believe you may have inadvertently leaked -your credentials, upgrade to `npm@2.14.1` on the affected machine, -and run `npm logout` and then `npm login`. Your access tokens will be -invalidated, which will eliminate any risk posed by tokens inadvertently -included in published packages. We apologize for the inconvenience this -causes, as well as the oversight that led to the existence of this issue -in the first place. - -Huge thanks to [@ChALkeR](https://github.com/ChALkeR) for bringing these -issues to our attention, and for helping us identify affected packages -and maintainers. Thanks also to the Node.js security working group for -their coördination with the team in our response to this issue. We -appreciate everybody's patience and understanding tremendously. - -* [`b9474a8`](https://github.com/npm/npm/commit/b9474a843ca55b7c5fac6da33989e8eb39aff8b1) - `fstream-npm@1.0.5`: Stop publishing build cruft (`config.gypi`) and per-project - `.npmrc` files to keep local configuration out of published packages. - ([@othiym23](https://github.com/othiym23)) -* [`13c286d`](https://github.com/npm/npm/commit/13c286dbdc3fa8fec4cb79fc4d1ee505c8a41b2e) - [#9348](https://github.com/npm/npm/issues/9348) Filter "private" - (underscore-prefixed, even when scoped to a registry) configuration values - out of child environments. ([@othiym23](https://github.com/othiym23)) - -#### BETTER WINDOWS INTEGRATION, ONE STEP AT A TIME - -* [`e40e71f`](https://github.com/npm/npm/commit/e40e71f2f838a8a42392f44e3eeec04e323ab743) - [#6412](https://github.com/npm/npm/issues/6412) Improve the search strategy - used by the npm shims for Windows to prioritize your own local npm installs. - npm has really needed this tweak for a long time, so hammer on it and let us - know if you run into issues, but with luck it will Just Work. - ([@joaocgreis](https://github.com/joaocgreis)) -* [`204ebbb`](https://github.com/npm/npm/commit/204ebbb3e0cab696a429a878ceeb4a7e78ec2b94) - [#8751](https://github.com/npm/npm/issues/8751) - [#7333](https://github.com/npm/npm/issues/7333) Keep [autorun - scripts](https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx) from - interfering with npm package and lifecycle script execution on Windows by - adding `/d` and `/s` when invoking `cmd.exe`. - ([@saper](https://github.com/saper)) - -#### IT SEEMED LIKE AN IDEA AT THE TIME - -* [`286f3d9`](https://github.com/npm/npm/commit/286f3d97103812f0fd84b70352addbe899e258f9) - [#9201](https://github.com/npm/npm/pull/9201) For a while npm was building - HTML partials for use on [`docs.npmjs.com`](https://docs.npmjs.com), but we - weren't actually using them. Stop building them, which makes running the full - test suite and installation process around a third faster. - ([@isaacs](https://github.com/isaacs)) - -#### A SINGLE LONELY DEPENDENCY UPGRADE - -* [`b343b95`](https://github.com/npm/npm/commit/b343b956ef777e321e4251ddc96ec6d80827d9e2) - `request@2.61.0`: Bug fixes and keep-alive tweaks. - ([@simov](https://github.com/simov)) - -### v2.14.0 (2015-08-13): - -#### IT'S HERE! KINDA! - -This release adds support for teens and orcs (err, teams and organizations) to -the npm CLI! Note that the web site and registry-side features of this are -still not ready for public consumption. - -A beta should be starting in the next couple of weeks, and the features -themselves will become public once all that's done. Keep an eye out for more -news! - -All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9011): - -* [`6424170`](https://github.com/npm/npm/commit/6424170fc17c666a6efc090370ec691e0cab1792) - Added new `npm team` command and subcommands. - ([@zkat](https://github.com/zkat)) -* [`52220d1`](https://github.com/npm/npm/commit/52220d146d474ec29b683bd99c06f75cbd46a9f4) - Added documentation for new `npm team` command. - ([@zkat](https://github.com/zkat)) -* [`4e66830`](https://github.com/npm/npm/commit/4e668304850d02df8eb27a779fda76fe5de645e7) - Updated `npm access` to support teams and organizations. - ([@zkat](https://github.com/zkat)) -* [`ea3eb87`](https://github.com/npm/npm/commit/ea3eb8733d9fa09ce34106b1b19fb1a8f95844a5) - Gussied up docs for `npm access` with new commands. - ([@zkat](https://github.com/zkat)) -* [`6e0b431`](https://github.com/npm/npm/commit/6e0b431c1de5e329c86e57d097aa88ebfedea864) - Fix up `npm whoami` to make the underlying API usable elsewhere. - ([@zkat](https://github.com/zkat)) -* [`f29c931`](https://github.com/npm/npm/commit/f29c931012ce5ccd69c29d83548f27e443bf7e62) - `npm-registry-client@7.0.1`: Upgrade `npm-registry-client` API to support - `team` and `access` calls against the registry. - ([@zkat](https://github.com/zkat)) - -#### A FEW EXTRA VERSION BUMPS - -* [`c977e12`](https://github.com/npm/npm/commit/c977e12cbfa50c2f52fc807f5cc19ba1cc1b39bf) - `init-package-json@1.8.0`: Checks for some `npm@3` metadata. - ([@iarna](https://github.com/iarna)) -* [`5c8c9e5`](https://github.com/npm/npm/commit/5c8c9e5ae177ba7d0d298cfa42f3fc7f0271e4ec) - `columnify@1.5.2`: Updated some dependencies. - ([@timoxley](https://github.com/timoxley)) -* [`5d56742`](https://github.com/npm/npm/commit/5d567425768b75aeab402c817a53d8b2bc60d8de) - `chownr@1.0.1`: Tests, docs, and minor style nits. - ([@isaacs](https://github.com/isaacs)) - -#### ALSO A DOC FIX - -* [`846fcc7`](https://github.com/npm/npm/commit/846fcc79b86984b109a97366b0422f995a45f8bf) - [`#9200`](https://github.com/npm/npm/pull/9200) Remove single quotes - around semver range, thus making it valid semver. - ([@KenanY](https://github.com/KenanY)) - -### v2.13.5 (2015-08-07): - -This is another quiet week for the `npm@2` release. -[@zkat](https://github.com/zkat) has been working hard on polishing the CLI -bits of the registry's new feature to support direct management of teams and -organizations, and [@iarna](https://github.com/iarna) continues to work through -the list of issues blocking the general release of `npm@3`, which is looking -more and more solid all the time. - -[@othiym23](https://github.com/othiym23) and [@zkat](https://github.com/zkat) -have also been at this week's Node.js / io.js [collaborator -summit](https://github.com/nodejs/summit/tree/master), both as facilitators and -participants. This is a valuable opportunity to get some face time with other -contributors and to work through a bunch of important discussions, but it does -leave us feeling kind of sleepy. Running meetings is hard! - -What does that leave for this release? A few of the more tricky bug fixes that -have been sitting around for a little while now, and a couple dependency -upgrades. Nothing too fancy, but most of these were contributed by developers -like _you_, which we think is swell. Thanks! - -#### BUG FIXES - -* [`d7271b8`](https://github.com/npm/npm/commit/d7271b8226712479cdd339bf85faf7e394923e0d) - [#4530](https://github.com/npm/npm/issues/4530) The bash completion script - for npm no longer alters global completion behavior around word breaks. - ([@whitty](https://github.com/whitty)) -* [`c9ce294`](https://github.com/npm/npm/commit/c9ce29415a0a8fc610690b6e9d91b64d6e36cfcc) - [#7198](https://github.com/npm/npm/issues/7198) When setting up dependencies - to be shared via `npm link `, only run the lifecycle scripts during - the original link, not when running `npm link ` or `npm install - --link` against them. ([@murgatroid99](https://github.com/murgatroid99)) -* [`422da66`](https://github.com/npm/npm/commit/422da664bd3ce71313da447f170507faf5aac46a) - [#9108](https://github.com/npm/npm/issues/9108) Clear up minor confusion - around wording in `bundledDependencies` section of `package.json` docs. - ([@derekpeterson](https://github.com/derekpeterson)) -* [`6b42d99`](https://github.com/npm/npm/commit/6b42d99460885e715772d3487b1c548d2bc8a738) - [#9146](https://github.com/npm/npm/issues/9146) Include scripts that run for - `preversion`, `version`, and `postversion` in the section for lifecycle - scripts rather than the generic `npm run-script` output. - ([@othiym23](https://github.com/othiym23)) - -#### NOPE, NOT DONE WITH DEPENDENCY UPDATES - -* [`91a48bb`](https://github.com/npm/npm/commit/91a48bb5ef5a990781c86f8b69b8a32cf4fac2d9) - `chmodr@1.0.1`: Ignore symbolic links when recursively changing mode, just - like the Unix command. ([@isaacs](https://github.com/isaacs)) -* [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e) - `nock@2.10.0` ([@pgte](https://github.com/pgte)) - -### v2.13.4 (2015-07-30): - -#### JULY ENDS ON A FAIRLY QUIET NOTE - -Hey everyone! I hope you've had a great week. We're having a fairly small -release this week while we wrap up Teams and Orgs (or, as we've taken to calling -it internally, _Teens and Orcs_). - -In other exciting news, a bunch of us are gonna be at the [Node.js Collaborator -Summit](https://github.com/nodejs/summit/issues/1), and you can also find us at -[wafflejs](https://wafflejs.com/) on Wednesday. Hopefully we'll be seeing some -of you there. :) - -#### THE PATCH!!! - -So here it is. The patch. Hope it helps. (Thanks, -[@ktarplee](https://github.com/ktarplee)!) - -* [`2e58c48`](https://github.com/npm/npm/commit/2e58c4819e3cafe4ae23ab7f4a520fe09258cfd7) - [#9033](https://github.com/npm/npm/pull/9033) `npm version` now works on git - submodules - ([@ktarplee](https://github.com/ktarplee)) - -#### OH AND THERE'S A DEV DEPENDENCIES UPDATE - -Hooray. - -* [`d204683`](https://github.com/npm/npm/commit/d2046839d471322e61e3ceb0f00e78e5c481f967) - `nock@2.9.1` - ([@pgte](https://github.com/pgte)) - -### v2.13.3 (2015-07-23): - -#### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES - -It's pretty hard to outdo last week's release buuuuut~ I promise I'll have a -treat when we release our shiny new **Teams and Organizations** feature! :D -(Coming Soon™). It'll be a real *gem*. - -That means it's a pretty low-key release this week. We got some nice -documentation tweaks, a few bugfixes, and other such things, though! - -Oh, and a _bunch of version bumps_. Thanks, `semver`! - -#### IT'S THE LITTLE THINGS THAT MATTER - -* [`2fac6ae`](https://github.com/npm/npm/commit/2fac6aeffefba2934c3db395b525d931599c34d8) - [#9012](https://github.com/npm/npm/issues/9012) A convenience for releases -- - using the globally-installed npm before now was causing minor annoyances, so - we just use the exact same npm we're releasing to build the new release. - ([@zkat](https://github.com/zkat)) - -#### WHAT DOES THIS BUTTON DO? - -There's a couple of doc updates! The last one might be interesting. - -* [`4cd3205`](https://github.com/npm/npm/commit/4cd32050c0f89b7f1ae486354fa2c35eea302ba5) - [#9002](https://github.com/npm/npm/issues/9002) Updated docs to list the - various files that npm automatically includes and excludes, regardless of - settings. - ([@SimenB](https://github.com/SimenB)) -* [`cf09e75`](https://github.com/npm/npm/commit/cf09e754931739af32647d667b671e72a4c79081) - [#9022](https://github.com/npm/npm/issues/9022) Document the `"access"` field - in `"publishConfig"`. Did you know you don't need to use `--access=public` - when publishing scoped packages?! Just put it in your `package.json`! - Go refresh yourself on scopes packages by [checking our docs](https://docs.npmjs.com/getting-started/scoped-packages) on them. - ([@boennemann](https://github.com/boennemann)) -* [`bfd73da`](https://github.com/npm/npm/commit/bfd73da33349cc2afb8278953b2ae16ea95023de) - [#9013](https://github.com/npm/npm/issues/9013) fixed typo in changelog - ([@radarhere](https://github.com/radarhere)) - -#### THE SEMVER MAJOR VERSION APOCALYPSE IS UPON US - -Basically, `semver` is up to `@5`, and that meant we needed to go in an update a -bunch of our dependencies manually. `node-gyp` is still pending update, since -it's not ours, though! - -* [`9232e58`](https://github.com/npm/npm/commit/9232e58d54c032c23716ef976023d36a42bfdcc9) - [#8972](https://github.com/npm/npm/issues/8972) `init-package-json@1.7.1` - ([@othiym23](https://github.com/othiym23)) -* [`ba44f6b`](https://github.com/npm/npm/commit/ba44f6b4201a4faee025341b123e372d8f45b6d9) - [#8972](https://github.com/npm/npm/issues/8972) `normalize-package-data@2.3.1` - ([@othiym23](https://github.com/othiym23)) -* [`3901d3c`](https://github.com/npm/npm/commit/3901d3cf191880bb4420b1d6b8aedbcd8fc26cdf) - [#8972](https://github.com/npm/npm/issues/8972) `npm-install-checks@1.0.6` - ([@othiym23](https://github.com/othiym23)) -* [`ffcc7dd`](https://github.com/npm/npm/commit/ffcc7dd12f8bb94ff0f64c465c57e460b3f24a24) - [#8972](https://github.com/npm/npm/issues/8972) `npm-package-arg@4.0.2` - ([@othiym23](https://github.com/othiym23)) -* [`7128f9e`](https://github.com/npm/npm/commit/7128f9ec10c0c8482087511b716dbddb54249626) - [#8972](https://github.com/npm/npm/issues/8972) `npm-registry-client@6.5.1` - ([@othiym23](https://github.com/othiym23)) -* [`af28911`](https://github.com/npm/npm/commit/af28911ecd54a844f848c6ae41887097d6aa2f3b) - [#8972](https://github.com/npm/npm/issues/8972) `read-installed@4.0.2` - ([@othiym23](https://github.com/othiym23)) -* [`3cc817a`](https://github.com/npm/npm/commit/3cc817a0f34f698b580ff6ff02308700efc54f7c) - [#8972](https://github.com/npm/npm/issues/8972) node-gyp needs its own version - of semver - ([@othiym23](https://github.com/othiym23)) -* [`f98eccc`](https://github.com/npm/npm/commit/f98eccc6e3a6699ca0aa9ecbad93a3b995583871) - [#8972](https://github.com/npm/npm/issues/8972) `semver@5.0.1`: Stop including - browser builds. - ([@isaacs](https://github.com/isaacs)) - -#### \*BUMP\* - -And some other version bumps for good measure. - -* [`254ecfb`](https://github.com/npm/npm/commit/254ecfb04f026c2fd16427db01a53600c1892c8b) - [#8990](https://github.com/npm/npm/issues/8990) `marked-man@0.1.5`: Fixes an - issue with documentation rendering where backticks in 2nd-level headers would - break rendering (?!?!) - ([@steveklabnik](https://github.com/steveklabnik)) -* [`79efd79`](https://github.com/npm/npm/commit/79efd79ac216da8cee8636fb2ed926b0196a4eb6) - `minimatch@2.0.10`: A pattern like `'*.!(x).!(y)'` should not match a name - like `'a.xyz.yab'`. - ([@isaacs](https://github.com/isaacs)) -* [`39c7dc9`](https://github.com/npm/npm/commit/39c7dc9a4e17cd35a5ed882ba671821c9a900f9e) - `request@2.60.0`: A few bug fixes and doc updates. - ([@simov](https://github.com/simov)) -* [`72d3c3a`](https://github.com/npm/npm/commit/72d3c3a9e1e461608aa21b14c01a650333330da9) - `rimraf@2.4.2`: Minor doc and dep updates - ([@isaacs](https://github.com/isaacs)) -* [`7513035`](https://github.com/npm/npm/commit/75130356a06f5f4fbec3786aac9f9f0b36dfe010) - `nock@2.9.1` - ([@pgte](https://github.com/pgte)) -* [`3d9aa82`](https://github.com/npm/npm/commit/3d9aa82260f0643a32c13d0c1ed16f644b6fd4ab) - Fixes this thing where Kat decided to save `nock` as a regular dependency ;) - ([@othiym23](https://github.com/othiym23)) - -### v2.13.2 (2015-07-16): - -#### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME! - -Kat: Hooray! Full team again, and we've got a pretty small patch release this -week, about everyone's favorite recurring issue: git URLs! - -Rebecca: No Way! Again? - -Kat: The ride never ends! In the meantime, there's some fun, exciting work in -the background to get orgs and teams out the door. Keep an eye out for news. :) - -Rebecca: And make sure to keep an eye out for patches for the super-fresh -`npm@3`! - -#### LET'S GIT INKY - -Rebecca: So what's this about another git URL issue? - -Kat: Welp, I apparently broke backwards-compatibility on what are actually -invalid `git+https` URLs! So I'm making it work, but we're gonna deprecate URLs -that look like `git+https://user@host:path/is/here`. - -Rebecca: What should we use instead?! - -Kat: Just do me a solid and use `git+ssh://user@host:path/here` or -`git+https://user@host/absolute/https/path` instead! - -* [`769f06e`](https://github.com/npm/npm/commit/769f06e5455d7a9fc738379de2e05868df0dab6f) - Updated tests for `getResolved` so the URLs are run through - `normalize-git-url`. - ([@zkat](https://github.com/zkat)) -* [`edbae68`](https://github.com/npm/npm/commit/edbae685bf48971e878ced373d6825fc1891ee47) - [#8881](https://github.com/npm/npm/issues/8881) Added tests to verify that `git+https:` URLs are handled compatibly. - ([@zkat](https://github.com/zkat)) - -#### NEWS FLASH! DOCUMENTATION IMPROVEMENTS! - -* [`bad4e014`](https://github.com/npm/npm/commit/bad4e0143cc95754a682f1da543b2b4e196e924b) - [#8924](https://github.com/npm/npm/pull/8924) Make sure documented default - values in `lib/cache.js` properly correspond to current code. - ([@watilde](https://github.com/watilde)) -* [`e7a11fd`](https://github.com/npm/npm/commit/e7a11fdf70e333cdfe3dac94a1a30907adb76d59) - [#8036](https://github.com/npm/npm/issues/8036) Clarify the documentation for - `.npmrc` to clarify that it's not read at the project level when doing global - installs. - ([@espadrine](https://github.com/espadrine)) - -#### STAY FRESH~ - -Kat: That's it for npm core changes! - -Rebecca: Great! Let's look at the fresh new dependencies, then! - -Kat: See you all next week! - -Both: Stay Freeesh~ - -(some cat form of Forrest can be seen snoring in the corner) - -* [`bfa1f45`](https://github.com/npm/npm/bfa1f45ee760d05039557d2245b7e3df9fda8def) - `normalize-git-url@3.0.1`: Fixes url normalization such that `git+https:` - accepts scp syntax, but get converted into absolute-path `https:` URLs. Also - fixes scp syntax so you can have absolute paths after the `:` - (`git@myhost.org:/some/absolute/place.git`) - ([@zkat](https://github.com/zkat)) -* [`6f757d2`](https://github.com/npm/npm/6f757d22b53f91da0bebec6b5d16c1f4dbe130b4) - `glob@5.0.15`: Better handling of ENOTSUP - ([@isaacs](https://github.com/isaacs)) -* [`0920819`](https://github.com/npm/npm/09208197fb8b0c6d5dbf6bd7f59970cf366de989) - `node-gyp@2.0.2`: Fixes an issue with long paths on Win32 - ([@TooTallNate](https://github.com/TooTallNate)) - -### v2.13.1 (2015-07-09): - -#### KAUAI WAS NICE. I MISS IT. - -But Forrest's still kinda on vacation, and not just mentally, because he's -hanging out with the fine meatbags at CascadiaFest. Enjoy this small bug -release. - -#### MAKE OURSELVES HAPPY - -* [`40981f2`](https://github.com/npm/npm/commit/40981f2e0c9c12bb003ccf188169afd1d201f5af) - [#8862](https://github.com/npm/npm/issues/8862) Make the lifecycle's safety - check work with scoped packages. ([@tcort](https://github.com/tcort)) -* [`5125856`](https://github.com/npm/npm/commit/512585622481dbbda9a0306932468d59efaff658) - [#8855](https://github.com/npm/npm/issues/8855) Make dependency versions of - `"*"` match `"latest"` when all versions are prerelease. - ([@iarna](https://github.com/iarna)) -* [`22fdc1d`](https://github.com/npm/npm/commit/22fdc1d52602ba7098af978c75fca8f7d1060141) - Visually emphasize the correct way to write lifecycle scripts. - ([@josh-egan](https://github.com/josh-egan)) - -#### MAKE TRAVIS HAPPY - -* [`413c3ac`](https://github.com/npm/npm/commit/413c3ac2ab2437f3011c6ca0d1630109ec14e604) - Use npm's `2.x` branch for testing its `2.x` branch. - ([@iarna](https://github.com/iarna)) -* [`7602f64`](https://github.com/npm/npm/commit/7602f64826f7a465d9f3a20bd87a376d992607e6) - Don't prompt for GnuPG passphrase in version lifecycle tests. - ([@othiym23](https://github.com/othiym23)) - -#### MAKE `npm outdated` HAPPY - -* [`d338668`](https://github.com/npm/npm/commit/d338668601d1ebe5247a26237106e80ea8cd7f48) - [#8796](https://github.com/npm/npm/issues/8796) `fstream-npm@1.0.4`: When packing the - package tarball, npm no longer crashes for packages with certain combinations of - `.npmignore` entries, `.gitignore` entries, and lifecycle scripts. - ([@iarna](https://github.com/iarna)) -* [`dbe7c9c`](https://github.com/npm/npm/commit/dbe7c9c74734be870d16dd61b9e7f746123011f6) - `nock@2.7.0`: Add matching based on query strings. - ([@othiym23](https://github.com/othiym23)) - -There are new versions of `strip-ansi` and `ansi-regex`, but npm only uses them -indirectly, so we pushed them down into their dependencies where they can get -updated at their own pace. - -* [`06b6ca5`](https://github.com/npm/npm/commit/06b6ca5b5333025f10c8d901628859bd4678e027) - undeduplicate `ansi-regex` ([@othiym23](https://github.com/othiym23)) -* [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9) - undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23)) - -### v2.13.0 (2015-07-02): - -#### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS! - -Well, not _everything_. Just a couple of goodies, like the new `npm ping` -command, and the ability to add files to the commits created by `npm version` -with the new version hooks. There's also a couple of bugfixes in `npm` itself -and some of its dependencies. Here we go! - -#### YES HELLO THIS IS NPM REGISTRY SORRY NO DOG HERE - -Yes, that's right! We now have a dedicated `npm ping` command. It's super simple -and super easy. You ping. We tell you whether you pinged right by saying hello -right back. This should help out folks dealing with things like proxy issues or -other registry-access debugging issues. Give it a shot! - -This addresses [#5750](https://github.com/npm/npm/issues/5750), and will help -with the `npm doctor` stuff described in -[#6756](https://github.com/npm/npm/issues/6756). - -* [`f1f7a85`](https://github.com/npm/npm/commit/f1f7a85) - Add ping command to CLI - ([@michaelnisi](https://github.com/michaelnisi)) -* [`8cec629`](https://github.com/npm/npm/commit/8cec629) - Add ping command to npm-registry-client - ([@michaelnisi](https://github.com/michaelnisi)) -* [`0c0c92d`](https://github.com/npm/npm/0c0c92d) - Fixed ping command issues (added docs, tests, fixed minor bugs, etc) - ([@zkat](https://github.com/zkat)) - -#### I'VE WANTED THIS FOR `version` SINCE LIKE LITERALLY FOREVER AND A DAY - -Seriously! This patch lets you add files to the `version` commit before it's -made, So you can add additional metadata files, more automated changes to -`package.json`, or even generate `CHANGELOG.md` automatically pre-commit if -you're into that sort of thing. I'm so happy this is there I can't even. Do you -have other fun usecases for this? Tell -[npmbot (@npmjs)](http://twitter.com/npmjs) about it! - -* [`582f170`](https://github.com/npm/npm/commit/582f170) - [#8620](https://github.com/npm/npm/issues/8620) version: Allow scripts to add - files to the commit. - ([@jamestalmage](https://github.com/jamestalmage)) - -#### ALL YOUR FILE DESCRIPTORS ARE BELONG TO US - -We've had problems in the past with things like `EMFILE` errors popping up when -trying to install packages with a bunch of dependencies. Isaac patched up -[`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to handle this case -better, so we should be seeing fewer of those. - -* [`022691a`](https://github.com/npm/npm/commit/022691a) - `graceful-fs@4.1.2`: Updated so we can monkey patch globally. - ([@isaacs](https://github.com/isaacs)) -* [`c9fb0fd`](https://github.com/npm/npm/commit/c9fb0fd) - Globally monkey-patch graceful-fs. This should fix some errors when installing - packages with lots of dependencies. - ([@isaacs](https://github.com/isaacs)) - -#### READ THE FINE DOCS. THEY'VE IMPROVED - -* [`5587d0d`](https://github.com/npm/npm/commit/5587d0d) - Nice clarification for `directories.bin` - ([@ujane](https://github.com/ujane)) -* [`20673c7`](https://github.com/npm/npm/commit/20673c7) - Hey, Windows folks! Check out - [`nvm-windows`](https://github.com/coreybutler/nvm-windows) - ([@ArtskydJ](https://github.com/ArtskydJ)) - -#### MORE NUMBERS! MORE VALUE! - -* [`5afa2d5`](https://github.com/npm/npm/commit/5afa2d5) - `validate-npm-package-name@2.2.2`: Documented package name rules in README - ([@zeusdeux](https://github.com/zeusdeux)) -* [`021f4d9`](https://github.com/npm/npm/commit/021f4d9) - `rimraf@2.4.1`: [#74](https://github.com/isaacs/rimraf/issues/74) Use async - function for bin (to better handle Window's `EBUSY`) - ([@isaacs](https://github.com/isaacs)) -* [`5223432`](https://github.com/npm/npm/commit/5223432) - `osenv@0.1.3`: Use `os.homedir()` polyfill for more reliable output. io.js - added the function and the polyfill does a better job than the prior solution. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`8ebbc90`](https://github.com/npm/npm/commit/8ebbc90) - `npm-cache-filename@1.0.2`: Make sure different git references get different - cache folders. This should prevent `foo/bar#v1.0` and `foo/bar#master` from - sharing the same cache folder. - ([@tomekwi](https://github.com/tomekwi)) -* [`367b854`](https://github.com/npm/npm/commit/367b854) - `lru-cache@2.6.5`: Minor test/typo changes - ([@isaacs](https://github.com/isaacs)) -* [`9fcae61`](https://github.com/npm/npm/commit/9fcae61) - `glob@5.0.13`: Tiny doc change + stop firing 'match' events for ignored items. - ([@isaacs](https://github.com/isaacs)) - -#### OH AND ONE MORE THING - -* [`7827249`](https://github.com/npm/npm/commit/7827249) - `PeerDependencies` errors now include the package version. - ([@NickHeiner](https://github.com/NickHeiner)) - -### v2.12.1 (2015-06-25): - -#### HEY WHERE DID EVERYBODY GO - -I keep [hearing some commotion](https://github.com/npm/npm/releases/tag/v3.0.0). -Is there something going on? Like, a party or something? Anyway, here's a small -release with at least two significant bug fixes, at least one of which some of -you have been waiting for for quite a while. - -#### REMEMBER WHEN I SAID "REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?"? - -`npm@2.12.0` has a change that introduces a fix for a permissions problem -whereby the `_locks` directory in the cache directory can up being owned by -root. The fix in 2.12.0 takes care of that problem, but introduces a new -problem for Windows users where npm tries to call `process.getuid()`, which -doesn't exist on Windows. It was easy enough to fix (but more or less -impossible to test, thanks to all the external dependencies involved with -permissions and platforms and whatnot), but as a result, Windows users might -want to skip `npm@2.12.0` and go straight to `npm@2.12.1`. Sorry about that! - -* [`7e5da23`](https://github.com/npm/npm/commit/7e5da238ee869201fdb9027c27b79b0f76b440a8) - When using the new, "fixed" cache directory creator, be extra-careful to not - call `process.getuid()` on platforms that lack it. - ([@othiym23](https://github.com/othiym23)) - -#### WHEW! ALL DONE FIXING GIT FOREVER! - -New npm CLI team hero [@zkat](https://github.com/zkat) has finally (FINALLY) -fixed the regression somebody (hi!) introduced a couple months ago whereby git -URLs of the format `git+ssh://user@githost.com:org/repo.git` suddenly stopped -working, and also started being saved (and cached) incorrectly. I am 100% sure -there are absolutely no more bugs in the git caching code at all ever. Mm hm. -Yep. Pretty sure. Maybe. Hmm... I hope. - -*Sighs audibly.* - -[Let us know](http://github.com/npm/npm/issues/new) if we broke something else -with this fix. - -* [`94ca4a7`](https://github.com/npm/npm/commit/94ca4a711619ba8e40ce3d20bc42b13cdb7611b7) - [#8031](https://github.com/npm/npm/issues/8031) Even though - `git+ssh://user@githost.com:org/repo.git` isn't a URL, treat it like one for - the purposes of npm. ([@zkat](https://github.com/zkat)) -* [`e7f56e5`](https://github.com/npm/npm/commit/e7f56e5a97fcf1c52d5c5bee71303b0126129815) - [#8031](https://github.com/npm/npm/issues/8031) `normalize-git-url@2.0.0`: - Handle git URLs (and URL-like remote refs) in a manner consistent with npm's - docs. ([@zkat](https://github.com/zkat)) - -#### YEP, THERE ARE STILL DEPENDENCY UPGRADES - -* [`679bf47`](https://github.com/npm/npm/commit/679bf4745ac2cfbb01c9ce273e189807fd04fa33) - [#40](http://github.com/npm/read-installed/issues/40) `read-installed@4.0.1`: - Handle prerelease versions in top-level dependencies not in `package.json` - without marking those packages as invalid. - ([@benjamn](https://github.com/benjamn)) -* [`3a67410`](https://github.com/npm/npm/commit/3a6741068c9119174c920496778aeee870ebdac0) - `tap@1.3.1` ([@isaacs](https://github.com/isaacs)) -* [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a) - `nopt@3.0.3` ([@isaacs](https://github.com/isaacs)) - -### v2.12.0 (2015-06-18): - -#### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS? - -About [a million people](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+EACCES+_locks) -have filed issues related to having a tough time using npm after they've run -npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all -those permissions problems ages ago! Use this one weird trick and you'll never -have to deal with this again!" - -Well, uh, if you run npm with root the first time you run npm on a machine, it -turns out that the directory npm uses to store lockfiles ends up being owned by -the wrong user (almost always root), and that can, well, it can cause problems -sometimes. By which I mean every time you run npm without being root it'll barf -with `EACCES` errors. Whoops! - -This is an obnoxious regression, and to prevent it from recurring, we've made -it so that the cache, cached git remotes, and the lockfile directories are all -created and maintained using the same utilty module, which not only creates the -relevant paths with the correct permissions, but will fix the permissions on -those directories (if it can) when it notices that they're broken. An `npm -install` run as root ought to be sufficient to fix things up (and if that -doesn't work, first tell us about it, and then run `sudo chown -R $(whoami) -$HOME/.npm`) - -Also, I apologize for inadvertently gaslighting any of you by claiming this bug -wasn't actually a bug. I do think we've got this permanently dealt with now, -but I'll be paying extra-close attention to permissions issues related to the -cache for a while. - -* [`85d1a53`](https://github.com/npm/npm/commit/85d1a53d7b5e0fc04823187e522ae3711ede61fa) - Set permissions on lock directory to the owner of the process. - ([@othiym23](https://github.com/othiym23)) - -#### I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT - -That's not literally true. We spent very little time discussing SPDX, -[@kemitchell](https://github.com/kemitchell) is a champ, and I had a lot of fun -playing drum & bass to a mostly empty Boogie Barn and only ended up with one -moderately severe cold for my pains. Another winner of a NodeConf! (I would -probably wear a SPDX T-shirt if somebody gave me one, though.) - -A bunch of us did have a spirited discussion of the basics of open-source -intellectual property, and the convergence of me, -[@kemitchell](https://github.com/kemitchell), and -[@jandrieu](https://github.com/jandrieu) in one place allowed us to hammmer out -a small but significant issue that had been bedeviling early adopters of the -new SPDX expression syntax in `package.json` license fields: how to deal with -packages that are left without a license on purpose. - -Refer to [the docs](https://github.com/npm/npm/blob/16a3dd545b10f8a2464e2037506ce39124739b41/doc/files/package.json.md#license) -for the specifics, but the short version is that instead of using -`LicenseRef-LICENSE` for proprietary licenses, you can now use either -`UNLICENSED` if you want to make it clear that you don't _want_ your software -to be licensed (and want npm to stop warning you about this), or `SEE LICENSE -IN ` if there's a license with custom text you want to use. At some -point in the near term, we'll be updating npm to verify that the mentioned -file actually exists, but for now you're all on the honor system. - -* [`4827fc7`](https://github.com/npm/npm/commit/4827fc784117c17f35dd9b51b21d1eff6094f661) - [#8557](https://github.com/npm/npm/issues/8557) - `normalize-package-data@2.2.1`: Allow `UNLICENSED` and `SEE LICENSE IN - ` in "license" field of `package.json`. - ([@kemitchell](https://github.com/kemitchell)) -* [`16a3dd5`](https://github.com/npm/npm/commit/16a3dd545b10f8a2464e2037506ce39124739b41) - [#8557](https://github.com/npm/npm/issues/8557) Document the new accepted - values for the "license" field. - ([@kemitchell](https://github.com/kemitchell)) -* [`8155311`](https://github.com/npm/npm/commit/81553119350deaf199e79e38e35b52a5c8ad206c) - [#8557](https://github.com/npm/npm/issues/8557) `init-package-json@1.7.0`: - Support new "license" field values at init time. - ([@kemitchell](https://github.com/kemitchell)) - -#### SMALLISH BUG FIXES - -* [`9d8cac9`](https://github.com/npm/npm/commit/9d8cac94a258db648a2b1069b1c8c6529c79d013) - [#8548](https://github.com/npm/npm/issues/8548) Remove extraneous newline - from `npm view` output, making it easier to use in shell scripts. - ([@eush77](https://github.com/eush77)) -* [`765fd4b`](https://github.com/npm/npm/commit/765fd4bfca8ea3e2a4a399765b17eec40a3d893d) - [#8521](https://github.com/npm/npm/issues/8521) When checking for outdated - packages, or updating packages, raise an error when the registry is - unreachable instead of silently "succeeding". - ([@ryantemple](https://github.com/ryantemple)) - -#### SMALLERISH DOCUMENTATION TWEAKS - -* [`5018335`](https://github.com/npm/npm/commit/5018335ce1754a9f771954ecbc1a93acde9b8c0a) - [#8365](https://github.com/npm/npm/issues/8365) Add details about which git - environment variables are whitelisted by npm. - ([@nmalaguti](https://github.com/nmalaguti)) -* [`bed9edd`](https://github.com/npm/npm/commit/bed9edddfdcc6d22a80feab33b53e4ef9172ec72) - [#8554](https://github.com/npm/npm/issues/8554) Fix typo in version docs. - ([@rainyday](https://github.com/rainyday)) - -#### WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES - -* [`7ce2f06`](https://github.com/npm/npm/commit/7ce2f06f6f34d469b1d2e248084d4f3fef10c05e) - `request@2.58.0`: Refactor tunneling logic, and use `extend` instead of - abusing `util._extend`. ([@simov](https://github.com/simov)) -* [`e6c6195`](https://github.com/npm/npm/commit/e6c61954aad42e20eec49745615c7640b2026a6c) - `nock@2.6.0`: Refined interception behavior. - ([@pgte](https://github.com/pgte)) -* [`9583cc3`](https://github.com/npm/npm/commit/9583cc3cb192c2fced006927cfba7cd37b588605) - `fstream-npm@1.0.3`: Ensure that `main` entry in `package.json` is always - included in the bundled package tarball. - ([@coderhaoxin](https://github.com/coderhaoxin)) -* [`df89493`](https://github.com/npm/npm/commit/df894930f2716adac28740b29b2e863170919990) - `fstream@1.0.7` ([@isaacs](https://github.com/isaacs)) -* [`9744049`](https://github.com/npm/npm/commit/974404934758124aa8ae5b54f7d5257c3bd6b588) - `dezalgo@1.0.3`: `dezalgo` should be usable in the browser, and can be now - that `asap` has been upgraded to be browserifiable. - ([@mvayngrib](https://github.com/mvayngrib)) - -### v2.11.3 (2015-06-11): - -This was a very quiet week. This release was done by -[@iarna](https://github.com/iarna), while the rest of the team hangs out at -NodeConf Adventure! - -#### TESTS IN 0.8 FAIL LESS - -* [`5b3b3c2`](https://github.com/npm/npm/commit/5b3b3c2) - [#8491](//github.com/npm/npm/pull/8491) - Updates a test to use only 0.8 compatible features - ([@watilde](https://github.com/watilde)) - -#### THE TREADMILL OF UPDATES NEVER CEASES - -* [`9f439da`](https://github.com/npm/npm/commit/9f439da) - `spdx@0.4.1`: License range updates - ([@kemitchell](https://github.com/kemitchell)) -* [`2dd055b`](https://github.com/npm/npm/commit/2dd055b) - `normalize-package-data@2.2.1`: Fixes a crashing bug when the package.json - `scripts` property is not an object. - ([@iarna](https://github.com/iarna)) -* [`e02e85d`](https://github.com/npm/npm/commit/e02e85d) - `osenv@0.1.2`: Switches to using the `os-tmpdir` module instead of - `os.tmpdir()` for greate consistency in behavior between node versions. - ([@iarna](https://github.com/iarna)) -* [`a6f0265`](https://github.com/npm/npm/commit/a6f0265) - `ini@1.3.4` ([@isaacs](https://github.com/isaacs)) -* [`7395977`](https://github.com/npm/npm/commit/7395977) - `rimraf@2.4.0` ([@isaacs](https://github.com/isaacs)) - -### v2.11.2 (2015-06-04): - -Another small release this week, brought to you by the latest addition to the -CLI team, [@zkat](https://github.com/zkat) (Hi, all!) - -Mostly small documentation tweaks and version updates. Oh! And `npm outdated` -is actually sorted now. Rejoice! - -It's gonna be a while before we get another palindromic version number. Enjoy it -while it lasts. :3 - -#### QUALITY OF LIFE HAS NEVER BEEN BETTER - -* [`31aada4`](https://github.com/npm/npm/commit/31aada4ccc369c0903ff7f233f464955d12c6fe2) - [#8401](https://github.com/npm/npm/issues/8401) `npm outdated` output is just - that much nicer to consume now, due to sorting by name. - ([@watilde](https://github.com/watilde)) -* [`458a919`](https://github.com/npm/npm/commit/458a91925d8b20c5e672ba71a86745aad654abaf) - [#8469](https://github.com/npm/npm/pull/8469) Explicitly set `cwd` for - `preversion`, `version`, and `postversion` scripts. This makes the scripts - findable relative to the root dir. - ([@alexkwolfe](https://github.com/alexkwolfe)) -* [`55d6d71`](https://github.com/npm/npm/commit/55d6d71562e979e745c9db88861cc39f99b9f3ec) - Ensure package name and version are included in display during `npm version` - lifecycle execution. Gets rid of those little `undefined`s in the console. - ([@othiym23](https://github.com/othiym23)) - -#### WORDS HAVE NEVER BEEN QUITE THIS READABLE - -* [`3901e49`](https://github.com/npm/npm/commit/3901e4974c800e7f9fba4a5b2ff88da1126d5ef8) - [#8462](https://github.com/npm/npm/pull/8462) English apparently requires - correspondence between indefinite articles and attached nouns. - ([@Enet4](https://github.com/Enet4)) -* [`5a744e4`](https://github.com/npm/npm/commit/5a744e4b143ef7b2f50c80a1d96fdae4204d452b) - [#8421](https://github.com/npm/npm/pull/8421) The effect of `npm prune`'s - `--production` flag and how to use it have been documented a bit better. - ([@foiseworth](https://github.com/foiseworth)) -* [`eada625`](https://github.com/npm/npm/commit/eada625993485f0a2c5324b06f02bfa0a95ce4bc) - We've updated our `.mailmap` and `AUTHORS` files to make sure credit is given - where credit is due. ([@othiym23](https://github.com/othiym23)) - -#### VERSION NUMBERS HAVE NEVER BEEN BIGGER - -* [`c929fd1`](https://github.com/npm/npm/commit/c929fd1d0604b5878ed05706447e078d3e41f5b3) - `readable-stream@1.1.13`: Manually deduped `v1.1.13` (streams3) to make - deduping more reliable on `npm@<3`. ([@othiym23](https://github.com/othiym23)) -* [`a9b4b78`](https://github.com/npm/npm/commit/a9b4b78dcc85571fd1cdd737903f7f37a5e6a755) - `request@2.57.0`: Replace dependency on IncomingMessage's `.client` with - `.socket` as the former was deprecated in io.js 2.2.0. - ([@othiym23](https://github.com/othiym23)) -* [`4b5e557`](https://github.com/npm/npm/commit/4b5e557a23cdefd521ad154111e3d4dcc81f1cdb) - `abbrev@1.0.7`: Better testing, with coverage. - ([@othiym23](https://github.com/othiym23)) -* [`561affe`](https://github.com/npm/npm/commit/561affee21df9bbea5a47298f2452f533be8f359) - `semver@4.3.6`: .npmignore added for less cruft, and better testing, with coverage. - ([@othiym23](https://github.com/othiym23)) -* [`60aef3c`](https://github.com/npm/npm/commit/60aef3cf5d84d757752db3eb8ede2cb385469e7b) - `graceful-fs@3.0.8`: io.js fixes. - ([@zkat](https://github.com/zkat)) -* [`f8bd453`](https://github.com/npm/npm/commit/f8bd453b1a1c46ba7666cb166595e8a011eae443) - `config-chain@1.1.9`: Added MIT license to package.json - ([@zkat](https://github.com/zkat)) - -### v2.11.1 (2015-05-28): - -This release brought to you from poolside at the Omni Amelia Island Resort and -JSConf 2015, which is why it's so tiny. - -#### CONFERENCE WIFI CAN'T STOP THESE BUG FIXES - -* [`cf109a6`](https://github.com/npm/npm/commit/cf109a682f38a059a994da953d5c1b4aaece5e2f) - [#8381](https://github.com/npm/npm/issues/8381) Documented a subtle gotcha - with `.npmrc`, which is that it needs to have its permissions set such that - only the owner can read or write the file. - ([@colakong](https://github.com/colakong)) -* [`180da67`](https://github.com/npm/npm/commit/180da67c9fa53103d625e2f031626c2453c7ebcd) - [#8365](https://github.com/npm/npm/issues/8365) Git 2.3 adds support for - `GIT_SSH_COMMAND`, which allows you to pass an explicit git command (with, - for example, a specific identity passed in on the command line). - ([@nmalaguti](https://github.com/nmalaguti)) - -#### MY (VIRGIN) PINA COLADA IS GETTING LOW, BETTER UPGRADE THESE DEPENDENCIES - -* [`b72de41`](https://github.com/npm/npm/commit/b72de41c5cc9f0c46d3fa8f062c75bd273641474) - `node-gyp@2.0.0`: Use a newer version of `gyp`, and generally improve support - for Visual Studios and Windows. - ([@TooTallNate](https://github.com/TooTallNate)) -* [`8edbe21`](https://github.com/npm/npm/commit/8edbe210af41e8f248f5bb92c72de92f54fda3b1) - `node-gyp@2.0.1`: Don't crash when Python's version doesn't parse as valid - semver. ([@TooTallNate](https://github.com/TooTallNate)) -* [`ba0e0a8`](https://github.com/npm/npm/commit/ba0e0a845a4f29717aba566b416a27d1a22f5d08) - `glob@5.0.10`: Add coverage to tests. ([@isaacs](https://github.com/isaacs)) -* [`7333701`](https://github.com/npm/npm/commit/7333701b5d4f01673f37d64992c63c4e15864d6d) - `request@2.56.0`: Bug fixes and dependency upgrades. - ([@simov](https://github.com/simov)) - -### v2.11.0 (2015-05-21): - -For the first time in a very long time, we've added new events to the life -cycle used by `npm run-script`. Since running `npm version (major|minor|patch)` -is typically the last thing many developers do before publishing their updated -packages, it makes sense to add life cycle hooks to run tests or otherwise -preflight the package before doing a full publish. Thanks, as always, to the -indefatigable [@watilde](https://github.com/watilde) for yet another great -usability improvement for npm! - -#### FEATURELETS - -* [`b07f7c7`](https://github.com/npm/npm/commit/b07f7c7c1e5021730b3c320f1b3a46e70f8a21ff) - [#7906](https://github.com/npm/npm/issues/7906) - Add new [`scripts`](https://github.com/npm/npm/blob/master/doc/misc/npm-scripts.md) to - allow you to run scripts before and after - the [`npm version`](https://github.com/npm/npm/blob/master/doc/cli/npm-version.md) - command has run. This makes it easy to, for instance, require that your - test suite passes before bumping the version by just adding `"preversion": - "npm test"` to the scripts section of your `package.json`. - ([@watilde](https://github.com/watilde)) -* [`8a46136`](https://github.com/npm/npm/commit/8a46136f42e416cbadb533bcf89d73d681ed421d) - [#8185](https://github.com/npm/npm/issues/8185) - When we get a "not found" error from the registry, we'll now check to see - if the package name you specified is invalid and if so, give you a better - error message. ([@thefourtheye](https://github.com/thefourtheye)) - -#### BUG FIXES - -* [`9bcf573`](https://github.com/npm/npm/commit/9bcf5730bd0316f210dafea898afe9103849cea9) - [#8324](https://github.com/npm/npm/pull/8324) On Windows, when you've configured a - custom `node-gyp`, run it with node itself instead of using the default open action (which - is almost never what you want). ([@bangbang93](https://github.com/bangbang93)) -* [`1da9b04`](https://github.com/npm/npm/commit/1da9b0411d3416c7fca17d08cbbcfca7ae86e92d) - [#7195](https://github.com/npm/npm/issues/7195) - [#7260](https://github.com/npm/npm/issues/7260) `npm-registry-client@6.4.0`: - (Re-)allow publication of existing mixed-case packages (part 1). - ([@smikes](https://github.com/smikes)) -* [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) - [#7195](https://github.com/npm/npm/issues/7195) - [#7260](https://github.com/npm/npm/issues/7260) - `normalize-package-data@2.2.0`: (Re-)allow publication of existing mixed-case - packages (part 2). ([@smikes](https://github.com/smikes)) - -#### DOCUMENTATION IMPROVEMENTS - -* [`f62ee05`](https://github.com/npm/npm/commit/f62ee05333b141539a8e851c620dd2e82ff06860) - [#8314](https://github.com/npm/npm/issues/8314) Update the README to warn - folks away from using the CLI's internal API. For the love of glob, just use a - child process to run the CLI! ([@claycarpenter](https://github.com/claycarpenter)) -* [`1093921`](https://github.com/npm/npm/commit/1093921c04db41ab46db24a170a634a4b2acd8d9) - [#8279](https://github.com/npm/npm/pull/8279) - Update the documentation to note that, yes, you can publish scoped packages to the - public registry now! ([@mantoni](https://github.com/mantoni)) -* [`f87cde5`](https://github.com/npm/npm/commit/f87cde5234a760d3e515ffdaacaed6f5b71dbf44) - [#8292](https://github.com/npm/npm/pull/8292) - Fix typo in an example and grammar in the description in - the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md). - ([@vshih](https://github.com/vshih)) -* [`d3526ce`](https://github.com/npm/npm/commit/d3526ceb09a0c29fdb7d4124536ae09057d033e7) - Improve the formatting in - the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md). - ([@othiym23](https://github.com/othiym23)) -* [`19fe6d2`](https://github.com/npm/npm/commit/19fe6d20883e28956ff916fe4dae42d73ee6195b) - [#8311](https://github.com/npm/npm/pull/8311) - Update [README.md](https://github.com/npm/npm#readme) to use syntax highlighting in - its code samples and bits of shell scripts. ([@SimenB](https://github.com/SimenB)) - -#### DEPENDENCY UPDATES! ALWAYS AND FOREVER! - -* [`fc52160`](https://github.com/npm/npm/commit/fc52160d0223226fffe4166f42fdfd3b899b3c1e) - [#4700](https://github.com/npm/npm/issues/4700) [#5044](https://github.com/npm/npm/issues/5044) - `init-package-json@1.6.0`: Make entering an invalid version while running `npm init` give - you an immediate error and prompt you to correct it. ([@watilde](https://github.com/watilde)) -* [`738853e`](https://github.com/npm/npm/commit/738853eb1f55636476a2a410c2c04732eec9d51e) - [#7763](https://github.com/npm/npm/issues/7763) `fs-write-stream-atomic@1.0.3`: Fix a bug - where errors would not propagate, making error messages unhelpful. - ([@iarna](https://github.com/iarna)) -* [`6d74a2d`](https://github.com/npm/npm/commit/6d74a2d2ac7f92750cf6a2cfafae1af23b569098) - `npm-package-arg@4.0.1`: Fix tests on windows ([@Bacra](https://github.com)) and with - more recent `hosted-git-info`. ([@iarna](https://github.com/iarna)) -* [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) - `hosted-git-info@2.1.4`: Correct spelling in its documentation. - ([@iarna](https://github.com/iarna)) -* [`d7956ca`](https://github.com/npm/npm/commit/d7956ca17c057d5383ff0d3fc5cf6ac2940b034d) - `glob@5.0.7`: Fix a bug where unusual error conditions could make - further use of the module fail. ([@isaacs](https://github.com/isaacs)) -* [`44f7d74`](https://github.com/npm/npm/commit/44f7d74c5d3181d37da7ea7949c86b344153f8d9) - `tap@1.1.0`: Update to the most recent tap to get a whole host of bug - fixes and integration with [coveralls](https://coveralls.io/). - ([@isaacs](https://github.com/isaacs)) -* [`c21e8a8`](https://github.com/npm/npm/commit/c21e8a8d94bcf0ad79dc583ddc53f8366d4813b3) - `nock@2.2.0` ([@othiym23](https://github.com/othiym23)) - -#### LICENSE FILES FOR THE LICENSE GOD - -* Add missing ISC license file to package ([@kasicka](https://github.com/kasicka)): - * [`aa9908c`](https://github.com/npm/npm/commit/aa9908c20017729673b9d410b77f9a16b7aae8a4) `realize-package-specifier@3.0.1` - * [`23a3b1a`](https://github.com/npm/npm/commit/23a3b1a726b9176c70ce0ccf3cd9d25c54429bdf) `fs-vacuum@1.2.6` - * [`8e04bba`](https://github.com/npm/npm/commit/8e04bba830d4353d84751d21803cd127c96153a7) `dezalgo@1.0.2` - * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) `hosted-git-info@2.1.4` - * [`6a54917`](https://github.com/npm/npm/commit/6a54917fbd4df995495a95d4b548defd44b77c93) `write-file-atomic@1.1.2` - * [`971f92c`](https://github.com/npm/npm/commit/971f92c4a4e5514217d1e4db45d1ccf71a60ff19) `async-some@1.0.2` - * [`67b50b7`](https://github.com/npm/npm/commit/67b50b7667a42bb3340a660eb2e617e1a554d2d4) `normalize-git-url@1.0.1` - -#### SPDX LICENSE UPDATES - -* Switch license to - [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) from - plain "BSD" ([@isaacs](https://github.com/isaacs)): - * [`efdb733`](https://github.com/npm/npm/commit/efdb73332eeedcad4c609796929070b62abb37ab) `npm-user-validate@0.1.2` - * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) `normalize-package-data@2.2.0` -* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from - [BSD](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) - ([@isaacs](https://github.com/isaacs)): - * [`c300956`](https://github.com/npm/npm/commit/c3009565a964f0ead4ac4ab234b1a458e2365f17) `block-stream@0.0.8` - * [`1de1253`](https://github.com/npm/npm/commit/1de125355765fecd31e682ed0ff9d2edbeac0bb0) `lockfile@1.0.1` - * [`0d5698a`](https://github.com/npm/npm/commit/0d5698ab132e376c7aec93ae357c274932116220) `osenv@0.1.1` - * [`2e84921`](https://github.com/npm/npm/commit/2e84921474e1ffb18de9fce4616e73171fa8046d) `abbrev@1.0.6` - * [`872fac9`](https://github.com/npm/npm/commit/872fac9d10c11607e4d0348c08a683b84e64d30b) `chmodr@0.1.1` - * [`01eb7f6`](https://github.com/npm/npm/commit/01eb7f60acba584346ad8aae846657899f3b6887) `chownr@0.0.2` - * [`294336f`](https://github.com/npm/npm/commit/294336f0f31c7b9fe31a50075ed750db6db134d1) `read@1.0.6` - * [`ebdf6a1`](https://github.com/npm/npm/commit/ebdf6a14d17962cdb7128402c53b452f91d44ca7) `graceful-fs@3.0.7` -* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from - [MIT](http://spdx.org/licenses/MIT.html#licenseText) - ([@isaacs](https://github.com/isaacs)): - * [`e5d237f`](https://github.com/npm/npm/commit/e5d237fc0f436dd2a89437ebf8a9632a2e35ccbe) `nopt@3.0.2` - * [`79fef14`](https://github.com/npm/npm/commit/79fef1421b78f044980f0d1bf0e97039b6992710) `rimraf@2.3.4` - * [`22527da`](https://github.com/npm/npm/commit/22527da4816e7c2746cdc0317c5fb4a85152d554) `minimatch@2.0.8` - * [`882ac87`](https://github.com/npm/npm/commit/882ac87a6c4123ca985d7ad4394ea5085e5b0ef5) `lru-cache@2.6.4` - * [`9d9d015`](https://github.com/npm/npm/commit/9d9d015a2e972f68664dda54fbb204db28b21ede) `npmlog@1.2.1` - -### v2.10.1 (2015-05-14): - -#### BUG FIXES & DOCUMENTATION TWEAKS - -* [`dc77520`](https://github.com/npm/npm/commit/dc7752013ffce13a3d3f13e518a0052c22fc1158) - When getting back a 404 from a request to a private registry that uses a - registry path that extends past the root - (`http://registry.enterprise.co/path/to/registry`), display the name of the - nonexistent package, rather than the first element in the registry API path. - Sorry, Artifactory users! ([@hayes](https://github.com/hayes)) -* [`f70dea9`](https://github.com/npm/npm/commit/f70dea9b4766f6eaa55012c3e8087e9cb04fd4ce) - Make clearer that `--registry` can be used on a per-publish basis to push a - package to a non-default registry. ([@mischkl](https://github.com/mischkl)) -* [`a3e26f5`](https://github.com/npm/npm/commit/a3e26f5b4465991a941a325468ab7725670d2a94) - Did you know that GitHub shortcuts can have commit-ishes included - (`org/repo#branch`)? They can! ([@iarna](https://github.com/iarna)) -* [`0e2c091`](https://github.com/npm/npm/commit/0e2c091a539b61fdc60423b6bbaaf30c24e4b1b8) - Some errors from `readPackage` were being swallowed, potentially leading to - invalid package trees on disk. ([@smikes](https://github.com/smikes)) - -#### DEPENDENCY UPDATES! STILL! MORE! AGAIN! - -* [`0b901ad`](https://github.com/npm/npm/commit/0b901ad0811d84dda6ca0755a9adc8d47825edd0) - `lru-cache@2.6.3`: Removed some cruft from the published package. - ([@isaacs](https://github.com/isaacs)) -* [`d713e0b`](https://github.com/npm/npm/commit/d713e0b14930c563e3fdb6ac6323bae2a8924652) - `mkdirp@0.5.1`: Made compliant with `standard`, dropped support for Node 0.6, - added (Travis) support for Node 0.12 and io.js. - ([@isaacs](https://github.com/isaacs)) -* [`a2d6578`](https://github.com/npm/npm/commit/a2d6578b6554c5c9d48fe2006751759f4da57520) - `glob@1.0.3`: Updated to use `tap@1`. ([@isaacs](https://github.com/isaacs)) -* [`64cd1a5`](https://github.com/npm/npm/commit/64cd1a570aaa5f24ccba190948ec9456297c97f5) - `fstream@ 1.0.6`: Made compliant with [`standard`](http://npm.im/standard) - (done by [@othiym23](https://github.com/othiym23), and then debugged and - fixed by [@iarna](https://github.com/iarna)), and license changed to ISC. - ([@othiym23](https://github.com/othiym23) / - [@iarna](https://github.com/iarna)) -* [`b527a7c`](https://github.com/npm/npm/commit/b527a7c2ba3c4002f443dd2c536ff4ff41a38b86) - `which@1.1.1`: Callers can pass in their own `PATH` instead of relying on - `process.env`. ([@isaacs](https://github.com/isaacs)) - -### v2.10.0 (2015-05-8): - -#### THE IMPLICATIONS ARE MORE PROFOUND THAN THEY APPEAR - -If you've done much development in The Enterprise®™, you know that keeping -track of software licenses is far more important than one might expect / hope / -fear. Tracking licenses is a hassle, and while many (if not most) of us have -(reluctantly) gotten around to setting a license to use by default with all our -new projects (even if it's just WTFPL), that's about as far as most of us think -about it. In big enterprise shops, ensuring that projects don't inadvertently -use software with unacceptably encumbered licenses is serious business, and -developers spend a surprising (and appalling) amount of time ensuring that -licensing is covered by writing automated checkers and other license auditing -tools. - -The Linux Foundation has been working on a machine-parseable syntax for license -expressions in the form of [SPDX](https://spdx.org/), an appropriately -enterprisey acronym. IP attorney and JavaScript culture hero [Kyle -Mitchell](http://kemitchell.com/) has put a considerable amount of effort into -bringing SPDX to JavaScript and Node. He's written -[`spdx.js`](https://github.com/kemitchell/spdx.js), a JavaScript SPDX -expression parser, and has integrated it into npm in a few different ways. - -For you as a user of npm, this means: - -* npm now has proper support for dual licensing in `package.json`, due to - SPDX's compound expression syntax. Run `npm help package.json` for details. -* npm will warn you if the `package.json` for your project is either missing a - `"license"` field, or if the value of that field isn't a valid SPDX - expression (pro tip: `"BSD"` becomes `"BSD-2-Clause"` in SPDX (unless you - really want one of its variants); `"MIT"` and `"ISC"` are fine as-is; the - [full list](https://github.com/shinnn/spdx-license-ids/blob/master/spdx-license-ids.json) - is its own package). -* `npm init` now demands that you use a valid SPDX expression when using it - interactively (pro tip: I mostly use `npm init -y`, having previously run - `npm config set init.license=MIT` / `npm config set init.author.email=foo` / - `npm config set init.author.name=me`). -* The documentation for `package.json` has been updated to tell you how to use - the `"license"` field properly with SPDX. - -In general, this shouldn't be a big deal for anybody other than people trying -to run their own automated license validators, but in the long run, if -everybody switches to this format, many people's lives will be made much -simpler. I think this is an important improvement for npm and am very thankful -to Kyle for taking the lead on this. Also, even if you think all of this is -completely stupid, just [choose a license](http://en.wikipedia.org/wiki/License-free_software) -anyway. Future you will thank past you someday, unless you are -[djb](http://cr.yp.to/), in which case you are djb, and more power to you. - -* [`8669f7d`](https://github.com/npm/npm/commit/8669f7d88c472ccdd60e140106ac43cca636a648) - [#8179](https://github.com/npm/npm/issues/8179) Document how to use SPDX in - `license` stanzas in `package.json`, including how to migrate from old busted - license declaration arrays to fancy new compound-license clauses. - ([@kemitchell](https://github.com/kemitchell)) -* [`98ad98c`](https://github.com/npm/npm/commit/98ad98cb11f3d3ba29a488ef1ab050b066d9c7f6) - [#8197](https://github.com/npm/npm/issues/8197) `init-package-json@1.5.0` - Ensure that packages bootstrapped with `npm init` use an SPDX-compliant - license expression. ([@kemitchell](https://github.com/kemitchell)) -* [`2ad3905`](https://github.com/npm/npm/commit/2ad3905e9139b0be2b22accf707b814469de813e) - [#8197](https://github.com/npm/npm/issues/8197) - `normalize-package-data@2.1.0`: Warn when a package is missing a license - declaration, or using a license expression that isn't valid SPDX. - ([@kemitchell](https://github.com/kemitchell)) -* [`127bb73`](https://github.com/npm/npm/commit/127bb73ccccc59a1267851c702d8ebd3f3a97e81) - [#8197](https://github.com/npm/npm/issues/8197) `tar@2.1.1`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) -* [`e9a933a`](https://github.com/npm/npm/commit/e9a933a9148180d9d799f99f4154f5110ff2cace) - [#8197](https://github.com/npm/npm/issues/8197) `once@1.3.2`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) -* [`412401f`](https://github.com/npm/npm/commit/412401fb6a19b18f3e02d97a24d4dafed650c186) - [#8197](https://github.com/npm/npm/issues/8197) `semver@4.3.4`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) - -As a corollary to the previous changes, I've put some work into making `npm -install` spew out fewer pointless warnings about missing values in transitive -dependencies. From now on, npm will only warn you about missing READMEs, -license fields, and the like for top-level projects (including packages you -directly install into your application, but we may relax that eventually). - -Practically _nobody_ liked having those warnings displayed for child -dependencies, for the simple reason that there was very little that anybody -could _do_ about those warnings, unless they happened to be the maintainers of -those dependencies themselves. Since many, many projects don't have -SPDX-compliant licenses, the number of warnings reached a level where they ran -the risk of turning into a block of visual noise that developers (read: me, and -probably you) would ignore forever. - -So I fixed it. If you still want to see the messages about child dependencies, -they're still there, but have been pushed down a logging level to `info`. You -can display them by running `npm install -d` or `npm install --loglevel=info`. - -* [`eb18245`](https://github.com/npm/npm/commit/eb18245f55fb4cd62a36867744bcd1b7be0a33e2) - Only warn on normalization errors for top-level dependencies. Transitive - dependency validation warnings are logged at `info` level. - ([@othiym23](https://github.com/othiym23)) - -#### BUG FIXES - -* [`e40e809`](https://github.com/npm/npm/commit/e40e8095d2bc9fa4eb8f01aa22067e0068fa8a54) - `tap@1.0.1`: TAP: The Next Generation. Fix up many tests to they work - properly with the new major version of `node-tap`. Look at all the colors! - ([@isaacs](https://github.com/isaacs)) -* [`f9314e9`](https://github.com/npm/npm/commit/f9314e97d26532c0ef2b03e98f3ed300b7cd5026) - `nock@1.9.0`: Minor tweaks and bug fixes. ([@pgte](https://github.com/pgte)) -* [`45c2b1a`](https://github.com/npm/npm/commit/45c2b1aaa051733fa352074994ae6e569fd51e8b) - [#8187](https://github.com/npm/npm/issues/8187) `npm ls` wasn't properly - recognizing dependencies installed from GitHub repositories as git - dependencies, and so wasn't displaying them as such. - ([@zornme](https://github.com/zornme)) -* [`1ab57c3`](https://github.com/npm/npm/commit/1ab57c38116c0403965c92bf60121f0f251433e4) - In some cases, `npm help` was using something that looked like a regular - expression where a glob pattern should be used, and vice versa. - ([@isaacs](https://github.com/isaacs)) - -### v2.9.1 (2015-04-30): - -#### WOW! MORE GIT FIXES! YOU LOVE THOSE! - -The first item below is actually a pretty big deal, as it fixes (with a -one-word change and a much, much longer test case (thanks again, -[@iarna](https://github.com/iarna))) a regression that's been around for months -now. If you're depending on multiple branches of a single git dependency in a -single project, you probably want to check out `npm@2.9.1` and verify that -things (again?) work correctly in your project. - -* [`178a6ad`](https://github.com/npm/npm/commit/178a6ad540215820d16217465a5f220d8c95a313) - [#7202](https://github.com/npm/npm/issues/7202) When caching git - dependencies, do so by the whole URL, including the branch name, so that if a - single application depends on multiple branches from the same repository (in - practice, multiple version tags), every install is of the correct version, - instead of reusing whichever branch the caching process happened to check out - first. ([@iarna](https://github.com/iarna)) -* [`63b79cc`](https://github.com/npm/npm/commit/63b79ccde092a9cb3b1f34abe43e1d2ba69c0dbf) - [#8084](https://github.com/npm/npm/issues/8084) Ensure that Bitbucket, - GitHub, and Gitlab dependencies are installed the same way as non-hosted git - dependencies, fixing `npm install --link`. - ([@laiso](https://github.com/laiso)) - -#### DOCUMENTATION FIXES AND TWEAKS - -These changes may seem simple and small (except Lin's fix to the package name -restrictions, which was more an egregious oversight on our part), but cleaner -documentation makes npm significantly more pleasant to use. I really appreciate -all the typo fixes, clarifications, and formatting tweaks people send us, and -am delighted that we get so many of these pull requests. Thanks, everybody! - -* [`ca478dc`](https://github.com/npm/npm/commit/ca478dcaa29b8f07cd6fe515a3c4518166819291) - [#8137](https://github.com/npm/npm/issues/8137) Somehow, we had failed to - clearly document the full restrictions on package names. - [@linclark](https://github.com/linclark) has now fixed that, although we will - take with us to our graves the reasons why the maximum package name length is 214 - characters (well, OK, it was that that was the longest name in the registry - when we decided to put a cap on the name length). - ([@linclark](https://github.com/linclark)) -* [`b574076`](https://github.com/npm/npm/commit/b5740767c320c1eff3576a8d63952534a0fbb936) - [#8079](https://github.com/npm/npm/issues/8079) Make the `npm shrinkwrap` - documentation use code formatting for examples consistently. It would be - great to do this for more commands HINT HINT. - ([@RichardLitt](https://github.com/RichardLitt)) -* [`1ff636e`](https://github.com/npm/npm/commit/1ff636e2db3852a53e38c866fed7eafdacd307fc) - [#8105](https://github.com/npm/npm/issues/8105) Document that the global - `npmrc` goes in `$PREFIX/etc/npmrc`, instead of `$PREFIX/npmrc`. - ([@anttti](https://github.com/anttti)) -* [`c3f2f7c`](https://github.com/npm/npm/commit/c3f2f7c299342e1c1eccc55a976a63c607f51621) - [#8127](https://github.com/npm/npm/issues/8127) Document how to use `npm run - build` directly (hint: it's different from `npm build`!). - ([@mikemaccana](https://github.com/mikemaccana)) -* [`873e467`](https://github.com/npm/npm/commit/873e46757e1986761b15353f94580a071adcb383) - [#8069](https://github.com/npm/npm/issues/8069) Take the old, dead npm - mailing list address out of `package.json`. It seems that people don't have - much trouble figuring out how to report errors to npm. - ([@robertkowalski](https://github.com/robertkowalski)) - -#### ENROBUSTIFICATIONMENT - -* [`5abfc9c`](https://github.com/npm/npm/commit/5abfc9c9017da714e47a3aece750836b4f9af6a9) - [#7973](https://github.com/npm/npm/issues/7973) `npm run-script` completion - will only suggest run scripts, instead of including dependencies. If for some - reason you still wanted it to suggest dependencies, let us know. - ([@mantoni](https://github.com/mantoni)) -* [`4b564f0`](https://github.com/npm/npm/commit/4b564f0ce979dc74c09604f4d46fd25a2ee63804) - [#8081](https://github.com/npm/npm/issues/8081) Use `osenv` to parse the - environment's `PATH` in a platform-neutral way. - ([@watilde](https://github.com/watilde)) -* [`a4b6238`](https://github.com/npm/npm/commit/a4b62387b41848818973eeed056fd5c6570274f3) - [#8094](https://github.com/npm/npm/issues/8094) When we refactored the - configuration code to split out checking for IPv4 local addresses, we - inadvertently completely broke it by failing to return the values. In - addition, just the call to `os.getInterfaces()` could throw on systems where - querying the network configuration requires elevated privileges (e.g. Amazon - Lambda). Add the return, and trap errors so they don't cause npm to explode. - Thanks to [@mhart](https://github.com/mhart) for bringing this to our - attention! ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES WAIT FOR NO SOPHONT - -* [`000cd8b`](https://github.com/npm/npm/commit/000cd8b52104942ac3404f0ad0651d82f573da37) - `rimraf@2.3.3`: More informative assertions on argument validation failure. - ([@isaacs](https://github.com/isaacs)) -* [`530a2e3`](https://github.com/npm/npm/commit/530a2e369128270f3e098f0e9be061533003b0eb) - `lru-cache@2.6.2`: Revert to old key access-time behavior, as it was correct - all along. ([@isaacs](https://github.com/isaacs)) -* [`d88958c`](https://github.com/npm/npm/commit/d88958ca02ce81b027b9919aec539d0145875a59) - `minimatch@2.0.7`: Feature detection and test improvements. - ([@isaacs](https://github.com/isaacs)) -* [`3fa39e4`](https://github.com/npm/npm/commit/3fa39e4d492609d5d045033896dcd99f7b875329) - `nock@1.7.1` ([@pgte](https://github.com/pgte)) - -### v2.9.0 (2015-04-23): - -This week was kind of a breather to concentrate on fixing up the tests on the -`multi-stage` branch, and not mess with git issues for a little while. -Unfortunately, There are now enough severe git issues that we'll probably have -to spend another couple weeks tackling them. In the meantime, enjoy these two -small features. They're just enough to qualify for a semver-minor bump: - -#### NANOFEATURES - -* [`2799322`](https://github.com/npm/npm/commit/279932298ce5b589c5eea9439ac40b88b99c6a4a) - [#7426](https://github.com/npm/npm/issues/7426) Include local modules in `npm - outdated` and `npm update`. ([@ArnaudRinquin](https://github.com/ArnaudRinquin)) -* [`2114862`](https://github.com/npm/npm/commit/21148620fa03a582f4ec436bb16bd472664f2737) - [#8014](https://github.com/npm/npm/issues/8014) The prefix used before the - version on version tags is now configurable via `tag-version-prefix`. Be - careful with this one and read the docs before using it. - ([@kkragenbrink](https://github.com/kkragenbrink)) - -#### OTHER MINOR TWEAKS - -* [`18ce0ec`](https://github.com/npm/npm/commit/18ce0ecd2d94ad3af01e997f1396515892dd363c) - [#3032](https://github.com/npm/npm/issues/3032) `npm unpublish` will now use - the registry set in `package.json`, just like `npm publish`. This only - applies, for now, when unpublishing the entire package, as unpublishing a - single version requires the name be included on the command line and - therefore doesn't read from `package.json`. ([@watilde](https://github.com/watilde)) -* [`9ad2100`](https://github.com/npm/npm/commit/9ad210042242e51d52b2a8b633d8e59248f5faa4) - [#8008](https://github.com/npm/npm/issues/8008) Once again, when considering - what to install on `npm install`, include `devDependencies`. - ([@smikes](https://github.com/smikes)) -* [`5466260`](https://github.com/npm/npm/commit/546626059909dca1906454e820ca4e315c1795bd) - [#8003](https://github.com/npm/npm/issues/8003) Clarify the documentation - around scopes to make it easier to understand how they support private - packages. ([@smikes](https://github.com/smikes)) - -#### DEPENDENCIES WILL NOT STOP UNTIL YOU ARE VERY SLEEPY - -* [`faf65a7`](https://github.com/npm/npm/commit/faf65a7bbb2fad13216f64ed8f1243bafe743f97) - `init-package-json@1.4.2`: If there are multiple validation errors and - warnings, ensure they all get displayed (includes a rad new way of testing - `init-package-json` contributed by - [@michaelnisi](https://github.com/michaelnisi)). - ([@MisumiRize](https://github.com/MisumiRize)) -* [`7f10f38`](https://github.com/npm/npm/commit/7f10f38d29a8423d7cde8103fa7b64ac728da1e0) - `editor@1.0.0`: `1.0.0` is literally more than `0.1.0` (no change aside from - version number). ([@substack](https://github.com/substack)) -* [`4979af3`](https://github.com/npm/npm/commit/4979af3fcae5a3962383b7fdad3162381e62eefe) - [#6805](https://github.com/npm/npm/issues/6805) `npm-registry-client@6.3.3`: - Decode scoped package names sent by the registry so they look nicer. - ([@mmalecki](https://github.com/mmalecki)) - -### v2.8.4 (2015-04-16): - -This is the fourth release of npm this week, so it's mostly just landing a few -small outstanding PRs on dependencies and some tiny documentation tweaks. -`npm@2.8.3` is where the real action is. - -* [`ee2bd77`](https://github.com/npm/npm/commit/ee2bd77f3c64d38735d1d31028224a5c40422a9b) - [#7983](https://github.com/npm/npm/issues/7983) `tar@2.1.0`: Better error - reporting in corrupted tar files, and add support for the `fromBase` flag - (rescued from the dustbin of history by - [@deanmarano](https://github.com/deanmarano)). - ([@othiym23](https://github.com/othiym23)) -* [`d8eee6c`](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af) - `init-package-json@1.4.1`: Add support for a default author, and only add - scope to a package name once. ([@othiym23](https://github.com/othiym23)) -* [`4fc5d98`](https://github.com/npm/npm/commit/4fc5d98b785f601c60d4dc0a2c8674f0cccf6262) - `lru-cache@2.6.1`: Small tweaks to cache value aging and entry counting that - are irrelevant to npm. ([@isaacs](https://github.com/isaacs)) -* [`1fe5840`](https://github.com/npm/npm/commit/1fe584089f5bef133de5518aa26eaf6064be2bf7) - [#7946](https://github.com/npm/npm/issues/7946) Make `npm init` text - friendlier. ([@sandfox](https://github.com/sandfox)) - -### v2.8.3 (2015-04-15): - -#### TWO SMALL GIT TWEAKS - -This is the last of a set of releases intended to ensure npm's git support is -robust enough that we can stop working on it for a while. These fixes are -small, but prevent a common crasher and clear up one of the more confusing -error messages coming out of npm when working with repositories hosted on git. - -* [`387f889`](https://github.com/npm/npm/commit/387f889c0e8fb617d9cc9a42ed0a3ec49424ab5d) - [#7961](https://github.com/npm/npm/issues/7961) Ensure that hosted git SSH - URLs always have a valid protocol when stored in `resolved` fields in - `npm-shrinkwrap.json`. ([@othiym23](https://github.com/othiym23)) -* [`394c2f5`](https://github.com/npm/npm/commit/394c2f5a1227232c0baf42fbba1402aafe0d6ffb) - Switch the order in which hosted Git providers are checked to `git:`, - `git+https:`, then `git+ssh:` (from `git:`, `git+ssh:`, then `git+https:`) in - an effort to go from most to least likely to succeed, to make for less - confusing error message. ([@othiym23](https://github.com/othiym23)) - -### v2.8.2 (2015-04-14): - -#### PEACE IN OUR TIME - -npm has been having an issue with CouchDB's web server since the release -of io.js and Node.js 0.12.0 that has consumed a huge amount of my time -to little visible effect. Sam Mikes picked up the thread from me, and -after a [_lot_ of effort](https://github.com/npm/npm/issues/7699#issuecomment-93091111) -figured out that ultimately there are probably a couple problems with -the new HTTP Agent keep-alive handling in new versions of Node. In -addition, `npm-registry-client` was gratuitously sending a body along -with a GET request which was triggering the bugs. Sam removed about 10 bytes from -one file in `npm-registry-client`, and this problem, which has been bugging us for months, -completely went away. - -In conclusion, Sam Mikes is great, and anybody using a private registry -hosted on CouchDB should thank him for his hard work. Also, thanks to -the community at large for pitching in on this bug, which has been -around for months now. - -* [`431c3bf`](https://github.com/npm/npm/commit/431c3bf6cdec50f9f0c735f478cb2f3f337d3313) - [#7699](https://github.com/npm/npm/issues/7699) `npm-registry-client@6.3.2`: - Don't send body with HTTP GET requests when logging in. - ([@smikes](https://github.com/smikes)) - -### v2.8.1 (2015-04-12): - -#### CORRECTION: NPM'S GIT INTEGRATION IS DOING OKAY - -A [helpful bug report](https://github.com/npm/npm/issues/7872#issuecomment-91809553) -led to another round of changes to -[`hosted-git-info`](https://github.com/npm/hosted-git-info/commit/827163c74531b69985d1ede7abced4861e7b0cd4), -some additional test-writing, and a bunch of hands-on testing against actual -private repositories. While the complexity of npm's git dependency handling is -nearly fractal (because npm is very complex, and git is even more complex), -it's feeling way more solid than it has for a while. We think this is a -substantial improvement over what we had before, so give `npm@2.8.1` a shot if -you have particularly complex git use cases and -[let us know](https://github.com/npm/npm/issues/new) how it goes. - -(NOTE: These changes mostly affect cloning and saving references to packages -hosted in git repositories, and don't address some known issues with things -like lifecycle scripts not being run on npm dependencies. Work continues on -other issues that affect parity between git and npm registry packages.) - -* [`66377c6`](https://github.com/npm/npm/commit/66377c6ece2cf4d53d9a618b7d9824e1452bc293) - [#7872](https://github.com/npm/npm/issues/7872) `hosted-git-info@2.1.2`: Pass - through credentials embedded in SSH and HTTPs git URLs. - ([@othiym23](https://github.com/othiym23)) -* [`15efe12`](https://github.com/npm/npm/commit/15efe124753257728a0ddc64074fa5a4b9c2eb30) - [#7872](https://github.com/npm/npm/issues/7872) Use the new version of - `hosted-git-info` to pass along credentials embedded in git URLs. Test it. - Test it a lot. ([@othiym23](https://github.com/othiym23)) - -#### SCOPED DEPENDENCIES AND PEER DEPENDENCIES: NOT QUITE REESE'S - -Big thanks to [@ewie](https://github.com/ewie) for identifying an issue with -how npm was handling `peerDependencies` that were implicitly installed from the -`package.json` files of scoped dependencies. This -[will be a moot point](https://github.com/npm/npm/issues/6565#issuecomment-74971689) -with the release of `npm@3`, but until then, it's important that -`peerDependency` auto-installation work as expected. - -* [`b027319`](https://github.com/npm/npm/commit/b0273190c71eba14395ddfdd1d9f7ba625297523) - [#7920](https://github.com/npm/npm/issues/7920) Scoped packages with - `peerDependencies` were installing the `peerDependencies` into the wrong - directory. ([@ewie](https://github.com/ewie)) -* [`649e31a`](https://github.com/npm/npm/commit/649e31ae4fd02568bae5dc6b4ea783431ce3d63e) - [#7920](https://github.com/npm/npm/issues/7920) Test `peerDependency` - installs involving scoped packages using `npm-package-arg` instead of simple - path tests, for consistency. ([@othiym23](https://github.com/othiym23)) - -#### MAKING IT EASIER TO WRITE NPM TESTS, VERSION 0.0.1 - -[@iarna](https://github.com/iarna) and I -([@othiym23](https://github.com/othiym23)) have been discussing a -[candidate plan](https://github.com/npm/npm/wiki/rewriting-npm's-tests:-a-plan-maybe) -for improving npm's test suite, with the goal of making it easier for new -contributors to get involved with npm by reducing the learning curve -necessary to be able to write good tests for proposed changes. This is the -first substantial piece of that effort. Here's what the commit message for -[`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf) -had to say about this work: - -> It's too difficult for npm contributors to figure out what the conventional -> style is for tests. Part of the problem is that the documentation in -> CONTRIBUTING.md is inadequate, but another important factor is that the tests -> themselves are written in a variety of styles. One of the most notable -> examples of this is the fact that many tests use fixture directories to store -> precooked test scenarios and package.json files. -> -> This had some negative consequences: -> -> * tests weren't idempotent -> * subtle dependencies between tests existed -> * new tests get written in this deprecated style because it's not -> obvious that the style is out of favor -> * it's hard to figure out why a lot of those directories existed, -> because they served a variety of purposes, so it was difficult to -> tell when it was safe to remove them -> -> All in all, the fixture directories were a major source of technical debt, and -> cleaning them up, while time-consuming, makes the whole test suite much more -> approachable, and makes it more likely that new tests written by outside -> contributors will follow a conventional style. To support that, all of the -> tests touched by this changed were cleaned up to pass the `standard` style -> checker. - -And here's a little extra context from a comment I left on [#7929](https://github.com/npm/npm/issues/7929): - -> One of the other things that encouraged me was looking at this -> [presentation on technical debt](http://www.slideshare.net/nnja/pycon-2015-technical-debt-the-monster-in-your-closet) -> from Pycon 2015, especially slide 53, which I interpreted in terms of -> difficulty getting new contributors to submit patches to an OSS project like -> npm. npm has a long ways to go, but I feel good about this change. - -* [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf) - [#7929](https://github.com/npm/npm/issues/7929) Eliminate fixture directories - from `test/tap`, leaving each test self-contained. - ([@othiym23](https://github.com/othiym23)) -* [`4928d30`](https://github.com/npm/npm/commit/4928d30140821c63e03fffed73f8d88ebdc43710) - [#7929](https://github.com/npm/npm/issues/7929) Move fixture files from - `test/tap/*` to `test/fixtures`. ([@othiym23](https://github.com/othiym23)) -* [`e925deb`](https://github.com/npm/npm/commit/e925debca91092a814c1a00933babc3a8cf975be) - [#7929](https://github.com/npm/npm/issues/7929) Tweak the run scripts to stop - slaughtering the CPU on doc rebuild. - ([@othiym23](https://github.com/othiym23)) -* [`65bf7cf`](https://github.com/npm/npm/commit/65bf7cffaf91c426b676c47529eee796f8b8b75c) - [#7923](https://github.com/npm/npm/issues/7923) Use an alias of scripts and - run-scripts in `npm run test-all` ([@watilde](https://github.com/watilde)) -* [`756a3fb`](https://github.com/npm/npm/commit/756a3fbb852a2469afe706635ed88d22c37743e5) - [#7923](https://github.com/npm/npm/issues/7923) Sync timeout time of `npm - run-script test-all` to be the same as `test` and `tap` scripts. - ([@watilde](https://github.com/watilde)) -* [`8299b5f`](https://github.com/npm/npm/commit/8299b5fb6373354a7fbaab6f333863758812ae90) - Set a timeout for tap tests for `npm run-script test-all`. - ([@othiym23](https://github.com/othiym23)) - -#### THE EVER-BEATING DRUM OF DEPENDENCY UPDATES - -* [`d90d0b9`](https://github.com/npm/npm/commit/d90d0b992acbf62fd5d68debf9d1dbd6cfa20804) - [#7924](https://github.com/npm/npm/issues/7924) Remove `child-process-close`, - as it was included for Node 0.6 compatibility, and npm no longer supports - 0.6. ([@robertkowalski](https://github.com/robertkowalski)) -* [`16427c1`](https://github.com/npm/npm/commit/16427c1f3ea3d71ee753c62eb4c2663c7b32b84f) - `lru-cache@2.5.2`: More accurate updating of expiry times when `maxAge` is - set. ([@isaacs](https://github.com/isaacs)) -* [`03cce83`](https://github.com/npm/npm/commit/03cce83b64344a9e0fe036dce214f4d68cfcc9e7) - `nock@1.6.0`: Mocked network error handling. - ([@pgte](https://github.com/pgte)) -* [`f93b1f0`](https://github.com/npm/npm/commit/f93b1f0b7eb5d1b8a7967e837bbd756db1091d00) - `glob@5.0.5`: Use `path-is-absolute` polyfill, allowing newer Node.js and - io.js versions to use `path.isAbsolute()`. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`a70d694`](https://github.com/npm/npm/commit/a70d69495a6e96997e64855d9e749d943ee6d64f) - `request@2.55.0`: Bug fixes and simplification. - ([@simov](https://github.com/simov)) -* [`2aecc6f`](https://github.com/npm/npm/commit/2aecc6f4083526feeb14615b4e5484edc66175b5) - `columnify@1.5.1`: Switch to using babel from 6to5. - ([@timoxley](https://github.com/timoxley)) - -### v2.8.0 (2015-04-09): - -#### WE WILL NEVER BE DONE FIXING NPM'S GIT SUPPORT - -If you look at [the last release's release -notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#git-mean-git-tuff-git-all-the-way-away-from-my-stuff), -you will note that they confidently assert that it's perfectly OK to force all -GitHub URLs through the same `git:` -> `git+ssh:` fallback flow for cloning. It -turns out that many users depend on `git+https:` URLs in their build -environments because they use GitHub auth tokens instead of SSH keys. Also, in -some cases you just want to be able to explicitly say how a given dependency -should be cloned from GitHub. - -Because of the way we resolved the inconsistency in GitHub shorthand handling -[before](https://github.com/npm/npm/blob/master/CHANGELOG.md#bug-fixes-1), this -turned out to be difficult to work around. So instead of hacking around it, we -completely redid how git is handled within npm and its attendant packages. -Again. This time, we changed things so that `normalize-package-data` and -`read-package-json` leave more of the git logic to npm itself, which makes -handling shorthand syntax consistently much easier, and also allows users to -resume using explicit, fully-qualified git URLs without npm messing with them. - -Here's a summary of what's changed: - -* Instead of converting the GitHub shorthand syntax to a `git+ssh:`, `git:`, or - `git+https:` URL and saving that, save the shorthand itself to - `package.json`. -* If presented with shortcuts, try cloning via the git protocol, SSH, and HTTPS - (in that order). -* No longer prompt for credentials -- it didn't work right with the spinner, - and wasn't guaranteed to work anyway. We may experiment with doing this a - better way in the future. Users can override this by setting `GIT_ASKPASS` in - their environment if they want to experiment with interactive cloning, but - should also set `--no-spin` on the npm command line (or run `npm config set - spin=false`). -* **EXPERIMENTAL FEATURE**: Add support for `github:`, `gist:`, `bitbucket:`, - and `gitlab:` shorthand prefixes. GitHub shortcuts will continue to be - normalized to `org/repo` instead of being saved as `github:org/repo`, but - `gitlab:`, `gist:`, and `bitbucket:` prefixes will be used on the command - line and from `package.json`. BE CAREFUL WITH THIS. `package.json` files - published with the new shorthand syntax can _only_ be read by `npm@2.8.0` and - later, and this feature is mostly meant for playing around with it. If you - want to save git dependencies in a form that older versions of npm can read, - use `--save-exact`, which will save the git URL and resolved commit hash of - the head of the branch in a manner similar to the way that `--save-exact` - pins versions for registry dependencies. This is documented (so check `npm - help install` for details), but we're not going to make a lot of noise about - it until it has a chance to bake in a little more. - -It is [@othiym23](https://github.com/othiym23)'s sincere hope that this will -resolve all of the inconsistencies users were seeing with GitHub and git-hosted -packages, but given the level of change here, that may just be a fond wish. -Extra testing of this change is requested. - -* [`6b0f588`](https://github.com/npm/npm/commit/6b0f58877f37df9904490ffbaaad33862bd36dce) - [#7867](https://github.com/npm/npm/issues/7867) Use git shorthand and git - URLs as presented by user. Support new `hosted-git-info` shortcut syntax. - Save shorthand in `package.json`. Try cloning via `git:`, `git+ssh:`, and - `git+https:`, in that order, when supported by the underlying hosting - provider. ([@othiym23](https://github.com/othiym23)) -* [`75d4267`](https://github.com/npm/npm/commit/75d426787869d54ca7400408f562f971b34649ef) - [#7867](https://github.com/npm/npm/issues/7867) Document new GitHub, GitHub - gist, Bitbucket, and GitLab shorthand syntax. - ([@othiym23](https://github.com/othiym23)) -* [`7d92c75`](https://github.com/npm/npm/commit/7d92c7592998d90ec883fa989ca74f04ec1b93de) - [#7867](https://github.com/npm/npm/issues/7867) When `--save-exact` is used - with git shorthand or URLs, save the fully-resolved URL, with branch name - resolved to the exact hash for the commit checked out. - ([@othiym23](https://github.com/othiym23)) -* [`9220e59`](https://github.com/npm/npm/commit/9220e59f8def8c82c6d331a39ba29ad4c44e3a9b) - [#7867](https://github.com/npm/npm/issues/7867) Ensure that non-prefixed and - non-normalized GitHub shortcuts are saved to `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`dd398e9`](https://github.com/npm/npm/commit/dd398e98a8eba27eeba84378200da3d078fdf980) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.1`: - Ensure that `gist:` shorthand survives being round-tripped through - `package.json`. ([@othiym23](https://github.com/othiym23)) -* [`33d1420`](https://github.com/npm/npm/commit/33d1420bf2f629332fceb2ac7e174e63ac48f96a) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.0`: Add - support for auth embedded directly in git URLs. - ([@othiym23](https://github.com/othiym23)) -* [`23a1d5a`](https://github.com/npm/npm/commit/23a1d5a540e8db27f5cd0245de7c3694e2bddad1) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.0.2`: Make - it possible to determine in which form a hosted git URL was passed. - ([@iarna](https://github.com/iarna)) -* [`eaf75ac`](https://github.com/npm/npm/commit/eaf75acb718611ad5cfb360084ec86938d9c66c5) - [#7867](https://github.com/npm/npm/issues/7867) - `normalize-package-data@2.0.0`: Normalize GitHub specifiers so they pass - through shortcut syntax and preserve explicit URLs. - ([@iarna](https://github.com/iarna)) -* [`95e0535`](https://github.com/npm/npm/commit/95e0535e365e0aca49c634dd2061a0369b0475f1) - [#7867](https://github.com/npm/npm/issues/7867) `npm-package-arg@4.0.0`: Add - git URL and shortcut to hosted git spec and use `hosted-git-info@2.0.2`. - ([@iarna](https://github.com/iarna)) -* [`a808926`](https://github.com/npm/npm/commit/a8089268d5f3d57f42dbaba02ff6437da5121191) - [#7867](https://github.com/npm/npm/issues/7867) - `realize-package-specifier@3.0.0`: Use `npm-package-arg@4.0.0` and test - shortcut specifier behavior. ([@iarna](https://github.com/iarna)) -* [`6dd1e03`](https://github.com/npm/npm/commit/6dd1e039bddf8cf5383343f91d84bc5d78acd083) - [#7867](https://github.com/npm/npm/issues/7867) `init-package-json@1.4.0`: - Allow dependency on `read-package-json@2.0.0`. - ([@iarna](https://github.com/iarna)) -* [`63254bb`](https://github.com/npm/npm/commit/63254bb6358f66752aca6aa1a275271b3ae03f7c) - [#7867](https://github.com/npm/npm/issues/7867) `read-installed@4.0.0`: Use - `read-package-json@2.0.0`. ([@iarna](https://github.com/iarna)) -* [`254b887`](https://github.com/npm/npm/commit/254b8871f5a173bb464cc5b0ace460c7878b8097) - [#7867](https://github.com/npm/npm/issues/7867) `read-package-json@2.0.0`: - Use `normalize-package-data@2.0.0`. ([@iarna](https://github.com/iarna)) -* [`0b9f8be`](https://github.com/npm/npm/commit/0b9f8be62fe5252abe54d49e36a696f4816c2eca) - [#7867](https://github.com/npm/npm/issues/7867) `npm-registry-client@6.3.0`: - Mark compatibility with `normalize-package-data@2.0.0` and - `npm-package-arg@4.0.0`. ([@iarna](https://github.com/iarna)) -* [`f40ecaa`](https://github.com/npm/npm/commit/f40ecaad68f77abc50eb6f5b224e31dec3d250fc) - [#7867](https://github.com/npm/npm/issues/7867) Extract a common method to - use when cloning git repos for testing. - ([@othiym23](https://github.com/othiym23)) - -#### TEST FIXES FOR NODE 0.8 - -npm continues to [get closer](https://github.com/npm/npm/issues/7842) to being -completely green on Travis for Node 0.8. - -* [`26d36e9`](https://github.com/npm/npm/commit/26d36e9cf0eca69fe1863d2ea536c28555b9e8de) - [#7842](https://github.com/npm/npm/issues/7842) When spawning child - processes, map exit code 127 to ENOENT so Node 0.8 handles child process - failures the same as later versions. - ([@SonicHedgehog](https://github.com/SonicHedgehog)) -* [`54cd895`](https://github.com/npm/npm/commit/54cd8956ea783f96749e46597d8c2cb9397c5d5f) - [#7842](https://github.com/npm/npm/issues/7842) Node 0.8 requires -e with -p - when evaluating snippets; fix test. - ([@SonicHedgehog](https://github.com/SonicHedgehog)) - -#### SMALL FIX AND DOC TWEAK - -* [`20e9003`](https://github.com/npm/npm/commit/20e90031b847e9f7c7168f3dad8b1e526f9a2586) - `tar@2.0.1`: Fix regression where relative symbolic links within an - extraction root that pointed within an extraction root would get normalized - to absolute symbolic links. ([@isaacs](https://github.com/isaacs)) -* [`2ef8898`](https://github.com/npm/npm/commit/2ef88989c41bee1578570bb2172c90ede129dbd1) - [#7879](https://github.com/npm/npm/issues/7879) Better document that `npm - publish --tag=foo` will not set `latest` to that version. - ([@linclark](https://github.com/linclark)) - -### v2.7.6 (2015-04-02): - -#### GIT MEAN, GIT TUFF, GIT ALL THE WAY AWAY FROM MY STUFF - -Part of the reason that we're reluctant to take patches to how npm deals with -git dependencies is that every time we touch the git support, something breaks. -The last few releases are a case in point. `npm@2.7.4` completely broke -installing private modules from GitHub, and `npm@2.7.5` fixed them at the cost -of logging a misleading error message that caused many people to believe that -their dependencies hadn't been successfully installed when they actually had -been. - -This all started from a desire to ensure that GitHub shortcut syntax is being -handled correctly. The correct behavior is for npm to try to clone all -dependencies on GitHub (whether they're specified with the GitHub -`organization/repository` shortcut syntax or not) via the plain `git:` protocol -first, and to fall back to using `git+ssh:` if `git:` doesn't work. Previously, -sometimes npm would use `git:` and `git+ssh:` in some cases (most notably when -using GitHub shortcut syntax on the command line), and use `git+https:` in -others (when the GitHub shortcut syntax was present in `package.json`). This -led to subtle and hard-to-understand inconsistencies, and we're glad that as of -`npm@2.7.6`, we've finally gotten things to where they were before we started, -only slightly more consistent overall. - -We are now going to go back to our policy of being extremely reluctant to touch -the code that handles Git dependencies. - -* [`b747593`](https://github.com/npm/npm/commit/b7475936f473f029e6a027ba1b16277523747d0b) - [#7630](https://github.com/npm/npm/issues/7630) Don't automatically log all - git failures as errors. `maybeGithub` needs to be able to fail without - logging to support its fallback logic. - ([@othiym23](https://github.com/othiym23)) -* [`cd67a0d`](https://github.com/npm/npm/commit/cd67a0db07891d20871822696c26692c8a84866a) - [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote - URL, handle failures gracefully (without assuming standard output exists). - ([@othiym23](https://github.com/othiym23)) -* [`637c7d1`](https://github.com/npm/npm/commit/637c7d1411fe07f409cf91f2e65fd70685cb253c) - [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote - URL, handle failures gracefully (without assuming standard _error_ exists). - ([@othiym23](https://github.com/othiym23)) - -#### OTHER SIGNIFICANT FIXES - -* [`78005eb`](https://github.com/npm/npm/commit/78005ebb6f4103c20f077669c3929b7ea46a4c0d) - [#7743](https://github.com/npm/npm/issues/7743) Always quote arguments passed - to `npm run-script`. This allows build systems and the like to safely escape - glob patterns passed as arguments to `run-scripts` with `npm run-script - - - -
- -

npm

a JavaScript package manager

-

Build Status

-

SYNOPSIS

-

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

-

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

-

IMPORTANT

-

You need node v4 or higher to run this program.

-

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

-

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

-

You can configure npm to use any compatible registry you -like, and even run your own registry. Check out the doc on -registries.

-

Use of someone else's registry may be governed by terms of use. The -terms of use for the default public registry are available at -https://www.npmjs.com.

-

Super Easy Install

-

npm is bundled with node.

-

Windows Computers

-

Get the MSI. npm is in it.

-

Apple Macintosh Computers

-

Get the pkg. npm is in it.

-

Other Sorts of Unices

-

Run make install. npm will be installed with node.

-

If you want a more fancy pants install (a different version, customized -paths, etc.) then read on.

-

Fancy Install (Unix)

-

There's a pretty robust install script at -https://www.npmjs.com/install.sh. You can download that and run it.

-

Here's an example using curl:

-
curl -L https://www.npmjs.com/install.sh | sh
-
-

Slightly Fancier

-

You can set any npm configuration params with that script:

-
npm_config_prefix=/some/path sh install.sh
-
-

Or, you can run it in uber-debuggery mode:

-
npm_debug=1 sh install.sh
-
-

Even Fancier

-

Get the code with git. Use make to build the docs and do other stuff. -If you plan on hacking on npm, make link is your friend.

-

If you've got the npm source code, you can also semi-permanently set -arbitrary config keys using the ./configure --key=val ..., and then -run npm commands by doing node bin/npm-cli.js <command> <args>. (This is helpful -for testing, or running stuff without actually installing npm itself.)

-

Windows Install or Upgrade

-

Many improvements for Windows users have been made in npm 3 - you will have a better -experience if you run a recent version of npm. To upgrade, either use Microsoft's -upgrade tool, -download a new version of Node, -or follow the Windows upgrade instructions in the -npm Troubleshooting Guide.

-

If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly.

-

Installing on Cygwin

-

No.

-

Uninstalling

-

So sad to see you go.

-
sudo npm uninstall npm -g
-
-

Or, if that fails,

-
sudo make uninstall
-
-

More Severe Uninstalling

-

Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed.

-

If you would like to remove all the packages that you have installed, -then you can use the npm ls command to find them, and then npm rm to -remove them.

-

To remove cruft left behind by npm 0.x, you can use the included -clean-old.sh script file. You can run it conveniently like this:

-
npm explore npm -g -- sh scripts/clean-old.sh
-
-

npm uses two configuration files, one for per-user configs, and another -for global (every-user) configs. You can view them by doing:

-
npm config get userconfig   # defaults to ~/.npmrc
-npm config get globalconfig # defaults to /usr/local/etc/npmrc
-
-

Uninstalling npm does not remove configuration files by default. You -must remove them yourself manually if you want them gone. Note that -this means that future npm installs will not remember the settings that -you have chosen.

-

More Docs

-

Check out the docs.

-

You can use the npm help command to read any of them.

-

If you're a developer, and you want to use npm to publish your program, -you should read this.

-

BUGS

-

When you find issues, please report them:

- -

Be sure to include all of the output from the npm command that didn't work -as expected. The npm-debug.log file is also helpful to provide.

-

You can also find npm people in #npm on https://package.community/ or -on Twitter. Whoever responds will no -doubt tell you to put the output in a gist or email.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-access.html b/deps/npm/html/doc/cli/npm-access.html deleted file mode 100644 index 5fb7cfb0029..00000000000 --- a/deps/npm/html/doc/cli/npm-access.html +++ /dev/null @@ -1,90 +0,0 @@ - - - npm-access - - - - - - -
- -

npm-access

Set access level on published packages

-

SYNOPSIS

-
npm access public [<package>]
-npm access restricted [<package>]
-
-npm access grant <read-only|read-write> <scope:team> [<package>]
-npm access revoke <scope:team> [<package>]
-
-npm access ls-packages [<user>|<scope>|<scope:team>]
-npm access ls-collaborators [<package> [<user>]]
-npm access edit [<package>]
-

DESCRIPTION

-

Used to set access controls on private packages.

-

For all of the subcommands, npm access will perform actions on the packages -in the current working directory if no package name is passed to the -subcommand.

-
    -
  • public / restricted: -Set a package to be either publicly accessible or restricted.

    -
  • -
  • grant / revoke: -Add or remove the ability of users and teams to have read-only or read-write -access to a package.

    -
  • -
  • ls-packages: -Show all of the packages a user or a team is able to access, along with the -access level, except for read-only public packages (it won't print the whole -registry listing)

    -
  • -
  • ls-collaborators: -Show all of the access privileges for a package. Will only show permissions -for packages to which you have at least read access. If <user> is passed in, -the list is filtered only to teams that user happens to belong to.

    -
  • -
  • edit: -Set the access privileges for a package at once using $EDITOR.

    -
  • -
-

DETAILS

-

npm access always operates directly on the current registry, configurable -from the command line using --registry=<registry url>.

-

Unscoped packages are always public.

-

Scoped packages default to restricted, but you can either publish them as -public using npm publish --access=public, or set their access as public using -npm access public after the initial publish.

-

You must have privileges to set the access of a package:

-
    -
  • You are an owner of an unscoped or scoped package.
  • -
  • You are a member of the team that owns a scope.
  • -
  • You have been given read-write privileges for a package, either as a member -of a team or directly as an owner.
  • -
-

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

-

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

-

Management of teams and team memberships is done with the npm team command.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html deleted file mode 100644 index 90d247f5f5e..00000000000 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ /dev/null @@ -1,85 +0,0 @@ - - - npm-adduser - - - - - - -
- -

npm-adduser

Add a registry user account

-

SYNOPSIS

-
npm adduser [--registry=url] [--scope=@orgname] [--always-auth] [--auth-type=legacy]
-
-aliases: login, add-user
-

DESCRIPTION

-

Create or verify a user named <username> in the specified registry, and -save the credentials to the .npmrc file. If no registry is specified, -the default registry will be used (see npm-config(7)).

-

The username, password, and email are read in from prompts.

-

To reset your password, go to https://www.npmjs.com/forgot

-

To change your email address, go to https://www.npmjs.com/email-edit

-

You may use this command multiple times with the same user account to -authorize on a new machine. When authenticating on a new machine, -the username, password and email address must all match with -your existing record.

-

npm login is an alias to adduser and behaves exactly the same way.

-

CONFIGURATION

-

registry

-

Default: https://registry.npmjs.org/

-

The base URL of the npm package registry. If scope is also specified, -this registry will only be used for packages with that scope. scope defaults -to the scope of the project directory you're currently in, if any. See npm-scope(7).

-

scope

-

Default: none

-

If specified, the user and login credentials given will be associated -with the specified scope. See npm-scope(7). You can use both at the same time, -e.g.

-
npm adduser --registry=http://myregistry.example.com --scope=@myco
-

This will set a registry for the given scope and login or create a user for -that registry at the same time.

-

always-auth

-

Default: false

-

If specified, save configuration indicating that all requests to the given -registry should include authorization information. Useful for private -registries. Can be used with --registry and / or --scope, e.g.

-
npm adduser --registry=http://private-registry.example.com --always-auth
-

This will ensure that all requests to that registry (including for tarballs) -include an authorization header. This setting may be necessary for use with -private registries where metadata and package tarballs are stored on hosts with -different hostnames. See always-auth in npm-config(7) for more details on -always-auth. Registry-specific configuration of always-auth takes precedence -over any global configuration.

-

auth-type

-
    -
  • Default: 'legacy'
  • -
  • Type: 'legacy', 'sso', 'saml', 'oauth'
  • -
-

What authentication strategy to use with adduser/login. Some npm registries -(for example, npmE) might support alternative auth strategies besides classic -username/password entry in legacy npm.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html deleted file mode 100644 index 677f621a973..00000000000 --- a/deps/npm/html/doc/cli/npm-bin.html +++ /dev/null @@ -1,39 +0,0 @@ - - - npm-bin - - - - - - -
- -

npm-bin

Display npm bin folder

-

SYNOPSIS

-
npm bin [-g|--global]
-

DESCRIPTION

-

Print the folder where npm will install executables.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html deleted file mode 100644 index 3437dd4380b..00000000000 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ /dev/null @@ -1,59 +0,0 @@ - - - npm-bugs - - - - - - -
- -

npm-bugs

Bugs for a package in a web browser maybe

-

SYNOPSIS

-
npm bugs [<pkgname>]
-
-aliases: issues
-

DESCRIPTION

-

This command tries to guess at the likely location of a package's -bug tracker URL, and then tries to open it using the --browser -config param. If no package name is provided, it will search for -a package.json in the current folder and use the name property.

-

CONFIGURATION

-

browser

-
    -
  • Default: OS X: "open", Windows: "start", Others: "xdg-open"
  • -
  • Type: String
  • -
-

The browser that is called by the npm bugs command to open websites.

-

registry

- -

The base URL of the npm package registry.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html deleted file mode 100644 index 51544a4532b..00000000000 --- a/deps/npm/html/doc/cli/npm-build.html +++ /dev/null @@ -1,44 +0,0 @@ - - - npm-build - - - - - - -
- -

npm-build

Build a package

-

SYNOPSIS

-
npm build [<package-folder>]
-
    -
  • <package-folder>: -A folder containing a package.json file in its root.
  • -
-

DESCRIPTION

-

This is the plumbing command called by npm link and npm install.

-

It should generally be called during installation, but if you need to run it -directly, run:

-
npm run-script build
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html deleted file mode 100644 index 94cf6ed12b4..00000000000 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ /dev/null @@ -1,35 +0,0 @@ - - - npm-bundle - - - - - - -
- -

npm-bundle

REMOVED

-

DESCRIPTION

-

The npm bundle command has been removed in 1.0, for the simple reason -that it is no longer necessary, as the default behavior is now to -install packages into the local space.

-

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

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html deleted file mode 100644 index 71d5297a9cf..00000000000 --- a/deps/npm/html/doc/cli/npm-cache.html +++ /dev/null @@ -1,93 +0,0 @@ - - - npm-cache - - - - - - -
- -

npm-cache

Manipulates packages cache

-

SYNOPSIS

-
npm cache add <tarball file>
-npm cache add <folder>
-npm cache add <tarball url>
-npm cache add <name>@<version>
-
-npm cache clean [<path>]
-aliases: npm cache clear, npm cache rm
-
-npm cache verify
-

DESCRIPTION

-

Used to add, list, or clean the npm cache folder.

-
    -
  • add: -Add the specified package to the local cache. This command is primarily -intended to be used internally by npm, but it can provide a way to -add data to the local installation cache explicitly.

    -
  • -
  • clean: -Delete all data out of the cache folder.

    -
  • -
  • verify: -Verify the contents of the cache folder, garbage collecting any unneeded data, -and verifying the integrity of the cache index and all cached data.

    -
  • -
-

DETAILS

-

npm stores cache data in an opaque directory within the configured cache, -named _cacache. This directory is a cacache-based content-addressable cache -that stores all http request data as well as other package-related data. This -directory is primarily accessed through pacote, the library responsible for -all package fetching as of npm@5.

-

All data that passes through the cache is fully verified for integrity on both -insertion and extraction. Cache corruption will either trigger an error, or -signal to pacote that the data must be refetched, which it will do -automatically. For this reason, it should never be necessary to clear the cache -for any reason other than reclaiming disk space, thus why clean now requires ---force to run.

-

There is currently no method exposed through npm to inspect or directly manage -the contents of this cache. In order to access it, cacache must be used -directly.

-

npm will not remove data by itself: the cache will grow as new packages are -installed.

-

A NOTE ABOUT THE CACHE'S DESIGN

-

The npm cache is strictly a cache: it should not be relied upon as a persistent -and reliable data store for package data. npm makes no guarantee that a -previously-cached piece of data will be available later, and will automatically -delete corrupted contents. The primary guarantee that the cache makes is that, -if it does return data, that data will be exactly the data that was inserted.

-

To run an offline verification of existing cache contents, use npm cache -verify.

-

CONFIGURATION

-

cache

-

Default: ~/.npm on Posix, or %AppData%/npm-cache on Windows.

-

The root cache folder.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html deleted file mode 100644 index 7a37048a8a7..00000000000 --- a/deps/npm/html/doc/cli/npm-completion.html +++ /dev/null @@ -1,47 +0,0 @@ - - - npm-completion - - - - - - -
- -

npm-completion

Tab Completion for npm

-

SYNOPSIS

-
source <(npm completion)
-

DESCRIPTION

-

Enables tab-completion in all npm commands.

-

The synopsis above -loads the completions into your current shell. Adding it to -your ~/.bashrc or ~/.zshrc will make the completions available -everywhere:

-
npm completion >> ~/.bashrc
-npm completion >> ~/.zshrc
-

You may of course also pipe the output of npm completion to a file -such as /usr/local/etc/bash_completion.d/npm if you have a system -that will read that file for you.

-

When COMP_CWORD, COMP_LINE, and COMP_POINT are defined in the -environment, npm completion acts in "plumbing mode", and outputs -completions based on the arguments.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html deleted file mode 100644 index ccacfe9c39e..00000000000 --- a/deps/npm/html/doc/cli/npm-config.html +++ /dev/null @@ -1,72 +0,0 @@ - - - npm-config - - - - - - -
- -

npm-config

Manage the npm configuration files

-

SYNOPSIS

-
npm config set <key> <value> [-g|--global]
-npm config get <key>
-npm config delete <key>
-npm config list [-l] [--json]
-npm config edit
-npm get <key>
-npm set <key> <value> [-g|--global]
-
-aliases: c
-

DESCRIPTION

-

npm gets its config settings from the command line, environment -variables, npmrc files, and in some cases, the package.json file.

-

See npmrc(5) for more information about the npmrc files.

-

See npm-config(7) for a more thorough discussion of the mechanisms -involved.

-

The npm config command can be used to update and edit the contents -of the user and global npmrc files.

-

Sub-commands

-

Config supports the following sub-commands:

-

set

-
npm config set key value
-

Sets the config key to the value.

-

If value is omitted, then it sets it to "true".

-

get

-
npm config get key
-

Echo the config value to stdout.

-

list

-
npm config list
-

Show all the config settings. Use -l to also show defaults. Use --json -to show the settings in json format.

-

delete

-
npm config delete key
-

Deletes the key from all configuration files.

-

edit

-
npm config edit
-

Opens the config file in an editor. Use the --global flag to edit the -global config.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html deleted file mode 100644 index e21605193f0..00000000000 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ /dev/null @@ -1,65 +0,0 @@ - - - npm-dedupe - - - - - - -
- -

npm-dedupe

Reduce duplication

-

SYNOPSIS

-
npm dedupe
-npm ddp
-
-aliases: find-dupes, ddp
-

DESCRIPTION

-

Searches the local package tree and attempts to simplify the overall -structure by moving dependencies further up the tree, where they can -be more effectively shared by multiple dependent packages.

-

For example, consider this dependency graph:

-
a
-+-- b <-- depends on c@1.0.x
-|   `-- c@1.0.3
-`-- d <-- depends on c@~1.0.9
-    `-- c@1.0.10
-

In this case, npm-dedupe(1) will transform the tree to:

-
a
-+-- b
-+-- d
-`-- c@1.0.10
-

Because of the hierarchical nature of node's module lookup, b and d -will both get their dependency met by the single c package at the root -level of the tree.

-

The deduplication algorithm walks the tree, moving each dependency as far -up in the tree as possible, even if duplicates are not found. This will -result in both a flat and deduplicated tree.

-

If a suitable version exists at the target location in the tree -already, then it will be left untouched, but the other duplicates will -be deleted.

-

Arguments are ignored. Dedupe always acts on the entire tree.

-

Modules

-

Note that this operation transforms the dependency tree, but will never -result in new modules being installed.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html deleted file mode 100644 index f82a6b6d18f..00000000000 --- a/deps/npm/html/doc/cli/npm-deprecate.html +++ /dev/null @@ -1,42 +0,0 @@ - - - npm-deprecate - - - - - - -
- -

npm-deprecate

Deprecate a version of a package

-

SYNOPSIS

-
npm deprecate <pkg>[@<version>] <message>
-

DESCRIPTION

-

This command will update the npm registry entry for a package, providing -a deprecation warning to all who attempt to install it.

-

It works on version ranges as well as specific versions, so you can do -something like this:

-
npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"
-

Note that you must be the package owner to deprecate something. See the -owner and adduser help topics.

-

To un-deprecate a package, specify an empty string ("") for the message argument.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-dist-tag.html b/deps/npm/html/doc/cli/npm-dist-tag.html deleted file mode 100644 index 6f8bc9744f2..00000000000 --- a/deps/npm/html/doc/cli/npm-dist-tag.html +++ /dev/null @@ -1,92 +0,0 @@ - - - npm-dist-tag - - - - - - -
- -

npm-dist-tag

Modify package distribution tags

-

SYNOPSIS

-
npm dist-tag add <pkg>@<version> [<tag>]
-npm dist-tag rm <pkg> <tag>
-npm dist-tag ls [<pkg>]
-
-aliases: dist-tags
-

DESCRIPTION

-

Add, remove, and enumerate distribution tags on a package:

-
    -
  • add: -Tags the specified version of the package with the specified tag, or the ---tag config if not specified. The tag you're adding is latest and you -have two-factor authentication on auth-and-writes then you'll need to include -an otp on the command line with --otp.

    -
  • -
  • rm: -Clear a tag that is no longer in use from the package.

    -
  • -
  • ls: -Show all of the dist-tags for a package, defaulting to the package in -the current prefix.

    -
  • -
-

A tag can be used when installing packages as a reference to a version instead -of using a specific version number:

-
npm install <name>@<tag>
-

When installing dependencies, a preferred tagged version may be specified:

-
npm install --tag <tag>
-

This also applies to npm dedupe.

-

Publishing a package sets the latest tag to the published version unless the ---tag option is used. For example, npm publish --tag=beta.

-

By default, npm install <pkg> (without any @<version> or @<tag> -specifier) installs the latest tag.

-

PURPOSE

-

Tags can be used to provide an alias instead of version numbers.

-

For example, a project might choose to have multiple streams of development -and use a different tag for each stream, -e.g., stable, beta, dev, canary.

-

By default, the latest tag is used by npm to identify the current version of -a package, and npm install <pkg> (without any @<version> or @<tag> -specifier) installs the latest tag. Typically, projects only use the latest -tag for stable release versions, and use other tags for unstable versions such -as prereleases.

-

The next tag is used by some projects to identify the upcoming version.

-

By default, other than latest, no tag has any special significance to npm -itself.

-

CAVEATS

-

This command used to be known as npm tag, which only created new tags, and so -had a different syntax.

-

Tags must share a namespace with version numbers, because they are specified in -the same slot: npm install <pkg>@<version> vs npm install <pkg>@<tag>.

-

Tags that can be interpreted as valid semver ranges will be rejected. For -example, v1.4 cannot be used as a tag, because it is interpreted by semver as ->=1.4.0 <1.5.0. See https://github.com/npm/npm/issues/6082.

-

The simplest way to avoid semver problems with tags is to use tags that do not -begin with a number or the letter v.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-docs.html b/deps/npm/html/doc/cli/npm-docs.html deleted file mode 100644 index 165159af15f..00000000000 --- a/deps/npm/html/doc/cli/npm-docs.html +++ /dev/null @@ -1,60 +0,0 @@ - - - npm-docs - - - - - - -
- -

npm-docs

Docs for a package in a web browser maybe

-

SYNOPSIS

-
npm docs [<pkgname> [<pkgname> ...]]
-npm docs .
-npm home [<pkgname> [<pkgname> ...]]
-npm home .
-

DESCRIPTION

-

This command tries to guess at the likely location of a package's -documentation URL, and then tries to open it using the --browser -config param. You can pass multiple package names at once. If no -package name is provided, it will search for a package.json in -the current folder and use the name property.

-

CONFIGURATION

-

browser

-
    -
  • Default: OS X: "open", Windows: "start", Others: "xdg-open"
  • -
  • Type: String
  • -
-

The browser that is called by the npm docs command to open websites.

-

registry

- -

The base URL of the npm package registry.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-doctor.html b/deps/npm/html/doc/cli/npm-doctor.html deleted file mode 100644 index 8eba9f172d7..00000000000 --- a/deps/npm/html/doc/cli/npm-doctor.html +++ /dev/null @@ -1,106 +0,0 @@ - - - npm-doctor - - - - - - -
- -

npm-doctor

Check your environments

-

SYNOPSIS

-
npm doctor
-

DESCRIPTION

-

npm doctor runs a set of checks to ensure that your npm installation has -what it needs to manage your JavaScript packages. npm is mostly a standalone tool, but it does -have some basic requirements that must be met:

-
    -
  • Node.js and git must be executable by npm.
  • -
  • The primary npm registry, registry.npmjs.com, or another service that uses -the registry API, is available.
  • -
  • The directories that npm uses, node_modules (both locally and globally), -exist and can be written by the current user.
  • -
  • The npm cache exists, and the package tarballs within it aren't corrupt.
  • -
-

Without all of these working properly, npm may not work properly. Many issues -are often attributable to things that are outside npm's code base, so npm -doctor confirms that the npm installation is in a good state.

-

Also, in addition to this, there are also very many issue reports due to using -old versions of npm. Since npm is constantly improving, running npm@latest is -better than an old version.

-

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

-

npm ping

-

By default, npm installs from the primary npm registry, registry.npmjs.org. -npm doctor hits a special ping endpoint within the registry. This can also be -checked with npm ping. If this check fails, you may be using a proxy that -needs to be configured, or may need to talk to your IT staff to get access over -HTTPS to registry.npmjs.org.

-

This check is done against whichever registry you've configured (you can see -what that is by running npm config get registry), and if you're using a -private registry that doesn't support the /whoami endpoint supported by the -primary registry, this check may fail.

-

npm -v

-

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

-

node -v

-

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

-

npm config get registry

-

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

-

which git

-

While it's documented in the README, it may not be obvious that npm needs Git -installed to do many of the things that it does. Also, in some cases -– especially on Windows – you may have Git set up in such a way that it's not -accessible via your PATH so that npm can find it. This check ensures that Git -is available.

-

Permissions checks

-
    -
  • Your cache must be readable and writable by the user running npm.
  • -
  • Global package binaries must be writable by the user running npm.
  • -
  • Your local node_modules path, if you're running npm doctor with a project -directory, must be readable and writable by the user running npm.
  • -
-

Validate the checksums of cached packages

-

When an npm package is published, the publishing process generates a checksum -that npm uses at install time to verify that the package didn't get corrupted -in transit. npm doctor uses these checksums to validate the package tarballs -in your local cache (you can see where that cache is located with npm config -get cache, and see what's in that cache with npm cache ls – probably more -than you were expecting!). In the event that there are corrupt packages in your -cache, you should probably run npm cache clean and reset the cache.

-

SEE ALSO

- - -
- - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html deleted file mode 100644 index 651990084dd..00000000000 --- a/deps/npm/html/doc/cli/npm-edit.html +++ /dev/null @@ -1,53 +0,0 @@ - - - npm-edit - - - - - - -
- -

npm-edit

Edit an installed package

-

SYNOPSIS

-
npm edit <pkg>[@<version>]
-

DESCRIPTION

-

Opens the package folder in the default editor (or whatever you've -configured as the npm editor config -- see npm-config(7).)

-

After it has been edited, the package is rebuilt so as to pick up any -changes in compiled packages.

-

For instance, you can do npm install connect to install connect -into your package, and then npm edit connect to make a few -changes to your locally installed copy.

-

CONFIGURATION

-

editor

-
    -
  • Default: EDITOR environment variable if set, or "vi" on Posix, -or "notepad" on Windows.
  • -
  • Type: path
  • -
-

The command to run for npm edit or npm config edit.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html deleted file mode 100644 index bab3a861ec2..00000000000 --- a/deps/npm/html/doc/cli/npm-explore.html +++ /dev/null @@ -1,53 +0,0 @@ - - - npm-explore - - - - - - -
- -

npm-explore

Browse an installed package

-

SYNOPSIS

-
npm explore <pkg> [ -- <command>]
-

DESCRIPTION

-

Spawn a subshell in the directory of the installed package specified.

-

If a command is specified, then it is run in the subshell, which then -immediately terminates.

-

This is particularly handy in the case of git submodules in the -node_modules folder:

-
npm explore some-dependency -- git pull origin master
-

Note that the package is not automatically rebuilt afterwards, so be -sure to use npm rebuild <pkg> if you make any changes.

-

CONFIGURATION

-

shell

-
    -
  • Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows
  • -
  • Type: path
  • -
-

The shell to run for the npm explore command.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html deleted file mode 100644 index 01b1ff62d25..00000000000 --- a/deps/npm/html/doc/cli/npm-help-search.html +++ /dev/null @@ -1,49 +0,0 @@ - - - npm-help-search - - - - - - -
- -

npm-help-search

Search npm help documentation

-

SYNOPSIS

-
npm help-search <text>
-

DESCRIPTION

-

This command will search the npm markdown documentation files for the -terms provided, and then list the results, sorted by relevance.

-

If only one result is found, then it will show that help topic.

-

If the argument to npm help is not a known help topic, then it will -call help-search. It is rarely if ever necessary to call this -command directly.

-

CONFIGURATION

-

long

-
    -
  • Type: Boolean
  • -
  • Default: false
  • -
-

If true, the "long" flag will cause help-search to output context around -where the terms were found in the documentation.

-

If false, then help-search will just list out the help topics found.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html deleted file mode 100644 index 8adf3b3843c..00000000000 --- a/deps/npm/html/doc/cli/npm-help.html +++ /dev/null @@ -1,54 +0,0 @@ - - - npm-help - - - - - - -
- -

npm-help

Get help on npm

-

SYNOPSIS

-
npm help <term> [<terms..>]
-

DESCRIPTION

-

If supplied a topic, then show the appropriate documentation page.

-

If the topic does not exist, or if multiple terms are provided, then run -the help-search command to find a match. Note that, if help-search -finds a single subject, then it will run help on that topic, so unique -matches are equivalent to specifying a topic name.

-

CONFIGURATION

-

viewer

-
    -
  • Default: "man" on Posix, "browser" on Windows
  • -
  • Type: path
  • -
-

The program to use to view help content.

-

Set to "browser" to view html help content in the default web browser.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html deleted file mode 100644 index 115c9b2185a..00000000000 --- a/deps/npm/html/doc/cli/npm-init.html +++ /dev/null @@ -1,52 +0,0 @@ - - - npm-init - - - - - - -
- -

npm-init

Interactively create a package.json file

-

SYNOPSIS

-
npm init [-f|--force|-y|--yes]
-

DESCRIPTION

-

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

-

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

-

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

-

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

-

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

-

CONFIGURATION

-

scope

-
    -
  • Default: none
  • -
  • Type: String
  • -
-

The scope under which the new module should be created.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-install-test.html b/deps/npm/html/doc/cli/npm-install-test.html deleted file mode 100644 index 71262400b3d..00000000000 --- a/deps/npm/html/doc/cli/npm-install-test.html +++ /dev/null @@ -1,46 +0,0 @@ - - - npm-install-test - - - - - - -
- -

npm install-test

Install package(s) and run tests

-

SYNOPSIS

-
npm install-test (with no args, in package dir)
-npm install-test [<@scope>/]<name>
-npm install-test [<@scope>/]<name>@<tag>
-npm install-test [<@scope>/]<name>@<version>
-npm install-test [<@scope>/]<name>@<version range>
-npm install-test <tarball file>
-npm install-test <tarball url>
-npm install-test <folder>
-
-alias: npm it
-common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run]
-

DESCRIPTION

-

This command runs an npm install followed immediately by an npm test. It -takes exactly the same arguments as npm install.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html deleted file mode 100644 index 5989cc25a10..00000000000 --- a/deps/npm/html/doc/cli/npm-install.html +++ /dev/null @@ -1,373 +0,0 @@ - - - npm-install - - - - - - -
- -

npm-install

Install a package

-

SYNOPSIS

-
npm install (with no args, in package dir)
-npm install [<@scope>/]<name>
-npm install [<@scope>/]<name>@<tag>
-npm install [<@scope>/]<name>@<version>
-npm install [<@scope>/]<name>@<version range>
-npm install <git-host>:<git-user>/<repo-name>
-npm install <git repo url>
-npm install <tarball file>
-npm install <tarball url>
-npm install <folder>
-
-alias: npm i
-common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
-

DESCRIPTION

-

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

-

A package is:

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

Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b).

-
    -
  • npm install (in package directory, no arguments):

    -

    Install the dependencies in the local node_modules folder.

    -

    In global mode (ie, with -g or --global appended to the command), - it installs the current package context (ie, the current working - directory) as a global package.

    -

    By default, npm install will install all modules listed as dependencies - in package.json(5).

    -

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

    -
  • -
  • npm install <folder>:

    -

    Install the package in the directory as a symlink in the current project. - Its dependencies will be installed before it's linked. If <folder> sits - inside the root of your project, its dependencies may be hoisted to the - toplevel node_modules as they would for other types of dependencies.

    -
  • -
  • npm install <tarball file>:

    -

    Install a package that is sitting on the filesystem. Note: if you just want - to link a dev directory into your npm root, you can do this more easily by - using npm link. The filename must use .tar, .tar.gz, or .tgz as - the extension.

    -

    Example:

    -
        npm install ./package.tgz
    -
  • -
  • npm install <tarball url>:

    -

    Fetch the tarball url, and then install it. In order to distinguish between - this and other options, the argument must start with "http://" or "https://"

    -

    Example:

    -
        npm install https://github.com/indexzero/forever/tarball/v0.5.6
    -
  • -
  • npm install [<@scope>/]<name>:

    -

    Do a <name>@<tag> install, where <tag> is the "tag" config. (See - npm-config(7). The config's default value is latest.)

    -

    In most cases, this will install the version of the modules tagged as - latest on the npm registry.

    -

    Example:

    -
        npm install sax
    -

    npm install saves any specified packages into dependencies by default. - Additionally, you can control where and how they get saved with some - additional flags:

    -
      -
    • -P, --save-prod: Package will appear in your dependencies. This is the

      -
                     default unless `-D` or `-O` are present.
      -
    • -
    • -D, --save-dev: Package will appear in your devDependencies.

      -
    • -
    • -O, --save-optional: Package will appear in your optionalDependencies.

      -
    • -
    • --no-save: Prevents saving to dependencies.

      -

      When using any of the above options to save dependencies to your -package.json, there are two additional, optional flags:

      -
    • -
    • -E, --save-exact: Saved dependencies will be configured with an -exact version rather than using npm's default semver range -operator.

      -
    • -
    • -B, --save-bundle: Saved dependencies will also be added to your bundleDependencies list.

      -

      Further, if you have an npm-shrinkwrap.json or package-lock.json then it -will be updated as well.

      -

      <scope> is optional. The package will be downloaded from the registry -associated with the specified scope. If no registry is associated with -the given scope the default registry is assumed. See npm-scope(7).

      -

      Note: if you do not include the @-symbol on your scope name, npm will -interpret this as a GitHub repository instead, see below. Scopes names -must also be followed by a slash.

      -

      Examples:

      -
      npm install sax
      -npm install githubname/reponame
      -npm install @myorg/privatepackage
      -npm install node-tap --save-dev
      -npm install dtrace-provider --save-optional
      -npm install readable-stream --save-exact
      -npm install ansi-regex --save-bundle
      -
    • -
    -
  • -
-
**Note**: If there is a file or folder named `<name>` in the current
-working directory, then it will try to install that, and only try to
-fetch the package by name if it is not valid.
-
    -
  • npm install [<@scope>/]<name>@<tag>:

    -

    Install the version of the package that is referenced by the specified tag. - If the tag does not exist in the registry data for that package, then this - will fail.

    -

    Example:

    -
        npm install sax@latest
    -    npm install @myorg/mypackage@latest
    -
  • -
  • npm install [<@scope>/]<name>@<version>:

    -

    Install the specified version of the package. This will fail if the - version has not been published to the registry.

    -

    Example:

    -
        npm install sax@0.1.1
    -    npm install @myorg/privatepackage@1.5.0
    -
  • -
  • npm install [<@scope>/]<name>@<version range>:

    -

    Install a version of the package matching the specified version range. This - will follow the same rules for resolving dependencies described in package.json(5).

    -

    Note that most version ranges must be put in quotes so that your shell will - treat it as a single argument.

    -

    Example:

    -
        npm install sax@">=0.1.0 <0.2.0"
    -    npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
    -
  • -
  • npm install <git remote url>:

    -

    Installs the package from the hosted git provider, cloning it with git. - For a full git remote url, only that URL will be attempted.

    -
        <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
    -

    <protocol> is one of git, git+ssh, git+http, git+https, or - git+file.

    -

    If #<commit-ish> is provided, it will be used to clone exactly that - commit. If the commit-ish has the format #semver:<semver>, <semver> can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency. If neither #<commit-ish> or #semver:<semver> is - specified, then master is used.

    -

    If the repository makes use of submodules, those submodules will be cloned - as well.

    -

    If the package being installed contains a prepare script, its - dependencies and devDependencies will be installed, and the prepare - script will be run, before the package is packaged and installed.

    -

    The following git environment variables are recognized by npm and will be - added to the environment when running git:

    -
      -
    • GIT_ASKPASS
    • -
    • GIT_EXEC_PATH
    • -
    • GIT_PROXY_COMMAND
    • -
    • GIT_SSH
    • -
    • GIT_SSH_COMMAND
    • -
    • GIT_SSL_CAINFO
    • -
    • GIT_SSL_NO_VERIFY

      -

      See the git man page for details.

      -

      Examples:

      -
      npm install git+ssh://git@github.com:npm/npm.git#v1.0.27
      -npm install git+ssh://git@github.com:npm/npm#semver:^5.0
      -npm install git+https://isaacs@github.com/npm/npm.git
      -npm install git://github.com/npm/npm.git#v1.0.27
      -GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/npm.git
      -
    • -
    -
  • -
  • npm install <githubname>/<githubrepo>[#<commit-ish>]:

    -
  • -
  • npm install github:<githubname>/<githubrepo>[#<commit-ish>]:

    -

    Install the package at https://github.com/githubname/githubrepo by - attempting to clone it using git.

    -

    If #<commit-ish> is provided, it will be used to clone exactly that - commit. If the commit-ish has the format #semver:<semver>, <semver> can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency. If neither #<commit-ish> or #semver:<semver> is - specified, then master is used.

    -

    As with regular git dependencies, dependencies and devDependencies will - be installed if the package has a prepare script, before the package is - done installing.

    -

    Examples:

    -
        npm install mygithubuser/myproject
    -    npm install github:mygithubuser/myproject
    -
  • -
  • npm install gist:[<githubname>/]<gistID>[#<commit-ish>|#semver:<semver>]:

    -

    Install the package at https://gist.github.com/gistID by attempting to - clone it using git. The GitHub username associated with the gist is - optional and will not be saved in package.json.

    -

    As with regular git dependencies, dependencies and devDependencies will - be installed if the package has a prepare script, before the package is - done installing.

    -

    Example:

    -
        npm install gist:101a11beef
    -
  • -
  • npm install bitbucket:<bitbucketname>/<bitbucketrepo>[#<commit-ish>]:

    -

    Install the package at https://bitbucket.org/bitbucketname/bitbucketrepo - by attempting to clone it using git.

    -

    If #<commit-ish> is provided, it will be used to clone exactly that - commit. If the commit-ish has the format #semver:<semver>, <semver> can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency. If neither #<commit-ish> or #semver:<semver> is - specified, then master is used.

    -

    As with regular git dependencies, dependencies and devDependencies will - be installed if the package has a prepare script, before the package is - done installing.

    -

    Example:

    -
        npm install bitbucket:mybitbucketuser/myproject
    -
  • -
  • npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]:

    -

    Install the package at https://gitlab.com/gitlabname/gitlabrepo - by attempting to clone it using git.

    -

    If #<commit-ish> is provided, it will be used to clone exactly that - commit. If the commit-ish has the format #semver:<semver>, <semver> can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency. If neither #<commit-ish> or #semver:<semver> is - specified, then master is used.

    -

    As with regular git dependencies, dependencies and devDependencies will - be installed if the package has a prepare script, before the package is - done installing.

    -

    Example:

    -
        npm install gitlab:mygitlabuser/myproject
    -    npm install gitlab:myusr/myproj#semver:^5.0
    -
  • -
-

You may combine multiple arguments, and even multiple types of arguments. -For example:

-
npm install sax@">=0.1.0 <0.2.0" bench supervisor
-

The --tag argument will apply to all of the specified install targets. If a -tag with the given name exists, the tagged version is preferred over newer -versions.

-

The --dry-run argument will report in the usual way what the install would -have done without actually installing anything.

-

The --package-lock-only argument will only update the package-lock.json, -instead of checking node_modules and downloading dependencies.

-

The -f or --force argument will force npm to fetch remote resources even if a -local copy exists on disk.

-
npm install sax --force
-

The -g or --global argument will cause npm to install the package globally -rather than locally. See npm-folders(5).

-

The --global-style argument will cause npm to install the package into -your local node_modules folder with the same layout it uses with the -global node_modules folder. Only your direct dependencies will show in -node_modules and everything they depend on will be flattened in their -node_modules folders. This obviously will eliminate some deduping.

-

The --ignore-scripts argument will cause npm to not execute any -scripts defined in the package.json. See npm-scripts(7).

-

The --legacy-bundling argument will cause npm to install the package such -that versions of npm prior to 1.4, such as the one included with node 0.8, -can install the package. This eliminates all automatic deduping.

-

The --link argument will cause npm to link global installs into the -local space in some cases.

-

The --no-bin-links argument will prevent npm from creating symlinks for -any binaries the package might contain.

-

The --no-optional argument will prevent optional dependencies from -being installed.

-

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

-

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

-

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

-

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

-

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

-

ALGORITHM

-

To install a package, npm uses the following algorithm:

-
load the existing node_modules tree from disk
-clone the tree
-fetch the package.json and assorted metadata and add it to the clone
-walk the clone and add any missing dependencies
-  dependencies will be added as close to the top as is possible
-  without breaking any other modules
-compare the original tree with the cloned tree and make a list of
-actions to take to convert one to the other
-execute all of the actions, deepest first
-  kinds of actions are install, update, remove and move
-

For this package{dep} structure: A{B,C}, B{C}, C{D}, -this algorithm produces:

-
A
-+-- B
-+-- C
-+-- D
-

That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level. D is still installed -at the top level because nothing conflicts with it.

-

For A{B,C}, B{C,D@1}, C{D@2}, this algorithm produces:

-
A
-+-- B
-+-- C
-   `-- D@2
-+-- D@1
-

Because B's D@1 will be installed in the top level, C now has to install D@2 -privately for itself. This algorithm is deterministic, but different trees may -be produced if two dependencies are requested for installation in a different -order.

-

See npm-folders(5) for a more detailed description of the specific -folder structures that npm creates.

-

Limitations of npm's Install Algorithm

-

npm will refuse to install any package with an identical name to the -current package. This can be overridden with the --force flag, but in -most cases can simply be addressed by changing the local package name.

-

There are some very rare and pathological edge-cases where a cycle can -cause npm to try to install a never-ending tree of packages. Here is -the simplest case:

-
A -> B -> A' -> B' -> A -> B -> A' -> B' -> A -> ...
-

where A is some version of a package, and A' is a different version -of the same package. Because B depends on a different version of A -than the one that is already in the tree, it must install a separate -copy. The same is true of A', which must install B'. Because B' -depends on the original version of A, which has been overridden, the -cycle falls into infinite regress.

-

To avoid this situation, npm flat-out refuses to install any -name@version that is already present anywhere in the tree of package -folder ancestors. A more correct, but more complex, solution would be -to symlink the existing version into the new location. If this ever -affects a real use-case, it will be investigated.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html deleted file mode 100644 index 57a6ae86731..00000000000 --- a/deps/npm/html/doc/cli/npm-link.html +++ /dev/null @@ -1,78 +0,0 @@ - - - npm-link - - - - - - -
- -

npm-link

Symlink a package folder

-

SYNOPSIS

-
npm link (in package dir)
-npm link [<@scope>/]<pkg>[@<version>]
-
-alias: npm ln
-

DESCRIPTION

-

Package linking is a two-step process.

-

First, npm link in a package folder will create a symlink in the global folder -{prefix}/lib/node_modules/<package> that links to the package where the npm -link command was executed. (see npm-config(7) for the value of prefix). It -will also link any bins in the package to {prefix}/bin/{name}.

-

Next, in some other location, npm link package-name will create a -symbolic link from globally-installed package-name to node_modules/ -of the current folder.

-

Note that package-name is taken from package.json, -not from directory name.

-

The package name can be optionally prefixed with a scope. See npm-scope(7). -The scope must be preceded by an @-symbol and followed by a slash.

-

When creating tarballs for npm publish, the linked packages are -"snapshotted" to their current state by resolving the symbolic links.

-

This is handy for installing your own stuff, so that you can work on it and -test it iteratively without having to continually rebuild.

-

For example:

-
cd ~/projects/node-redis    # go into the package directory
-npm link                    # creates global link
-cd ~/projects/node-bloggy   # go into some other package directory.
-npm link redis              # link-install the package
-

Now, any changes to ~/projects/node-redis will be reflected in -~/projects/node-bloggy/node_modules/node-redis/. Note that the link should -be to the package name, not the directory name for that package.

-

You may also shortcut the two steps in one. For example, to do the -above use-case in a shorter way:

-
cd ~/projects/node-bloggy  # go into the dir of your main project
-npm link ../node-redis     # link the dir of your dependency
-

The second line is the equivalent of doing:

-
(cd ../node-redis; npm link)
-npm link node-redis
-

That is, it first creates a global link, and then links the global -installation target into your project's node_modules folder.

-

If your linked package is scoped (see npm-scope(7)) your link command must -include that scope, e.g.

-
npm link @myorg/privatepackage
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-logout.html b/deps/npm/html/doc/cli/npm-logout.html deleted file mode 100644 index a06341b2d2d..00000000000 --- a/deps/npm/html/doc/cli/npm-logout.html +++ /dev/null @@ -1,55 +0,0 @@ - - - npm-logout - - - - - - -
- -

npm-logout

Log out of the registry

-

SYNOPSIS

-
npm logout [--registry=<url>] [--scope=<@scope>]
-

DESCRIPTION

-

When logged into a registry that supports token-based authentication, tell the -server to end this token's session. This will invalidate the token everywhere -you're using it, not just for the current environment.

-

When logged into a legacy registry that uses username and password authentication, this will -clear the credentials in your user configuration. In this case, it will only affect -the current environment.

-

If --scope is provided, this will find the credentials for the registry -connected to that scope, if set.

-

CONFIGURATION

-

registry

-

Default: https://registry.npmjs.org/

-

The base URL of the npm package registry. If scope is also specified, -it takes precedence.

-

scope

-

Default: The scope of your current project, if any, otherwise none.

-

If specified, you will be logged out of the specified scope. See npm-scope(7).

-
npm logout --scope=@myco
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html deleted file mode 100644 index 4ba0917179d..00000000000 --- a/deps/npm/html/doc/cli/npm-ls.html +++ /dev/null @@ -1,114 +0,0 @@ - - - npm-ls - - - - - - -
- -

npm-ls

List installed packages

-

SYNOPSIS

-
npm ls [[<@scope>/]<pkg> ...]
-
-aliases: list, la, ll
-

DESCRIPTION

-

This command will print to stdout all the versions of packages that are -installed, as well as their dependencies, in a tree-structure.

-

Positional arguments are name@version-range identifiers, which will -limit the results to only the paths to the packages named. Note that -nested packages will also show the paths to the specified packages. -For example, running npm ls promzard in npm's source tree will show:

-
npm@5.6.0 /path/to/npm
-└─┬ init-package-json@0.0.4
-  └── promzard@0.1.5
-

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

-

If a project specifies git urls for dependencies these are shown -in parentheses after the name@version to make it easier for users to -recognize potential forks of a project.

-

The tree shown is the logical dependency tree, based on package -dependencies, not the physical layout of your node_modules folder.

-

When run as ll or la, it shows extended information by default.

-

CONFIGURATION

-

json

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show information in JSON format.

-

long

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show extended information.

-

parseable

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show parseable output instead of tree view.

-

global

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

List packages in the global install prefix instead of in the current -project.

-

depth

-
    -
  • Type: Int
  • -
-

Max display depth of the dependency tree.

-

prod / production

-
    -
  • Type: Boolean
  • -
  • Default: false
  • -
-

Display only the dependency tree for packages in dependencies.

-

dev

-
    -
  • Type: Boolean
  • -
  • Default: false
  • -
-

Display only the dependency tree for packages in devDependencies.

-

only

-
    -
  • Type: String
  • -
-

When "dev" or "development", is an alias to dev.

-

When "prod" or "production", is an alias to production.

- -
    -
  • Type: Boolean
  • -
  • Default: false
  • -
-

Display only dependencies which are linked

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html deleted file mode 100644 index d59e0548a3e..00000000000 --- a/deps/npm/html/doc/cli/npm-outdated.html +++ /dev/null @@ -1,120 +0,0 @@ - - - npm-outdated - - - - - - -
- -

npm-outdated

Check for outdated packages

-

SYNOPSIS

-
npm outdated [[<@scope>/]<pkg> ...]
-

DESCRIPTION

-

This command will check the registry to see if any (or, specific) installed -packages are currently outdated.

-

In the output:

-
    -
  • wanted is the maximum version of the package that satisfies the semver -range specified in package.json. If there's no available semver range (i.e. -you're running npm outdated --global, or the package isn't included in -package.json), then wanted shows the currently-installed version.
  • -
  • latest is the version of the package tagged as latest in the registry. -Running npm publish with no special configuration will publish the package -with a dist-tag of latest. This may or may not be the maximum version of -the package, or the most-recently published version of the package, depending -on how the package's developer manages the latest dist-tag(1).
  • -
  • location is where in the dependency tree the package is located. Note that -npm outdated defaults to a depth of 0, so unless you override that, you'll -always be seeing only top-level dependencies that are outdated.
  • -
  • package type (when using --long / -l) tells you whether this package is -a dependency or a devDependency. Packages not included in package.json -are always marked dependencies.
  • -
-

An example

-
$ npm outdated
-Package      Current   Wanted   Latest  Location
-glob          5.0.15   5.0.15    6.0.1  test-outdated-output
-nothingness    0.0.3      git      git  test-outdated-output
-npm            3.5.1    3.5.2    3.5.1  test-outdated-output
-local-dev      0.0.3   linked   linked  test-outdated-output
-once           1.3.2    1.3.3    1.3.3  test-outdated-output
-

With these dependencies:

-
{
-  "glob": "^5.0.15",
-  "nothingness": "github:othiym23/nothingness#master",
-  "npm": "^3.5.1",
-  "once": "^1.3.1"
-}
-
-

A few things to note:

-
    -
  • glob requires ^5, which prevents npm from installing glob@6, which is -outside the semver range.
  • -
  • Git dependencies will always be reinstalled, because of how they're specified. -The installed committish might satisfy the dependency specifier (if it's -something immutable, like a commit SHA), or it might not, so npm outdated and -npm update have to fetch Git repos to check. This is why currently doing a -reinstall of a Git dependency always forces a new clone and install.
  • -
  • npm@3.5.2 is marked as "wanted", but "latest" is npm@3.5.1 because npm -uses dist-tags to manage its latest and next release channels. npm update -will install the newest version, but npm install npm (with no semver range) -will install whatever's tagged as latest.
  • -
  • once is just plain out of date. Reinstalling node_modules from scratch or -running npm update will bring it up to spec.
  • -
-

CONFIGURATION

-

json

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show information in JSON format.

-

long

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show extended information.

-

parseable

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show parseable output instead of tree view.

-

global

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Check packages in the global install prefix instead of in the current -project.

-

depth

-
    -
  • Default: 0
  • -
  • Type: Int
  • -
-

Max depth for checking dependency tree.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html deleted file mode 100644 index 6b28ab48d15..00000000000 --- a/deps/npm/html/doc/cli/npm-owner.html +++ /dev/null @@ -1,58 +0,0 @@ - - - npm-owner - - - - - - -
- -

npm-owner

Manage package owners

-

SYNOPSIS

-
npm owner add <user> [<@scope>/]<pkg>
-npm owner rm <user> [<@scope>/]<pkg>
-npm owner ls [<@scope>/]<pkg>
-
-aliases: author
-

DESCRIPTION

-

Manage ownership of published packages.

-
    -
  • ls: -List all the users who have access to modify a package and push new versions. -Handy when you need to know who to bug for help.
  • -
  • add: -Add a new user as a maintainer of a package. This user is enabled to modify -metadata, publish new versions, and add other owners.
  • -
  • rm: -Remove a user from the package owner list. This immediately revokes their -privileges.
  • -
-

Note that there is only one level of access. Either you can modify a package, -or you can't. Future versions may contain more fine-grained access levels, but -that is not implemented at this time.

-

If you have two-factor authentication enabled with auth-and-writes then -you'll need to include an otp on the command line when changing ownership -with --otp.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html deleted file mode 100644 index 35e6670bef2..00000000000 --- a/deps/npm/html/doc/cli/npm-pack.html +++ /dev/null @@ -1,45 +0,0 @@ - - - npm-pack - - - - - - -
- -

npm-pack

Create a tarball from a package

-

SYNOPSIS

-
npm pack [[<@scope>/]<pkg>...]
-

DESCRIPTION

-

For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, name, or scoped name), this -command will fetch it to the cache, and then copy the tarball to the -current working directory as <name>-<version>.tgz, and then write -the filenames out to stdout.

-

If the same package is specified multiple times, then the file will be -overwritten the second time.

-

If no arguments are supplied, then npm packs the current package folder.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-ping.html b/deps/npm/html/doc/cli/npm-ping.html deleted file mode 100644 index 4b67c2686e9..00000000000 --- a/deps/npm/html/doc/cli/npm-ping.html +++ /dev/null @@ -1,40 +0,0 @@ - - - npm-ping - - - - - - -
- -

npm-ping

Ping npm registry

-

SYNOPSIS

-
npm ping [--registry <registry>]
-

DESCRIPTION

-

Ping the configured or given npm registry and verify authentication. -If it works it will output something like:

-
Ping success: {*Details about registry*}
-

otherwise you will get:

-
Ping error: {*Detail about error}
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html deleted file mode 100644 index ebb2f6a3c60..00000000000 --- a/deps/npm/html/doc/cli/npm-prefix.html +++ /dev/null @@ -1,42 +0,0 @@ - - - npm-prefix - - - - - - -
- -

npm-prefix

Display prefix

-

SYNOPSIS

-
npm prefix [-g]
-

DESCRIPTION

-

Print the local prefix to standard out. This is the closest parent directory -to contain a package.json file unless -g is also specified.

-

If -g is specified, this will be the value of the global prefix. See -npm-config(7) for more detail.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-profile.html b/deps/npm/html/doc/cli/npm-profile.html deleted file mode 100644 index 3d952205f43..00000000000 --- a/deps/npm/html/doc/cli/npm-profile.html +++ /dev/null @@ -1,93 +0,0 @@ - - - npm-profile - - - - - - -
- -

npm-profile

Change settings on your registry profile

-

SYNOPSIS

-
npm profile get [--json|--parseable] [<property>]
-npm profile set [--json|--parseable] <property> <value>
-npm profile set password
-npm profile enable-2fa [auth-and-writes|auth-only]
-npm profile disable-2fa
-

DESCRIPTION

-

Change your profile information on the registry. This not be available if -you're using a non-npmjs registry.

-
    -
  • npm profile get [<property>]: -Display all of the properties of your profile, or one or more specific -properties. It looks like:
  • -
-
+-----------------+---------------------------+
-| name            | example                   |
-+-----------------+---------------------------+
-| email           | me@example.com (verified) |
-+-----------------+---------------------------+
-| two factor auth | auth-and-writes           |
-+-----------------+---------------------------+
-| fullname        | Example User              |
-+-----------------+---------------------------+
-| homepage        |                           |
-+-----------------+---------------------------+
-| freenode        |                           |
-+-----------------+---------------------------+
-| twitter         |                           |
-+-----------------+---------------------------+
-| github          |                           |
-+-----------------+---------------------------+
-| created         | 2015-02-26T01:38:35.892Z  |
-+-----------------+---------------------------+
-| updated         | 2017-10-02T21:29:45.922Z  |
-+-----------------+---------------------------+
-
    -
  • npm profile set <property> <value>: -Set the value of a profile property. You can set the following properties this way: - email, fullname, homepage, freenode, twitter, github

    -
  • -
  • npm profile set password: -Change your password. This is interactive, you'll be prompted for your -current password and a new password. You'll also be prompted for an OTP -if you have two-factor authentication enabled.

    -
  • -
  • npm profile enable-2fa [auth-and-writes|auth-only]: -Enables two-factor authentication. Defaults to auth-and-writes mode. Modes are:

    -
      -
    • auth-only: Require an OTP when logging in or making changes to your -account's authentication. The OTP will be required on both the website -and the command line.
    • -
    • auth-and-writes: Requires an OTP at all the times auth-only does, and also requires one when -publishing a module, setting the latest dist-tag, or changing access -via npm access and npm owner.
    • -
    -
  • -
  • npm profile disable-2fa: -Disables two-factor authentication.

    -
  • -
-

DETAILS

-

All of the npm profile subcommands accept --json and --parseable and -will tailor their output based on those. Some of these commands may not be -available on non npmjs.com registries.

-

SEE ALSO

- - -
- - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html deleted file mode 100644 index f71aa0c212f..00000000000 --- a/deps/npm/html/doc/cli/npm-prune.html +++ /dev/null @@ -1,44 +0,0 @@ - - - npm-prune - - - - - - -
- -

npm-prune

Remove extraneous packages

-

SYNOPSIS

-
npm prune [[<@scope>/]<pkg>...] [--production]
-

DESCRIPTION

-

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

-

Extraneous packages are packages that are not listed on the parent -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 -negate NODE_ENV being set to production.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html deleted file mode 100644 index c8a0b691e13..00000000000 --- a/deps/npm/html/doc/cli/npm-publish.html +++ /dev/null @@ -1,89 +0,0 @@ - - - npm-publish - - - - - - -
- -

npm-publish

Publish a package

-

SYNOPSIS

-
npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode]
-
-Publishes '.' if no argument supplied
-Sets tag 'latest' if no --tag specified
-

DESCRIPTION

-

Publishes a package to the registry so that it can be installed by name. All -files in the package directory are included if no local .gitignore or -.npmignore file exists. If both files exist and a file is ignored by -.gitignore but not by .npmignore then it will be included. See -npm-developers(7) for full details on what's included in the published -package, as well as details on how the package is built.

-

By default npm will publish to the public registry. This can be overridden by -specifying a different default registry or using a npm-scope(7) in the name -(see package.json(5)).

-
    -
  • <folder>: -A folder containing a package.json file

    -
  • -
  • <tarball>: -A url or file path to a gzipped tar archive containing a single folder -with a package.json file inside.

    -
  • -
  • [--tag <tag>] -Registers the published package with the given tag, such that npm install -<name>@<tag> will install this version. By default, npm publish updates -and npm install installs the latest tag. See npm-dist-tag(1) for -details about tags.

    -
  • -
  • [--access <public|restricted>] -Tells the registry whether this package should be published as public or -restricted. Only applies to scoped packages, which default to restricted. -If you don't have a paid account, you must publish with --access public -to publish scoped packages.

    -
  • -
  • [--otp <otpcode>] -If you have two-factor authentication enabled in auth-and-writes mode -then you can provide a code from your authenticator with this. If you -don't include this and you're running from a TTY then you'll be prompted.

    -
  • -
-

Fails if the package name and version combination already exists in -the specified registry.

-

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

-

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

-

For a "dry run" that does everything except actually publishing to the -registry, see npm-pack(1), which figures out the files to be included and -packs them into a tarball to be uploaded to the registry.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html deleted file mode 100644 index 136192342a4..00000000000 --- a/deps/npm/html/doc/cli/npm-rebuild.html +++ /dev/null @@ -1,39 +0,0 @@ - - - npm-rebuild - - - - - - -
- -

npm-rebuild

Rebuild a package

-

SYNOPSIS

-
npm rebuild [[<@scope>/<name>]...]
-
-alias: npm rb
-

DESCRIPTION

-

This command runs the npm build command on the matched folders. This is useful -when you install a new version of node, and must recompile all your C++ addons with -the new binary.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html deleted file mode 100644 index 12e6b1748ef..00000000000 --- a/deps/npm/html/doc/cli/npm-repo.html +++ /dev/null @@ -1,45 +0,0 @@ - - - npm-repo - - - - - - -
- -

npm-repo

Open package repository page in the browser

-

SYNOPSIS

-
npm repo [<pkg>]
-

DESCRIPTION

-

This command tries to guess at the likely location of a package's -repository URL, and then tries to open it using the --browser -config param. If no package name is provided, it will search for -a package.json in the current folder and use the name property.

-

CONFIGURATION

-

browser

-
    -
  • Default: OS X: "open", Windows: "start", Others: "xdg-open"
  • -
  • Type: String
  • -
-

The browser that is called by the npm repo command to open websites.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html deleted file mode 100644 index 4f9aacecf1d..00000000000 --- a/deps/npm/html/doc/cli/npm-restart.html +++ /dev/null @@ -1,57 +0,0 @@ - - - npm-restart - - - - - - -
- -

npm-restart

Restart a package

-

SYNOPSIS

-
npm restart [-- <args>]
-

DESCRIPTION

-

This restarts a package.

-

This runs a package's "stop", "restart", and "start" scripts, and associated -pre- and post- scripts, in the order given below:

-
    -
  1. prerestart
  2. -
  3. prestop
  4. -
  5. stop
  6. -
  7. poststop
  8. -
  9. restart
  10. -
  11. prestart
  12. -
  13. start
  14. -
  15. poststart
  16. -
  17. postrestart
  18. -
-

NOTE

-

Note that the "restart" script is run in addition to the "stop" -and "start" scripts, not instead of them.

-

This is the behavior as of npm major version 2. A change in this -behavior will be accompanied by an increase in major version number

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html deleted file mode 100644 index a4e9aa9bd63..00000000000 --- a/deps/npm/html/doc/cli/npm-root.html +++ /dev/null @@ -1,39 +0,0 @@ - - - npm-root - - - - - - -
- -

npm-root

Display npm root

-

SYNOPSIS

-
npm root [-g]
-

DESCRIPTION

-

Print the effective node_modules folder to standard out.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html deleted file mode 100644 index 489fbccb093..00000000000 --- a/deps/npm/html/doc/cli/npm-run-script.html +++ /dev/null @@ -1,84 +0,0 @@ - - - npm-run-script - - - - - - -
- -

npm-run-script

Run arbitrary package scripts

-

SYNOPSIS

-
npm run-script <command> [--silent] [-- <args>...]
-
-alias: npm run
-

DESCRIPTION

-

This runs an arbitrary command from a package's "scripts" object. If no -"command" is provided, it will list the available scripts. run[-script] is -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.

-

As of npm@2.0.0, you can -use custom arguments when executing scripts. The special option -- is used by -getopt to delimit the end of the options. npm will pass -all the arguments after the -- directly to your script:

-
npm run test -- --grep="pattern"
-

The arguments will only be passed to the script specified after npm run -and not to any pre or post script.

-

The env script is a special built-in command that can be used to list -environment variables that will be available to the script at runtime. If an -"env" command is defined in your package, it will take precedence over the -built-in.

-

In addition to the shell's pre-existing PATH, npm run adds -node_modules/.bin to the PATH provided to scripts. Any binaries provided by -locally-installed dependencies can be used without the node_modules/.bin -prefix. For example, if there is a devDependency on tap in your package, -you should write:

-
"scripts": {"test": "tap test/\*.js"}
-

instead of

-
"scripts": {"test": "node_modules/.bin/tap test/\*.js"}
-

to run your tests.

-

The actual shell your script is run within is platform dependent. By default, -on Unix-like systems it is the /bin/sh command, on Windows it is the cmd.exe. -The actual shell referred to by /bin/sh also depends on the system. -As of npm@5.1.0 you can -customize the shell with the script-shell configuration.

-

Scripts are run from the root of the module, regardless of what your current -working directory is when you call npm run. If you want your script to -use different behavior based on what subdirectory you're in, you can use the -INIT_CWD environment variable, which holds the full path you were in when -you ran npm run.

-

npm run sets the NODE environment variable to the node executable with -which npm is executed. Also, if the --scripts-prepend-node-path is passed, -the directory within which node resides is added to the -PATH. If --scripts-prepend-node-path=auto is passed (which has been the -default in npm v3), this is only performed when that node executable is -not found in the PATH.

-

If you try to run a script without having a node_modules directory and it fails, -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.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html deleted file mode 100644 index df759928a73..00000000000 --- a/deps/npm/html/doc/cli/npm-search.html +++ /dev/null @@ -1,113 +0,0 @@ - - - npm-search - - - - - - -
- -

npm-search

Search for packages

-

SYNOPSIS

-
npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...]
-
-aliases: s, se, find
-

DESCRIPTION

-

Search the registry for packages matching the search terms. npm search -performs a linear, incremental, lexically-ordered search through package -metadata for all files in the registry. If color is enabled, it will further -highlight the matches in the results.

-

Additionally, using the --searchopts and --searchexclude options paired with -more search terms will respectively include and exclude further patterns. The -main difference between --searchopts and the standard search terms is that the -former does not highlight results in the output and can be used for more -fine-grained filtering. Additionally, both of these can be added to .npmrc for -default search filtering behavior.

-

Search also allows targeting of maintainers in search results, by prefixing -their npm username with =.

-

If a term starts with /, then it's interpreted as a regular expression and -supports standard JavaScript RegExp syntax. A trailing / will be ignored in -this case. (Note that many regular expression characters must be escaped or -quoted in most shells.)

-

A Note on caching

-

CONFIGURATION

-

description

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Used as --no-description, disables search matching in package descriptions and -suppresses display of that field in results.

-

json

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Output search results as a JSON array.

-

parseable

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Output search results as lines with tab-separated columns.

-

long

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Display full package descriptions and other long text across multiple -lines. When disabled (default) search results are truncated to fit -neatly on a single line. Modules with extremely long names will -fall on multiple lines.

-

searchopts

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

Space-separated options that are always passed to search.

-

searchexclude

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

Space-separated options that limit the results from search.

-

searchstaleness

-
    -
  • Default: 900 (15 minutes)
  • -
  • Type: Number
  • -
-

The age of the cache, in seconds, before another registry request is made.

-

registry

- -

Search the specified registry for modules. If you have configured npm to point -to a different default registry, such as your internal private module -repository, npm search will default to that registry when searching. Pass a -different registry url such as the default above in order to override this -setting.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html deleted file mode 100644 index 629f5b69a7b..00000000000 --- a/deps/npm/html/doc/cli/npm-shrinkwrap.html +++ /dev/null @@ -1,45 +0,0 @@ - - - npm-shrinkwrap - - - - - - -
- -

npm-shrinkwrap

Lock down dependency versions for publication

-

SYNOPSIS

-
npm shrinkwrap
-

DESCRIPTION

-

This command repurposes package-lock.json into a publishable -npm-shrinkwrap.json or simply creates a new one. The file created and updated -by this command will then take precedence over any other existing or future -package-lock.json files. For a detailed explanation of the design and purpose -of package locks in npm, see npm-package-locks(5).

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html deleted file mode 100644 index a957ff479f4..00000000000 --- a/deps/npm/html/doc/cli/npm-star.html +++ /dev/null @@ -1,40 +0,0 @@ - - - npm-star - - - - - - -
- -

npm-star

Mark your favorite packages

-

SYNOPSIS

-
npm star [<pkg>...]
-npm unstar [<pkg>...]
-

DESCRIPTION

-

"Starring" a package means that you have some interest in it. It's -a vaguely positive way to show that you care.

-

"Unstarring" is the same thing, but in reverse.

-

It's a boolean thing. Starring repeatedly has no additional effect.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html deleted file mode 100644 index ff6dbfb3143..00000000000 --- a/deps/npm/html/doc/cli/npm-stars.html +++ /dev/null @@ -1,40 +0,0 @@ - - - npm-stars - - - - - - -
- -

npm-stars

View packages marked as favorites

-

SYNOPSIS

-
npm stars [<user>]
-

DESCRIPTION

-

If you have starred a lot of neat things and want to find them again -quickly this command lets you do just that.

-

You may also want to see your friend's favorite packages, in this case -you will most certainly enjoy this command.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html deleted file mode 100644 index 0c0dfb3ae1e..00000000000 --- a/deps/npm/html/doc/cli/npm-start.html +++ /dev/null @@ -1,43 +0,0 @@ - - - npm-start - - - - - - -
- -

npm-start

Start a package

-

SYNOPSIS

-
npm start [-- <args>]
-

DESCRIPTION

-

This runs an arbitrary command specified in the package's "start" property of -its "scripts" object. If no "start" property is specified on the -"scripts" object, it will run node server.js.

-

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

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html deleted file mode 100644 index 9c04332e681..00000000000 --- a/deps/npm/html/doc/cli/npm-stop.html +++ /dev/null @@ -1,38 +0,0 @@ - - - npm-stop - - - - - - -
- -

npm-stop

Stop a package

-

SYNOPSIS

-
npm stop [-- <args>]
-

DESCRIPTION

-

This runs a package's "stop" script, if one was provided.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-team.html b/deps/npm/html/doc/cli/npm-team.html deleted file mode 100644 index 81d74fa0a7f..00000000000 --- a/deps/npm/html/doc/cli/npm-team.html +++ /dev/null @@ -1,71 +0,0 @@ - - - npm-team - - - - - - -
- -

npm-team

Manage organization teams and team memberships

-

SYNOPSIS

-
npm team create <scope:team>
-npm team destroy <scope:team>
-
-npm team add <scope:team> <user>
-npm team rm <scope:team> <user>
-
-npm team ls <scope>|<scope:team>
-
-npm team edit <scope:team>
-

DESCRIPTION

-

Used to manage teams in organizations, and change team memberships. Does not -handle permissions for packages.

-

Teams must always be fully qualified with the organization/scope they belong to -when operating on them, separated by a colon (:). That is, if you have a -developers team on a foo organization, you must always refer to that team as -foo:developers in these commands.

-
    -
  • create / destroy: -Create a new team, or destroy an existing one.

    -
  • -
  • add / rm: -Add a user to an existing team, or remove a user from a team they belong to.

    -
  • -
  • 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.

    -
  • -
-

DETAILS

-

npm team always operates directly on the current registry, configurable from -the command line using --registry=<registry url>.

-

In order to create teams and manage team membership, you must be a team admin -under the given organization. Listing teams and team memberships may be done by -any member of the organizations.

-

Organization creation and management of team admins and organization members -is done through the website, not the npm CLI.

-

To use teams to manage permissions on packages belonging to your organization, -use the npm access command to grant or revoke the appropriate permissions.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html deleted file mode 100644 index 280e69f3a18..00000000000 --- a/deps/npm/html/doc/cli/npm-test.html +++ /dev/null @@ -1,40 +0,0 @@ - - - npm-test - - - - - - -
- -

npm-test

Test a package

-

SYNOPSIS

-
  npm test [-- <args>]
-
-  aliases: t, tst
-

DESCRIPTION

-

This runs a package's "test" script, if one was provided.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-token.html b/deps/npm/html/doc/cli/npm-token.html deleted file mode 100644 index 8ec2f5fbec2..00000000000 --- a/deps/npm/html/doc/cli/npm-token.html +++ /dev/null @@ -1,76 +0,0 @@ - - - npm-token - - - - - - -
- -

npm-token

Manage your authentication tokens

-

SYNOPSIS

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

DESCRIPTION

-

This list you list, create and revoke authentication tokens.

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

    -
    +--------+---------+------------+----------+----------------+
    -| id     | token   | created    | read-only | CIDR whitelist |
    -+--------+---------+------------+----------+----------------+
    -| 7f3134 | 1fa9ba… | 2017-10-02 | yes      |                |
    -+--------+---------+------------+----------+----------------+
    -| c03241 | af7aef… | 2017-10-02 | no       | 192.168.0.1/24 |
    -+--------+---------+------------+----------+----------------+
    -| e0cf92 | 3a436a… | 2017-10-02 | no       |                |
    -+--------+---------+------------+----------+----------------+
    -| 63eb9d | 74ef35… | 2017-09-28 | no       |                |
    -+--------+---------+------------+----------+----------------+
    -| 2daaa8 | cbad5f… | 2017-09-26 | no       |                |
    -+--------+---------+------------+----------+----------------+
    -| 68c2fe | 127e51… | 2017-09-23 | no       |                |
    -+--------+---------+------------+----------+----------------+
    -| 6334e1 | 1dadd1… | 2017-09-23 | no       |                |
    -+--------+---------+------------+----------+----------------+
    -
  • -
  • npm token create [--read-only] [--cidr=<cidr-ranges>]: -Create a new authentication token. It can be --read-only or accept a list of -CIDR ranges to -limit use of this token to. This will prompt you for your password, and, if you have -two-factor authentication enabled, an otp.

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

npm-uninstall

Remove a package

-

SYNOPSIS

-
npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save]
-
-aliases: remove, rm, r, un, unlink
-

DESCRIPTION

-

This uninstalls a package, completely removing everything npm installed -on its behalf.

-

Example:

-
npm uninstall sax
-

In global mode (ie, with -g or --global appended to the command), -it uninstalls the current package context as a global package.

-

npm uninstall takes 3 exclusive, optional flags which save or update -the package version in your main package.json:

-
    -
  • -S, --save: Package will be removed from your dependencies.

    -
  • -
  • -D, --save-dev: Package will be removed from your devDependencies.

    -
  • -
  • -O, --save-optional: Package will be removed from your optionalDependencies.

    -
  • -
  • --no-save: Package will not be removed from your package.json file.

    -
  • -
-

Further, if you have an npm-shrinkwrap.json then it will be updated as -well.

-

Scope is optional and follows the usual rules for npm-scope(7).

-

Examples:

-
npm uninstall sax --save
-npm uninstall @myorg/privatepackage --save
-npm uninstall node-tap --save-dev
-npm uninstall dtrace-provider --save-optional
-npm uninstall lodash --no-save
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html deleted file mode 100644 index 721de2828ff..00000000000 --- a/deps/npm/html/doc/cli/npm-unpublish.html +++ /dev/null @@ -1,55 +0,0 @@ - - - npm-unpublish - - - - - - -
- -

npm-unpublish

Remove a package from the registry

-

SYNOPSIS

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

WARNING

-

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

-

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

-

There is plenty of room on the registry.

-

DESCRIPTION

-

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

-

If no version is specified, or if all versions are removed then -the root package entry is removed from the registry entirely.

-

Even if a package version is unpublished, that specific name and -version combination can never be reused. In order to publish the -package again, a new version number must be used.

-

With the default registry (registry.npmjs.org), 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.

-

The scope is optional and follows the usual rules for npm-scope(7).

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html deleted file mode 100644 index ddaf4104df1..00000000000 --- a/deps/npm/html/doc/cli/npm-update.html +++ /dev/null @@ -1,122 +0,0 @@ - - - npm-update - - - - - - -
- -

npm-update

Update a package

-

SYNOPSIS

-
npm update [-g] [<pkg>...]
-
-aliases: up, upgrade
-

DESCRIPTION

-

This command will update all the packages listed to the latest version -(specified by the tag config), respecting semver.

-

It will also install missing packages. As with all commands that install -packages, the --dev flag will cause devDependencies to be processed -as well.

-

If the -g flag is specified, this command will update globally installed -packages.

-

If no package name is specified, all packages in the specified location (global -or local) will be updated.

-

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.

-

EXAMPLES

-

IMPORTANT VERSION NOTE: these examples assume npm@2.6.1 or later. For -older versions of npm, you must specify --depth 0 to get the behavior -described below.

-

For the examples below, assume that the current package is app and it depends -on dependencies, dep1 (dep2, .. etc.). The published versions of dep1 are:

-
{
-  "dist-tags": { "latest": "1.2.2" },
-  "versions": [
-    "1.2.2",
-    "1.2.1",
-    "1.2.0",
-    "1.1.2",
-    "1.1.1",
-    "1.0.0",
-    "0.4.1",
-    "0.4.0",
-    "0.2.0"
-  ]
-}
-

Caret Dependencies

-

If app's package.json contains:

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

Then npm update will install dep1@1.2.2, because 1.2.2 is latest and -1.2.2 satisfies ^1.1.1.

-

Tilde Dependencies

-

However, if app's package.json contains:

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

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

-

Caret Dependencies below 1.0.0

-

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

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

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

-

If the dependence were on ^0.4.0:

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

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

-

Recording Updates with --save

-

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

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

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

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

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

-

Updating Globally-Installed Packages

-

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

-

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

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html deleted file mode 100644 index e8da71b67a0..00000000000 --- a/deps/npm/html/doc/cli/npm-version.html +++ /dev/null @@ -1,124 +0,0 @@ - - - npm-version - - - - - - -
- -

npm-version

Bump a package version

-

SYNOPSIS

-
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
-
-'npm [-v | --version]' to print npm version
-'npm view <pkg> version' to view a package's published version
-'npm ls' to inspect current package/dependency versions
-

DESCRIPTION

-

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

-

The newversion argument should be a valid semver string, a -valid second argument to semver.inc (one of patch, minor, major, -prepatch, preminor, premajor, prerelease), or from-git. In the second case, -the existing version will be incremented by 1 in the specified field. -from-git will try to read the latest git tag, and use that as the new npm version.

-

If run in a git repo, it will also create a version commit and tag. -This behavior is controlled by git-tag-version (see below), and can -be disabled on the command line by running npm --no-git-tag-version version. -It will fail if the working directory is not clean, unless the -f or ---force flag is set.

-

If supplied with -m or --message config option, npm will -use it as a commit message when creating a version commit. If the -message config contains %s then that will be replaced with the -resulting version number. For example:

-
npm version patch -m "Upgrade to %s for reasons"
-

If the sign-git-tag config is set, then the tag will be signed using -the -s flag to git. Note that you must have a default GPG key set up -in your git config for this to work properly. For example:

-
$ npm config set sign-git-tag true
-$ npm version patch
-
-You need a passphrase to unlock the secret key for
-user: "isaacs (http://blog.izs.me/) <i@izs.me>"
-2048-bit RSA key, ID 6C481CF6, created 2010-08-31
-
-Enter passphrase:
-

If preversion, version, or postversion are in the scripts property of -the package.json, they will be executed as part of running npm version.

-

The exact order of execution is as follows:

-
    -
  1. Check to make sure the git working directory is clean before we get started. -Your scripts may add files to the commit in future steps. -This step is skipped if the --force flag is set.
  2. -
  3. Run the preversion script. These scripts have access to the old version in package.json. -A typical use would be running your full test suite before deploying. -Any files you want added to the commit should be explicitly added using git add.
  4. -
  5. Bump version in package.json as requested (patch, minor, major, etc).
  6. -
  7. Run the version script. These scripts have access to the new version in package.json -(so they can incorporate it into file headers in generated files for example). -Again, scripts should explicitly add generated files to the commit using git add.
  8. -
  9. Commit and tag.
  10. -
  11. Run the postversion script. Use it to clean up the file system or automatically push -the commit and/or tag.
  12. -
-

Take the following example:

-
"scripts": {
-  "preversion": "npm test",
-  "version": "npm run build && git add -A dist",
-  "postversion": "git push && git push --tags && rm -rf build/temp"
-}
-

This runs all your tests, and proceeds only if they pass. Then runs your build script, and -adds everything in the dist directory to the commit. After the commit, it pushes the new commit -and tag up to the server, and deletes the build/temp directory.

-

CONFIGURATION

-

allow-same-version

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Prevents throwing an error when npm version is used to set the new version -to the same value as the current version.

-

git-tag-version

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Commit and tag the version change.

-

commit-hooks

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Run git commit hooks when committing the version change.

-

sign-git-tag

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Pass the -s flag to git to sign the tag.

-

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

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html deleted file mode 100644 index a94ea56271e..00000000000 --- a/deps/npm/html/doc/cli/npm-view.html +++ /dev/null @@ -1,90 +0,0 @@ - - - npm-view - - - - - - -
- -

npm-view

View registry info

-

SYNOPSIS

-
npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
-
-aliases: info, show, v
-

DESCRIPTION

-

This command shows data about a package and prints it to the stream -referenced by the outfd config, which defaults to stdout.

-

To show the package registry entry for the connect package, you can do -this:

-
npm view connect
-

The default version is "latest" if unspecified.

-

Field names can be specified after the package descriptor. -For example, to show the dependencies of the ronn package at version -0.3.5, you could do the following:

-
npm view ronn@0.3.5 dependencies
-

You can view child fields by separating them with a period. -To view the git repository URL for the latest version of npm, you could -do this:

-
npm view npm repository.url
-

This makes it easy to view information about a dependency with a bit of -shell scripting. For example, to view all the data about the version of -opts that ronn depends on, you can do this:

-
npm view opts@$(npm view ronn dependencies.opts)
-

For fields that are arrays, requesting a non-numeric field will return -all of the values from the objects in the list. For example, to get all -the contributor names for the "express" project, you can do this:

-
npm view express contributors.email
-

You may also use numeric indices in square braces to specifically select -an item in an array field. To just get the email address of the first -contributor in the list, you can do this:

-
npm view express contributors[0].email
-

Multiple fields may be specified, and will be printed one after another. -For example, to get all the contributor names and email addresses, you -can do this:

-
npm view express contributors.name contributors.email
-

"Person" fields are shown as a string if they would be shown as an -object. So, for example, this will show the list of npm contributors in -the shortened string format. (See package.json(5) for more on this.)

-
npm view npm contributors
-

If a version range is provided, then data will be printed for every -matching version of the package. This will show which version of jsdom -was required by each matching version of yui3:

-
npm view yui3@'>0.5.4' dependencies.jsdom
-

To show the connect package version history, you can do -this:

-
npm view connect versions
-

OUTPUT

-

If only a single string field for a single version is output, then it -will not be colorized or quoted, so as to enable piping the output to -another command. If the field is an object, it will be output as a JavaScript object literal.

-

If the --json flag is given, the outputted fields will be JSON.

-

If the version range matches multiple versions, than each printed value -will be prefixed with the version it applies to.

-

If multiple fields are requested, than each of them are prefixed with -the field name.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html deleted file mode 100644 index 5995b1e11c5..00000000000 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ /dev/null @@ -1,37 +0,0 @@ - - - npm-whoami - - - - - - -
- -

npm-whoami

Display npm username

-

SYNOPSIS

-
npm whoami [--registry <registry>]
-

DESCRIPTION

-

Print the username config to standard output.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html deleted file mode 100644 index 52f4a22544f..00000000000 --- a/deps/npm/html/doc/cli/npm.html +++ /dev/null @@ -1,154 +0,0 @@ - - - npm - - - - - - -
- -

npm

javascript package manager

-

SYNOPSIS

-
npm <command> [args]
-

VERSION

-

5.6.0

-

DESCRIPTION

-

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

-

It is extremely configurable to support a wide variety of use cases. -Most commonly, it is used to publish, discover, install, and develop node -programs.

-

Run npm help to get a list of available commands.

-

INTRODUCTION

-

You probably got npm because you want to install stuff.

-

Use npm install blerg to install the latest version of "blerg". Check out -npm-install(1) for more info. It can do a lot of stuff.

-

Use the npm search command to show everything that's available. -Use npm ls to show everything you've installed.

-

DEPENDENCIES

-

If a package references to another package with a git URL, npm depends -on a preinstalled git.

-

If one of the packages npm tries to install is a native node module and -requires compiling of C++ Code, npm will use -node-gyp for that task. -For a Unix system, node-gyp -needs Python, make and a buildchain like GCC. On Windows, -Python and Microsoft Visual Studio C++ are needed. Python 3 is -not supported by node-gyp. -For more information visit -the node-gyp repository and -the node-gyp Wiki.

-

DIRECTORIES

-

See npm-folders(5) to learn about where npm puts stuff.

-

In particular, npm has two modes of operation:

-
    -
  • global mode:
    npm installs packages into the install prefix at -prefix/lib/node_modules and bins are installed in prefix/bin.
  • -
  • local mode:
    npm installs packages into the current project directory, which -defaults to the current working directory. Packages are installed to -./node_modules, and bins are installed to ./node_modules/.bin.
  • -
-

Local mode is the default. Use -g or --global on any command to -operate in global mode instead.

-

DEVELOPER USAGE

-

If you're using npm to develop and publish your code, check out the -following help topics:

-
    -
  • json: -Make a package.json file. See package.json(5).
  • -
  • link: -For linking your current working code into Node's path, so that you -don't have to reinstall every time you make a change. Use -npm link to do this.
  • -
  • install: -It's a good idea to install things if you don't need the symbolic link. -Especially, installing other peoples code from the registry is done via -npm install
  • -
  • adduser: -Create an account or log in. Credentials are stored in the -user config file.
  • -
  • publish: -Use the npm publish command to upload your code to the registry.
  • -
-

CONFIGURATION

-

npm is extremely configurable. It reads its configuration options from -5 places.

-
    -
  • 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 -to boolean true.
  • -
  • Environment Variables:
    Set any config by prefixing the name in an environment variable with -npm_config_. For example, export npm_config_key=val.
  • -
  • User Configs:
    The file at $HOME/.npmrc is an ini-formatted list of configs. If -present, it is parsed. If the userconfig option is set in the cli -or env, then that will be used instead.
  • -
  • Global Configs:
    The file found at ../etc/npmrc (from the node executable, by default -this resolves to /usr/local/etc/npmrc) will be parsed if it is found. -If the globalconfig option is set in the cli, env, or user config, -then that file is parsed instead.
  • -
  • Defaults:
    npm's default configuration options are defined in -lib/utils/config-defs.js. These must not be changed.
  • -
-

See npm-config(7) for much much more information.

-

CONTRIBUTIONS

-

Patches welcome!

-
    -
  • code: -Read through npm-coding-style(7) if you plan to submit code. -You don't have to agree with it, but you do have to follow it.
  • -
  • docs: -If you find an error in the documentation, edit the appropriate markdown -file in the "doc" folder. (Don't worry about generating the man page.)
  • -
-

Contributors are listed in npm's package.json file. You can view them -easily by doing npm view npm contributors.

-

If you would like to contribute, but don't know what to work on, read -the contributing guidelines and check the issues list.

- -

BUGS

-

When you find issues, please report them:

- -

Be sure to include all of the output from the npm command that didn't work -as expected. The npm-debug.log file is also helpful to provide.

-

You can also look for isaacs in #node.js on irc://irc.freenode.net. He -will no doubt tell you to put the output in a gist or email.

-

AUTHOR

-

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

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html deleted file mode 100644 index ff8a247b5a8..00000000000 --- a/deps/npm/html/doc/files/npm-folders.html +++ /dev/null @@ -1,185 +0,0 @@ - - - npm-folders - - - - - - -
- -

npm-folders

Folder Structures Used by npm

-

DESCRIPTION

-

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

-

This document will tell you what it puts where.

-

tl;dr

-
    -
  • Local install (default): puts stuff in ./node_modules of the current -package root.
  • -
  • Global install (with -g): puts stuff in /usr/local or wherever node -is installed.
  • -
  • Install it locally if you're going to require() it.
  • -
  • Install it globally if you're going to run it on the command line.
  • -
  • If you need both, then install it in both places, or use npm link.
  • -
-

prefix Configuration

-

The prefix config defaults to the location where node is installed. -On most systems, this is /usr/local. On Windows, it's %AppData%\npm. -On Unix systems, it's one level up, since node is typically installed at -{prefix}/bin/node rather than {prefix}/node.exe.

-

When the global flag is set, npm installs things into this prefix. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already.

-

Node Modules

-

Packages are dropped into the node_modules folder under the prefix. -When installing locally, this means that you can -require("packagename") to load its main module, or -require("packagename/lib/path/to/sub/module") to load other modules.

-

Global installs on Unix systems go to {prefix}/lib/node_modules. -Global installs on Windows go to {prefix}/node_modules (that is, no -lib folder.)

-

Scoped packages are installed the same way, except they are grouped together -in a sub-folder of the relevant node_modules folder with the name of that -scope prefix by the @ symbol, e.g. npm install @myorg/package would place -the package in {prefix}/node_modules/@myorg/package. See scope(7) for -more details.

-

If you wish to require() a package, then install it locally.

-

Executables

-

When in global mode, executables are linked into {prefix}/bin on Unix, -or directly into {prefix} on Windows.

-

When in local mode, executables are linked into -./node_modules/.bin so that they can be made available to scripts run -through npm. (For example, so that a test runner will be in the path -when you run npm test.)

-

Man Pages

-

When in global mode, man pages are linked into {prefix}/share/man.

-

When in local mode, man pages are not installed.

-

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.

-

This is controlled by the cache configuration param.

-

Temp Files

-

Temporary files are stored by default in the folder specified by the -tmp config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or /tmp on Unix and c:\windows\temp on Windows.

-

Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit.

-

More Information

-

When installing locally, npm first tries to find an appropriate -prefix folder. This is so that npm install foo@1.2.3 will install -to the sensible root of your package, even if you happen to have cded -into some other folder.

-

Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a package.json file, or a node_modules -folder. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands. (This -behavior is inspired by and similar to git's .git-folder seeking -logic when running git commands in a working dir.)

-

If no package root is found, then the current folder is used.

-

When you run npm install foo@1.2.3, then the package is loaded into -the cache, and then unpacked into ./node_modules/foo. Then, any of -foo's dependencies are similarly unpacked into -./node_modules/foo/node_modules/....

-

Any bin files are symlinked to ./node_modules/.bin/, so that they may -be found by npm scripts when necessary.

-

Global Installation

-

If the global configuration is set to true, then npm will -install packages "globally".

-

For global installation, packages are installed roughly the same way, -but using the folders described above.

-

Cycles, Conflicts, and Folder Parsimony

-

Cycles are handled using the property of node's module system that it -walks up the directories looking for node_modules folders. So, at every -stage, if a package is already installed in an ancestor node_modules -folder, then it is not installed at the current location.

-

Consider the case above, where foo -> bar -> baz. Imagine if, in -addition to that, baz depended on bar, so you'd have: -foo -> bar -> baz -> bar -> baz .... However, since the folder -structure is: foo/node_modules/bar/node_modules/baz, there's no need to -put another copy of bar into .../baz/node_modules, since when it calls -require("bar"), it will get the copy that is installed in -foo/node_modules/bar.

-

This shortcut is only used if the exact same -version would be installed in multiple nested node_modules folders. It -is still possible to have a/node_modules/b/node_modules/a if the two -"a" packages are different versions. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented.

-

Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder.

-

Example

-

Consider this dependency graph:

-
foo
-+-- blerg@1.2.5
-+-- bar@1.2.3
-|   +-- blerg@1.x (latest=1.3.7)
-|   +-- baz@2.x
-|   |   `-- quux@3.x
-|   |       `-- bar@1.2.3 (cycle)
-|   `-- asdf@*
-`-- baz@1.2.3
-    `-- quux@3.x
-        `-- bar
-

In this case, we might expect a folder structure like this:

-
foo
-+-- node_modules
-    +-- blerg (1.2.5) <---[A]
-    +-- bar (1.2.3) <---[B]
-    |   `-- node_modules
-    |       +-- baz (2.0.2) <---[C]
-    |       |   `-- node_modules
-    |       |       `-- quux (3.2.0)
-    |       `-- asdf (2.3.4)
-    `-- baz (1.2.3) <---[D]
-        `-- node_modules
-            `-- quux (3.2.0) <---[E]
-

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

-

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

-

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

-

Underneath bar, the baz -> quux -> bar dependency creates a cycle. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder.

-

Underneath foo -> baz [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B].

-

For a graphical breakdown of what is installed where, use npm ls.

-

Publishing

-

Upon publishing, npm will look in the node_modules folder. If any of -the items there are not in the bundledDependencies array, then they will -not be included in the package tarball.

-

This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re-publish those items that -cannot be found elsewhere. See package.json(5) for more information.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html deleted file mode 100644 index ff8a247b5a8..00000000000 --- a/deps/npm/html/doc/files/npm-global.html +++ /dev/null @@ -1,185 +0,0 @@ - - - npm-folders - - - - - - -
- -

npm-folders

Folder Structures Used by npm

-

DESCRIPTION

-

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

-

This document will tell you what it puts where.

-

tl;dr

-
    -
  • Local install (default): puts stuff in ./node_modules of the current -package root.
  • -
  • Global install (with -g): puts stuff in /usr/local or wherever node -is installed.
  • -
  • Install it locally if you're going to require() it.
  • -
  • Install it globally if you're going to run it on the command line.
  • -
  • If you need both, then install it in both places, or use npm link.
  • -
-

prefix Configuration

-

The prefix config defaults to the location where node is installed. -On most systems, this is /usr/local. On Windows, it's %AppData%\npm. -On Unix systems, it's one level up, since node is typically installed at -{prefix}/bin/node rather than {prefix}/node.exe.

-

When the global flag is set, npm installs things into this prefix. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already.

-

Node Modules

-

Packages are dropped into the node_modules folder under the prefix. -When installing locally, this means that you can -require("packagename") to load its main module, or -require("packagename/lib/path/to/sub/module") to load other modules.

-

Global installs on Unix systems go to {prefix}/lib/node_modules. -Global installs on Windows go to {prefix}/node_modules (that is, no -lib folder.)

-

Scoped packages are installed the same way, except they are grouped together -in a sub-folder of the relevant node_modules folder with the name of that -scope prefix by the @ symbol, e.g. npm install @myorg/package would place -the package in {prefix}/node_modules/@myorg/package. See scope(7) for -more details.

-

If you wish to require() a package, then install it locally.

-

Executables

-

When in global mode, executables are linked into {prefix}/bin on Unix, -or directly into {prefix} on Windows.

-

When in local mode, executables are linked into -./node_modules/.bin so that they can be made available to scripts run -through npm. (For example, so that a test runner will be in the path -when you run npm test.)

-

Man Pages

-

When in global mode, man pages are linked into {prefix}/share/man.

-

When in local mode, man pages are not installed.

-

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.

-

This is controlled by the cache configuration param.

-

Temp Files

-

Temporary files are stored by default in the folder specified by the -tmp config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or /tmp on Unix and c:\windows\temp on Windows.

-

Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit.

-

More Information

-

When installing locally, npm first tries to find an appropriate -prefix folder. This is so that npm install foo@1.2.3 will install -to the sensible root of your package, even if you happen to have cded -into some other folder.

-

Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a package.json file, or a node_modules -folder. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands. (This -behavior is inspired by and similar to git's .git-folder seeking -logic when running git commands in a working dir.)

-

If no package root is found, then the current folder is used.

-

When you run npm install foo@1.2.3, then the package is loaded into -the cache, and then unpacked into ./node_modules/foo. Then, any of -foo's dependencies are similarly unpacked into -./node_modules/foo/node_modules/....

-

Any bin files are symlinked to ./node_modules/.bin/, so that they may -be found by npm scripts when necessary.

-

Global Installation

-

If the global configuration is set to true, then npm will -install packages "globally".

-

For global installation, packages are installed roughly the same way, -but using the folders described above.

-

Cycles, Conflicts, and Folder Parsimony

-

Cycles are handled using the property of node's module system that it -walks up the directories looking for node_modules folders. So, at every -stage, if a package is already installed in an ancestor node_modules -folder, then it is not installed at the current location.

-

Consider the case above, where foo -> bar -> baz. Imagine if, in -addition to that, baz depended on bar, so you'd have: -foo -> bar -> baz -> bar -> baz .... However, since the folder -structure is: foo/node_modules/bar/node_modules/baz, there's no need to -put another copy of bar into .../baz/node_modules, since when it calls -require("bar"), it will get the copy that is installed in -foo/node_modules/bar.

-

This shortcut is only used if the exact same -version would be installed in multiple nested node_modules folders. It -is still possible to have a/node_modules/b/node_modules/a if the two -"a" packages are different versions. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented.

-

Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder.

-

Example

-

Consider this dependency graph:

-
foo
-+-- blerg@1.2.5
-+-- bar@1.2.3
-|   +-- blerg@1.x (latest=1.3.7)
-|   +-- baz@2.x
-|   |   `-- quux@3.x
-|   |       `-- bar@1.2.3 (cycle)
-|   `-- asdf@*
-`-- baz@1.2.3
-    `-- quux@3.x
-        `-- bar
-

In this case, we might expect a folder structure like this:

-
foo
-+-- node_modules
-    +-- blerg (1.2.5) <---[A]
-    +-- bar (1.2.3) <---[B]
-    |   `-- node_modules
-    |       +-- baz (2.0.2) <---[C]
-    |       |   `-- node_modules
-    |       |       `-- quux (3.2.0)
-    |       `-- asdf (2.3.4)
-    `-- baz (1.2.3) <---[D]
-        `-- node_modules
-            `-- quux (3.2.0) <---[E]
-

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

-

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

-

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

-

Underneath bar, the baz -> quux -> bar dependency creates a cycle. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder.

-

Underneath foo -> baz [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B].

-

For a graphical breakdown of what is installed where, use npm ls.

-

Publishing

-

Upon publishing, npm will look in the node_modules folder. If any of -the items there are not in the bundledDependencies array, then they will -not be included in the package tarball.

-

This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re-publish those items that -cannot be found elsewhere. See package.json(5) for more information.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html deleted file mode 100644 index 3a6e77c9812..00000000000 --- a/deps/npm/html/doc/files/npm-json.html +++ /dev/null @@ -1,607 +0,0 @@ - - - package.json - - - - - - -
- -

package.json

Specifics of npm's package.json handling

-

DESCRIPTION

-

This document is all you need to know about what's required in your package.json -file. It must be actual JSON, not just a JavaScript object literal.

-

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

-

name

-

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

-

The name is what your thing is called.

-

Some rules:

-
    -
  • The name must be less than or equal to 214 characters. This includes the scope for -scoped packages.
  • -
  • The name can't start with a dot or an underscore.
  • -
  • New packages must not have uppercase letters in the name.
  • -
  • The name ends up being part of a URL, an argument on the command line, and a -folder name. Therefore, the name can't contain any non-URL-safe characters.
  • -
-

Some tips:

-
    -
  • Don't use the same name as a core Node module.
  • -
  • Don't put "js" or "node" in the name. It's assumed that it's js, since you're -writing a package.json file, and you can specify the engine using the "engines" -field. (See below.)
  • -
  • The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive.
  • -
  • You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it. https://www.npmjs.com/
  • -
-

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

-

version

-

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

-

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

-

More on version numbers and ranges at semver(7).

-

description

-

Put a description in it. It's a string. This helps people discover your -package, as it's listed in npm search.

-

keywords

-

Put keywords in it. It's an array of strings. This helps people -discover your package as it's listed in npm search.

-

homepage

-

The url to the project homepage.

-

bugs

-

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

-

It should look like this:

-
{ "url" : "https://github.com/owner/project/issues"
-, "email" : "project@hostname.com"
-}
-

You can specify either one or both values. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object.

-

If a url is provided, it will be used by the npm bugs command.

-

license

-

You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it.

-

If you're using a common license such as BSD-2-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this:

-
{ "license" : "BSD-3-Clause" }
-

You can check the full list of SPDX license IDs. -Ideally you should pick one that is -OSI approved.

-

If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2.0 string, like this:

-
{ "license" : "(ISC OR GPL-3.0)" }
-

If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one:

-
{ "license" : "SEE LICENSE IN <filename>" }
-

Then include a file named <filename> at the top level of the package.

-

Some old packages used license objects or a "licenses" property containing an -array of license objects:

-
// Not valid metadata
-{ "license" :
-  { "type" : "ISC"
-  , "url" : "https://opensource.org/licenses/ISC"
-  }
-}
-
-// Not valid metadata
-{ "licenses" :
-  [
-    { "type": "MIT"
-    , "url": "https://www.opensource.org/licenses/mit-license.php"
-    }
-  , { "type": "Apache-2.0"
-    , "url": "https://opensource.org/licenses/apache2.0.php"
-    }
-  ]
-}
-

Those styles are now deprecated. Instead, use SPDX expressions, like this:

-
{ "license": "ISC" }
-
-{ "license": "(MIT OR Apache-2.0)" }
-

Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms:

-
{ "license": "UNLICENSED" }
-

Consider also setting "private": true to prevent accidental publication.

-

people fields: author, contributors

-

The "author" is one person. "contributors" is an array of people. A "person" -is an object with a "name" field and optionally "url" and "email", like this:

-
{ "name" : "Barney Rubble"
-, "email" : "b@rubble.com"
-, "url" : "http://barnyrubble.tumblr.com/"
-}
-

Or you can shorten that all into a single string, and npm will parse it for you:

-
"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"
-

Both email and url are optional either way.

-

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

-

files

-

The optional "files" field is an array of file patterns that describes -the 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.).

-

You can also provide a .npmignore file in the root of your package or -in subdirectories, which will keep files from being included. At the -root of your package it will not override the "files" field, but in -subdirectories it will. The .npmignore file works just like a -.gitignore. If there is a .gitignore file, and .npmignore is -missing, .gitignore's contents will be used instead.

-

Files included with the "package.json#files" field cannot be excluded -through .npmignore or .gitignore.

-

Certain files are always included, regardless of settings:

-
    -
  • package.json
  • -
  • README
  • -
  • CHANGES / CHANGELOG / HISTORY
  • -
  • LICENSE / LICENCE
  • -
  • NOTICE
  • -
  • The file in the "main" field
  • -
-

README, CHANGES, LICENSE & NOTICE can have any case and extension.

-

Conversely, some files are always ignored:

-
    -
  • .git
  • -
  • CVS
  • -
  • .svn
  • -
  • .hg
  • -
  • .lock-wscript
  • -
  • .wafpickle-N
  • -
  • .*.swp
  • -
  • .DS_Store
  • -
  • ._*
  • -
  • npm-debug.log
  • -
  • .npmrc
  • -
  • node_modules
  • -
  • config.gypi
  • -
  • *.orig
  • -
  • package-lock.json (use shrinkwrap instead)
  • -
-

main

-

The main field is a module ID that is the primary entry point to your program. -That is, if your package is named foo, and a user installs it, and then does -require("foo"), then your main module's exports object will be returned.

-

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.

-

bin

-

A lot of packages have one or more executable files that they'd like to -install into the PATH. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable.)

-

To use this, supply a bin field in your package.json which is a map of -command name to local file name. On install, npm will symlink that file into -prefix/bin for global installs, or ./node_modules/.bin/ for local -installs.

-

For example, myapp could have this:

-
{ "bin" : { "myapp" : "./cli.js" } }
-

So, when you install myapp, it'll create a symlink from the cli.js script to -/usr/local/bin/myapp.

-

If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string. For example:

-
{ "name": "my-program"
-, "version": "1.2.5"
-, "bin": "./path/to/program" }
-

would be the same as this:

-
{ "name": "my-program"
-, "version": "1.2.5"
-, "bin" : { "my-program" : "./path/to/program" } }
-

Please make sure that your file(s) referenced in bin starts with -#!/usr/bin/env node, otherwise the scripts are started without the node -executable!

-

man

-

Specify either a single file or an array of filenames to put in place for the -man program to find.

-

If only a single file is provided, then it's installed such that it is the -result from man <pkgname>, regardless of its actual filename. For example:

-
{ "name" : "foo"
-, "version" : "1.2.3"
-, "description" : "A packaged foo fooer for fooing foos"
-, "main" : "foo.js"
-, "man" : "./man/doc.1"
-}
-

would link the ./man/doc.1 file in such that it is the target for man foo

-

If the filename doesn't start with the package name, then it's prefixed. -So, this:

-
{ "name" : "foo"
-, "version" : "1.2.3"
-, "description" : "A packaged foo fooer for fooing foos"
-, "main" : "foo.js"
-, "man" : [ "./man/foo.1", "./man/bar.1" ]
-}
-

will create files to do man foo and man foo-bar.

-

Man files must end with a number, and optionally a .gz suffix if they are -compressed. The number dictates which man section the file is installed into.

-
{ "name" : "foo"
-, "version" : "1.2.3"
-, "description" : "A packaged foo fooer for fooing foos"
-, "main" : "foo.js"
-, "man" : [ "./man/foo.1", "./man/foo.2" ]
-}
-

will create entries for man foo and man 2 foo

-

directories

-

The CommonJS Packages spec details a -few ways that you can indicate the structure of your package using a directories -object. If you look at npm's package.json, -you'll see that it has directories for doc, lib, and man.

-

In the future, this information may be used in other creative ways.

-

directories.lib

-

Tell people where the bulk of your library is. Nothing special is done -with the lib folder in any way, but it's useful meta info.

-

directories.bin

-

If you specify a bin directory in directories.bin, all the files in -that folder will be added.

-

Because of the way the bin directive works, specifying both a -bin path and setting directories.bin is an error. If you want to -specify individual files, use bin, and for all the files in an -existing bin directory, use directories.bin.

-

directories.man

-

A folder that is full of man pages. Sugar to generate a "man" array by -walking the folder.

-

directories.doc

-

Put markdown files in here. Eventually, these will be displayed nicely, -maybe, someday.

-

directories.example

-

Put example scripts in here. Someday, it might be exposed in some clever way.

-

directories.test

-

Put your tests in here. It is currently not exposed, but it might be in the -future.

-

repository

-

Specify the place where your code lives. This is helpful for people who -want to contribute. If the git repo is on GitHub, then the npm docs -command will be able to find you.

-

Do it like this:

-
"repository" :
-  { "type" : "git"
-  , "url" : "https://github.com/npm/npm.git"
-  }
-
-"repository" :
-  { "type" : "svn"
-  , "url" : "https://v8.googlecode.com/svn/trunk/"
-  }
-

The URL should be a publicly available (perhaps read-only) url that can be handed -directly to a VCS program without any modification. It should not be a url to an -html project page that you put in your browser. It's for computers.

-

For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for npm install:

-
"repository": "npm/npm"
-
-"repository": "github:user/repo"
-
-"repository": "gist:11081aaa281"
-
-"repository": "bitbucket:user/repo"
-
-"repository": "gitlab:user/repo"
-

scripts

-

The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package. The key is the lifecycle -event, and the value is the command to run at that point.

-

See npm-scripts(7) to find out more about writing package scripts.

-

config

-

A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades. For instance, if a package had the -following:

-
{ "name" : "foo"
-, "config" : { "port" : "8080" } }
-

and then had a "start" command that then referenced the -npm_package_config_port environment variable, then the user could -override that by doing npm config set foo:port 8001.

-

See npm-config(7) and npm-scripts(7) for more on package -configs.

-

dependencies

-

Dependencies are specified in a simple object that maps a package name to a -version range. The version range is a string which has one or more -space-separated descriptors. Dependencies can also be identified with a -tarball or git URL.

-

Please do not put test harnesses or transpilers in your -dependencies object. See devDependencies, below.

-

See semver(7) for more details about specifying version ranges.

-
    -
  • version Must match version exactly
  • -
  • >version Must be greater than version
  • -
  • >=version etc
  • -
  • <version
  • -
  • <=version
  • -
  • ~version "Approximately equivalent to version" See semver(7)
  • -
  • ^version "Compatible with version" See semver(7)
  • -
  • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
  • -
  • http://... See 'URLs as Dependencies' below
  • -
  • * Matches any version
  • -
  • "" (just an empty string) Same as *
  • -
  • version1 - version2 Same as >=version1 <=version2.
  • -
  • range1 || range2 Passes if either range1 or range2 are satisfied.
  • -
  • git... See 'Git URLs as Dependencies' below
  • -
  • user/repo See 'GitHub URLs' below
  • -
  • tag A specific version tagged and published as tag See npm-dist-tag(1)
  • -
  • path/path/path See Local Paths below
  • -
-

For example, these are all valid:

-
{ "dependencies" :
-  { "foo" : "1.0.0 - 2.9999.9999"
-  , "bar" : ">=1.0.2 <2.1.2"
-  , "baz" : ">1.0.2 <=2.3.4"
-  , "boo" : "2.0.1"
-  , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
-  , "asd" : "http://asdf.com/asdf.tar.gz"
-  , "til" : "~1.2"
-  , "elf" : "~1.2.3"
-  , "two" : "2.x"
-  , "thr" : "3.3.x"
-  , "lat" : "latest"
-  , "dyl" : "file:../dyl"
-  }
-}
-

URLs as Dependencies

-

You may specify a tarball URL in place of a version range.

-

This tarball will be downloaded and installed locally to your package at -install time.

-

Git URLs as Dependencies

-

Git urls are of the form:

-
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
-

<protocol> is one of git, git+ssh, git+http, git+https, or -git+file.

-

If #<commit-ish> is provided, it will be used to clone exactly that -commit. If the commit-ish has the format #semver:<semver>, <semver> can -be any valid semver range or exact version, and npm will look for any tags -or refs matching that range in the remote repository, much as it would for a -registry dependency. If neither #<commit-ish> or #semver:<semver> is -specified, then master is used.

-

Examples:

-
git+ssh://git@github.com:npm/npm.git#v1.0.27
-git+ssh://git@github.com:npm/npm#semver:^5.0
-git+https://isaacs@github.com/npm/npm.git
-git://github.com/npm/npm.git#v1.0.27
-

GitHub URLs

-

As of version 1.1.65, you can refer to GitHub urls as just "foo": -"user/foo-project". Just as with git URLs, a commit-ish suffix can be -included. For example:

-
{
-  "name": "foo",
-  "version": "0.0.0",
-  "dependencies": {
-    "express": "expressjs/express",
-    "mocha": "mochajs/mocha#4727d357ea",
-    "module": "user/repo#feature\/branch"
-  }
-}
-

Local Paths

-

As of version 2.0.0 you can provide a path to a local directory that contains a -package. Local paths can be saved using npm install -S or -npm install --save, using any of these forms:

-
../foo/bar
-~/foo/bar
-./foo/bar
-/foo/bar
-

in which case they will be normalized to a relative path and added to your -package.json. For example:

-
{
-  "name": "baz",
-  "dependencies": {
-    "bar": "file:../foo/bar"
-  }
-}
-

This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry.

-

devDependencies

-

If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use.

-

In this case, it's best to map these additional items in a devDependencies -object.

-

These things will be installed when doing npm link or npm install -from the root of a package, and can be managed like any other npm -configuration param. See npm-config(7) for more on the topic.

-

For build steps that are not platform-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the prepare -script to do this, and make the required package a devDependency.

-

For example:

-
{ "name": "ethopia-waza",
-  "description": "a delightfully fruity coffee varietal",
-  "version": "1.2.3",
-  "devDependencies": {
-    "coffee-script": "~1.6.3"
-  },
-  "scripts": {
-    "prepare": "coffee -o lib/ -c src/waza.coffee"
-  },
-  "main": "lib/waza.js"
-}
-

The prepare script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves. In dev mode (ie, locally running npm install), it'll -run this script as well, so that you can test it easily.

-

peerDependencies

-

In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a require of this host. -This is usually referred to as a plugin. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation.

-

For example:

-
{
-  "name": "tea-latte",
-  "version": "1.3.5",
-  "peerDependencies": {
-    "tea": "2.x"
-  }
-}
-

This ensures your package tea-latte can be installed along with the second -major version of the host package tea only. npm install tea-latte could -possibly yield the following dependency graph:

-
├── tea-latte@1.3.5
-└── tea@2.2.0
-

NOTE: npm versions 1 and 2 will automatically install peerDependencies if -they are not explicitly depended upon higher in the dependency tree. In the -next major version of npm (npm@3), this will no longer be the case. You will -receive a warning that the peerDependency is not installed instead. The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible.

-

Trying to install another plugin with a conflicting requirement will cause an -error. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions.

-

Assuming the host complies with semver, only changes in -the host package's major version will break your plugin. Thus, if you've worked -with every 1.x version of the host package, use "^1.0" or "1.x" to express -this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2".

-

bundledDependencies

-

This defines an array of package names that will be bundled when publishing -the package.

-

In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the bundledDependencies -array and executing npm pack.

-

For example:

-

If we define a package.json like this:

-
{
-  "name": "awesome-web-framework",
-  "version": "1.0.0",
-  "bundledDependencies": [
-    "renderized", "super-streams"
-  ]
-}
-

we can obtain awesome-web-framework-1.0.0.tgz file by running npm pack. -This file contains the dependencies renderized and super-streams which -can be installed in a new project by executing npm install -awesome-web-framework-1.0.0.tgz.

-

If this is spelled "bundleDependencies", then that is also honored.

-

optionalDependencies

-

If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the optionalDependencies -object. This is a map of package name to version or url, just like the -dependencies object. The difference is that build failures do not cause -installation to fail.

-

It is still your program's responsibility to handle the lack of the -dependency. For example, something like this:

-
try {
-  var foo = require('foo')
-  var fooVersion = require('foo/package.json').version
-} catch (er) {
-  foo = null
-}
-if ( notGoodFooVersion(fooVersion) ) {
-  foo = null
-}
-
-// .. then later in your program ..
-
-if (foo) {
-  foo.doFooThings()
-}
-

Entries in optionalDependencies will override entries of the same name in -dependencies, so it's usually best to only put in one place.

-

engines

-

You can specify the version of node that your stuff works on:

-
{ "engines" : { "node" : ">=0.10.3 <0.12" } }
-

And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do.

-

If you specify an "engines" field, then npm will require that "node" be -somewhere on that list. If "engines" is omitted, then npm will just assume -that it works on node.

-

You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program. For example:

-
{ "engines" : { "npm" : "~1.0.20" } }
-

Unless the user has set the engine-strict config flag, this -field is advisory only and will only produce warnings when your package is installed as a dependency.

-

engineStrict

-

This feature was removed in npm 3.0.0

-

Prior to npm 3.0.0, this feature was used to treat this package as if the -user had set engine-strict. It is no longer used.

-

os

-

You can specify which operating systems your -module will run on:

-
"os" : [ "darwin", "linux" ]
-

You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!':

-
"os" : [ "!win32" ]
-

The host operating system is determined by process.platform

-

It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this.

-

cpu

-

If your code only runs on certain cpu architectures, -you can specify which ones.

-
"cpu" : [ "x64", "ia32" ]
-

Like the os option, you can also blacklist architectures:

-
"cpu" : [ "!arm", "!mips" ]
-

The host architecture is determined by process.arch

-

preferGlobal

-

DEPRECATED

-

This option used to trigger an npm warning, but it will no longer warn. It is -purely there for informational purposes. It is now recommended that you install -any binaries as local devDependencies wherever possible.

-

private

-

If you set "private": true in your package.json, then npm will refuse -to publish it.

-

This is a way to prevent accidental publication of private repositories. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -publishConfig dictionary described below to override the registry config -param at publish-time.

-

publishConfig

-

This is a set of config values that will be used at publish-time. It's -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.

-

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

-

DEFAULT VALUES

-

npm will default some values based on package contents.

-
    -
  • "scripts": {"start": "node server.js"}

    -

    If there is a server.js file in the root of your package, then npm -will default the start command to node server.js.

    -
  • -
  • "scripts":{"install": "node-gyp rebuild"}

    -

    If there is a binding.gyp file in the root of your package and you have not defined an install or preinstall script, npm will -default the install command to compile using node-gyp.

    -
  • -
  • "contributors": [...]

    -

    If there is an AUTHORS file in the root of your package, npm will -treat each line as a Name <email> (url) format, where email and url -are optional. Lines which start with a # or are blank, will be -ignored.

    -
  • -
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/files/npm-package-locks.html b/deps/npm/html/doc/files/npm-package-locks.html deleted file mode 100644 index 775c6b4ca2a..00000000000 --- a/deps/npm/html/doc/files/npm-package-locks.html +++ /dev/null @@ -1,148 +0,0 @@ - - - npm-package-locks - - - - - - -
- -

npm-package-locks

An explanation of npm lockfiles

-

DESCRIPTION

-

Conceptually, the "input" to npm-install(1) is a package.json(5), while its -"output" is a fully-formed node_modules tree: a representation of the -dependencies you declared. In an ideal world, npm would work like a pure -function: the same package.json should produce the exact same node_modules -tree, any time. In some cases, this is indeed true. But in many others, npm is -unable to do this. There are multiple reasons for this:

-
    -
  • different versions of npm (or other package managers) may have been used to install a package, each using slightly different installation algorithms.

    -
  • -
  • a new version of a direct semver-range package may have been published since the last time your packages were installed, and thus a newer version will be used.

    -
  • -
  • A dependency of one of your dependencies may have published a new version, which will update even if you used pinned dependency specifiers (1.2.3 instead of ^1.2.3)

    -
  • -
  • The registry you installed from is no longer available, or allows mutation of versions (unlike the primary npm registry), and a different version of a package exists under the same version number now.

    -
  • -
-

As an example, consider package A:

-
{
-  "name": "A",
-  "version": "0.1.0",
-  "dependencies": {
-    "B": "<0.1.0"
-  }
-}
-

package B:

-
{
-  "name": "B",
-  "version": "0.0.1",
-  "dependencies": {
-    "C": "<0.1.0"
-  }
-}
-

and package C:

-
{
-  "name": "C",
-  "version": "0.0.1"
-}
-

If these are the only versions of A, B, and C available in the -registry, then a normal npm install A will install:

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

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

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

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 -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.

-

To prevent this potential issue, npm uses package-lock.json(5) or, if present, -npm-shrinkwrap.json(5). These files are called package locks, or lockfiles.

-

Whenever you run npm install, npm generates or updates your package lock, -which will look something like this:

-
{
-  "name": "A",
-  "version": "0.1.0",
-  ...metadata fields...
-  "dependencies": {
-    "B": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/B/-/B-0.0.1.tgz",
-      "integrity": "sha512-DeAdb33F+"
-      "dependencies": {
-        "C": {
-          "version": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
-        }
-      }
-    }
-  }
-}
-

This file describes an exact, and more importantly reproducible -node_modules tree. Once it's present, any future installation will base its -work off this file, instead of recalculating dependency versions off -package.json(5).

-

The presence of a package lock changes the installation behavior such that:

-
    -
  1. The module tree described by the package lock is reproduced. This means -reproducing the structure described in the file, using the specific files -referenced in "resolved" if available, falling back to normal package resolution -using "version" if one isn't.

    -
  2. -
  3. The tree is walked and any missing dependencies are installed in the usual -fashion.

    -
  4. -
-

If preshrinkwrap, shrinkwrap or postshrinkwrap are in the scripts -property of the package.json, they will be executed in order. preshrinkwrap -and shrinkwrap are executed before the shrinkwrap, postshrinkwrap is -executed afterwards. These scripts run for both package-lock.json and -npm-shrinkwrap.json. For example to run some postprocessing on the generated -file:

-
"scripts": {
-  "postshrinkwrap": "json -I -e \"this.myMetadata = $MY_APP_METADATA\""
-}
-

Using locked packages

-

Using a locked package is no different than using any package without a package -lock: any commands that update node_modules and/or package.json's -dependencies will automatically sync the existing lockfile. This includes npm -install, npm rm, npm update, etc. To prevent this update from happening, -you can use the --no-save option to prevent saving altogether, or ---no-shrinkwrap to allow package.json to be updated while leaving -package-lock.json or npm-shrinkwrap.json intact.

-

It is highly recommended you commit the generated package lock to source -control: this will allow anyone else on your team, your deployments, your -CI/continuous integration, and anyone else who runs npm install in your -package source to get the exact same dependency tree that you were developing -on. Additionally, the diffs from these changes are human-readable and will -inform you of any changes npm has made to your node_modules, so you can notice -if any transitive dependencies were updated, hoisted, etc.

-

SEE ALSO

- - -
- - - - - - - - - - - diff --git a/deps/npm/html/doc/files/npm-shrinkwrap.json.html b/deps/npm/html/doc/files/npm-shrinkwrap.json.html deleted file mode 100644 index 50718ad9fd5..00000000000 --- a/deps/npm/html/doc/files/npm-shrinkwrap.json.html +++ /dev/null @@ -1,45 +0,0 @@ - - - npm-shrinkwrap.json - - - - - - -
- -

npm-shrinkwrap.json

A publishable lockfile

-

DESCRIPTION

-

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

-

The recommended use-case for npm-shrinkwrap.json is applications deployed -through the publishing process on the registry: for example, daemons and -command-line tools intended as global installs or devDependencies. It's -strongly discouraged for library authors to publish this file, since that would -prevent end users from having control over transitive dependency updates.

-

Additionally, if both package-lock.json and npm-shrinkwrap.json are present -in a package root, package-lock.json will be ignored in favor of this file.

-

For full details and description of the npm-shrinkwrap.json file format, refer -to the manual page for package-lock.json(5).

-

SEE ALSO

- - -
- - - - - - - - - - - diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html deleted file mode 100644 index 7441c92b7ed..00000000000 --- a/deps/npm/html/doc/files/npmrc.html +++ /dev/null @@ -1,89 +0,0 @@ - - - npmrc - - - - - - -
- -

npmrc

The npm config files

-

DESCRIPTION

-

npm gets its config settings from the command line, environment -variables, and npmrc files.

-

The npm config command can be used to update and edit the contents -of the user and global npmrc files.

-

For a list of available configuration options, see npm-config(7).

-

FILES

-

The four relevant files are:

-
    -
  • per-project config file (/path/to/my/project/.npmrc)
  • -
  • per-user config file (~/.npmrc)
  • -
  • global config file ($PREFIX/etc/npmrc)
  • -
  • npm builtin config file (/path/to/npm/npmrc)
  • -
-

All npm config files are an ini-formatted list of key = value -parameters. Environment variables can be replaced using -${VARIABLE_NAME}. For example:

-
prefix = ${HOME}/.npm-packages
-

Each of these files is loaded, and config options are resolved in -priority order. For example, a setting in the userconfig file would -override the setting in the globalconfig file.

-

Array values are specified by adding "[]" after the key name. For -example:

-
key[] = "first value"
-key[] = "second value"
-

Comments

-

Lines in .npmrc files are interpreted as comments when they begin with a ; or # character. .npmrc files are parsed by npm/ini, which specifies this comment syntax.

-

For example:

-
# last modified: 01 Jan 2016
-; Set a new registry for a scoped package
-@myscope:registry=https://mycustomregistry.example.org
-

Per-project config file

-

When working locally in a project, a .npmrc file in the root of the -project (ie, a sibling of node_modules and package.json) will set -config values specific to this project.

-

Note that this only applies to the root of the project that you're -running npm in. It has no effect when your module is published. For -example, you can't publish a module that forces itself to install -globally, or in a different location.

-

Additionally, this file is not read in global mode, such as when running -npm install -g.

-

Per-user config file

-

$HOME/.npmrc (or the userconfig param, if set in the environment -or on the command line)

-

Global config file

-

$PREFIX/etc/npmrc (or the globalconfig param, if set above): -This file is an ini-file formatted list of key = value parameters. -Environment variables can be replaced as above.

-

Built-in config file

-

path/to/npm/itself/npmrc

-

This is an unchangeable "builtin" configuration file that npm keeps -consistent across updates. Set fields in here using the ./configure -script that comes with npm. This is primarily for distribution -maintainers to override default configs in a standard and consistent -manner.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/files/package-lock.json.html b/deps/npm/html/doc/files/package-lock.json.html deleted file mode 100644 index 3f6a2e21f56..00000000000 --- a/deps/npm/html/doc/files/package-lock.json.html +++ /dev/null @@ -1,127 +0,0 @@ - - - package-lock.json - - - - - - -
- -

package-lock.json

A manifestation of the manifest

-

DESCRIPTION

-

package-lock.json is automatically generated for any operations where npm -modifies either the node_modules tree, or package.json. It describes the -exact tree that was generated, such that subsequent installs are able to -generate identical trees, regardless of intermediate dependency updates.

-

This file is intended to be committed into source repositories, and serves -various purposes:

-
    -
  • Describe a single representation of a dependency tree such that teammates, deployments, and continuous integration are guaranteed to install exactly the same dependencies.

    -
  • -
  • Provide a facility for users to "time-travel" to previous states of node_modules without having to commit the directory itself.

    -
  • -
  • To facilitate greater visibility of tree changes through readable source control diffs.

    -
  • -
  • And optimize the installation process by allowing npm to skip repeated metadata resolutions for previously-installed packages.

    -
  • -
-

One key detail about package-lock.json is that it cannot be published, and it -will be ignored if found in any place other than the toplevel package. It shares -a format with npm-shrinkwrap.json(5), which is essentially the same file, but -allows publication. This is not recommended unless deploying a CLI tool or -otherwise using the publication process for producing production packages.

-

If both package-lock.json and npm-shrinkwrap.json are present in the root of -a package, package-lock.json will be completely ignored.

-

FILE FORMAT

-

name

-

The name of the package this is a package-lock for. This must match what's in -package.json.

-

version

-

The version of the package this is a package-lock for. This must match what's in -package.json.

-

lockfileVersion

-

An integer version, starting at 1 with the version number of this document -whose semantics were used when generating this package-lock.json.

-

packageIntegrity

-

This is a subresource -integrity value -created from the package.json. No preprocessing of the package.json should -be done. Subresource integrity strings can be produced by modules like -ssri.

- -

Indicates that the install was done with the environment variable -NODE_PRESERVE_SYMLINKS enabled. The installer should insist that the value of -this property match that environment variable.

-

dependencies

-

A mapping of package name to dependency object. Dependency objects have the -following properties:

-

version

-

This is a specifier that uniquely identifies this package and should be -usable in fetching a new copy of it.

-
    -
  • bundled dependencies: Regardless of source, this is a version number that is purely for informational purposes.
  • -
  • registry sources: This is a version number. (eg, 1.2.3)
  • -
  • git sources: This is a git specifier with resolved committish. (eg, git+https://example.com/foo/bar#115311855adb0789a0466714ed48a1499ffea97e)
  • -
  • http tarball sources: This is the URL of the tarball. (eg, https://example.com/example-1.3.0.tgz)
  • -
  • local tarball sources: This is the file URL of the tarball. (eg file:///opt/storage/example-1.3.0.tgz)
  • -
  • local link sources: This is the file URL of the link. (eg file:libs/our-module)
  • -
-

integrity

-

This is a Standard Subresource -Integrity for this -resource.

-
    -
  • For bundled dependencies this is not included, regardless of source.
  • -
  • For registry sources, this is the integrity that the registry provided, or if one wasn't provided the SHA1 in shasum.
  • -
  • For git sources this is the specific commit hash we cloned from.
  • -
  • For remote tarball sources this is an integrity based on a SHA512 of -the file.
  • -
  • For local tarball sources: This is an integrity field based on the SHA512 of the file.
  • -
-

resolved

-
    -
  • For bundled dependencies this is not included, regardless of source.
  • -
  • For registry sources this is path of the tarball relative to the registry -URL. If the tarball URL isn't on the same server as the registry URL then -this is a complete URL.
  • -
-

bundled

-

If true, this is the bundled dependency and will be installed by the parent -module. When installing, this module will be extracted from the parent -module during the extract phase, not installed as a separate dependency.

-

dev

-

If true then this dependency is either a development dependency ONLY of the -top level module or a transitive dependency of one. This is false for -dependencies that are both a development dependency of the top level and a -transitive dependency of a non-development dependency of the top level.

-

optional

-

If true then this dependency is either an optional dependency ONLY of the -top level module or a transitive dependency of one. This is false for -dependencies that are both an optional dependency of the top level and a -transitive dependency of a non-optional dependency of the top level.

-

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

-

dependencies

-

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

-

SEE ALSO

- - -
- - - - - - - - - - - diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html deleted file mode 100644 index 3a6e77c9812..00000000000 --- a/deps/npm/html/doc/files/package.json.html +++ /dev/null @@ -1,607 +0,0 @@ - - - package.json - - - - - - -
- -

package.json

Specifics of npm's package.json handling

-

DESCRIPTION

-

This document is all you need to know about what's required in your package.json -file. It must be actual JSON, not just a JavaScript object literal.

-

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

-

name

-

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

-

The name is what your thing is called.

-

Some rules:

-
    -
  • The name must be less than or equal to 214 characters. This includes the scope for -scoped packages.
  • -
  • The name can't start with a dot or an underscore.
  • -
  • New packages must not have uppercase letters in the name.
  • -
  • The name ends up being part of a URL, an argument on the command line, and a -folder name. Therefore, the name can't contain any non-URL-safe characters.
  • -
-

Some tips:

-
    -
  • Don't use the same name as a core Node module.
  • -
  • Don't put "js" or "node" in the name. It's assumed that it's js, since you're -writing a package.json file, and you can specify the engine using the "engines" -field. (See below.)
  • -
  • The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive.
  • -
  • You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it. https://www.npmjs.com/
  • -
-

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

-

version

-

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

-

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

-

More on version numbers and ranges at semver(7).

-

description

-

Put a description in it. It's a string. This helps people discover your -package, as it's listed in npm search.

-

keywords

-

Put keywords in it. It's an array of strings. This helps people -discover your package as it's listed in npm search.

-

homepage

-

The url to the project homepage.

-

bugs

-

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

-

It should look like this:

-
{ "url" : "https://github.com/owner/project/issues"
-, "email" : "project@hostname.com"
-}
-

You can specify either one or both values. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object.

-

If a url is provided, it will be used by the npm bugs command.

-

license

-

You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it.

-

If you're using a common license such as BSD-2-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this:

-
{ "license" : "BSD-3-Clause" }
-

You can check the full list of SPDX license IDs. -Ideally you should pick one that is -OSI approved.

-

If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2.0 string, like this:

-
{ "license" : "(ISC OR GPL-3.0)" }
-

If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one:

-
{ "license" : "SEE LICENSE IN <filename>" }
-

Then include a file named <filename> at the top level of the package.

-

Some old packages used license objects or a "licenses" property containing an -array of license objects:

-
// Not valid metadata
-{ "license" :
-  { "type" : "ISC"
-  , "url" : "https://opensource.org/licenses/ISC"
-  }
-}
-
-// Not valid metadata
-{ "licenses" :
-  [
-    { "type": "MIT"
-    , "url": "https://www.opensource.org/licenses/mit-license.php"
-    }
-  , { "type": "Apache-2.0"
-    , "url": "https://opensource.org/licenses/apache2.0.php"
-    }
-  ]
-}
-

Those styles are now deprecated. Instead, use SPDX expressions, like this:

-
{ "license": "ISC" }
-
-{ "license": "(MIT OR Apache-2.0)" }
-

Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms:

-
{ "license": "UNLICENSED" }
-

Consider also setting "private": true to prevent accidental publication.

-

people fields: author, contributors

-

The "author" is one person. "contributors" is an array of people. A "person" -is an object with a "name" field and optionally "url" and "email", like this:

-
{ "name" : "Barney Rubble"
-, "email" : "b@rubble.com"
-, "url" : "http://barnyrubble.tumblr.com/"
-}
-

Or you can shorten that all into a single string, and npm will parse it for you:

-
"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"
-

Both email and url are optional either way.

-

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

-

files

-

The optional "files" field is an array of file patterns that describes -the 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.).

-

You can also provide a .npmignore file in the root of your package or -in subdirectories, which will keep files from being included. At the -root of your package it will not override the "files" field, but in -subdirectories it will. The .npmignore file works just like a -.gitignore. If there is a .gitignore file, and .npmignore is -missing, .gitignore's contents will be used instead.

-

Files included with the "package.json#files" field cannot be excluded -through .npmignore or .gitignore.

-

Certain files are always included, regardless of settings:

-
    -
  • package.json
  • -
  • README
  • -
  • CHANGES / CHANGELOG / HISTORY
  • -
  • LICENSE / LICENCE
  • -
  • NOTICE
  • -
  • The file in the "main" field
  • -
-

README, CHANGES, LICENSE & NOTICE can have any case and extension.

-

Conversely, some files are always ignored:

-
    -
  • .git
  • -
  • CVS
  • -
  • .svn
  • -
  • .hg
  • -
  • .lock-wscript
  • -
  • .wafpickle-N
  • -
  • .*.swp
  • -
  • .DS_Store
  • -
  • ._*
  • -
  • npm-debug.log
  • -
  • .npmrc
  • -
  • node_modules
  • -
  • config.gypi
  • -
  • *.orig
  • -
  • package-lock.json (use shrinkwrap instead)
  • -
-

main

-

The main field is a module ID that is the primary entry point to your program. -That is, if your package is named foo, and a user installs it, and then does -require("foo"), then your main module's exports object will be returned.

-

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.

-

bin

-

A lot of packages have one or more executable files that they'd like to -install into the PATH. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable.)

-

To use this, supply a bin field in your package.json which is a map of -command name to local file name. On install, npm will symlink that file into -prefix/bin for global installs, or ./node_modules/.bin/ for local -installs.

-

For example, myapp could have this:

-
{ "bin" : { "myapp" : "./cli.js" } }
-

So, when you install myapp, it'll create a symlink from the cli.js script to -/usr/local/bin/myapp.

-

If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string. For example:

-
{ "name": "my-program"
-, "version": "1.2.5"
-, "bin": "./path/to/program" }
-

would be the same as this:

-
{ "name": "my-program"
-, "version": "1.2.5"
-, "bin" : { "my-program" : "./path/to/program" } }
-

Please make sure that your file(s) referenced in bin starts with -#!/usr/bin/env node, otherwise the scripts are started without the node -executable!

-

man

-

Specify either a single file or an array of filenames to put in place for the -man program to find.

-

If only a single file is provided, then it's installed such that it is the -result from man <pkgname>, regardless of its actual filename. For example:

-
{ "name" : "foo"
-, "version" : "1.2.3"
-, "description" : "A packaged foo fooer for fooing foos"
-, "main" : "foo.js"
-, "man" : "./man/doc.1"
-}
-

would link the ./man/doc.1 file in such that it is the target for man foo

-

If the filename doesn't start with the package name, then it's prefixed. -So, this:

-
{ "name" : "foo"
-, "version" : "1.2.3"
-, "description" : "A packaged foo fooer for fooing foos"
-, "main" : "foo.js"
-, "man" : [ "./man/foo.1", "./man/bar.1" ]
-}
-

will create files to do man foo and man foo-bar.

-

Man files must end with a number, and optionally a .gz suffix if they are -compressed. The number dictates which man section the file is installed into.

-
{ "name" : "foo"
-, "version" : "1.2.3"
-, "description" : "A packaged foo fooer for fooing foos"
-, "main" : "foo.js"
-, "man" : [ "./man/foo.1", "./man/foo.2" ]
-}
-

will create entries for man foo and man 2 foo

-

directories

-

The CommonJS Packages spec details a -few ways that you can indicate the structure of your package using a directories -object. If you look at npm's package.json, -you'll see that it has directories for doc, lib, and man.

-

In the future, this information may be used in other creative ways.

-

directories.lib

-

Tell people where the bulk of your library is. Nothing special is done -with the lib folder in any way, but it's useful meta info.

-

directories.bin

-

If you specify a bin directory in directories.bin, all the files in -that folder will be added.

-

Because of the way the bin directive works, specifying both a -bin path and setting directories.bin is an error. If you want to -specify individual files, use bin, and for all the files in an -existing bin directory, use directories.bin.

-

directories.man

-

A folder that is full of man pages. Sugar to generate a "man" array by -walking the folder.

-

directories.doc

-

Put markdown files in here. Eventually, these will be displayed nicely, -maybe, someday.

-

directories.example

-

Put example scripts in here. Someday, it might be exposed in some clever way.

-

directories.test

-

Put your tests in here. It is currently not exposed, but it might be in the -future.

-

repository

-

Specify the place where your code lives. This is helpful for people who -want to contribute. If the git repo is on GitHub, then the npm docs -command will be able to find you.

-

Do it like this:

-
"repository" :
-  { "type" : "git"
-  , "url" : "https://github.com/npm/npm.git"
-  }
-
-"repository" :
-  { "type" : "svn"
-  , "url" : "https://v8.googlecode.com/svn/trunk/"
-  }
-

The URL should be a publicly available (perhaps read-only) url that can be handed -directly to a VCS program without any modification. It should not be a url to an -html project page that you put in your browser. It's for computers.

-

For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for npm install:

-
"repository": "npm/npm"
-
-"repository": "github:user/repo"
-
-"repository": "gist:11081aaa281"
-
-"repository": "bitbucket:user/repo"
-
-"repository": "gitlab:user/repo"
-

scripts

-

The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package. The key is the lifecycle -event, and the value is the command to run at that point.

-

See npm-scripts(7) to find out more about writing package scripts.

-

config

-

A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades. For instance, if a package had the -following:

-
{ "name" : "foo"
-, "config" : { "port" : "8080" } }
-

and then had a "start" command that then referenced the -npm_package_config_port environment variable, then the user could -override that by doing npm config set foo:port 8001.

-

See npm-config(7) and npm-scripts(7) for more on package -configs.

-

dependencies

-

Dependencies are specified in a simple object that maps a package name to a -version range. The version range is a string which has one or more -space-separated descriptors. Dependencies can also be identified with a -tarball or git URL.

-

Please do not put test harnesses or transpilers in your -dependencies object. See devDependencies, below.

-

See semver(7) for more details about specifying version ranges.

-
    -
  • version Must match version exactly
  • -
  • >version Must be greater than version
  • -
  • >=version etc
  • -
  • <version
  • -
  • <=version
  • -
  • ~version "Approximately equivalent to version" See semver(7)
  • -
  • ^version "Compatible with version" See semver(7)
  • -
  • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
  • -
  • http://... See 'URLs as Dependencies' below
  • -
  • * Matches any version
  • -
  • "" (just an empty string) Same as *
  • -
  • version1 - version2 Same as >=version1 <=version2.
  • -
  • range1 || range2 Passes if either range1 or range2 are satisfied.
  • -
  • git... See 'Git URLs as Dependencies' below
  • -
  • user/repo See 'GitHub URLs' below
  • -
  • tag A specific version tagged and published as tag See npm-dist-tag(1)
  • -
  • path/path/path See Local Paths below
  • -
-

For example, these are all valid:

-
{ "dependencies" :
-  { "foo" : "1.0.0 - 2.9999.9999"
-  , "bar" : ">=1.0.2 <2.1.2"
-  , "baz" : ">1.0.2 <=2.3.4"
-  , "boo" : "2.0.1"
-  , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
-  , "asd" : "http://asdf.com/asdf.tar.gz"
-  , "til" : "~1.2"
-  , "elf" : "~1.2.3"
-  , "two" : "2.x"
-  , "thr" : "3.3.x"
-  , "lat" : "latest"
-  , "dyl" : "file:../dyl"
-  }
-}
-

URLs as Dependencies

-

You may specify a tarball URL in place of a version range.

-

This tarball will be downloaded and installed locally to your package at -install time.

-

Git URLs as Dependencies

-

Git urls are of the form:

-
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
-

<protocol> is one of git, git+ssh, git+http, git+https, or -git+file.

-

If #<commit-ish> is provided, it will be used to clone exactly that -commit. If the commit-ish has the format #semver:<semver>, <semver> can -be any valid semver range or exact version, and npm will look for any tags -or refs matching that range in the remote repository, much as it would for a -registry dependency. If neither #<commit-ish> or #semver:<semver> is -specified, then master is used.

-

Examples:

-
git+ssh://git@github.com:npm/npm.git#v1.0.27
-git+ssh://git@github.com:npm/npm#semver:^5.0
-git+https://isaacs@github.com/npm/npm.git
-git://github.com/npm/npm.git#v1.0.27
-

GitHub URLs

-

As of version 1.1.65, you can refer to GitHub urls as just "foo": -"user/foo-project". Just as with git URLs, a commit-ish suffix can be -included. For example:

-
{
-  "name": "foo",
-  "version": "0.0.0",
-  "dependencies": {
-    "express": "expressjs/express",
-    "mocha": "mochajs/mocha#4727d357ea",
-    "module": "user/repo#feature\/branch"
-  }
-}
-

Local Paths

-

As of version 2.0.0 you can provide a path to a local directory that contains a -package. Local paths can be saved using npm install -S or -npm install --save, using any of these forms:

-
../foo/bar
-~/foo/bar
-./foo/bar
-/foo/bar
-

in which case they will be normalized to a relative path and added to your -package.json. For example:

-
{
-  "name": "baz",
-  "dependencies": {
-    "bar": "file:../foo/bar"
-  }
-}
-

This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry.

-

devDependencies

-

If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use.

-

In this case, it's best to map these additional items in a devDependencies -object.

-

These things will be installed when doing npm link or npm install -from the root of a package, and can be managed like any other npm -configuration param. See npm-config(7) for more on the topic.

-

For build steps that are not platform-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the prepare -script to do this, and make the required package a devDependency.

-

For example:

-
{ "name": "ethopia-waza",
-  "description": "a delightfully fruity coffee varietal",
-  "version": "1.2.3",
-  "devDependencies": {
-    "coffee-script": "~1.6.3"
-  },
-  "scripts": {
-    "prepare": "coffee -o lib/ -c src/waza.coffee"
-  },
-  "main": "lib/waza.js"
-}
-

The prepare script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves. In dev mode (ie, locally running npm install), it'll -run this script as well, so that you can test it easily.

-

peerDependencies

-

In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a require of this host. -This is usually referred to as a plugin. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation.

-

For example:

-
{
-  "name": "tea-latte",
-  "version": "1.3.5",
-  "peerDependencies": {
-    "tea": "2.x"
-  }
-}
-

This ensures your package tea-latte can be installed along with the second -major version of the host package tea only. npm install tea-latte could -possibly yield the following dependency graph:

-
├── tea-latte@1.3.5
-└── tea@2.2.0
-

NOTE: npm versions 1 and 2 will automatically install peerDependencies if -they are not explicitly depended upon higher in the dependency tree. In the -next major version of npm (npm@3), this will no longer be the case. You will -receive a warning that the peerDependency is not installed instead. The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible.

-

Trying to install another plugin with a conflicting requirement will cause an -error. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions.

-

Assuming the host complies with semver, only changes in -the host package's major version will break your plugin. Thus, if you've worked -with every 1.x version of the host package, use "^1.0" or "1.x" to express -this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2".

-

bundledDependencies

-

This defines an array of package names that will be bundled when publishing -the package.

-

In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the bundledDependencies -array and executing npm pack.

-

For example:

-

If we define a package.json like this:

-
{
-  "name": "awesome-web-framework",
-  "version": "1.0.0",
-  "bundledDependencies": [
-    "renderized", "super-streams"
-  ]
-}
-

we can obtain awesome-web-framework-1.0.0.tgz file by running npm pack. -This file contains the dependencies renderized and super-streams which -can be installed in a new project by executing npm install -awesome-web-framework-1.0.0.tgz.

-

If this is spelled "bundleDependencies", then that is also honored.

-

optionalDependencies

-

If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the optionalDependencies -object. This is a map of package name to version or url, just like the -dependencies object. The difference is that build failures do not cause -installation to fail.

-

It is still your program's responsibility to handle the lack of the -dependency. For example, something like this:

-
try {
-  var foo = require('foo')
-  var fooVersion = require('foo/package.json').version
-} catch (er) {
-  foo = null
-}
-if ( notGoodFooVersion(fooVersion) ) {
-  foo = null
-}
-
-// .. then later in your program ..
-
-if (foo) {
-  foo.doFooThings()
-}
-

Entries in optionalDependencies will override entries of the same name in -dependencies, so it's usually best to only put in one place.

-

engines

-

You can specify the version of node that your stuff works on:

-
{ "engines" : { "node" : ">=0.10.3 <0.12" } }
-

And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do.

-

If you specify an "engines" field, then npm will require that "node" be -somewhere on that list. If "engines" is omitted, then npm will just assume -that it works on node.

-

You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program. For example:

-
{ "engines" : { "npm" : "~1.0.20" } }
-

Unless the user has set the engine-strict config flag, this -field is advisory only and will only produce warnings when your package is installed as a dependency.

-

engineStrict

-

This feature was removed in npm 3.0.0

-

Prior to npm 3.0.0, this feature was used to treat this package as if the -user had set engine-strict. It is no longer used.

-

os

-

You can specify which operating systems your -module will run on:

-
"os" : [ "darwin", "linux" ]
-

You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!':

-
"os" : [ "!win32" ]
-

The host operating system is determined by process.platform

-

It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this.

-

cpu

-

If your code only runs on certain cpu architectures, -you can specify which ones.

-
"cpu" : [ "x64", "ia32" ]
-

Like the os option, you can also blacklist architectures:

-
"cpu" : [ "!arm", "!mips" ]
-

The host architecture is determined by process.arch

-

preferGlobal

-

DEPRECATED

-

This option used to trigger an npm warning, but it will no longer warn. It is -purely there for informational purposes. It is now recommended that you install -any binaries as local devDependencies wherever possible.

-

private

-

If you set "private": true in your package.json, then npm will refuse -to publish it.

-

This is a way to prevent accidental publication of private repositories. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -publishConfig dictionary described below to override the registry config -param at publish-time.

-

publishConfig

-

This is a set of config values that will be used at publish-time. It's -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.

-

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

-

DEFAULT VALUES

-

npm will default some values based on package contents.

-
    -
  • "scripts": {"start": "node server.js"}

    -

    If there is a server.js file in the root of your package, then npm -will default the start command to node server.js.

    -
  • -
  • "scripts":{"install": "node-gyp rebuild"}

    -

    If there is a binding.gyp file in the root of your package and you have not defined an install or preinstall script, npm will -default the install command to compile using node-gyp.

    -
  • -
  • "contributors": [...]

    -

    If there is an AUTHORS file in the root of your package, npm will -treat each line as a Name <email> (url) format, where email and url -are optional. Lines which start with a # or are blank, will be -ignored.

    -
  • -
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html deleted file mode 100644 index 914307420c8..00000000000 --- a/deps/npm/html/doc/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - npm-index - - - - - - -
- -

npm-index

Index of all npm documentation

-

README

-

a JavaScript package manager

-

Command Line Documentation

-

Using npm on the command line

-

npm(1)

-

javascript package manager

-

npm-access(1)

-

Set access level on published packages

-

npm-adduser(1)

-

Add a registry user account

-

npm-bin(1)

-

Display npm bin folder

-

npm-bugs(1)

-

Bugs for a package in a web browser maybe

-

npm-build(1)

-

Build a package

-

npm-bundle(1)

-

REMOVED

-

npm-cache(1)

-

Manipulates packages cache

-

npm-completion(1)

-

Tab Completion for npm

-

npm-config(1)

-

Manage the npm configuration files

-

npm-dedupe(1)

-

Reduce duplication

-

npm-deprecate(1)

-

Deprecate a version of a package

-

npm-dist-tag(1)

-

Modify package distribution tags

-

npm-docs(1)

-

Docs for a package in a web browser maybe

-

npm-doctor(1)

-

Check your environments

-

npm-edit(1)

-

Edit an installed package

-

npm-explore(1)

-

Browse an installed package

-

npm-help-search(1)

-

Search npm help documentation

-

npm-help(1)

-

Get help on npm

-

npm-init(1)

-

Interactively create a package.json file

-

npm-install-test(1)

-

Install package(s) and run tests

-

npm-install(1)

-

Install a package

- -

Symlink a package folder

-

npm-logout(1)

-

Log out of the registry

-

npm-ls(1)

-

List installed packages

-

npm-outdated(1)

-

Check for outdated packages

-

npm-owner(1)

-

Manage package owners

-

npm-pack(1)

-

Create a tarball from a package

-

npm-ping(1)

-

Ping npm registry

-

npm-prefix(1)

-

Display prefix

-

npm-profile(1)

-

Change settings on your registry profile

-

npm-prune(1)

-

Remove extraneous packages

-

npm-publish(1)

-

Publish a package

-

npm-rebuild(1)

-

Rebuild a package

-

npm-repo(1)

-

Open package repository page in the browser

-

npm-restart(1)

-

Restart a package

-

npm-root(1)

-

Display npm root

-

npm-run-script(1)

-

Run arbitrary package scripts

-

npm-search(1)

-

Search for packages

-

npm-shrinkwrap(1)

-

Lock down dependency versions for publication

-

npm-star(1)

-

Mark your favorite packages

-

npm-stars(1)

-

View packages marked as favorites

-

npm-start(1)

-

Start a package

-

npm-stop(1)

-

Stop a package

-

npm-team(1)

-

Manage organization teams and team memberships

-

npm-test(1)

-

Test a package

-

npm-token(1)

-

Manage your authentication tokens

-

npm-uninstall(1)

-

Remove a package

-

npm-unpublish(1)

-

Remove a package from the registry

-

npm-update(1)

-

Update a package

-

npm-version(1)

-

Bump a package version

-

npm-view(1)

-

View registry info

-

npm-whoami(1)

-

Display npm username

-

API Documentation

-

Using npm in your Node programs

-

Files

-

File system structures npm uses

-

npm-folders(5)

-

Folder Structures Used by npm

-

npm-package-locks(5)

-

An explanation of npm lockfiles

-

npm-shrinkwrap.json(5)

-

A publishable lockfile

-

npmrc(5)

-

The npm config files

-

package-lock.json(5)

-

A manifestation of the manifest

-

package.json(5)

-

Specifics of npm's package.json handling

-

Misc

-

Various other bits and bobs

-

npm-coding-style(7)

-

npm's "funny" coding style

-

npm-config(7)

-

More than you probably want to know about npm configuration

-

npm-developers(7)

-

Developer Guide

-

npm-disputes(7)

-

Handling Module Name Disputes

-

npm-index(7)

-

Index of all npm documentation

-

npm-orgs(7)

-

Working with Teams & Orgs

-

npm-registry(7)

-

The JavaScript Package Registry

-

npm-scope(7)

-

Scoped packages

-

npm-scripts(7)

-

How npm handles the "scripts" field

-

removing-npm(7)

-

Cleaning the Slate

-

semver(7)

-

The semantic versioner for npm

- -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html deleted file mode 100644 index f96dd270bfa..00000000000 --- a/deps/npm/html/doc/misc/npm-coding-style.html +++ /dev/null @@ -1,157 +0,0 @@ - - - npm-coding-style - - - - - - -
- -

npm-coding-style

npm's "funny" coding style

-

DESCRIPTION

-

npm's coding style is a bit unconventional. It is not different for -difference's sake, but rather a carefully crafted style that is -designed to reduce visual clutter and make bugs more apparent.

-

If you want to contribute to npm (which is very encouraged), you should -make your code conform to npm's style.

-

Note: this concerns npm's code not the specific packages that you can download from the npm registry.

-

Line Length

-

Keep lines shorter than 80 characters. It's better for lines to be -too short than to be too long. Break up long lists, objects, and other -statements onto multiple lines.

-

Indentation

-

Two-spaces. Tabs are better, but they look like hell in web browsers -(and on GitHub), and node uses 2 spaces, so that's that.

-

Configure your editor appropriately.

-

Curly braces

-

Curly braces belong on the same line as the thing that necessitates them.

-

Bad:

-
function ()
-{
-

Good:

-
function () {
-

If a block needs to wrap to the next line, use a curly brace. Don't -use it if it doesn't.

-

Bad:

-
if (foo) { bar() }
-while (foo)
-  bar()
-

Good:

-
if (foo) bar()
-while (foo) {
-  bar()
-}
-

Semicolons

-

Don't use them except in four situations:

-
    -
  • for (;;) loops. They're actually required.
  • -
  • null loops like: while (something) ; (But you'd better have a good -reason for doing that.)
  • -
  • case 'foo': doSomething(); break
  • -
  • In front of a leading ( or [ at the start of the line. -This prevents the expression from being interpreted -as a function call or property access, respectively.
  • -
-

Some examples of good semicolon usage:

-
;(x || y).doSomething()
-;[a, b, c].forEach(doSomething)
-for (var i = 0; i < 10; i ++) {
-  switch (state) {
-    case 'begin': start(); continue
-    case 'end': finish(); break
-    default: throw new Error('unknown state')
-  }
-  end()
-}
-

Note that starting lines with - and + also should be prefixed -with a semicolon, but this is much less common.

-

Comma First

-

If there is a list of things separated by commas, and it wraps -across multiple lines, put the comma at the start of the next -line, directly below the token that starts the list. Put the -final token in the list on a line by itself. For example:

-
var magicWords = [ 'abracadabra'
-                 , 'gesundheit'
-                 , 'ventrilo'
-                 ]
-  , spells = { 'fireball' : function () { setOnFire() }
-             , 'water' : function () { putOut() }
-             }
-  , a = 1
-  , b = 'abc'
-  , etc
-  , somethingElse
-

Quotes

-

Use single quotes for strings except to avoid escaping.

-

Bad:

-
var notOk = "Just double quotes"
-

Good:

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

Whitespace

-

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

-

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

-

Functions

-

Use named functions. They make stack traces a lot easier to read.

-

Callbacks, Sync/async Style

-

Use the asynchronous/non-blocking versions of things as much as possible. -It might make more sense for npm to use the synchronous fs APIs, but this -way, the fs and http and child process stuff all uses the same callback-passing -methodology.

-

The callback should always be the last argument in the list. Its first -argument is the Error or null.

-

Be very careful never to ever ever throw anything. It's worse than useless. -Just send the error message back as the first argument to the callback.

-

Errors

-

Always create a new Error object with your message. Don't just return a -string message to the callback. Stack traces are handy.

-

Logging

-

Logging is done using the npmlog -utility.

-

Please clean up logs when they are no longer helpful. In particular, -logging the same object over and over again is not helpful. Logs should -report what's happening so that it's easier to track down where a fault -occurs.

-

Use appropriate log levels. See npm-config(7) and search for -"loglevel".

-

Case, naming, etc.

-

Use lowerCamelCase for multiword identifiers when they refer to objects, -functions, methods, properties, or anything not specified in this section.

-

Use UpperCamelCase for class names (things that you'd pass to "new").

-

Use all-lower-hyphen-css-case for multiword filenames and config keys.

-

Use named functions. They make stack traces easier to follow.

-

Use CAPS_SNAKE_CASE for constants, things that should never change -and are rarely used.

-

Use a single uppercase letter for function names where the function -would normally be anonymous, but needs to call itself recursively. It -makes it clear that it's a "throwaway" function.

-

null, undefined, false, 0

-

Boolean variables and functions should always be either true or -false. Don't set it to 0 unless it's supposed to be a number.

-

When something is intentionally missing or removed, set it to null.

-

Don't set things to undefined. Reserve that value to mean "not yet -set to anything."

-

Boolean objects are forbidden.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html deleted file mode 100644 index a23b10727af..00000000000 --- a/deps/npm/html/doc/misc/npm-config.html +++ /dev/null @@ -1,1028 +0,0 @@ - - - npm-config - - - - - - -
- -

npm-config

More than you probably want to know about npm configuration

-

DESCRIPTION

-

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

-

Command Line Flags

-

Putting --foo bar on the command line sets the foo configuration -parameter to "bar". A -- argument tells the cli parser to stop -reading flags. Using --flag without specifying any value will set -the value to true.

-

Example: --flag1 --flag2 will set both configuration parameters -to true, while --flag1 --flag2 bar will set flag1 to true, -and flag2 to bar. Finally, --flag1 --flag2 -- bar will set -both configuration parameters to true, and the bar is taken -as a command argument.

-

Environment Variables

-

Any environment variables that start with npm_config_ will be -interpreted as a configuration parameter. For example, putting -npm_config_foo=bar in your environment will set the foo -configuration parameter to bar. Any environment configurations that -are not given a value will be given the value of true. Config -values are case-insensitive, so NPM_CONFIG_FOO=bar will work the -same. However, please note that inside npm-scripts -npm will set its own environment variables and Node will prefer -those lowercase versions over any uppercase ones that you might set. -For details see this issue.

-

Notice that you need to use underscores instead of dashes, so --allow-same-version -would become npm_config_allow_same_version=true.

-

npmrc Files

-

The four relevant files are:

-
    -
  • per-project configuration file (/path/to/my/project/.npmrc)
  • -
  • per-user configuration file (defaults to $HOME/.npmrc; configurable via CLI -option --userconfig or environment variable $NPM_CONFIG_USERCONFIG)
  • -
  • global configuration file (defaults to $PREFIX/etc/npmrc; configurable via -CLI option --globalconfig or environment variable $NPM_CONFIG_GLOBALCONFIG)
  • -
  • npm's built-in configuration file (/path/to/npm/npmrc)
  • -
-

See npmrc(5) for more details.

-

Default Configs

-

Run npm config ls -l to see a set of configuration parameters that are -internal to npm, and are defaults if nothing else is specified.

-

Shorthands and Other CLI Niceties

-

The following shorthands are parsed on the command-line:

-
    -
  • -v: --version
  • -
  • -h, -?, --help, -H: --usage
  • -
  • -s, --silent: --loglevel silent
  • -
  • -q, --quiet: --loglevel warn
  • -
  • -d: --loglevel info
  • -
  • -dd, --verbose: --loglevel verbose
  • -
  • -ddd: --loglevel silly
  • -
  • -g: --global
  • -
  • -C: --prefix
  • -
  • -l: --long
  • -
  • -m: --message
  • -
  • -p, --porcelain: --parseable
  • -
  • -reg: --registry
  • -
  • -f: --force
  • -
  • -desc: --description
  • -
  • -S: --save
  • -
  • -P: --save-prod
  • -
  • -D: --save-dev
  • -
  • -O: --save-optional
  • -
  • -B: --save-bundle
  • -
  • -E: --save-exact
  • -
  • -y: --yes
  • -
  • -n: --yes false
  • -
  • ll and la commands: ls --long
  • -
-

If the specified configuration param resolves unambiguously to a known -configuration parameter, then it is expanded to that configuration -parameter. For example:

-
npm ls --par
-# same as:
-npm ls --parseable
-

If multiple single-character shorthands are strung together, and the -resulting combination is unambiguously not some other configuration -param, then it is expanded to its various component pieces. For -example:

-
npm ls -gpld
-# same as:
-npm ls --global --parseable --long --loglevel info
-

Per-Package Config Settings

-

When running scripts (see npm-scripts(7)) the package.json "config" -keys are overwritten in the environment if there is a config param of -<name>[@<version>]:<key>. For example, if the package.json has -this:

-
{ "name" : "foo"
-, "config" : { "port" : "8080" }
-, "scripts" : { "start" : "node server.js" } }
-

and the server.js is this:

-
http.createServer(...).listen(process.env.npm_package_config_port)
-

then the user could change the behavior by doing:

-
npm config set foo:port 80
-

See package.json(5) for more information.

-

Config Settings

-

access

-
    -
  • Default: restricted
  • -
  • Type: Access
  • -
-

When publishing scoped packages, the access level defaults to restricted. If -you want your scoped package to be publicly viewable (and installable) set ---access=public. The only valid values for access are public and -restricted. Unscoped packages always have an access level of public.

-

allow-same-version

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Prevents throwing an error when npm version is used to set the new version -to the same value as the current version.

-

always-auth

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Force npm to always require authentication when accessing the registry, -even for GET requests.

-

also

-
    -
  • Default: null
  • -
  • Type: String
  • -
-

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

-

auth-type

-
    -
  • Default: 'legacy'
  • -
  • Type: 'legacy', 'sso', 'saml', 'oauth'
  • -
-

What authentication strategy to use with adduser/login.

- -
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Tells npm to create symlinks (or .cmd shims on Windows) for package -executables.

-

Set to false to have it not do this. This can be used to work around -the fact that some file systems don't support symlinks, even on -ostensibly Unix systems.

-

browser

-
    -
  • Default: OS X: "open", Windows: "start", Others: "xdg-open"
  • -
  • Type: String
  • -
-

The browser that is called by the npm docs command to open websites.

-

ca

-
    -
  • Default: The npm CA certificate
  • -
  • Type: String, Array or 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:

-
ca[]="..."
-ca[]="..."
-

See also the strict-ssl config.

-

cafile

-
    -
  • Default: null
  • -
  • Type: path
  • -
-

A path to a file containing one or multiple Certificate Authority signing -certificates. Similar to the ca setting, but allows for multiple CA's, as -well as for the CA information to be stored in a file on disk.

-

cache

-
    -
  • Default: Windows: %AppData%\npm-cache, Posix: ~/.npm
  • -
  • Type: path
  • -
-

The location of npm's cache directory. See npm-cache(1)

-

cache-lock-stale

-
    -
  • Default: 60000 (1 minute)
  • -
  • Type: Number
  • -
-

The number of ms before cache folder lockfiles are considered stale.

-

cache-lock-retries

-
    -
  • Default: 10
  • -
  • Type: Number
  • -
-

Number of times to retry to acquire a lock on cache folder lockfiles.

-

cache-lock-wait

-
    -
  • Default: 10000 (10 seconds)
  • -
  • Type: Number
  • -
-

Number of ms to wait for cache lock files to expire.

-

cache-max

-
    -
  • Default: Infinity
  • -
  • Type: Number
  • -
-

DEPRECATED: This option has been deprecated in favor of --prefer-online.

-

--cache-max=0 is an alias for --prefer-online.

-

cache-min

-
    -
  • Default: 10
  • -
  • Type: Number
  • -
-

DEPRECATED: This option has been deprecated in favor of --prefer-offline.

-

--cache-min=9999 (or bigger) is an alias for --prefer-offline.

-

cert

-
    -
  • Default: null
  • -
  • Type: String
  • -
-

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).

-

cidr

-
    -
  • Default: null
  • -
  • Type: String, Array, null
  • -
-

This is a list of CIDR address to be used when configuring limited access tokens with the npm token create command.

-

color

-
    -
  • Default: true
  • -
  • Type: Boolean or "always"
  • -
-

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

-

depth

-
    -
  • Default: Infinity
  • -
  • Type: Number
  • -
-

The depth to go when recursing directories for npm ls, -npm cache ls, and npm outdated.

-

For npm outdated, a setting of Infinity will be treated as 0 -since that gives more useful information. To show the outdated status -of all packages and dependents, use a large integer value, -e.g., npm outdated --depth 9999

-

description

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Show the description in npm search

-

dev

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Install dev-dependencies along with packages.

-

dry-run

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Indicates that you don't want npm to make any changes and that it should -only report what it would have done. This can be passed into any of the -commands that modify your local installation, eg, install, update, -dedupe, uninstall. This is NOT currently honored by network related -commands, eg dist-tags, owner, publish, etc.

-

editor

-
    -
  • Default: EDITOR environment variable if set, or "vi" on Posix, -or "notepad" on Windows.
  • -
  • Type: path
  • -
-

The command to run for npm edit or npm config edit.

-

engine-strict

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If set to true, then npm will stubbornly refuse to install (or even -consider installing) any package that claims to not be compatible with -the current Node.js version.

-

force

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Makes various commands more forceful.

-
    -
  • lifecycle script failure does not block progress.
  • -
  • publishing clobbers previously published versions.
  • -
  • skips cache when requesting from the registry.
  • -
  • prevents checks against clobbering non-npm files.
  • -
-

fetch-retries

-
    -
  • Default: 2
  • -
  • Type: Number
  • -
-

The "retries" config for the retry module to use when fetching -packages from the registry.

-

fetch-retry-factor

-
    -
  • Default: 10
  • -
  • Type: Number
  • -
-

The "factor" config for the retry module to use when fetching -packages.

-

fetch-retry-mintimeout

-
    -
  • Default: 10000 (10 seconds)
  • -
  • Type: Number
  • -
-

The "minTimeout" config for the retry module to use when fetching -packages.

-

fetch-retry-maxtimeout

-
    -
  • Default: 60000 (1 minute)
  • -
  • Type: Number
  • -
-

The "maxTimeout" config for the retry module to use when fetching -packages.

-

git

-
    -
  • Default: "git"
  • -
  • Type: String
  • -
-

The command to use for git commands. If git is installed on the -computer, but is not in the PATH, then set this to the full path to -the git binary.

-

git-tag-version

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Tag the commit when using the npm version command.

-

commit-hooks

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Run git commit hooks when using the npm version command.

-

global

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Operates in "global" mode, so that packages are installed into the -prefix folder instead of the current working directory. See -npm-folders(5) for more on the differences in behavior.

-
    -
  • packages are installed into the {prefix}/lib/node_modules folder, instead of the -current working directory.
  • -
  • bin files are linked to {prefix}/bin
  • -
  • man pages are linked to {prefix}/share/man
  • -
-

globalconfig

-
    -
  • Default: {prefix}/etc/npmrc
  • -
  • Type: path
  • -
-

The config file to read for global config options.

-

global-style

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Causes npm to install the package into your local node_modules folder with -the same layout it uses with the global node_modules folder. Only your -direct dependencies will show in node_modules and everything they depend -on will be flattened in their node_modules folders. This obviously will -eliminate some deduping. If used with legacy-bundling, legacy-bundling will be -preferred.

-

group

-
    -
  • Default: GID of the current process
  • -
  • Type: String or Number
  • -
-

The group to use when running package scripts in global mode as the root -user.

-

heading

-
    -
  • Default: "npm"
  • -
  • Type: String
  • -
-

The string that starts all the debugging log output.

-

https-proxy

-
    -
  • Default: null
  • -
  • Type: url
  • -
-

A proxy to use for outgoing https requests. If the HTTPS_PROXY or -https_proxy or HTTP_PROXY or http_proxy environment variables are set, -proxy settings will be honored by the underlying request library.

-

if-present

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, npm will not exit with an error code when run-script is invoked for -a script that isn't defined in the scripts section of package.json. This -option can be used when it's desirable to optionally run a script when it's -present and fail if the script fails. This is useful, for example, when running -scripts that may only apply for some builds in an otherwise generic CI setup.

-

ignore-prepublish

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, npm will not run prepublish scripts.

-

ignore-scripts

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, npm does not run scripts specified in package.json files.

-

init-module

-
    -
  • Default: ~/.npm-init.js
  • -
  • Type: path
  • -
-

A module that will be loaded by the npm init command. See the -documentation for the -init-package-json module -for more information, or npm-init(1).

-

init-author-name

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

The value npm init should use by default for the package author's name.

-

init-author-email

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

The value npm init should use by default for the package author's email.

-

init-author-url

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

The value npm init should use by default for the package author's homepage.

-

init-license

-
    -
  • Default: "ISC"
  • -
  • Type: String
  • -
-

The value npm init should use by default for the package license.

-

init-version

-
    -
  • Default: "1.0.0"
  • -
  • Type: semver
  • -
-

The value that npm init should use by default for the package -version number, if not already set in package.json.

-

json

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Whether or not to output JSON data, rather than the normal output.

-

This feature is currently experimental, and the output data structures for many -commands is either not implemented in JSON yet, or subject to change. Only the -output from npm ls --json and npm search --json are currently valid.

-

key

-
    -
  • Default: null
  • -
  • Type: String
  • -
-

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).

-

legacy-bundling

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Causes npm to install the package such that versions of npm prior to 1.4, -such as the one included with node 0.8, can install the package. This -eliminates all automatic deduping. If used with global-style this option -will be preferred.

- -
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, then local installs will link if there is a suitable globally -installed package.

-

Note that this means that local installs can cause things to be -installed into the global space at the same time. The link is only done -if one of the two conditions are met:

-
    -
  • The package is not already installed globally, or
  • -
  • the globally installed version is identical to the version that is -being installed locally.
  • -
-

local-address

-
    -
  • Default: undefined
  • -
  • Type: IP Address
  • -
-

The IP address of the local interface to use when making connections -to the npm registry. Must be IPv4 in versions of Node prior to 0.12.

-

loglevel

-
    -
  • Default: "notice"
  • -
  • Type: String
  • -
  • Values: "silent", "error", "warn", "notice", "http", "timing", "info", -"verbose", "silly"
  • -
-

What level of logs to report. On failure, all logs are written to -npm-debug.log in the current working directory.

-

Any logs of a higher level than the setting are shown. The default is "notice".

-

logstream

-
    -
  • Default: process.stderr
  • -
  • Type: Stream
  • -
-

This is the stream that is passed to the -npmlog module at run time.

-

It cannot be set from the command line, but if you are using npm -programmatically, you may wish to send logs to somewhere other than -stderr.

-

If the color config is set to true, then this stream will receive -colored output if it is a TTY.

-

logs-max

-
    -
  • Default: 10
  • -
  • Type: Number
  • -
-

The maximum number of log files to store.

-

long

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Show extended information in npm ls and npm search.

-

maxsockets

-
    -
  • Default: 50
  • -
  • Type: Number
  • -
-

The maximum number of connections to use per origin (protocol/host/port -combination). Passed to the http Agent used to make the request.

-

message

-
    -
  • Default: "%s"
  • -
  • Type: String
  • -
-

Commit message which is used by npm version when creating version commit.

-

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

-

metrics-registry

- -

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

-

node-options

-
    -
  • Default: null
  • -
  • Type: String
  • -
-

Options to pass through to Node.js via the NODE_OPTIONS environment -variable. This does not impact how npm itself is executed but it does -impact how lifecycle scripts are called.

-

node-version

-
    -
  • Default: process.version
  • -
  • Type: semver or false
  • -
-

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

-

offline

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Force offline mode: no network requests will be done during install. To allow -the CLI to fill in missing cache data, see --prefer-offline.

-

onload-script

-
    -
  • Default: false
  • -
  • Type: path
  • -
-

A node module to require() when npm loads. Useful for programmatic -usage.

-

only

-
    -
  • Default: null
  • -
  • Type: String
  • -
-

When "dev" or "development" and running local npm install without any -arguments, only devDependencies (and their dependencies) are installed.

-

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

-

When "prod" or "production" and running local npm install without any -arguments, only non-devDependencies (and their dependencies) are -installed.

-

When "prod" or "production" and running local npm ls, npm outdated, or -npm update, is an alias for --production.

-

optional

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Attempt to install packages in the optionalDependencies object. Note -that if these packages fail to install, the overall installation -process is not aborted.

-

otp

-
    -
  • Default: null
  • -
  • Type: Number
  • -
-

This is a one-time password from a two-factor authenticator. It's needed -when publishing or changing package permissions with npm access.

-

package-lock

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

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

-

This option is an alias for --shrinkwrap.

-

package-lock-only

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

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

-

parseable

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Output parseable results from commands that write to -standard output. For npm search, this will be tab-separated table format.

-

prefer-offline

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

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 --offline.

-

This option is effectively equivalent to --cache-min=9999999.

-

prefer-online

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, staleness checks for cached data will be forced, making the CLI look -for updates immediately even for fresh package data.

-

prefix

- -

The location to install global items. If set on the command line, then -it forces non-global commands to run in the specified folder.

-

production

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Set to true to run in "production" mode.

-
    -
  1. devDependencies are not installed at the topmost level when running -local npm install without any arguments.
  2. -
  3. Set the NODE_ENV="production" for lifecycle scripts.
  4. -
-

progress

-
    -
  • Default: true, unless TRAVIS or CI env vars set.
  • -
  • Type: Boolean
  • -
-

When set to true, npm will display a progress bar during time intensive -operations, if process.stderr is a TTY.

-

Set to false to suppress the progress bar.

-

proxy

-
    -
  • Default: null
  • -
  • Type: url
  • -
-

A proxy to use for outgoing http requests. If the HTTP_PROXY or -http_proxy environment variables are set, proxy settings will be -honored by the underlying request library.

-

read-only

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

This is used to mark a token as unable to publish when configuring limited access tokens with the npm token create command.

-

rebuild-bundle

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Rebuild bundled dependencies after installation.

-

registry

- -

The base URL of the npm package registry.

-

rollback

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Remove failed installs.

-

save

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

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

-

When used with the npm rm command, it removes it from the dependencies -object.

-

Only works if there is already a package.json file present.

-

save-bundle

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If a package would be saved at install time by the use of --save, ---save-dev, or --save-optional, then also put it in the -bundleDependencies list.

-

When used with the npm rm command, it removes it from the -bundledDependencies list.

-

save-prod

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Makes sure that a package will be saved into dependencies specifically. This -is useful if a package already exists in devDependencies or -optionalDependencies, but you want to move it to be a production dep. This is -also the default behavior if --save is true, and neither --save-dev or ---save-optional are true.

-

save-dev

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

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

-

When used with the npm rm command, it removes it from the -devDependencies object.

-

Only works if there is already a package.json file present.

-

save-exact

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Dependencies saved to package.json using --save, --save-dev or ---save-optional will be configured with an exact version rather than -using npm's default semver range operator.

-

save-optional

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Save installed packages to a package.json file as -optionalDependencies.

-

When used with the npm rm command, it removes it from the -devDependencies object.

-

Only works if there is already a package.json file present.

-

save-prefix

-
    -
  • Default: '^'
  • -
  • Type: String
  • -
-

Configure how versions of packages installed to a package.json file via ---save or --save-dev get prefixed.

-

For example if a package has version 1.2.3, by default its version is -set to ^1.2.3 which allows minor upgrades for that package, but after -npm config set save-prefix='~' it would be set to ~1.2.3 which only allows -patch upgrades.

-

scope

-
    -
  • Default: the scope of the current project, if any, or ""
  • -
  • Type: String
  • -
-

Associate an operation with a scope for a scoped registry. Useful when logging -in to a private registry for the first time: -npm login --scope=@organization --registry=registry.organization.com, which -will cause @organization to be mapped to the registry for future installation -of packages specified according to the pattern @organization/package.

-

script-shell

-
    -
  • Default: null
  • -
  • Type: path
  • -
-

The shell to use for scripts run with the npm run command.

-

scripts-prepend-node-path

-
    -
  • Default: "warn-only"
  • -
  • Type: Boolean, "auto" or "warn-only"
  • -
-

If set to true, add the directory in which the current node executable -resides to the PATH environment variable when running scripts, -even if that means that npm will invoke a different node executable than -the one which it is running.

-

If set to false, never modify PATH with that.

-

If set to "warn-only", never modify PATH but print a warning if npm thinks -that you may want to run it with true, e.g. because the node executable -in the PATH is not the one npm was invoked with.

-

If set to auto, only add that directory to the PATH environment variable -if the node executable with which npm was invoked and the one that is found -first on the PATH are different.

-

searchexclude

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

Space-separated options that limit the results from search.

-

searchopts

-
    -
  • Default: ""
  • -
  • Type: String
  • -
-

Space-separated options that are always passed to search.

-

searchlimit

-
    -
  • Default: 20
  • -
  • Type: Number
  • -
-

Number of items to limit search results to. Will not apply at all to legacy -searches.

-

searchstaleness

-
    -
  • Default: 900 (15 minutes)
  • -
  • Type: Number
  • -
-

The age of the cache, in seconds, before another registry request is made if -using legacy search endpoint.

-

send-metrics

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, success/failure metrics will be reported to the registry stored in -metrics-registry. These requests contain the number of successful and -failing runs of the npm CLI and the time period overwhich those counts were -gathered. No identifying information is included in these requests.

-

shell

-
    -
  • Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows
  • -
  • Type: path
  • -
-

The shell to run for the npm explore command.

-

shrinkwrap

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

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

-

This option is an alias for --package-lock.

-

sign-git-tag

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If set to true, then the npm version command will tag the version -using -s to add a signature.

-

Note that git requires you to have set up GPG keys in your git configs -for this to work properly.

-

sso-poll-frequency

-
    -
  • Default: 500
  • -
  • Type: Number
  • -
-

When used with SSO-enabled auth-types, configures how regularly the registry -should be polled while the user is completing authentication.

-

sso-type

-
    -
  • Default: 'oauth'
  • -
  • Type: 'oauth', 'saml', or null
  • -
-

If --auth-type=sso, the type of SSO type to use.

-

strict-ssl

-
    -
  • Default: true
  • -
  • Type: Boolean
  • -
-

Whether or not to do SSL key validation when making requests to the -registry via https.

-

See also the ca config.

-

tag

-
    -
  • Default: latest
  • -
  • Type: String
  • -
-

If you ask npm to install a package and don't tell it a specific version, then -it will install the specified tag.

-

Also the tag that is added to the package@version specified by the npm -tag command, if no explicit tag is given.

-

tag-version-prefix

-
    -
  • Default: "v"
  • -
  • Type: String
  • -
-

If set, alters the prefix used when tagging a new version when performing a -version increment using npm-version. To remove the prefix altogether, set it -to the empty string: "".

-

Because other tools may rely on the convention that npm version tags look like -v1.0.0, only use this property if it is absolutely necessary. In -particular, use care when overriding this setting for public packages.

-

timing

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

If true, writes an npm-debug log to _logs and timing information to -_timing.json, both in your cache. _timing.json is a newline delimited -list of JSON objects. You can quickly view it with this -json command line: -json -g < ~/.npm/_timing.json.

-

tmp

-
    -
  • Default: TMPDIR environment variable, or "/tmp"
  • -
  • Type: path
  • -
-

Where to store temporary files and folders. All temp files are deleted -on success, but left behind on failure for forensic purposes.

-

unicode

-
    -
  • Default: false on windows, true on mac/unix systems with a unicode locale
  • -
  • Type: Boolean
  • -
-

When set to true, npm uses unicode characters in the tree output. When -false, it uses ascii characters to draw trees.

-

unsafe-perm

-
    -
  • Default: false if running as root, true otherwise
  • -
  • Type: Boolean
  • -
-

Set to true to suppress the UID/GID switching when running package -scripts. If set explicitly to false, then installing as a non-root user -will fail.

-

usage

-
    -
  • Default: false
  • -
  • Type: Boolean
  • -
-

Set to show short usage output (like the -H output) -instead of complete help when doing npm-help(1).

-

user

-
    -
  • Default: "nobody"
  • -
  • Type: String or Number
  • -
-

The UID to set to when running package scripts as root.

-

userconfig

-
    -
  • Default: ~/.npmrc
  • -
  • Type: path
  • -
-

The location of user-level configuration settings.

-

umask

-
    -
  • Default: 022
  • -
  • Type: Octal numeric string in range 0000..0777 (0..511)
  • -
-

The "umask" value to use when setting the file creation mode on files -and folders.

-

Folders and executables are given a mode which is 0777 masked against -this value. Other files are given a mode which is 0666 masked against -this value. Thus, the defaults are 0755 and 0644 respectively.

-

user-agent

-
    -
  • Default: node/{process.version} {process.platform} {process.arch}
  • -
  • Type: String
  • -
-

Sets a User-Agent to the request header

-

version

-
    -
  • Default: false
  • -
  • Type: boolean
  • -
-

If true, output the npm version and exit successfully.

-

Only relevant when specified explicitly on the command line.

-

versions

-
    -
  • Default: false
  • -
  • Type: boolean
  • -
-

If true, output the npm version as well as node's process.versions map, and -exit successfully.

-

Only relevant when specified explicitly on the command line.

-

viewer

-
    -
  • Default: "man" on Posix, "browser" on Windows
  • -
  • Type: path
  • -
-

The program to use to view help content.

-

Set to "browser" to view html help content in the default web browser.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html deleted file mode 100644 index bdf212ed4b1..00000000000 --- a/deps/npm/html/doc/misc/npm-developers.html +++ /dev/null @@ -1,208 +0,0 @@ - - - npm-developers - - - - - - -
- -

npm-developers

Developer Guide

-

DESCRIPTION

-

So, you've decided to use npm to develop (and maybe publish/deploy) -your project.

-

Fantastic!

-

There are a few things that you need to do above the simple steps -that your users will do to install your program.

-

About These Documents

-

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

-

What is a package

-

A package is:

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

Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b).

-

Git urls can be of the form:

-
git://github.com/user/project.git#commit-ish
-git+ssh://user@hostname:project.git#commit-ish
-git+http://user@hostname/project/blah.git#commit-ish
-git+https://user@hostname/project/blah.git#commit-ish
-

The commit-ish can be any tag, sha, or branch which can be supplied as -an argument to git checkout. The default is master.

-

The package.json File

-

You need to have a package.json file in the root of your project to do -much of anything with npm. That is basically the whole interface.

-

See package.json(5) for details about what goes in that file. At the very -least, you need:

-
    -
  • name: -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.

    -

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

    -

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

    -
  • -
  • version: -A semver-compatible version.

    -
  • -
  • engines: -Specify the versions of node (or whatever else) that your program -runs on. The node API changes a lot, and there may be bugs or new -functionality that you depend on. Be explicit.

    -
  • -
  • author: -Take some credit.

    -
  • -
  • scripts: -If you have a special compilation or installation script, then you -should put it in the scripts object. You should definitely have at -least a basic smoke-test command as the "scripts.test" field. -See npm-scripts(7).

    -
  • -
  • main: -If you have a single module that serves as the entry point to your -program (like what the "foo" package gives you at require("foo")), -then you need to specify that in the "main" field.

    -
  • -
  • directories: -This is an object mapping names to folders. The best ones to include are -"lib" and "doc", but if you use "man" to specify a folder full of man pages, -they'll get installed just like these ones.

    -
  • -
-

You can use npm init in the root of your package in order to get you -started with a pretty basic package.json file. See npm-init(1) for -more info.

-

Keeping files out of your package

-

Use a .npmignore file to keep stuff out of your package. If there's -no .npmignore file, but there is a .gitignore file, then npm will -ignore the stuff matched by the .gitignore file. If you want to -include something that is excluded by your .gitignore file, you can -create an empty .npmignore file to override it. Like git, npm looks -for .npmignore and .gitignore files in all subdirectories of your -package, not only the root directory.

-

.npmignore files follow the same pattern rules -as .gitignore files:

-
    -
  • Blank lines or lines starting with # are ignored.
  • -
  • Standard glob patterns work.
  • -
  • You can end patterns with a forward slash / to specify a directory.
  • -
  • You can negate a pattern by starting it with an exclamation point !.
  • -
-

By default, the following paths and files are ignored, so there's no -need to add them to .npmignore explicitly:

-
    -
  • .*.swp
  • -
  • ._*
  • -
  • .DS_Store
  • -
  • .git
  • -
  • .hg
  • -
  • .npmrc
  • -
  • .lock-wscript
  • -
  • .svn
  • -
  • .wafpickle-*
  • -
  • config.gypi
  • -
  • CVS
  • -
  • npm-debug.log
  • -
-

Additionally, everything in node_modules is ignored, except for -bundled dependencies. npm automatically handles this for you, so don't -bother adding node_modules to .npmignore.

-

The following paths and files are never ignored, so adding them to -.npmignore is pointless:

-
    -
  • package.json
  • -
  • README (and its variants)
  • -
  • CHANGELOG (and its variants)
  • -
  • LICENSE / LICENCE
  • -
-

If, given the structure of your project, you find .npmignore to be a -maintenance headache, you might instead try populating the files -property of package.json, which is an array of file or directory names -that should be included in your package. Sometimes a whitelist is easier -to manage than a blacklist.

-

Testing whether your .npmignore or files config works

-

If you want to double check that your package will include only the files -you intend it to when published, you can run the npm pack command locally -which will generate a tarball in the working directory, the same way it -does for publishing.

- -

npm link is designed to install a development package and see the -changes in real time without having to keep re-installing it. (You do -need to either re-link or npm rebuild -g to update compiled packages, -of course.)

-

More info at npm-link(1).

-

Before Publishing: Make Sure Your Package Installs and Works

-

This is important.

-

If you can not install it locally, you'll have -problems trying to publish it. Or, worse yet, you'll be able to -publish it, but you'll be publishing a broken or pointless package. -So don't do that.

-

In the root of your package, do this:

-
npm install . -g
-

That'll show you that it's working. If you'd rather just create a symlink -package that points to your working directory, then do this:

-
npm link
-

Use npm ls -g to see if it's there.

-

To test a local install, go into some other folder, and then do:

-
cd ../some-other-folder
-npm install ../my-package
-

to install it locally into the node_modules folder in that other place.

-

Then go into the node-repl, and try using require("my-thing") to -bring in your module's main module.

-

Create a User Account

-

Create a user with the adduser command. It works like this:

-
npm adduser
-

and then follow the prompts.

-

This is documented better in npm-adduser(1).

-

Publish your package

-

This part's easy. In the root of your folder, do this:

-
npm publish
-

You can give publish a url to a tarball, or a filename of a tarball, -or a path to a folder.

-

Note that pretty much everything in that folder will be exposed -by default. So, if you have secret stuff in there, use a -.npmignore file to list out the globs to ignore, or publish -from a fresh checkout.

-

Brag about it

-

Send emails, write blogs, blab in IRC.

-

Tell the world how easy it is to install your program!

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html deleted file mode 100644 index fdf53fcad0c..00000000000 --- a/deps/npm/html/doc/misc/npm-disputes.html +++ /dev/null @@ -1,138 +0,0 @@ - - - npm-disputes - - - - - - -
- -

npm-disputes

Handling Module Name Disputes

-

This document describes the steps that you should take to resolve module name -disputes with other npm publishers. It also describes special steps you should -take about names you think infringe your trademarks.

-

This document is a clarification of the acceptable behavior outlined in the -npm Code of Conduct, and nothing in -this document should be interpreted to contradict any aspect of the npm Code of -Conduct.

-

TL;DR

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

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

-

DESCRIPTION

-

There sometimes arise cases where a user publishes a module, and then later, -some other user wants to use that name. Here are some common ways that happens -(each of these is based on actual events.)

-
    -
  1. Alice writes a JavaScript module foo, which is not node-specific. Alice -doesn't use node at all. Yusuf wants to use foo in node, so he wraps it in -an npm module. Some time later, Alice starts using node, and wants to take -over management of her program.
  2. -
  3. Yusuf writes an npm module foo, and publishes it. Perhaps much later, Alice -finds a bug in foo, and fixes it. She sends a pull request to Yusuf, but -Yusuf doesn't have the time to deal with it, because he has a new job and a -new baby and is focused on his new Erlang project, and kind of not involved -with node any more. Alice would like to publish a new foo, but can't, -because the name is taken.
  4. -
  5. Yusuf writes a 10-line flow-control library, and calls it foo, and -publishes it to the npm registry. Being a simple little thing, it never -really has to be updated. Alice works for Foo Inc, the makers of the -critically acclaimed and widely-marketed foo JavaScript toolkit framework. -They publish it to npm as foojs, but people are routinely confused when -npm installfoo`` is some different thing.
  6. -
  7. Yusuf writes a parser for the widely-known foo file format, because he -needs it for work. Then, he gets a new job, and never updates the prototype. -Later on, Alice writes a much more complete foo parser, but can't publish, -because Yusuf's foo is in the way.

    -
  8. -
  9. npm owner ls foo. This will tell Alice the email address of the owner -(Yusuf).

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

REASONING

-

In almost every case so far, the parties involved have been able to reach an -amicable resolution without any major intervention. Most people really do want -to be reasonable, and are probably not even aware that they're in your way.

-

Module ecosystems are most vibrant and powerful when they are as self-directed -as possible. If an admin one day deletes something you had worked on, then that -is going to make most people quite upset, regardless of the justification. When -humans solve their problems by talking to other humans with respect, everyone -has the chance to end up feeling good about the interaction.

-

EXCEPTIONS

-

Some things are not allowed, and will be removed without discussion if they are -brought to the attention of the npm registry admins, including but not limited -to:

-
    -
  1. Malware (that is, a package designed to exploit or harm the machine on which -it is installed).
  2. -
  3. Violations of copyright or licenses (for example, cloning an MIT-licensed -program, and then removing or changing the copyright and license statement).
  4. -
  5. Illegal content.
  6. -
  7. "Squatting" on a package name that you plan to use, but aren't actually -using. Sorry, I don't care how great the name is, or how perfect a fit it is -for the thing that someday might happen. If someone wants to use it today, -and you're just taking up space with an empty tarball, you're going to be -evicted.
  8. -
  9. Putting empty packages in the registry. Packages must have SOME -functionality. It can be silly, but it can't be nothing. (See also: -squatting.)
  10. -
  11. Doing weird things with the registry, like using it as your own personal -application database or otherwise putting non-packagey things into it.
  12. -
  13. Other things forbidden by the npm -Code of Conduct such as hateful -language, pornographic content, or harassment.
  14. -
-

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

-

TRADEMARKS

-

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

-

If we see that the package's publisher is intentionally misleading others by -misusing your registered mark without permission, we will transfer the package -name to you. Otherwise, we will contact the package publisher and ask them to -clear up any confusion with changes to their package's README file or -metadata.

-

CHANGES

-

This is a living document and may be updated from time to time. Please refer to -the git history for this document -to view the changes.

-

LICENSE

-

Copyright (C) npm, Inc., All rights reserved

-

This document may be reused under a Creative Commons Attribution-ShareAlike -License.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html deleted file mode 100644 index 927748e176c..00000000000 --- a/deps/npm/html/doc/misc/npm-index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - npm-index - - - - - - -
- -

npm-index

Index of all npm documentation

-

README

-

a JavaScript package manager

-

Command Line Documentation

-

Using npm on the command line

-

npm(1)

-

javascript package manager

-

npm-access(1)

-

Set access level on published packages

-

npm-adduser(1)

-

Add a registry user account

-

npm-bin(1)

-

Display npm bin folder

-

npm-bugs(1)

-

Bugs for a package in a web browser maybe

-

npm-build(1)

-

Build a package

-

npm-bundle(1)

-

REMOVED

-

npm-cache(1)

-

Manipulates packages cache

-

npm-completion(1)

-

Tab Completion for npm

-

npm-config(1)

-

Manage the npm configuration files

-

npm-dedupe(1)

-

Reduce duplication

-

npm-deprecate(1)

-

Deprecate a version of a package

-

npm-dist-tag(1)

-

Modify package distribution tags

-

npm-docs(1)

-

Docs for a package in a web browser maybe

-

npm-doctor(1)

-

Check your environments

-

npm-edit(1)

-

Edit an installed package

-

npm-explore(1)

-

Browse an installed package

-

npm-help-search(1)

-

Search npm help documentation

-

npm-help(1)

-

Get help on npm

-

npm-init(1)

-

Interactively create a package.json file

-

npm-install-test(1)

-

Install package(s) and run tests

-

npm-install(1)

-

Install a package

- -

Symlink a package folder

-

npm-logout(1)

-

Log out of the registry

-

npm-ls(1)

-

List installed packages

-

npm-outdated(1)

-

Check for outdated packages

-

npm-owner(1)

-

Manage package owners

-

npm-pack(1)

-

Create a tarball from a package

-

npm-ping(1)

-

Ping npm registry

-

npm-prefix(1)

-

Display prefix

-

npm-profile(1)

-

Change settings on your registry profile

-

npm-prune(1)

-

Remove extraneous packages

-

npm-publish(1)

-

Publish a package

-

npm-rebuild(1)

-

Rebuild a package

-

npm-repo(1)

-

Open package repository page in the browser

-

npm-restart(1)

-

Restart a package

-

npm-root(1)

-

Display npm root

-

npm-run-script(1)

-

Run arbitrary package scripts

-

npm-search(1)

-

Search for packages

-

npm-shrinkwrap(1)

-

Lock down dependency versions for publication

-

npm-star(1)

-

Mark your favorite packages

-

npm-stars(1)

-

View packages marked as favorites

-

npm-start(1)

-

Start a package

-

npm-stop(1)

-

Stop a package

-

npm-team(1)

-

Manage organization teams and team memberships

-

npm-test(1)

-

Test a package

-

npm-token(1)

-

Manage your authentication tokens

-

npm-uninstall(1)

-

Remove a package

-

npm-unpublish(1)

-

Remove a package from the registry

-

npm-update(1)

-

Update a package

-

npm-version(1)

-

Bump a package version

-

npm-view(1)

-

View registry info

-

npm-whoami(1)

-

Display npm username

-

API Documentation

-

Using npm in your Node programs

-

Files

-

File system structures npm uses

-

npm-folders(5)

-

Folder Structures Used by npm

-

npm-package-locks(5)

-

An explanation of npm lockfiles

-

npm-shrinkwrap.json(5)

-

A publishable lockfile

-

npmrc(5)

-

The npm config files

-

package-lock.json(5)

-

A manifestation of the manifest

-

package.json(5)

-

Specifics of npm's package.json handling

-

Misc

-

Various other bits and bobs

-

npm-coding-style(7)

-

npm's "funny" coding style

-

npm-config(7)

-

More than you probably want to know about npm configuration

-

npm-developers(7)

-

Developer Guide

-

npm-disputes(7)

-

Handling Module Name Disputes

-

npm-index(7)

-

Index of all npm documentation

-

npm-orgs(7)

-

Working with Teams & Orgs

-

npm-registry(7)

-

The JavaScript Package Registry

-

npm-scope(7)

-

Scoped packages

-

npm-scripts(7)

-

How npm handles the "scripts" field

-

removing-npm(7)

-

Cleaning the Slate

-

semver(7)

-

The semantic versioner for npm

- -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-orgs.html b/deps/npm/html/doc/misc/npm-orgs.html deleted file mode 100644 index 5a11a10ca81..00000000000 --- a/deps/npm/html/doc/misc/npm-orgs.html +++ /dev/null @@ -1,90 +0,0 @@ - - - npm-orgs - - - - - - -
- -

npm-orgs

Working with Teams & Orgs

-

DESCRIPTION

-

There are three levels of org users:

-
    -
  1. Super admin, controls billing & adding people to the org.
  2. -
  3. Team admin, manages team membership & package access.
  4. -
  5. Developer, works on packages they are given access to.
  6. -
-

The super admin is the only person who can add users to the org because it impacts the monthly bill. The super admin will use the website to manage membership. Every org has a developers team that all users are automatically added to.

-

The team admin is the person who manages team creation, team membership, and package access for teams. The team admin grants package access to teams, not individuals.

-

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

-

There are two main commands:

-
    -
  1. npm team see npm-team(1) for more details
  2. -
  3. npm access see npm-access(1) for more details
  4. -
-

Team Admins create teams

-
    -
  • Check who you’ve added to your org:
  • -
-
npm team ls <org>:developers
-
    -
  • Each org is automatically given a developers team, so you can see the whole list of team members in your org. This team automatically gets read-write access to all packages, but you can change that with the access command.

    -
  • -
  • Create a new team:

    -
  • -
-
npm team create <org:team>
-
    -
  • Add members to that team:
  • -
-
npm team add <org:team> <user>
-

Publish a package and adjust package access

-
    -
  • In package directory, run
  • -
-
npm init --scope=<org>
-

to scope it for your org & publish as usual

-
    -
  • Grant access:
  • -
-
npm access grant <read-only|read-write> <org:team> [<package>]
-
    -
  • Revoke access:
  • -
-
npm access revoke <org:team> [<package>]
-

Monitor your package access

-
    -
  • See what org packages a team member can access:
  • -
-
npm access ls-packages <org> <user>
-
    -
  • See packages available to a specific team:
  • -
-
npm access ls-packages <org:team>
-
    -
  • Check which teams are collaborating on a package:
  • -
-
npm access ls-collaborators <pkg>
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html deleted file mode 100644 index cfa610d0e8d..00000000000 --- a/deps/npm/html/doc/misc/npm-registry.html +++ /dev/null @@ -1,94 +0,0 @@ - - - npm-registry - - - - - - -
- -

npm-registry

The JavaScript Package Registry

-

DESCRIPTION

-

To resolve packages by name and version, npm talks to a registry website -that implements the CommonJS Package Registry specification for reading -package info.

-

Additionally, npm's package registry implementation supports several -write APIs as well, to allow for publishing packages and managing user -account information.

-

The official public npm registry is at https://registry.npmjs.org/. It -is powered by a CouchDB database, of which there is a public mirror at -https://skimdb.npmjs.com/registry. The code for the couchapp is -available at https://github.com/npm/npm-registry-couchapp.

-

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

-

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

-

Yes.

-

When making requests of the registry npm adds two headers with information -about your environment:

-
    -
  • Npm-Scope – If your project is scoped, this header will contain its -scope. In the future npm hopes to build registry features that use this -information to allow you to customize your experience for your -organization.
  • -
  • Npm-In-CI – Set to "true" if npm believes this install is running in a -continous integration environment, "false" otherwise. This is detected by -looking for the following environment variables: CI, TDDIUM, -JENKINS_URL, bamboo.buildKey. If you'd like to learn more you may find -the original PR -interesting. -This is used to gather better metrics on how npm is used by humans, versus -build farms.
  • -
-

The npm registry does not to correlate the information in these headers with -any authenticated accounts that may be used in the same requests.

-

Can I run my own private registry?

-

Yes!

-

The easiest way is to replicate the couch database, and use the same (or -similar) design doc to implement the APIs.

-

If you set up continuous replication from the official CouchDB, and then -set your internal CouchDB as the registry config, then you'll be able -to read any published packages, in addition to your private ones, and by -default will only publish internally.

-

If you then want to publish a package for the whole world to see, you can -simply override the --registry option for that publish command.

-

I don't want my package published in the official registry. It's private.

-

Set "private": true in your package.json to prevent it from being -published at all, or -"publishConfig":{"registry":"http://my-internal-registry.local"} -to force it to be published only to your internal registry.

-

See package.json(5) for more info on what goes in the package.json file.

-

Will you replicate from my registry into the public one?

-

No. If you want things to be public, then publish them into the public -registry using npm. What little security there is would be for nought -otherwise.

-

Do I have to use couchdb to build a registry that npm can talk to?

-

No, but it's way easier. Basically, yes, you do, or you have to -effectively implement the entire CouchDB API anyway.

-

Is there a website or something to see package docs and such?

-

Yes, head over to https://npmjs.com/

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-scope.html b/deps/npm/html/doc/misc/npm-scope.html deleted file mode 100644 index e610f3e9e36..00000000000 --- a/deps/npm/html/doc/misc/npm-scope.html +++ /dev/null @@ -1,103 +0,0 @@ - - - npm-scope - - - - - - -
- -

npm-scope

Scoped packages

-

DESCRIPTION

-

All npm packages have a name. Some package names also have a scope. A scope -follows the usual rules for package names (URL-safe characters, no leading dots -or underscores). When used in package names, scopes are preceded by an @ symbol -and followed by a slash, e.g.

-
@somescope/somepackagename
-

Scopes are a way of grouping related packages together, and also affect a few -things about the way npm treats the package.

-

Each npm user/organization has their own scope, and only you can add packages -in your scope. This means you don't have to worry about someone taking your -package name ahead of you. Thus it is also a good way to signal official packages -for organizations.

-

Scoped packages can be published and installed as of npm@2 and are supported -by the primary npm registry. Unscoped packages can depend on scoped packages and -vice versa. The npm client is backwards-compatible with unscoped registries, -so it can be used to work with scoped and unscoped registries at the same time.

-

Installing scoped packages

-

Scoped packages are installed to a sub-folder of the regular installation -folder, e.g. if your other packages are installed in node_modules/packagename, -scoped modules will be installed in node_modules/@myorg/packagename. The scope -folder (@myorg) is simply the name of the scope preceded by an @ symbol, and can -contain any number of scoped packages.

-

A scoped package is installed by referencing it by name, preceded by an -@ symbol, in npm install:

-
npm install @myorg/mypackage
-

Or in package.json:

-
"dependencies": {
-  "@myorg/mypackage": "^1.3.0"
-}
-

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

-

Requiring scoped packages

-

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

-
require('@myorg/mypackage')
-

There is nothing special about the way Node treats scope folders. This -simply requires the mypackage module in the folder named @myorg.

-

Publishing scoped packages

-

Scoped packages can be published from the CLI as of npm@2 and can be -published to any registry that supports them, including the primary npm -registry.

-

(As of 2015-04-19, and with npm 2.0 or better, the primary npm registry -does support scoped packages.)

-

If you wish, you may associate a scope with a registry; see below.

-

Publishing public scoped packages to the primary npm registry

-

To publish a public scoped package, you must specify --access public with -the initial publication. This will publish the package and set access -to public as if you had run npm access public after publishing.

-

Publishing private scoped packages to the npm registry

-

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

-

You can then publish the module with npm publish or npm publish ---access restricted, and it will be present in the npm registry, with -restricted access. You can then change the access permissions, if -desired, with npm access or on the npmjs.com website.

-

Associating a scope with a registry

-

Scopes can be associated with a separate registry. This allows you to -seamlessly use a mix of packages from the primary npm registry and one or more -private registries, such as npm Enterprise.

-

You can associate a scope with a registry at login, e.g.

-
npm login --registry=http://reg.example.com --scope=@myco
-

Scopes have a many-to-one relationship with registries: one registry can -host multiple scopes, but a scope only ever points to one registry.

-

You can also associate a scope with a registry using npm config:

-
npm config set @myco:registry http://reg.example.com
-

Once a scope is associated with a registry, any npm install for a package -with that scope will request packages from that registry instead. Any -npm publish for a package name that contains the scope will be published to -that registry instead.

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html deleted file mode 100644 index bc43c028f10..00000000000 --- a/deps/npm/html/doc/misc/npm-scripts.html +++ /dev/null @@ -1,243 +0,0 @@ - - - npm-scripts - - - - - - -
- -

npm-scripts

How npm handles the "scripts" field

-

DESCRIPTION

-

npm supports the "scripts" property of the package.json file, for the -following scripts:

-
    -
  • prepublish: -Run BEFORE the package is packed and published, as well as on local npm -install without any arguments. (See below)
  • -
  • prepare: -Run both BEFORE the package is packed and published, and on local npm -install without any arguments (See below). This is run -AFTER prepublish, but BEFORE prepublishOnly.
  • -
  • prepublishOnly: -Run BEFORE the package is prepared and packed, ONLY on npm publish. (See -below.)
  • -
  • prepack: -run BEFORE a tarball is packed (on npm pack, npm publish, and when -installing git dependencies)
  • -
  • postpack: -Run AFTER the tarball has been generated and moved to its final destination.
  • -
  • publish, postpublish: -Run AFTER the package is published.
  • -
  • preinstall: -Run BEFORE the package is installed
  • -
  • install, postinstall: -Run AFTER the package is installed.
  • -
  • preuninstall, uninstall: -Run BEFORE the package is uninstalled.
  • -
  • postuninstall: -Run AFTER the package is uninstalled.
  • -
  • preversion: -Run BEFORE bumping the package version.
  • -
  • version: -Run AFTER bumping the package version, but BEFORE commit.
  • -
  • postversion: -Run AFTER bumping the package version, and AFTER commit.
  • -
  • pretest, test, posttest: -Run by the npm test command.
  • -
  • prestop, stop, poststop: -Run by the npm stop command.
  • -
  • prestart, start, poststart: -Run by the npm start command.
  • -
  • prerestart, restart, postrestart: -Run by the npm restart command. Note: npm restart will run the -stop and start scripts if no restart script is provided.
  • -
  • preshrinkwrap, shrinkwrap, postshrinkwrap: -Run by the npm shrinkwrap command.
  • -
-

Additionally, arbitrary scripts can be executed by running npm -run-script <stage>. Pre and post commands with matching -names will be run for those as well (e.g. premyscript, myscript, -postmyscript). Scripts from dependencies can be run with `npm explore

-

-- npm run `.

-

PREPUBLISH AND PREPARE

-

DEPRECATION NOTE

-

Since npm@1.1.71, the npm CLI has run the prepublish script for both npm -publish and npm install, because it's a convenient way to prepare a package -for use (some common use cases are described in the section below). It has -also turned out to be, in practice, very -confusing. As of npm@4.0.0, a new -event has been introduced, prepare, that preserves this existing behavior. A -new event, prepublishOnly has been added as a transitional strategy to -allow users to avoid the confusing behavior of existing npm versions and only -run on npm publish (for instance, running the tests one last time to ensure -they're in good shape).

-

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

-

USE CASES

-

If you need to perform operations on your package before it is used, in a way -that is not dependent on the operating system or architecture of the -target system, use a prepublish script. This includes -tasks such as:

-
    -
  • Compiling CoffeeScript source code into JavaScript.
  • -
  • Creating minified versions of JavaScript source code.
  • -
  • Fetching remote resources that your package will use.
  • -
-

The advantage of doing these things at prepublish time is that they can be done once, in a -single place, thus reducing complexity and variability. -Additionally, this means that:

-
    -
  • You can depend on coffee-script as a devDependency, and thus -your users don't need to have it installed.
  • -
  • You don't need to include minifiers in your package, reducing -the size for your users.
  • -
  • You don't need to rely on your users having curl or wget or -other system tools on the target machines.
  • -
-

DEFAULT VALUES

-

npm will default some script values based on package contents.

-
    -
  • "start": "node server.js":

    -

    If there is a server.js file in the root of your package, then npm -will default the start command to node server.js.

    -
  • -
  • "install": "node-gyp rebuild":

    -

    If there is a binding.gyp file in the root of your package and you -haven't defined your own install or preinstall scripts, npm will -default the install command to compile using node-gyp.

    -
  • -
-

USER

-

If npm was invoked with root privileges, then it will change the uid -to the user account or uid specified by the user config, which -defaults to nobody. Set the unsafe-perm flag to run scripts with -root privileges.

-

ENVIRONMENT

-

Package scripts run in an environment where many pieces of information -are made available regarding the setup of npm and the current state of -the process.

-

path

-

If you depend on modules that define executable scripts, like test -suites, then those executables will be added to the PATH for -executing the scripts. So, if your package.json has this:

-
{ "name" : "foo"
-, "dependencies" : { "bar" : "0.1.x" }
-, "scripts": { "start" : "bar ./test" } }
-

then you could run npm start to execute the bar script, which is -exported into the node_modules/.bin directory on npm install.

-

package.json vars

-

The package.json fields are tacked onto the npm_package_ prefix. So, -for instance, if you had {"name":"foo", "version":"1.2.5"} in your -package.json file, then your package scripts would have the -npm_package_name environment variable set to "foo", and the -npm_package_version set to "1.2.5"

-

configuration

-

Configuration parameters are put in the environment with the -npm_config_ prefix. For instance, you can view the effective root -config by checking the npm_config_root environment variable.

-

Special: package.json "config" object

-

The package.json "config" keys are overwritten in the environment if -there is a config param of <name>[@<version>]:<key>. For example, -if the package.json has this:

-
{ "name" : "foo"
-, "config" : { "port" : "8080" }
-, "scripts" : { "start" : "node server.js" } }
-

and the server.js is this:

-
http.createServer(...).listen(process.env.npm_package_config_port)
-

then the user could change the behavior by doing:

-
npm config set foo:port 80
-

current lifecycle event

-

Lastly, the npm_lifecycle_event environment variable is set to -whichever stage of the cycle is being executed. So, you could have a -single script used for different parts of the process which switches -based on what's currently happening.

-

Objects are flattened following this format, so if you had -{"scripts":{"install":"foo.js"}} in your package.json, then you'd -see this in the script:

-
process.env.npm_package_scripts_install === "foo.js"
-

EXAMPLES

-

For example, if your package.json contains this:

-
{ "scripts" :
-  { "install" : "scripts/install.js"
-  , "postinstall" : "scripts/install.js"
-  , "uninstall" : "scripts/uninstall.js"
-  }
-}
-

then scripts/install.js will be called for the install -and post-install stages of the lifecycle, and scripts/uninstall.js -will be called when the package is uninstalled. Since -scripts/install.js is running for two different phases, it would -be wise in this case to look at the npm_lifecycle_event environment -variable.

-

If you want to run a make command, you can do so. This works just -fine:

-
{ "scripts" :
-  { "preinstall" : "./configure"
-  , "install" : "make && make install"
-  , "test" : "make test"
-  }
-}
-

EXITING

-

Scripts are run by passing the line as a script argument to sh.

-

If the script exits with a code other than 0, then this will abort the -process.

-

Note that these script files don't have to be nodejs or even -javascript programs. They just have to be some kind of executable -file.

-

HOOK SCRIPTS

-

If you want to run a specific script at a specific lifecycle event for -ALL packages, then you can use a hook script.

-

Place an executable file at node_modules/.hooks/{eventname}, and -it'll get run for all packages when they are going through that point -in the package lifecycle for any packages installed in that root.

-

Hook scripts are run exactly the same way as package.json scripts. -That is, they are in a separate child process, with the env described -above.

-

BEST PRACTICES

-
    -
  • Don't exit with a non-zero error code unless you really mean it. -Except for uninstall scripts, this will cause the npm action to -fail, and potentially be rolled back. If the failure is minor or -only will prevent some optional features, then it's better to just -print a warning and exit successfully.
  • -
  • Try not to use scripts to do what npm can do for you. Read through -package.json(5) to see all the things that you can specify and enable -by simply describing your package appropriately. In general, this -will lead to a more robust and consistent state.
  • -
  • Inspect the env to determine where to put things. For instance, if -the npm_config_binroot environment variable is set to /home/user/bin, then -don't try to install executables into /usr/local/bin. The user -probably set it up that way for a reason.
  • -
  • Don't prefix your script commands with "sudo". If root permissions -are required for some reason, then it'll fail with that error, and -the user will sudo the npm command in question.
  • -
  • Don't use install. Use a .gyp file for compilation, and prepublish -for anything else. You should almost never have to explicitly set a -preinstall or install script. If you are doing this, please consider if -there is another option. The only valid use of install or preinstall -scripts is for compilation which must be done on the target architecture.
  • -
-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html deleted file mode 100644 index 1727455c627..00000000000 --- a/deps/npm/html/doc/misc/removing-npm.html +++ /dev/null @@ -1,61 +0,0 @@ - - - removing-npm - - - - - - -
- -

npm-removal

Cleaning the Slate

-

SYNOPSIS

-

So sad to see you go.

-
sudo npm uninstall npm -g
-

Or, if that fails, get the npm source code, and do:

-
sudo make uninstall
-

More Severe Uninstalling

-

Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed.

-

If that doesn't work, or if you require more drastic measures, -continue reading.

-

Note that this is only necessary for globally-installed packages. Local -installs are completely contained within a project's node_modules -folder. Delete that folder, and everything is gone (unless a package's -install script is particularly ill-behaved).

-

This assumes that you installed node and npm in the default place. If -you configured node with a different --prefix, or installed npm with a -different prefix setting, then adjust the paths accordingly, replacing -/usr/local with your install prefix.

-

To remove everything npm-related manually:

-
rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
-

If you installed things with npm, then your best bet is to uninstall -them with npm first, and then install them again once you have a -proper install. This can help find any symlinks that are lying -around:

-
ls -laF /usr/local/{lib/node{,/.npm},bin,share/man} | grep npm
-

Prior to version 0.3, npm used shim files for executables and node -modules. To track those down, you can do the following:

-
find /usr/local/{lib/node,bin} -exec grep -l npm \{\} \; ;
-

(This is also in the README file.)

-

SEE ALSO

- - -
- - - - - - - - - - - - diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html deleted file mode 100644 index afe72d30999..00000000000 --- a/deps/npm/html/doc/misc/semver.html +++ /dev/null @@ -1,340 +0,0 @@ - - - semver - - - - - - -
- -

semver

The semantic versioner for npm

-

Install

-
npm install --save semver
-`
-
-

Usage

-

As a node module:

-
const semver = require('semver')
-
-semver.valid('1.2.3') // '1.2.3'
-semver.valid('a.b.c') // null
-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
-
-

As a command-line utility:

-
$ semver -h
-
-SemVer 5.3.0
-
-A JavaScript implementation of the http://semver.org/ specification
-Copyright Isaac Z. Schlueter
-
-Usage: semver [options] <version> [<version> [...]]
-Prints valid versions sorted by SemVer precedence
-
-Options:
--r --range <range>
-        Print versions that match the specified range.
-
--i --increment [<level>]
-        Increment a version by the specified level.  Level can
-        be one of: major, minor, patch, premajor, preminor,
-        prepatch, or prerelease.  Default level is 'patch'.
-        Only one version may be specified.
-
---preid <identifier>
-        Identifier to be used to prefix premajor, preminor,
-        prepatch or prerelease version increments.
-
--l --loose
-        Interpret versions and ranges loosely
-
-Program exits successfully if any valid version satisfies
-all supplied ranges, and prints all satisfying versions.
-
-If no satisfying versions are found, then exits failure.
-
-Versions are printed in ascending order, so supplying
-multiple versions to the utility will just sort them.
-

Versions

-

A "version" is described by the v2.0.0 specification found at -http://semver.org/.

-

A leading "=" or "v" character is stripped off and ignored.

-

Ranges

-

A version range is a set of comparators which specify versions -that satisfy the range.

-

A comparator is composed of an operator and a version. The set -of primitive operators is:

-
    -
  • < Less than
  • -
  • <= Less than or equal to
  • -
  • > Greater than
  • -
  • >= Greater than or equal to
  • -
  • = Equal. If no operator is specified, then equality is assumed, -so this operator is optional, but MAY be included.
  • -
-

For example, the comparator >=1.2.7 would match the versions -1.2.7, 1.2.8, 2.5.3, and 1.3.9, but not the versions 1.2.6 -or 1.1.0.

-

Comparators can be joined by whitespace to form a comparator set, -which is satisfied by the intersection of all of the comparators -it includes.

-

A range is composed of one or more comparator sets, joined by ||. A -version matches a range if and only if every comparator in at least -one of the ||-separated comparator sets is satisfied by the version.

-

For example, the range >=1.2.7 <1.3.0 would match the versions -1.2.7, 1.2.8, and 1.2.99, but not the versions 1.2.6, 1.3.0, -or 1.1.0.

-

The range 1.2.7 || >=1.2.9 <2.0.0 would match the versions 1.2.7, -1.2.9, and 1.4.6, but not the versions 1.2.8 or 2.0.0.

-

Prerelease Tags

-

If a version has a prerelease tag (for example, 1.2.3-alpha.3) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same [major, minor, patch] tuple also has a -prerelease tag.

-

For example, the range >1.2.3-alpha.3 would be allowed to match the -version 1.2.3-alpha.7, but it would not be satisfied by -3.4.5-alpha.9, even though 3.4.5-alpha.9 is technically "greater -than" 1.2.3-alpha.3 according to the SemVer sort rules. The version -range only accepts prerelease tags on the 1.2.3 version. The -version 3.4.5 would satisfy the range, because it does not have a -prerelease flag, and 3.4.5 is greater than 1.2.3-alpha.7.

-

The purpose for this behavior is twofold. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching -semantics.

-

Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use that specific set of -alpha/beta/rc versions. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the next set of prerelease versions.

-

Prerelease Identifiers

-

The method .inc takes an additional identifier string argument that -will append the value of the string as a prerelease identifier:

-
semver.inc('1.2.3', 'prerelease', 'beta')
-// '1.2.4-beta.0'
-
-

command-line example:

-
$ semver 1.2.3 -i prerelease --preid beta
-1.2.4-beta.0
-
-

Which then can be used to increment further:

-
$ semver 1.2.4-beta.0 -i prerelease
-1.2.4-beta.1
-
-

Advanced Range Syntax

-

Advanced range syntax desugars to primitive comparators in -deterministic ways.

-

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

-

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

-

Specifies an inclusive set.

-
    -
  • 1.2.3 - 2.3.4 := >=1.2.3 <=2.3.4
  • -
-

If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes.

-
    -
  • 1.2 - 2.3.4 := >=1.2.0 <=2.3.4
  • -
-

If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts.

-
    -
  • 1.2.3 - 2.3 := >=1.2.3 <2.4.0
  • -
  • 1.2.3 - 2 := >=1.2.3 <3.0.0
  • -
-

X-Ranges 1.2.x 1.X 1.2.* *

-

Any of X, x, or * may be used to "stand in" for one of the -numeric values in the [major, minor, patch] tuple.

-
    -
  • * := >=0.0.0 (Any version satisfies)
  • -
  • 1.x := >=1.0.0 <2.0.0 (Matching major version)
  • -
  • 1.2.x := >=1.2.0 <1.3.0 (Matching major and minor versions)
  • -
-

A partial version range is treated as an X-Range, so the special -character is in fact optional.

-
    -
  • "" (empty string) := * := >=0.0.0
  • -
  • 1 := 1.x.x := >=1.0.0 <2.0.0
  • -
  • 1.2 := 1.2.x := >=1.2.0 <1.3.0
  • -
-

Tilde Ranges ~1.2.3 ~1.2 ~1

-

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

-
    -
  • ~1.2.3 := >=1.2.3 <1.(2+1).0 := >=1.2.3 <1.3.0
  • -
  • ~1.2 := >=1.2.0 <1.(2+1).0 := >=1.2.0 <1.3.0 (Same as 1.2.x)
  • -
  • ~1 := >=1.0.0 <(1+1).0.0 := >=1.0.0 <2.0.0 (Same as 1.x)
  • -
  • ~0.2.3 := >=0.2.3 <0.(2+1).0 := >=0.2.3 <0.3.0
  • -
  • ~0.2 := >=0.2.0 <0.(2+1).0 := >=0.2.0 <0.3.0 (Same as 0.2.x)
  • -
  • ~0 := >=0.0.0 <(0+1).0.0 := >=0.0.0 <1.0.0 (Same as 0.x)
  • -
  • ~1.2.3-beta.2 := >=1.2.3-beta.2 <1.3.0 Note that prereleases in -the 1.2.3 version will be allowed, if they are greater than or -equal to beta.2. So, 1.2.3-beta.4 would be allowed, but -1.2.4-beta.2 would not, because it is a prerelease of a -different [major, minor, patch] tuple.
  • -
-

Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4

-

Allows changes that do not modify the left-most non-zero digit in the -[major, minor, patch] tuple. In other words, this allows patch and -minor updates for versions 1.0.0 and above, patch updates for -versions 0.X >=0.1.0, and no updates for versions 0.0.X.

-

Many authors treat a 0.x version as if the x were the major -"breaking-change" indicator.

-

Caret ranges are ideal when an author may make breaking changes -between 0.2.4 and 0.3.0 releases, which is a common practice. -However, it presumes that there will not be breaking changes between -0.2.4 and 0.2.5. It allows for changes that are presumed to be -additive (but non-breaking), according to commonly observed practices.

-
    -
  • ^1.2.3 := >=1.2.3 <2.0.0
  • -
  • ^0.2.3 := >=0.2.3 <0.3.0
  • -
  • ^0.0.3 := >=0.0.3 <0.0.4
  • -
  • ^1.2.3-beta.2 := >=1.2.3-beta.2 <2.0.0 Note that prereleases in -the 1.2.3 version will be allowed, if they are greater than or -equal to beta.2. So, 1.2.3-beta.4 would be allowed, but -1.2.4-beta.2 would not, because it is a prerelease of a -different [major, minor, patch] tuple.
  • -
  • ^0.0.3-beta := >=0.0.3-beta <0.0.4 Note that prereleases in the -0.0.3 version only will be allowed, if they are greater than or -equal to beta. So, 0.0.3-pr.2 would be allowed.
  • -
-

When parsing caret ranges, a missing patch value desugars to the -number 0, but will allow flexibility within that value, even if the -major and minor versions are both 0.

-
    -
  • ^1.2.x := >=1.2.0 <2.0.0
  • -
  • ^0.0.x := >=0.0.0 <0.1.0
  • -
  • ^0.0 := >=0.0.0 <0.1.0
  • -
-

A missing minor and patch values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero.

-
    -
  • ^1.x := >=1.0.0 <2.0.0
  • -
  • ^0.x := >=0.0.0 <1.0.0
  • -
-

Range Grammar

-

Putting all this together, here is a Backus-Naur grammar for ranges, -for the benefit of parser authors:

-
range-set  ::= range ( logical-or range ) *
-logical-or ::= ( ' ' ) * '||' ( ' ' ) *
-range      ::= hyphen | simple ( ' ' simple ) * | ''
-hyphen     ::= partial ' - ' partial
-simple     ::= primitive | partial | tilde | caret
-primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
-partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
-xr         ::= 'x' | 'X' | '*' | nr
-nr         ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
-tilde      ::= '~' partial
-caret      ::= '^' partial
-qualifier  ::= ( '-' pre )? ( '+' build )?
-pre        ::= parts
-build      ::= parts
-parts      ::= part ( '.' part ) *
-part       ::= nr | [-0-9A-Za-z]+
-
-

Functions

-

All methods and classes take a final loose boolean argument that, if -true, will be more forgiving about not-quite-valid semver strings. -The resulting output will always be 100% strict, of course.

-

Strict-mode Comparators and Ranges will be strict about the SemVer -strings that they parse.

-
    -
  • valid(v): Return the parsed version, or null if it's not valid.
  • -
  • inc(v, release): Return the version incremented by the release -type (major, premajor, minor, preminor, patch, -prepatch, or prerelease), or null if it's not valid
      -
    • premajor in one call will bump the version up to the next major -version and down to a prerelease of that major version. -preminor, and prepatch work the same way.
    • -
    • If called from a non-prerelease version, the prerelease will work the -same as prepatch. It increments the patch version, then makes a -prerelease. If the input version is already a prerelease it simply -increments it.
    • -
    -
  • -
  • prerelease(v): Returns an array of prerelease components, or null -if none exist. Example: prerelease('1.2.3-alpha.1') -> ['alpha', 1]
  • -
  • major(v): Return the major version number.
  • -
  • minor(v): Return the minor version number.
  • -
  • patch(v): Return the patch version number.
  • -
  • intersects(r1, r2, loose): Return true if the two supplied ranges -or comparators intersect.
  • -
-

Comparison

-
    -
  • gt(v1, v2): v1 > v2
  • -
  • gte(v1, v2): v1 >= v2
  • -
  • lt(v1, v2): v1 < v2
  • -
  • lte(v1, v2): v1 <= v2
  • -
  • eq(v1, v2): v1 == v2 This is true if they're logically equivalent, -even if they're not the exact same string. You already know how to -compare strings.
  • -
  • neq(v1, v2): v1 != v2 The opposite of eq.
  • -
  • cmp(v1, comparator, v2): Pass in a comparison string, and it'll call -the corresponding function above. "===" and "!==" do simple -string comparison, but are included for completeness. Throws if an -invalid comparison string is provided.
  • -
  • compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if -v2 is greater. Sorts in ascending order if passed to Array.sort().
  • -
  • rcompare(v1, v2): The reverse of compare. Sorts an array of versions -in descending order when passed to Array.sort().
  • -
  • diff(v1, v2): Returns difference between two versions by the release type -(major, premajor, minor, preminor, patch, prepatch, or prerelease), -or null if the versions are the same.
  • -
-

Comparators

-
    -
  • intersects(comparator): Return true if the comparators intersect
  • -
-

Ranges

-
    -
  • validRange(range): Return the valid range or null if it's not valid
  • -
  • satisfies(version, range): Return true if the version satisfies the -range.
  • -
  • maxSatisfying(versions, range): Return the highest version in the list -that satisfies the range, or null if none of them do.
  • -
  • minSatisfying(versions, range): Return the lowest version in the list -that satisfies the range, or null if none of them do.
  • -
  • gtr(version, range): Return true if version is greater than all the -versions possible in the range.
  • -
  • ltr(version, range): Return true if version is less than all the -versions possible in the range.
  • -
  • outside(version, range, hilo): Return true if the version is outside -the bounds of the range in either the high or low direction. The -hilo argument must be either the string '>' or '<'. (This is -the function called by gtr and ltr.)
  • -
  • intersects(range): Return true if any of the ranges comparators intersect
  • -
-

Note that, since ranges may be non-contiguous, a version might not be -greater than a range, less than a range, or satisfy a range! For -example, the range 1.2 <1.2.9 || >2.0.0 would have a hole from 1.2.9 -until 2.0.0, so the version 1.2.10 would not be greater than the -range (because 2.0.1 satisfies, which is higher), nor less than the -range (since 1.2.8 satisfies, which is lower), and it also does not -satisfy the range.

-

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

- -
- - - - - - - - - - - - diff --git a/deps/npm/html/docfoot.html b/deps/npm/html/docfoot.html deleted file mode 100644 index 11a67943b9b..00000000000 --- a/deps/npm/html/docfoot.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/deps/npm/html/dochead.html b/deps/npm/html/dochead.html deleted file mode 100644 index 26602b2b8af..00000000000 --- a/deps/npm/html/dochead.html +++ /dev/null @@ -1,11 +0,0 @@ - - - @NAME@ - - - - - - -
- diff --git a/deps/npm/html/favicon.ico b/deps/npm/html/favicon.ico deleted file mode 100644 index 9e0d4eef78c9c01027fb8a88af38c17628e34889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7094 zcmeHLI}XAy40Q@fj1>bj6Y33M%n3LL$KVKv%fQIaDVRA#u@eWiRY0^ARe)zH@h@)N zm$Z^iWGEwR$x$&UTC$YqUf)iLHf$?cwLEq_3{81vnt9fo%d(`^`a*~Ol}^W7(+wR6 z00AHX1b_e#00JLIAgfXP&1&IU>hbk#RWqJOQRf@RVdHf-!-ng@@UuiiKmZ5; z0U#gXT)GJTKs4hWlUmH+?% diff --git a/deps/npm/html/index.html b/deps/npm/html/index.html deleted file mode 100644 index bb8681c85c9..00000000000 --- a/deps/npm/html/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - npm - JavaScript Package Manager - -

npm

- -

npm is a package manager for node. You can use it to install - and publish your node programs. It manages dependencies and does other cool stuff.

- -

Easy Zero Line Install

- -

Install Node.js
-(npm comes with it.)

- -

Because a one-line install is one too many.

- -

Fancy Install

- -
    -
  1. Get the code. -
  2. Do what the README - says to do. -
- -

There's a pretty thorough install script at -https://npmjs.org/install.sh

- -

For maximum security, make sure to thoroughly inspect every -program that you run on your computer!

- -

Other Cool Stuff

- - - - - diff --git a/deps/npm/html/static/style.css b/deps/npm/html/static/style.css deleted file mode 100644 index 7a7f6ea5df8..00000000000 --- a/deps/npm/html/static/style.css +++ /dev/null @@ -1,336 +0,0 @@ -/* reset */ -* { - margin:0; - padding:0; - border:none; - font-family:inherit; - font-size:inherit; - font-weight:inherit; -} -:target::before { - content:" >>> "; - position:absolute; - display:block; - opacity:0.5; - color:#f00; - margin:0 0 0 -2em; -} -abbr, acronym { - border-bottom:1px dotted #aaa; -} -kbd, code, pre { - font-family:monospace; - margin:0; - font-size:18px; - line-height:24px; - background:#eee; - outline:1px solid #ccc; -} -kbd code, kbd pre, kbd kbd, -pre code, pre pre, pre kbd, -code code, code pre, code kbd { outline: none } -.dollar::before { - content:"$ "; - display:inline; -} -p, ul, ol, dl, pre { - margin:30px 0; - line-height:30px; -} -hr { - margin:30px auto 29px; - width:66%; - height:1px; - background:#aaa; -} -pre { - display:block; -} -dd :first-child { - margin-top:0; -} - -body { - quotes:"“" "”" "‘" "’"; - width:666px; - margin:30px auto 120px; - font-family:Times New Roman, serif; - font-size:20px; - background:#fff; - line-height:30px; - color:#111; -} - -blockquote { - position:relative; - font-size:16px; - line-height:30px; - font-weight:bold; - width:85%; - margin:0 auto; -} -blockquote::before { - font-size:90px; - display:block; - position:absolute; - top:20px; - right:100%; - content:"“"; - padding-right:10px; - color:#ccc; -} -.source cite::before { - content:"— "; -} -.source { - padding-left:20%; - margin-top:30px; -} -.source cite span { - font-style:normal; -} -blockquote p { - margin-bottom:0; -} -.quote blockquote { - font-weight:normal; -} - -h1, h2, h3, h4, h5, h6, dt, #header { - font-family:serif; - font-size:20px; - font-weight:bold; -} -h2 { - background:#eee; -} -h1, h2 { - line-height:40px; -} - -i, em, cite { - font-style:italic; -} -b, strong { - font-weight:bold; -} -i, em, cite, b, strong, small { - line-height:28px; -} -small, .small, .small *, aside { - font-style:italic; - color:#669; - font-size:18px; -} -small a, .small a { - text-decoration:underline; -} -del { - text-decoration:line-through; -} -ins { - text-decoration:underline; -} -.alignright { display:block; float:right; margin-left:1em; } -.alignleft { display:block; float:left; margin-right:1em; } - -q:before, q q q:before, q q q q q:before, q q q q q q q:before { content:"“"; } -q q:before, q q q q:before, q q q q q q:before, q q q q q q q q:before { content:"‘"; } -q:after, q q q:after, q q q q q:after, q q q q q q q:after { content:"”"; } -q q:after, q q q q:after, q q q q q q:after, q q q q q q q q:after { content:"’"; } - -a { color:#00f; text-decoration:none; } -a:visited { color:#636; } -a:hover, a:active { color:#c00!important; text-decoration:underline; } - -h1 { - font-weight:bold; - background:#fff; -} -h1 a, h1 a:visited { - font-family:monospace; - font-size:60px; - color:#c00; - display:block; -} -h1 a:focus, h1 a:hover, h1 a:active { - color:#f00!important; - text-decoration:none; -} - -.navigation { - display:table; - width:100%; - margin:0 0 30px 0; - position:relative; -} -#nav-above { - margin-bottom:0; -} -.navigation .nav-previous { - display:table-cell; - text-align:left; - width:50%; -} -/* hang the » and « off into the margins */ -.navigation .nav-previous a:before, .navigation .nav-next a:after { - content: "«"; - display:block; - height:30px; - margin-bottom:-30px; - text-decoration:none; - margin-left:-15px; -} -.navigation .nav-next a:after { - content: "»"; - text-align:right; - margin-left:0; - margin-top:-30px; - margin-right:-15px; -} - - -.navigation .nav-next { - display:table-cell; - text-align:right; - width:50%; -} -.navigation a { - display:block; - width:100%; - height:100%; -} - -input, button, textarea { - border:0; - line-height:30px; -} -textarea { - height:300px; -} -input { - height:30px; - line-height:30px; -} -input.submit, input#submit, input.button, button, input[type=submit] { - cursor:hand; cursor:pointer; - outline:1px solid #ccc; -} - -#wrapper { - margin-bottom:90px; - position:relative; - z-index:1; - *zoom:1; - background:#fff; -} -#wrapper:after { - display:block; - content:"."; - visibility:hidden; - width:0; - height:0; - clear:both; -} - -.sidebar .xoxo > li { - float:left; - width:50%; -} -.sidebar li { - list-style:none; -} -.sidebar #elsewhere { - margin-left:-10%; - margin-right:-10%; -} -.sidebar #rss-links, .sidebar #twitter-feeds { - float:right; - clear:right; - width:20%; -} -.sidebar #comment { - clear:both; - float:none; - width:100%; -} -.sidebar #search { - clear:both; - float:none; - width:100%; -} -.sidebar #search h2 { - margin-left:40%; -} -.sidebar #search #s { - width:90%; - float:left; -} -.sidebar #search #searchsubmit { - width:10%; - float:right; -} -.sidebar * { - font-size:15px; - line-height:30px; -} - -#footer, #footer * { - text-align:center; - font-size:16px; - color:#ccc; - font-style:italic; - word-spacing:1em; - margin-top:0; -} - -#toc { - position:absolute; - top:0; - right:0; - padding:40px 0 40px 20px; - margin:0; - width:200px; - opacity:0.2; - z-index:-1; -} -#toc:hover { - opacity:1; - background:#fff; - z-index:999; -} -#toc ul { - padding:0; - margin:0; -} -#toc, #toc li { - list-style-type:none; - font-size:15px; - line-height:15px; -} -#toc li { - padding:0 0 0 10px; -} -#toc li a { - position:relative; - display:block; -} - -table#npmlogo { - line-height:10px; - width:180px; - margin:0 auto; -} - -@media print { - a[href] { - color:inherit; - } - a[href]:after { - white-space:nowrap; - content:" " attr(href); - } - a[href^=\#], .navigation { - display:none; - } -} diff --git a/deps/npm/html/static/toc.js b/deps/npm/html/static/toc.js deleted file mode 100644 index 7551e47efdf..00000000000 --- a/deps/npm/html/static/toc.js +++ /dev/null @@ -1,29 +0,0 @@ -;(function () { - var wrapper = document.getElementById('wrapper') - var els = Array.prototype.slice.call(wrapper.getElementsByTagName('*'), 0) - .filter(function (el) { - return el.parentNode === wrapper && - el.tagName.match(/H[1-6]/) && - el.id - }) - var l = 2 - var toc = document.createElement('ul') - toc.innerHTML = els.map(function (el) { - var i = el.tagName.charAt(1) - var out = '' - while (i > l) { - out += '
    ' - l++ - } - while (i < l) { - out += '
' - l-- - } - out += '
  • ' + - (el.innerText || el.text || el.innerHTML) + - '' - return out - }).join('\n') - toc.id = 'toc' - document.body.appendChild(toc) -})() diff --git a/deps/npm/lib/access.js b/deps/npm/lib/access.js deleted file mode 100644 index ad7a1f54bd3..00000000000 --- a/deps/npm/lib/access.js +++ /dev/null @@ -1,129 +0,0 @@ -'use strict' - -var resolve = require('path').resolve - -var readPackageJson = require('read-package-json') -var mapToRegistry = require('./utils/map-to-registry.js') -var npm = require('./npm.js') -var output = require('./utils/output.js') - -var whoami = require('./whoami') - -module.exports = access - -access.usage = - 'npm access public []\n' + - 'npm access restricted []\n' + - 'npm access grant []\n' + - 'npm access revoke []\n' + - 'npm access ls-packages [||]\n' + - 'npm access ls-collaborators [ []]\n' + - 'npm access edit []' - -access.subcommands = ['public', 'restricted', 'grant', 'revoke', - 'ls-packages', 'ls-collaborators', 'edit'] - -access.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, access.subcommands) - } - - switch (argv[2]) { - case 'grant': - if (argv.length === 3) { - return cb(null, ['read-only', 'read-write']) - } else { - return cb(null, []) - } - case 'public': - case 'restricted': - case 'ls-packages': - case 'ls-collaborators': - case 'edit': - return cb(null, []) - case 'revoke': - return cb(null, []) - default: - return cb(new Error(argv[2] + ' not recognized')) - } -} - -function access (args, cb) { - var cmd = args.shift() - var params - return parseParams(cmd, args, function (err, p) { - if (err) { return cb(err) } - params = p - return mapToRegistry(params.package, npm.config, invokeCmd) - }) - - function invokeCmd (err, uri, auth, base) { - if (err) { return cb(err) } - params.auth = auth - try { - return npm.registry.access(cmd, uri, params, function (err, data) { - if (!err && data) { - output(JSON.stringify(data, undefined, 2)) - } - cb(err, data) - }) - } catch (e) { - cb(e.message + '\n\nUsage:\n' + access.usage) - } - } -} - -function parseParams (cmd, args, cb) { - // mapToRegistry will complain if package is undefined, - // but it's not needed for ls-packages - var params = { 'package': '' } - if (cmd === 'grant') { - params.permissions = args.shift() - } - if (['grant', 'revoke', 'ls-packages'].indexOf(cmd) !== -1) { - var entity = (args.shift() || '').split(':') - params.scope = entity[0] - params.team = entity[1] - } - - if (cmd === 'ls-packages') { - if (!params.scope) { - whoami([], true, function (err, scope) { - params.scope = scope - cb(err, params) - }) - } else { - cb(null, params) - } - } else { - getPackage(args.shift(), function (err, pkg) { - if (err) return cb(err) - params.package = pkg - - if (cmd === 'ls-collaborators') params.user = args.shift() - cb(null, params) - }) - } -} - -function getPackage (name, cb) { - if (name && name.trim()) { - cb(null, name.trim()) - } else { - readPackageJson( - resolve(npm.prefix, 'package.json'), - function (err, data) { - if (err) { - if (err.code === 'ENOENT') { - cb(new Error('no package name passed to command and no package.json found')) - } else { - cb(err) - } - } else { - cb(null, data.name) - } - } - ) - } -} diff --git a/deps/npm/lib/adduser.js b/deps/npm/lib/adduser.js deleted file mode 100644 index 0aac6b7fbb4..00000000000 --- a/deps/npm/lib/adduser.js +++ /dev/null @@ -1,49 +0,0 @@ -module.exports = adduser - -var log = require('npmlog') -var npm = require('./npm.js') -var usage = require('./utils/usage') -var crypto - -try { - crypto = require('crypto') -} catch (ex) {} - -adduser.usage = usage( - 'adduser', - 'npm adduser [--registry=url] [--scope=@orgname] [--auth-type=legacy] [--always-auth]' -) - -function adduser (args, cb) { - if (!crypto) { - return cb(new Error( - 'You must compile node with ssl support to use the adduser feature' - )) - } - - var registry = npm.config.get('registry') - var scope = npm.config.get('scope') - var creds = npm.config.getCredentialsByURI(npm.config.get('registry')) - - if (scope) { - var scopedRegistry = npm.config.get(scope + ':registry') - var cliRegistry = npm.config.get('registry', 'cli') - if (scopedRegistry && !cliRegistry) registry = scopedRegistry - } - - log.disableProgress() - - try { - var auth = require('./auth/' + npm.config.get('auth-type')) - } catch (e) { - return cb(new Error('no such auth module')) - } - auth.login(creds, registry, scope, function (err, newCreds) { - if (err) return cb(err) - - npm.config.del('_token', 'user') // prevent legacy pollution - if (scope) npm.config.set(scope + ':registry', registry, 'user') - npm.config.setCredentialsByURI(registry, newCreds) - npm.config.save('user', cb) - }) -} diff --git a/deps/npm/lib/auth/legacy.js b/deps/npm/lib/auth/legacy.js deleted file mode 100644 index 92bf44c119a..00000000000 --- a/deps/npm/lib/auth/legacy.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict' -const read = require('../utils/read-user-info.js') -const profile = require('npm-profile') -const log = require('npmlog') -const npm = require('../npm.js') -const output = require('../utils/output.js') -const pacoteOpts = require('../config/pacote') -const fetchOpts = require('../config/fetch-opts') - -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') - - return read.username('Username:', username, {log: log}).then((u) => { - username = u - return read.password('Password: ', password) - }).then((p) => { - password = p - return read.email('Email: (this IS public) ', email, {log: log}) - }).then((e) => { - email = e - return profile.login(username, password, {registry: registry, auth: auth}).catch((err) => { - if (err.code === 'EOTP') throw err - return profile.adduser(username, email, password, { - registry: registry, - opts: fetchOpts.fromPacote(pacoteOpts()) - }) - }).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}) - }) - } else { - throw err - } - }) - }).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) -} diff --git a/deps/npm/lib/auth/oauth.js b/deps/npm/lib/auth/oauth.js deleted file mode 100644 index 1cb3ffec6f9..00000000000 --- a/deps/npm/lib/auth/oauth.js +++ /dev/null @@ -1,7 +0,0 @@ -var ssoAuth = require('./sso') -var npm = require('../npm') - -module.exports.login = function login () { - npm.config.set('sso-type', 'oauth') - ssoAuth.login.apply(this, arguments) -} diff --git a/deps/npm/lib/auth/saml.js b/deps/npm/lib/auth/saml.js deleted file mode 100644 index ae92ea5bbfb..00000000000 --- a/deps/npm/lib/auth/saml.js +++ /dev/null @@ -1,7 +0,0 @@ -var ssoAuth = require('./sso') -var npm = require('../npm') - -module.exports.login = function login () { - npm.config.set('sso-type', 'saml') - ssoAuth.login.apply(this, arguments) -} diff --git a/deps/npm/lib/auth/sso.js b/deps/npm/lib/auth/sso.js deleted file mode 100644 index faffe2fa595..00000000000 --- a/deps/npm/lib/auth/sso.js +++ /dev/null @@ -1,59 +0,0 @@ -var log = require('npmlog') -var npm = require('../npm.js') -var output = require('../utils/output') -var opener = require('opener') - -module.exports.login = function login (creds, registry, scope, cb) { - var ssoType = npm.config.get('sso-type') - if (!ssoType) { return cb(new Error('Missing option: sso-type')) } - - var params = { - // We're reusing the legacy login endpoint, so we need some dummy - // stuff here to pass validation. They're never used. - auth: { - username: 'npm_' + ssoType + '_auth_dummy_user', - password: 'placeholder', - email: 'support@npmjs.com', - authType: ssoType - } - } - npm.registry.adduser(registry, params, function (er, doc) { - if (er) return cb(er) - if (!doc || !doc.token) return cb(new Error('no SSO token returned')) - if (!doc.sso) return cb(new Error('no SSO URL returned by services')) - - output('If your browser doesn\'t open, visit ' + - doc.sso + - ' to complete authentication') - opener(doc.sso, { command: npm.config.get('browser') }, function () { - pollForSession(registry, doc.token, function (err, username) { - if (err) return cb(err) - - log.info('adduser', 'Authorized user %s', username) - var scopeMessage = scope ? ' to scope ' + scope : '' - output('Logged in as %s%s on %s.', username, scopeMessage, registry) - - cb(null, { token: doc.token }) - }) - }) - }) -} - -function pollForSession (registry, token, cb) { - log.info('adduser', 'Polling for validated SSO session') - npm.registry.whoami(registry, { - auth: { - token: token - } - }, function (er, username) { - if (er && er.statusCode !== 401) { - cb(er) - } else if (!username) { - setTimeout(function () { - pollForSession(registry, token, cb) - }, npm.config.get('sso-poll-frequency')) - } else { - cb(null, username) - } - }) -} diff --git a/deps/npm/lib/bin.js b/deps/npm/lib/bin.js deleted file mode 100644 index 7258893b9c3..00000000000 --- a/deps/npm/lib/bin.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = bin - -var npm = require('./npm.js') -var osenv = require('osenv') -var output = require('./utils/output.js') - -bin.usage = 'npm bin [--global]' - -function bin (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var b = npm.bin - var PATH = osenv.path() - - if (!silent) output(b) - process.nextTick(cb.bind(this, null, b)) - - if (npm.config.get('global') && PATH.indexOf(b) === -1) { - npm.config.get('logstream').write('(not in PATH env variable)\n') - } -} diff --git a/deps/npm/lib/bugs.js b/deps/npm/lib/bugs.js deleted file mode 100644 index 5f166c33f6f..00000000000 --- a/deps/npm/lib/bugs.js +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = bugs - -var npm = require('./npm.js') -var log = require('npmlog') -var opener = require('opener') -var fetchPackageMetadata = require('./fetch-package-metadata.js') -var usage = require('./utils/usage') - -bugs.usage = usage( - 'bugs', - 'npm bugs []' -) - -bugs.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function bugs (args, cb) { - var n = args.length ? args[0] : '.' - fetchPackageMetadata(n, '.', {fullMetadata: true}, function (er, d) { - if (er) return cb(er) - - var url = d.bugs && ((typeof d.bugs === 'string') ? d.bugs : d.bugs.url) - if (!url) { - url = 'https://www.npmjs.org/package/' + d.name - } - log.silly('bugs', 'url', url) - opener(url, { command: npm.config.get('browser') }, cb) - }) -} diff --git a/deps/npm/lib/build.js b/deps/npm/lib/build.js deleted file mode 100644 index 395f9437b45..00000000000 --- a/deps/npm/lib/build.js +++ /dev/null @@ -1,140 +0,0 @@ -// npm build command - -// everything about the installation after the creation of -// the .npm/{name}/{version}/package folder. -// linking the modules into the npm.root, -// resolving dependencies, etc. - -// This runs AFTER install or link are completed. - -var npm = require('./npm.js') -var log = require('npmlog') -var chain = require('slide').chain -var path = require('path') -var fs = require('graceful-fs') -var lifecycle = require('./utils/lifecycle.js') -var readJson = require('read-package-json') -var binLinks = require('bin-links') -var binLinksConfig = require('./config/bin-links.js') -var ini = require('ini') -var writeFile = require('write-file-atomic') - -module.exports = build -build.usage = 'npm build []' - -build._didBuild = {} -build._noLC = {} -function build (args, global, didPre, didRB, cb) { - if (typeof cb !== 'function') { - cb = didRB - didRB = false - } - if (typeof cb !== 'function') { - cb = didPre - didPre = false - } - if (typeof cb !== 'function') { - cb = global - global = npm.config.get('global') - } - - if (!args.length) { - readJson(path.resolve(npm.localPrefix, 'package.json'), function (er, pkg) { - if (!args.length && pkg && pkg.scripts && pkg.scripts.build) { - log.warn('build', '`npm build` called with no arguments. Did you mean to `npm run-script build`?') - } - cb() - }) - } else { - // it'd be nice to asyncMap these, but actually, doing them - // in parallel generally munges up the output from node-waf - var builder = build_(global, didPre, didRB) - chain(args.map(function (arg) { - return function (cb) { - builder(arg, cb) - } - }), cb) - } -} - -function build_ (global, didPre, didRB) { - return function (folder, cb) { - folder = path.resolve(folder) - if (build._didBuild[folder]) log.info('build', 'already built', folder) - build._didBuild[folder] = true - log.info('build', folder) - readJson(path.resolve(folder, 'package.json'), function (er, pkg) { - if (er) return cb(er) - chain([ - !didPre && [lifecycle, pkg, 'preinstall', folder], - [linkStuff, pkg, folder, global], - !didRB && [rebuildBundles, pkg, folder], - [writeBuiltinConf, pkg, folder], - didPre !== build._noLC && [lifecycle, pkg, 'install', folder], - didPre !== build._noLC && [lifecycle, pkg, 'postinstall', folder] - ], - cb) - }) - } -} - -var writeBuiltinConf = build.writeBuiltinConf = function (pkg, folder, cb) { - // the builtin config is "sticky". Any time npm installs - // itself globally, it puts its builtin config file there - var parent = path.dirname(folder) - var dir = npm.globalDir - - // Make this count for canary, too - if ((pkg.name !== 'npm' && pkg.name !== 'npmc') || - !npm.config.get('global') || - !npm.config.usingBuiltin || - dir !== parent) { - return cb() - } - - var data = ini.stringify(npm.config.sources.builtin.data) - writeFile(path.resolve(folder, 'npmrc'), data, cb) -} - -var linkStuff = build.linkStuff = function (pkg, folder, global, cb) { - // allow to opt out of linking binaries. - if (npm.config.get('bin-links') === false) return cb() - return binLinks(pkg, folder, global, binLinksConfig(pkg), cb) -} - -function rebuildBundles (pkg, folder, cb) { - if (!npm.config.get('rebuild-bundle')) return cb() - - var deps = Object.keys(pkg.dependencies || {}) - .concat(Object.keys(pkg.devDependencies || {})) - var bundles = pkg.bundleDependencies || pkg.bundledDependencies || [] - - fs.readdir(path.resolve(folder, 'node_modules'), function (er, files) { - // error means no bundles - if (er) return cb() - - log.verbose('rebuildBundles', files) - // don't asyncMap these, because otherwise build script output - // gets interleaved and is impossible to read - chain(files.filter(function (file) { - // rebuild if: - // not a .folder, like .bin or .hooks - return !file.match(/^[\._-]/) && - // not some old 0.x style bundle - file.indexOf('@') === -1 && - // either not a dep, or explicitly bundled - (deps.indexOf(file) === -1 || bundles.indexOf(file) !== -1) - }).map(function (file) { - file = path.resolve(folder, 'node_modules', file) - return function (cb) { - if (build._didBuild[file]) return cb() - log.verbose('rebuild bundle', file) - // if file is not a package dir, then don't do it. - fs.lstat(path.resolve(file, 'package.json'), function (er) { - if (er) return cb() - build_(false)(file, cb) - }) - } - }), cb) - }) -} diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js deleted file mode 100644 index 8bd2d5fcb1a..00000000000 --- a/deps/npm/lib/cache.js +++ /dev/null @@ -1,136 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const assert = require('assert') -const cacache = require('cacache') -const finished = BB.promisify(require('mississippi').finished) -const log = require('npmlog') -const npa = require('npm-package-arg') -const npm = require('./npm.js') -const output = require('./utils/output.js') -const pacote = require('pacote') -const pacoteOpts = require('./config/pacote') -const path = require('path') -const rm = BB.promisify(require('./utils/gently-rm.js')) -const unbuild = BB.promisify(npm.commands.unbuild) - -cache.usage = 'npm cache add ' + - '\nnpm cache add ' + - '\nnpm cache add ' + - '\nnpm cache add ' + - '\nnpm cache add @' + - '\nnpm cache clean' + - '\nnpm cache verify' - -cache.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, ['add', 'clean']) - } - - // TODO - eventually... - switch (argv[2]) { - case 'clean': - case 'add': - return cb(null, []) - } -} - -exports = module.exports = cache -function cache (args, cb) { - const cmd = args.shift() - let result - switch (cmd) { - case 'rm': case 'clear': case 'clean': - result = clean(args) - break - case 'add': - result = add(args, npm.prefix) - break - case 'verify': case 'check': - result = verify() - break - default: return cb('Usage: ' + cache.usage) - } - if (!result || !result.then) { - throw new Error(`npm cache ${cmd} handler did not return a Promise`) - } - result.then(() => cb(), cb) -} - -// npm cache clean [pkg]* -cache.clean = clean -function clean (args) { - if (!args) args = [] - if (args.length) { - return BB.reject(new Error('npm cache clear does not accept arguments')) - } - const cachePath = path.join(npm.cache, '_cacache') - if (!npm.config.get('force')) { - return BB.reject(new Error("As of npm@5, the npm cache self-heals from corruption issues and data extracted from the cache is guaranteed to be valid. If you want to make sure everything is consistent, use 'npm cache verify' instead.\n\nIf you're sure you want to delete the entire cache, rerun this command with --force.")) - } - // TODO - remove specific packages or package versions - return rm(cachePath) -} - -// npm cache add -// npm cache add -// npm cache add -// npm cache add -cache.add = function (pkg, ver, where, scrub) { - assert(typeof pkg === 'string', 'must include name of package to install') - if (scrub) { - return clean([]).then(() => { - return add([pkg, ver], where) - }) - } - return add([pkg, ver], where) -} - -function add (args, where) { - var usage = 'Usage:\n' + - ' npm cache add \n' + - ' npm cache add @\n' + - ' npm cache add \n' + - ' npm cache add \n' - var spec - log.silly('cache add', 'args', args) - if (args[1] === undefined) args[1] = null - // at this point the args length must ==2 - if (args[1] !== null) { - spec = args[0] + '@' + args[1] - } else if (args.length === 2) { - spec = args[0] - } - log.verbose('cache add', 'spec', spec) - if (!spec) return BB.reject(new Error(usage)) - log.silly('cache add', 'parsed spec', spec) - return finished(pacote.tarball.stream(spec, pacoteOpts({where})).resume()) -} - -cache.verify = verify -function verify () { - const cache = path.join(npm.config.get('cache'), '_cacache') - let prefix = cache - if (prefix.indexOf(process.env.HOME) === 0) { - prefix = '~' + prefix.substr(process.env.HOME.length) - } - return cacache.verify(cache).then((stats) => { - output(`Cache verified and compressed (${prefix}):`) - output(`Content verified: ${stats.verifiedContent} (${stats.keptSize} bytes)`) - stats.badContentCount && output(`Corrupted content removed: ${stats.badContentCount}`) - stats.reclaimedCount && output(`Content garbage-collected: ${stats.reclaimedCount} (${stats.reclaimedSize} bytes)`) - stats.missingContent && output(`Missing content: ${stats.missingContent}`) - output(`Index entries: ${stats.totalEntries}`) - output(`Finished in ${stats.runTime.total / 1000}s`) - }) -} - -cache.unpack = unpack -function unpack (pkg, ver, unpackTarget, dmode, fmode, uid, gid) { - return unbuild([unpackTarget], true).then(() => { - const opts = pacoteOpts({dmode, fmode, uid, gid, offline: true}) - return pacote.extract(npa.resolve(pkg, ver), unpackTarget, opts) - }) -} diff --git a/deps/npm/lib/completion.js b/deps/npm/lib/completion.js deleted file mode 100644 index 3157255bfb6..00000000000 --- a/deps/npm/lib/completion.js +++ /dev/null @@ -1,248 +0,0 @@ -module.exports = completion - -completion.usage = 'source <(npm completion)' - -var npm = require('./npm.js') -var npmconf = require('./config/core.js') -var configDefs = npmconf.defs -var configTypes = configDefs.types -var shorthands = configDefs.shorthands -var nopt = require('nopt') -var configNames = Object.keys(configTypes) - .filter(function (e) { return e.charAt(0) !== '_' }) -var shorthandNames = Object.keys(shorthands) -var allConfs = configNames.concat(shorthandNames) -var once = require('once') -var isWindowsShell = require('./utils/is-windows-shell.js') -var output = require('./utils/output.js') - -completion.completion = function (opts, cb) { - if (opts.w > 3) return cb() - - var fs = require('graceful-fs') - var path = require('path') - var bashExists = null - var zshExists = null - fs.stat(path.resolve(process.env.HOME, '.bashrc'), function (er) { - bashExists = !er - next() - }) - fs.stat(path.resolve(process.env.HOME, '.zshrc'), function (er) { - zshExists = !er - next() - }) - function next () { - if (zshExists === null || bashExists === null) return - var out = [] - if (zshExists) out.push('~/.zshrc') - if (bashExists) out.push('~/.bashrc') - if (opts.w === 2) { - out = out.map(function (m) { - return ['>>', m] - }) - } - cb(null, out) - } -} - -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 - return cb(e) - } - - // if the COMP_* isn't in the env, then just dump the script. - if (process.env.COMP_CWORD === undefined || - process.env.COMP_LINE === undefined || - process.env.COMP_POINT === undefined) { - return dumpScript(cb) - } - - console.error(process.env.COMP_CWORD) - console.error(process.env.COMP_LINE) - console.error(process.env.COMP_POINT) - - // get the partial line and partial word, - // if the point isn't at the end. - // ie, tabbing at: npm foo b|ar - var w = +process.env.COMP_CWORD - var words = args.map(unescape) - var word = words[w] - var line = process.env.COMP_LINE - var point = +process.env.COMP_POINT - var partialLine = line.substr(0, point) - var partialWords = words.slice(0, w) - - // figure out where in that last word the point is. - var partialWord = args[w] - var i = partialWord.length - while (partialWord.substr(0, i) !== partialLine.substr(-1 * i) && i > 0) { - i-- - } - partialWord = unescape(partialWord.substr(0, i)) - partialWords.push(partialWord) - - var opts = { - words: words, - w: w, - word: word, - line: line, - lineLength: line.length, - point: point, - partialLine: partialLine, - partialWords: partialWords, - partialWord: partialWord, - raw: args - } - - cb = wrapCb(cb, opts) - - console.error(opts) - - if (partialWords.slice(0, -1).indexOf('--') === -1) { - if (word.charAt(0) === '-') return configCompl(opts, cb) - if (words[w - 1] && - words[w - 1].charAt(0) === '-' && - !isFlag(words[w - 1])) { - // awaiting a value for a non-bool config. - // don't even try to do this for now - console.error('configValueCompl') - return configValueCompl(opts, cb) - } - } - - // try to find the npm command. - // it's the first thing after all the configs. - // take a little shortcut and use npm's arg parsing logic. - // don't have to worry about the last arg being implicitly - // boolean'ed, since the last block will catch that. - var parsed = opts.conf = - nopt(configTypes, shorthands, partialWords.slice(0, -1), 0) - // check if there's a command already. - console.error(parsed) - var cmd = parsed.argv.remain[1] - if (!cmd) return cmdCompl(opts, cb) - - Object.keys(parsed).forEach(function (k) { - npm.config.set(k, parsed[k]) - }) - - // at this point, if words[1] is some kind of npm command, - // then complete on it. - // otherwise, do nothing - cmd = npm.commands[cmd] - if (cmd && cmd.completion) return cmd.completion(opts, cb) - - // nothing to do. - cb() -} - -function dumpScript (cb) { - var fs = require('graceful-fs') - var path = require('path') - var p = path.resolve(__dirname, 'utils/completion.sh') - - // The Darwin patch below results in callbacks first for the write and then - // for the error handler, so make sure we only call our callback once. - cb = once(cb) - - fs.readFile(p, 'utf8', function (er, d) { - if (er) return cb(er) - d = d.replace(/^\#\!.*?\n/, '') - - process.stdout.write(d, function () { cb() }) - process.stdout.on('error', function (er) { - // Darwin is a pain sometimes. - // - // This is necessary because the "source" or "." program in - // bash on OS X closes its file argument before reading - // from it, meaning that you get exactly 1 write, which will - // work most of the time, and will always raise an EPIPE. - // - // Really, one should not be tossing away EPIPE errors, or any - // errors, so casually. But, without this, `. <(npm completion)` - // can never ever work on OS X. - if (er.errno === 'EPIPE') er = null - cb(er) - }) - }) -} - -function unescape (w) { - if (w.charAt(0) === '\'') return w.replace(/^'|'$/g, '') - else return w.replace(/\\ /g, ' ') -} - -function escape (w) { - if (!w.match(/\s+/)) return w - return '\'' + w + '\'' -} - -// The command should respond with an array. Loop over that, -// wrapping quotes around any that have spaces, and writing -// them to stdout. Use console.log, not the outfd config. -// If any of the items are arrays, then join them with a space. -// Ie, returning ['a', 'b c', ['d', 'e']] would allow it to expand -// to: 'a', 'b c', or 'd' 'e' -function wrapCb (cb, opts) { - return function (er, compls) { - if (!Array.isArray(compls)) compls = compls ? [compls] : [] - compls = compls.map(function (c) { - if (Array.isArray(c)) c = c.map(escape).join(' ') - else c = escape(c) - return c - }) - - if (opts.partialWord) { - compls = compls.filter(function (c) { - return c.indexOf(opts.partialWord) === 0 - }) - } - - console.error([er && er.stack, compls, opts.partialWord]) - if (er || compls.length === 0) return cb(er) - - output(compls.join('\n')) - cb() - } -} - -// the current word has a dash. Return the config names, -// with the same number of dashes as the current word has. -function configCompl (opts, cb) { - var word = opts.word - var split = word.match(/^(-+)((?:no-)*)(.*)$/) - var dashes = split[1] - var no = split[2] - var flags = configNames.filter(isFlag) - console.error(flags) - - return cb(null, allConfs.map(function (c) { - return dashes + c - }).concat(flags.map(function (f) { - return dashes + (no || 'no-') + f - }))) -} - -// expand with the valid values of various config values. -// not yet implemented. -function configValueCompl (opts, cb) { - console.error('configValue', opts) - return cb(null, []) -} - -// check if the thing is a flag or not. -function isFlag (word) { - // shorthands never take args. - var split = word.match(/^(-*)((?:no-)+)?(.*)$/) - var no = split[2] - var conf = split[3] - return no || configTypes[conf] === Boolean || shorthands[conf] -} - -// complete against the npm commands -function cmdCompl (opts, cb) { - return cb(null, npm.fullList) -} diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js deleted file mode 100644 index d260c04a54c..00000000000 --- a/deps/npm/lib/config.js +++ /dev/null @@ -1,280 +0,0 @@ -module.exports = config - -var log = require('npmlog') -var npm = require('./npm.js') -var npmconf = require('./config/core.js') -var fs = require('graceful-fs') -var writeFileAtomic = require('write-file-atomic') -var types = npmconf.defs.types -var ini = require('ini') -var editor = require('editor') -var os = require('os') -var umask = require('./utils/umask') -var usage = require('./utils/usage') -var output = require('./utils/output') -var noProgressTillDone = require('./utils/no-progress-while-running').tillDone - -config.usage = usage( - 'config', - 'npm config set ' + - '\nnpm config get []' + - '\nnpm config delete ' + - '\nnpm config list [--json]' + - '\nnpm config edit' + - '\nnpm set ' + - '\nnpm get []' -) -config.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv[1] !== 'config') argv.unshift('config') - if (argv.length === 2) { - var cmds = ['get', 'set', 'delete', 'ls', 'rm', 'edit'] - if (opts.partialWord !== 'l') cmds.push('list') - return cb(null, cmds) - } - - var action = argv[2] - switch (action) { - case 'set': - // todo: complete with valid values, if possible. - if (argv.length > 3) return cb(null, []) - // fallthrough - /*eslint no-fallthrough:0*/ - case 'get': - case 'delete': - case 'rm': - return cb(null, Object.keys(types)) - case 'edit': - case 'list': - case 'ls': - return cb(null, []) - default: - return cb(null, []) - } -} - -// npm config set key value -// npm config get key -// npm config list -function config (args, cb) { - var action = args.shift() - switch (action) { - case 'set': - return set(args[0], args[1], cb) - case 'get': - return get(args[0], cb) - case 'delete': - case 'rm': - case 'del': - return del(args[0], cb) - case 'list': - case 'ls': - return npm.config.get('json') ? listJson(cb) : list(cb) - case 'edit': - return edit(cb) - default: - return unknown(action, cb) - } -} - -function edit (cb) { - var e = npm.config.get('editor') - var which = npm.config.get('global') ? 'global' : 'user' - var f = npm.config.get(which + 'config') - if (!e) return cb(new Error('No EDITOR config or environ set.')) - npm.config.save(which, function (er) { - if (er) return cb(er) - fs.readFile(f, 'utf8', function (er, data) { - if (er) data = '' - data = [ - ';;;;', - '; npm ' + (npm.config.get('global') - ? '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', - ';;;;', - '', - data - ].concat([ - ';;;;', - '; all options with default values', - ';;;;' - ]).concat(Object.keys(npmconf.defaults).reduce(function (arr, key) { - var obj = {} - obj[key] = npmconf.defaults[key] - if (key === 'logstream') return arr - return arr.concat( - ini.stringify(obj) - .replace(/\n$/m, '') - .replace(/^/g, '; ') - .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)) - } - ) - }) - }) -} - -function del (key, cb) { - if (!key) return cb(new Error('no key provided')) - var where = npm.config.get('global') ? 'global' : 'user' - npm.config.del(key, where) - npm.config.save(where, cb) -} - -function set (key, val, cb) { - if (key === undefined) { - return unknown('', cb) - } - if (val === undefined) { - if (key.indexOf('=') !== -1) { - var k = key.split('=') - key = k.shift() - val = k.join('=') - } else { - val = '' - } - } - key = key.trim() - val = val.trim() - log.info('config', 'set %j %j', key, val) - var where = npm.config.get('global') ? 'global' : 'user' - if (key.match(/umask/)) val = umask.fromString(val) - npm.config.set(key, val, where) - npm.config.save(where, cb) -} - -function get (key, cb) { - if (!key) return list(cb) - if (!publicVar(key)) { - return cb(new Error('---sekretz---')) - } - var val = npm.config.get(key) - if (key.match(/umask/)) val = umask.toString(val) - output(val) - cb() -} - -function sort (a, b) { - return a > b ? 1 : -1 -} - -function publicVar (k) { - return !(k.charAt(0) === '_' || k.indexOf(':_') !== -1) -} - -function getKeys (data) { - return Object.keys(data).filter(publicVar).sort(sort) -} - -function listJson (cb) { - const publicConf = npm.config.keys.reduce((publicConf, k) => { - var value = npm.config.get(k) - - if (publicVar(k) && - // argv is not really config, it's command config - k !== 'argv' && - // logstream is a Stream, and would otherwise produce circular refs - k !== 'logstream') publicConf[k] = value - - return publicConf - }, {}) - - output(JSON.stringify(publicConf, null, 2)) - return cb() -} - -function listFromSource (title, conf, long) { - var confKeys = getKeys(conf) - var msg = '' - - if (confKeys.length) { - msg += '; ' + title + '\n' - confKeys.forEach(function (k) { - var val = JSON.stringify(conf[k]) - if (conf[k] !== npm.config.get(k)) { - if (!long) return - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - } - - return msg -} - -function list (cb) { - var msg = '' - var long = npm.config.get('long') - - var cli = npm.config.sources.cli.data - var cliKeys = getKeys(cli) - if (cliKeys.length) { - msg += '; cli configs\n' - cliKeys.forEach(function (k) { - if (cli[k] && typeof cli[k] === 'object') return - if (k === 'argv') return - msg += k + ' = ' + JSON.stringify(cli[k]) + '\n' - }) - msg += '\n' - } - - // env configs - msg += listFromSource('environment configs', npm.config.sources.env.data, long) - - // project config file - var project = npm.config.sources.project - msg += listFromSource('project config ' + project.path, project.data, long) - - // user config file - msg += listFromSource('userconfig ' + npm.config.get('userconfig'), npm.config.sources.user.data, long) - - // global config file - msg += listFromSource('globalconfig ' + npm.config.get('globalconfig'), npm.config.sources.global.data, long) - - // builtin config file - var builtin = npm.config.sources.builtin || {} - if (builtin && builtin.data) { - msg += listFromSource('builtin config ' + builtin.path, builtin.data, long) - } - - // only show defaults if --long - if (!long) { - msg += '; node bin location = ' + process.execPath + '\n' + - '; cwd = ' + process.cwd() + '\n' + - '; HOME = ' + process.env.HOME + '\n' + - '; "npm config ls -l" to show all defaults.\n' - - output(msg) - return cb() - } - - var defaults = npmconf.defaults - var defKeys = getKeys(defaults) - msg += '; default values\n' - defKeys.forEach(function (k) { - if (defaults[k] && typeof defaults[k] === 'object') return - var val = JSON.stringify(defaults[k]) - if (defaults[k] !== npm.config.get(k)) { - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - - output(msg) - return cb() -} - -function unknown (action, cb) { - cb('Usage:\n' + config.usage) -} diff --git a/deps/npm/lib/config/bin-links.js b/deps/npm/lib/config/bin-links.js deleted file mode 100644 index 1ee90cc35e9..00000000000 --- a/deps/npm/lib/config/bin-links.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' - -const npm = require('../npm.js') -var packageId = require('../utils/package-id.js') -const log = require('npmlog') - -module.exports = binLinksOpts - -function binLinksOpts (pkg) { - return { - ignoreScripts: npm.config.get('ignore-scripts'), - force: npm.config.get('force'), - globalBin: npm.globalBin, - globalDir: npm.globalDir, - json: npm.config.get('json'), - log: log, - name: 'npm', - parseable: npm.config.get('parseable'), - pkgId: packageId(pkg), - prefix: npm.config.get('prefix'), - prefixes: [ - npm.prefix, - npm.globalPrefix, - npm.dir, - npm.root, - npm.globalDir, - npm.bin, - npm.globalBin - ], - umask: npm.config.get('umask') - } -} diff --git a/deps/npm/lib/config/clear-credentials-by-uri.js b/deps/npm/lib/config/clear-credentials-by-uri.js deleted file mode 100644 index 13c356605f0..00000000000 --- a/deps/npm/lib/config/clear-credentials-by-uri.js +++ /dev/null @@ -1,16 +0,0 @@ -var assert = require('assert') - -var toNerfDart = require('./nerf-dart.js') - -module.exports = clearCredentialsByURI - -function clearCredentialsByURI (uri) { - assert(uri && typeof uri === 'string', 'registry URL is required') - - var nerfed = toNerfDart(uri) - - this.del(nerfed + ':_authToken', 'user') - this.del(nerfed + ':_password', 'user') - this.del(nerfed + ':username', 'user') - this.del(nerfed + ':email', 'user') -} diff --git a/deps/npm/lib/config/cmd-list.js b/deps/npm/lib/config/cmd-list.js deleted file mode 100644 index 49c445a4f0d..00000000000 --- a/deps/npm/lib/config/cmd-list.js +++ /dev/null @@ -1,119 +0,0 @@ -// short names for common things -var shorthands = { - 'un': 'uninstall', - 'rb': 'rebuild', - 'list': 'ls', - 'ln': 'link', - 'i': 'install', - 'it': 'install-test', - 'up': 'update', - 'c': 'config', - 's': 'search', - 'se': 'search', - 'unstar': 'star', // same function - 'tst': 'test', - 't': 'test', - 'ddp': 'dedupe', - 'v': 'view', - 'run': 'run-script' -} - -var affordances = { - 'la': 'ls', - 'll': 'ls', - 'verison': 'version', - 'isntall': 'install', - 'dist-tags': 'dist-tag', - 'apihelp': 'help', - 'find-dupes': 'dedupe', - 'upgrade': 'update', - 'udpate': 'update', - 'login': 'adduser', - 'add-user': 'adduser', - 'author': 'owner', - 'home': 'docs', - 'issues': 'bugs', - 'info': 'view', - 'show': 'view', - 'find': 'search', - 'add': 'install', - 'unlink': 'uninstall', - 'remove': 'uninstall', - 'rm': 'uninstall', - 'r': 'uninstall', - 'rum': 'run-script' -} - -// these are filenames in . -var cmdList = [ - 'install', - 'install-test', - 'uninstall', - 'cache', - 'config', - 'set', - 'get', - 'update', - 'outdated', - 'prune', - 'pack', - 'dedupe', - - 'rebuild', - 'link', - - 'publish', - 'star', - 'stars', - 'adduser', - 'login', // This is an alias for `adduser` but it can be confusing - 'logout', - 'unpublish', - 'owner', - 'access', - 'team', - 'deprecate', - 'shrinkwrap', - 'token', - 'profile', - - 'help', - 'help-search', - 'ls', - 'search', - 'view', - 'init', - 'version', - 'edit', - 'explore', - 'docs', - 'repo', - 'bugs', - 'root', - 'prefix', - 'bin', - 'whoami', - 'dist-tag', - 'ping', - - 'test', - 'stop', - 'start', - 'restart', - 'run-script', - 'completion', - 'doctor' -] - -var plumbing = [ - 'build', - 'unbuild', - 'xmas', - 'substack', - 'visnup' -] -module.exports.aliases = Object.assign({}, shorthands, affordances) -module.exports.shorthands = shorthands -module.exports.affordances = affordances -module.exports.cmdList = cmdList -module.exports.plumbing = plumbing diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js deleted file mode 100644 index 50cf4772e79..00000000000 --- a/deps/npm/lib/config/core.js +++ /dev/null @@ -1,431 +0,0 @@ -var CC = require('config-chain').ConfigChain -var inherits = require('inherits') -var configDefs = require('./defaults.js') -var types = configDefs.types -var once = require('once') -var fs = require('fs') -var path = require('path') -var nopt = require('nopt') -var ini = require('ini') -var Umask = configDefs.Umask -var mkdirp = require('mkdirp') -var umask = require('../utils/umask') -var isWindows = require('../utils/is-windows.js') - -exports.load = load -exports.Conf = Conf -exports.loaded = false -exports.rootConf = null -exports.usingBuiltin = false -exports.defs = configDefs - -Object.defineProperty(exports, 'defaults', { get: function () { - return configDefs.defaults -}, enumerable: true }) - -Object.defineProperty(exports, 'types', { get: function () { - return configDefs.types -}, enumerable: true }) - -exports.validate = validate - -var myUid = process.env.SUDO_UID !== undefined - ? process.env.SUDO_UID : (process.getuid && process.getuid()) -var myGid = process.env.SUDO_GID !== undefined - ? process.env.SUDO_GID : (process.getgid && process.getgid()) - -var loading = false -var loadCbs = [] -function load () { - var cli, builtin, cb - for (var i = 0; i < arguments.length; i++) { - switch (typeof arguments[i]) { - case 'string': builtin = arguments[i]; break - case 'object': cli = arguments[i]; break - case 'function': cb = arguments[i]; break - } - } - - if (!cb) cb = function () {} - - if (exports.loaded) { - var ret = exports.loaded - if (cli) { - ret = new Conf(ret) - ret.unshift(cli) - } - return process.nextTick(cb.bind(null, null, ret)) - } - - // either a fresh object, or a clone of the passed in obj - if (!cli) { - cli = {} - } else { - cli = Object.keys(cli).reduce(function (c, k) { - c[k] = cli[k] - return c - }, {}) - } - - loadCbs.push(cb) - if (loading) return - - loading = true - - cb = once(function (er, conf) { - if (!er) { - exports.loaded = conf - loading = false - } - loadCbs.forEach(function (fn) { - fn(er, conf) - }) - loadCbs.length = 0 - }) - - // check for a builtin if provided. - exports.usingBuiltin = !!builtin - var rc = exports.rootConf = new Conf() - if (builtin) { - rc.addFile(builtin, 'builtin') - } else { - rc.add({}, 'builtin') - } - - rc.on('load', function () { - load_(builtin, rc, cli, cb) - }) - rc.on('error', cb) -} - -function load_ (builtin, rc, cli, cb) { - var defaults = configDefs.defaults - var conf = new Conf(rc) - - conf.usingBuiltin = !!builtin - conf.add(cli, 'cli') - conf.addEnv() - - conf.loadPrefix(function (er) { - if (er) return cb(er) - - // If you're doing `npm --userconfig=~/foo.npmrc` then you'd expect - // that ~/.npmrc won't override the stuff in ~/foo.npmrc (or, indeed - // be used at all). - // - // However, if the cwd is ~, then ~/.npmrc is the home for the project - // config, and will override the userconfig. - // - // If you're not setting the userconfig explicitly, then it will be loaded - // twice, which is harmless but excessive. If you *are* setting the - // userconfig explicitly then it will override your explicit intent, and - // that IS harmful and unexpected. - // - // Solution: Do not load project config file that is the same as either - // the default or resolved userconfig value. npm will log a "verbose" - // message about this when it happens, but it is a rare enough edge case - // that we don't have to be super concerned about it. - var projectConf = path.resolve(conf.localPrefix, '.npmrc') - var defaultUserConfig = rc.get('userconfig') - var resolvedUserConfig = conf.get('userconfig') - if (!conf.get('global') && - projectConf !== defaultUserConfig && - projectConf !== resolvedUserConfig) { - conf.addFile(projectConf, 'project') - conf.once('load', afterPrefix) - } else { - conf.add({}, 'project') - afterPrefix() - } - }) - - function afterPrefix () { - conf.addFile(conf.get('userconfig'), 'user') - conf.once('error', cb) - conf.once('load', afterUser) - } - - function afterUser () { - // globalconfig and globalignorefile defaults - // need to respond to the 'prefix' setting up to this point. - // Eg, `npm config get globalconfig --prefix ~/local` should - // return `~/local/etc/npmrc` - // 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() - } - } - - function afterUserContinuation () { - conf.addFile(conf.get('globalconfig'), 'global') - - // move the builtin into the conf stack now. - conf.root = defaults - conf.add(rc.shift(), 'builtin') - conf.once('load', function () { - conf.loadExtras(afterExtras) - }) - } - - function afterExtras (er) { - if (er) return cb(er) - - // warn about invalid bits. - validate(conf) - - var cafile = conf.get('cafile') - - if (cafile) { - return conf.loadCAFile(cafile, finalize) - } - - finalize() - } - - function finalize (er) { - if (er) { - return cb(er) - } - - exports.loaded = conf - cb(er, conf) - } -} - -// Basically the same as CC, but: -// 1. Always ini -// 2. Parses environment variable names in field values -// 3. Field values that start with ~/ are replaced with process.env.HOME -// 4. Can inherit from another Conf object, using it as the base. -inherits(Conf, CC) -function Conf (base) { - if (!(this instanceof Conf)) return new Conf(base) - - CC.call(this) - - if (base) { - if (base instanceof Conf) { - this.root = base.list[0] || base.root - } else { - this.root = base - } - } else { - this.root = configDefs.defaults - } -} - -Conf.prototype.loadPrefix = require('./load-prefix.js') -Conf.prototype.loadCAFile = require('./load-cafile.js') -Conf.prototype.loadUid = require('./load-uid.js') -Conf.prototype.setUser = require('./set-user.js') -Conf.prototype.getCredentialsByURI = require('./get-credentials-by-uri.js') -Conf.prototype.setCredentialsByURI = require('./set-credentials-by-uri.js') -Conf.prototype.clearCredentialsByURI = require('./clear-credentials-by-uri.js') - -Conf.prototype.loadExtras = function (cb) { - this.setUser(function (er) { - if (er) return cb(er) - this.loadUid(function (er) { - if (er) return cb(er) - // Without prefix, nothing will ever work - mkdirp(this.prefix, cb) - }.bind(this)) - }.bind(this)) -} - -Conf.prototype.save = function (where, cb) { - var target = this.sources[where] - if (!target || !(target.path || target.source) || !target.data) { - var er - if (where !== 'builtin') er = new Error('bad save target: ' + where) - if (cb) { - process.nextTick(cb.bind(null, er)) - return this - } - return this.emit('error', er) - } - - if (target.source) { - var pref = target.prefix || '' - Object.keys(target.data).forEach(function (k) { - target.source[pref + k] = target.data[k] - }) - if (cb) process.nextTick(cb) - return this - } - - var data = ini.stringify(target.data) - - var then = function then (er) { - if (er) return done(er) - - fs.chmod(target.path, mode, done) - } - - var done = function done (er) { - if (er) { - if (cb) return cb(er) - else return this.emit('error', er) - } - this._saving -- - if (this._saving === 0) { - if (cb) cb() - this.emit('save') - } - } - - then = then.bind(this) - done = done.bind(this) - this._saving ++ - - var mode = where === 'user' ? '0600' : '0666' - if (!data.trim()) { - fs.unlink(target.path, function () { - // ignore the possible error (e.g. the file doesn't exist) - done(null) - }) - } else { - mkdirp(path.dirname(target.path), function (er) { - if (er) return then(er) - fs.writeFile(target.path, data, 'utf8', function (er) { - if (er) return then(er) - if (where === 'user' && myUid && myGid) { - fs.chown(target.path, +myUid, +myGid, then) - } else { - then() - } - }) - }) - } - - return this -} - -Conf.prototype.addFile = function (file, name) { - name = name || file - var marker = { __source__: name } - this.sources[name] = { path: file, type: 'ini' } - this.push(marker) - this._await() - fs.readFile(file, 'utf8', function (er, data) { - // just ignore missing files. - if (er) return this.add({}, marker) - - this.addString(data, file, 'ini', marker) - }.bind(this)) - return this -} - -// always ini files. -Conf.prototype.parse = function (content, file) { - return CC.prototype.parse.call(this, content, file, 'ini') -} - -Conf.prototype.add = function (data, marker) { - try { - Object.keys(data).forEach(function (k) { - data[k] = parseField(data[k], k) - }) - } catch (e) { - this.emit('error', e) - return this - } - return CC.prototype.add.call(this, data, marker) -} - -Conf.prototype.addEnv = function (env) { - env = env || process.env - var conf = {} - Object.keys(env) - .filter(function (k) { return k.match(/^npm_config_/i) }) - .forEach(function (k) { - if (!env[k]) return - - // leave first char untouched, even if - // it is a '_' - convert all other to '-' - var p = k.toLowerCase() - .replace(/^npm_config_/, '') - .replace(/(?!^)_/g, '-') - conf[p] = env[k] - }) - return CC.prototype.addEnv.call(this, '', conf, 'env') -} - -function parseField (f, k) { - if (typeof f !== 'string' && !(f instanceof String)) return f - - // type can be an array or single thing. - var typeList = [].concat(types[k]) - var isPath = typeList.indexOf(path) !== -1 - var isBool = typeList.indexOf(Boolean) !== -1 - var isString = typeList.indexOf(String) !== -1 - var isUmask = typeList.indexOf(Umask) !== -1 - var isNumber = typeList.indexOf(Number) !== -1 - - f = ('' + f).trim() - - if (f.match(/^".*"$/)) { - try { - f = JSON.parse(f) - } catch (e) { - throw new Error('Failed parsing JSON config key ' + k + ': ' + f) - } - } - - if (isBool && !isString && f === '') return true - - switch (f) { - case 'true': return true - case 'false': return false - case 'null': return null - case 'undefined': return undefined - } - - f = envReplace(f) - - if (isPath) { - var homePattern = isWindows ? /^~(\/|\\)/ : /^~\// - if (f.match(homePattern) && process.env.HOME) { - f = path.resolve(process.env.HOME, f.substr(2)) - } - f = path.resolve(f) - } - - if (isUmask) f = umask.fromString(f) - - if (isNumber && !isNaN(f)) f = +f - - return f -} - -function envReplace (f) { - if (typeof f !== 'string' || !f) return f - - // replace any ${ENV} values with the appropriate environ. - var envExpr = /(\\*)\$\{([^}]+)\}/g - return f.replace(envExpr, function (orig, esc, name) { - esc = esc.length && esc.length % 2 - if (esc) return orig - if (undefined === process.env[name]) { - throw new Error('Failed to replace env in config: ' + orig) - } - - return process.env[name] - }) -} - -function validate (cl) { - // warn about invalid configs at every level. - cl.list.forEach(function (conf) { - nopt.clean(conf, configDefs.types) - }) - - nopt.clean(cl.root, configDefs.types) -} diff --git a/deps/npm/lib/config/defaults.js b/deps/npm/lib/config/defaults.js deleted file mode 100644 index c049f213fa7..00000000000 --- a/deps/npm/lib/config/defaults.js +++ /dev/null @@ -1,430 +0,0 @@ -// defaults, types, and shorthands. - -var path = require('path') -var url = require('url') -var Stream = require('stream').Stream -var semver = require('semver') -var stableFamily = semver.parse(process.version) -var nopt = require('nopt') -var os = require('os') -var osenv = require('osenv') -var umask = require('../utils/umask') -var hasUnicode = require('has-unicode') - -var log -try { - log = require('npmlog') -} catch (er) { - var util = require('util') - log = { warn: function (m) { - console.warn(m + ' ' + util.format.apply(util, [].slice.call(arguments, 1))) - } } -} - -exports.Umask = Umask -function Umask () {} -function validateUmask (data, k, val) { - return umask.validate(data, k, val) -} - -function validateSemver (data, k, val) { - if (!semver.valid(val)) return false - data[k] = semver.valid(val) -} - -function validateStream (data, k, val) { - if (!(val instanceof Stream)) return false - data[k] = val -} - -nopt.typeDefs.semver = { type: semver, validate: validateSemver } -nopt.typeDefs.Stream = { type: Stream, validate: validateStream } -nopt.typeDefs.Umask = { type: Umask, validate: validateUmask } - -nopt.invalidHandler = function (k, val, type) { - log.warn('invalid config', k + '=' + JSON.stringify(val)) - - if (Array.isArray(type)) { - if (type.indexOf(url) !== -1) type = url - else if (type.indexOf(path) !== -1) type = path - } - - switch (type) { - case Umask: - log.warn('invalid config', 'Must be umask, octal number in range 0000..0777') - break - case url: - log.warn('invalid config', "Must be a full url with 'http://'") - break - case path: - log.warn('invalid config', 'Must be a valid filesystem path') - break - case Number: - log.warn('invalid config', 'Must be a numeric value') - break - case Stream: - log.warn('invalid config', 'Must be an instance of the Stream class') - break - } -} - -if (!stableFamily || (+stableFamily.minor % 2)) stableFamily = null -else stableFamily = stableFamily.major + '.' + stableFamily.minor - -var defaults - -var temp = osenv.tmpdir() -var home = osenv.home() - -var uidOrPid = process.getuid ? process.getuid() : process.pid - -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 cache = path.resolve(cacheRoot, cacheExtra) - -var globalPrefix -Object.defineProperty(exports, 'defaults', {get: function () { - if (defaults) return defaults - - if (process.env.PREFIX) { - globalPrefix = process.env.PREFIX - } else if (process.platform === 'win32') { - // c:\node\node.exe --> prefix=c:\node\ - globalPrefix = path.dirname(process.execPath) - } else { - // /usr/local/bin/node --> prefix=/usr/local - globalPrefix = path.dirname(path.dirname(process.execPath)) - - // destdir only is respected on Unix - if (process.env.DESTDIR) { - globalPrefix = path.join(process.env.DESTDIR, globalPrefix) - } - } - - defaults = { - access: null, - 'allow-same-version': false, - 'always-auth': false, - also: null, - 'auth-type': 'legacy', - - 'bin-links': true, - browser: null, - - ca: null, - cafile: null, - - cache: cache, - - 'cache-lock-stale': 60000, - 'cache-lock-retries': 10, - 'cache-lock-wait': 10000, - - 'cache-max': Infinity, - 'cache-min': 10, - - cert: null, - - cidr: null, - - color: true, - depth: Infinity, - description: true, - dev: false, - 'dry-run': false, - editor: osenv.editor(), - 'engine-strict': false, - force: false, - - 'fetch-retries': 2, - 'fetch-retry-factor': 10, - 'fetch-retry-mintimeout': 10000, - 'fetch-retry-maxtimeout': 60000, - - git: 'git', - 'git-tag-version': true, - 'commit-hooks': true, - - global: false, - globalconfig: path.resolve(globalPrefix, 'etc', 'npmrc'), - 'global-style': false, - group: process.platform === 'win32' ? 0 - : process.env.SUDO_GID || (process.getgid && process.getgid()), - 'ham-it-up': false, - heading: 'npm', - 'if-present': false, - 'ignore-prepublish': false, - 'ignore-scripts': false, - 'init-module': path.resolve(home, '.npm-init.js'), - 'init-author-name': '', - 'init-author-email': '', - 'init-author-url': '', - 'init-version': '1.0.0', - 'init-license': 'ISC', - json: false, - key: null, - 'legacy-bundling': false, - link: false, - 'local-address': undefined, - loglevel: 'notice', - logstream: process.stderr, - 'logs-max': 10, - long: false, - maxsockets: 50, - message: '%s', - 'metrics-registry': null, - 'node-options': null, - 'node-version': process.version, - 'offline': false, - 'onload-script': false, - only: null, - optional: true, - otp: null, - 'package-lock': true, - 'package-lock-only': false, - parseable: false, - 'prefer-offline': false, - 'prefer-online': false, - prefix: globalPrefix, - production: process.env.NODE_ENV === 'production', - 'progress': !process.env.TRAVIS && !process.env.CI, - proxy: null, - 'https-proxy': null, - 'user-agent': 'npm/{npm-version} ' + - 'node/{node-version} ' + - '{platform} ' + - '{arch}', - 'read-only': false, - 'rebuild-bundle': true, - registry: 'https://registry.npmjs.org/', - rollback: true, - save: true, - 'save-bundle': false, - 'save-dev': false, - 'save-exact': false, - 'save-optional': false, - 'save-prefix': '^', - 'save-prod': false, - scope: '', - 'script-shell': null, - 'scripts-prepend-node-path': 'warn-only', - searchopts: '', - searchexclude: null, - searchlimit: 20, - searchstaleness: 15 * 60, - 'send-metrics': false, - shell: osenv.shell(), - shrinkwrap: true, - 'sign-git-tag': false, - 'sso-poll-frequency': 500, - 'sso-type': 'oauth', - 'strict-ssl': true, - tag: 'latest', - 'tag-version-prefix': 'v', - timing: false, - tmp: temp, - unicode: hasUnicode(), - 'unsafe-perm': process.platform === 'win32' || - process.platform === 'cygwin' || - !(process.getuid && process.setuid && - process.getgid && process.setgid) || - process.getuid() !== 0, - usage: false, - user: process.platform === 'win32' ? 0 : 'nobody', - userconfig: path.resolve(home, '.npmrc'), - umask: process.umask ? process.umask() : umask.fromString('022'), - version: false, - versions: false, - viewer: process.platform === 'win32' ? 'browser' : 'man', - - _exit: true - } - - return defaults -}}) - -exports.types = { - access: [null, 'restricted', 'public'], - 'allow-same-version': Boolean, - 'always-auth': Boolean, - also: [null, 'dev', 'development'], - 'auth-type': ['legacy', 'sso', 'saml', 'oauth'], - 'bin-links': Boolean, - browser: [null, String], - ca: [null, String, Array], - cafile: path, - cache: path, - 'cache-lock-stale': Number, - 'cache-lock-retries': Number, - 'cache-lock-wait': Number, - 'cache-max': Number, - 'cache-min': Number, - cert: [null, String], - cidr: [null, String, Array], - color: ['always', Boolean], - depth: Number, - description: Boolean, - dev: Boolean, - 'dry-run': Boolean, - editor: String, - 'engine-strict': Boolean, - force: Boolean, - 'fetch-retries': Number, - 'fetch-retry-factor': Number, - 'fetch-retry-mintimeout': Number, - 'fetch-retry-maxtimeout': Number, - git: String, - 'git-tag-version': Boolean, - 'commit-hooks': Boolean, - global: Boolean, - globalconfig: path, - 'global-style': Boolean, - group: [Number, String], - 'https-proxy': [null, url], - 'user-agent': String, - 'ham-it-up': Boolean, - 'heading': String, - 'if-present': Boolean, - 'ignore-prepublish': Boolean, - 'ignore-scripts': Boolean, - 'init-module': path, - 'init-author-name': String, - 'init-author-email': String, - 'init-author-url': ['', url], - 'init-license': String, - 'init-version': semver, - json: Boolean, - key: [null, String], - 'legacy-bundling': Boolean, - link: Boolean, - // local-address must be listed as an IP for a local network interface - // must be IPv4 due to node bug - 'local-address': getLocalAddresses(), - loglevel: ['silent', 'error', 'warn', 'notice', 'http', 'timing', 'info', 'verbose', 'silly'], - logstream: Stream, - 'logs-max': Number, - long: Boolean, - maxsockets: Number, - message: String, - 'metrics-registry': [null, String], - 'node-options': [null, String], - 'node-version': [null, semver], - offline: Boolean, - 'onload-script': [null, String], - only: [null, 'dev', 'development', 'prod', 'production'], - optional: Boolean, - 'package-lock': Boolean, - otp: Number, - 'package-lock-only': Boolean, - parseable: Boolean, - 'prefer-offline': Boolean, - 'prefer-online': Boolean, - prefix: path, - production: Boolean, - progress: Boolean, - proxy: [null, false, url], // allow proxy to be disabled explicitly - 'read-only': Boolean, - 'rebuild-bundle': Boolean, - registry: [null, url], - rollback: Boolean, - save: Boolean, - 'save-bundle': Boolean, - 'save-dev': Boolean, - 'save-exact': Boolean, - 'save-optional': Boolean, - 'save-prefix': String, - 'save-prod': Boolean, - scope: String, - 'script-shell': [null, String], - 'scripts-prepend-node-path': [false, true, 'auto', 'warn-only'], - searchopts: String, - searchexclude: [null, String], - searchlimit: Number, - searchstaleness: Number, - 'send-metrics': Boolean, - shell: String, - shrinkwrap: Boolean, - 'sign-git-tag': Boolean, - 'sso-poll-frequency': Number, - 'sso-type': [null, 'oauth', 'saml'], - 'strict-ssl': Boolean, - tag: String, - timing: Boolean, - tmp: path, - unicode: Boolean, - 'unsafe-perm': Boolean, - usage: Boolean, - user: [Number, String], - userconfig: path, - umask: Umask, - version: Boolean, - 'tag-version-prefix': String, - versions: Boolean, - viewer: String, - _exit: Boolean -} - -function getLocalAddresses () { - var interfaces - // #8094: some environments require elevated permissions to enumerate - // interfaces, and synchronously throw EPERM when run without - // elevated privileges - try { - interfaces = os.networkInterfaces() - } catch (e) { - interfaces = {} - } - - return Object.keys(interfaces).map(function (nic) { - return interfaces[nic].filter(function (addr) { - return addr.family === 'IPv4' - }) - .map(function (addr) { - return addr.address - }) - }).reduce(function (curr, next) { - return curr.concat(next) - }, []).concat(undefined) -} - -exports.shorthands = { - s: ['--loglevel', 'silent'], - d: ['--loglevel', 'info'], - dd: ['--loglevel', 'verbose'], - ddd: ['--loglevel', 'silly'], - noreg: ['--no-registry'], - N: ['--no-registry'], - reg: ['--registry'], - 'no-reg': ['--no-registry'], - silent: ['--loglevel', 'silent'], - verbose: ['--loglevel', 'verbose'], - quiet: ['--loglevel', 'warn'], - q: ['--loglevel', 'warn'], - h: ['--usage'], - H: ['--usage'], - '?': ['--usage'], - help: ['--usage'], - v: ['--version'], - f: ['--force'], - desc: ['--description'], - 'no-desc': ['--no-description'], - 'local': ['--no-global'], - l: ['--long'], - m: ['--message'], - p: ['--parseable'], - porcelain: ['--parseable'], - readonly: ['--read-only'], - g: ['--global'], - S: ['--save'], - D: ['--save-dev'], - E: ['--save-exact'], - O: ['--save-optional'], - P: ['--save-prod'], - y: ['--yes'], - n: ['--no-yes'], - B: ['--save-bundle'], - C: ['--prefix'] -} diff --git a/deps/npm/lib/config/fetch-opts.js b/deps/npm/lib/config/fetch-opts.js deleted file mode 100644 index 1a030c378ea..00000000000 --- a/deps/npm/lib/config/fetch-opts.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict' - -const url = require('url') - -module.exports.fromPacote = fromPacote - -function fromPacote (opts) { - return { - cache: getCacheMode(opts), - cacheManager: opts.cache, - ca: opts.ca, - cert: opts.cert, - headers: getHeaders('', opts.registry, opts), - key: opts.key, - localAddress: opts.localAddress, - maxSockets: opts.maxSockets, - proxy: opts.proxy, - referer: opts.refer, - retry: opts.retry, - strictSSL: !!opts.strictSSL, - timeout: opts.timeout, - uid: opts.uid, - gid: opts.gid - } -} - -function getCacheMode (opts) { - return opts.offline - ? 'only-if-cached' - : opts.preferOffline - ? 'force-cache' - : opts.preferOnline - ? 'no-cache' - : 'default' -} - -function getHeaders (uri, registry, opts) { - const headers = Object.assign({ - 'npm-in-ci': opts.isFromCI, - 'npm-scope': opts.projectScope, - 'npm-session': opts.npmSession, - 'user-agent': opts.userAgent, - 'referer': opts.refer - }, opts.headers) - // check for auth settings specific to this registry - let auth = ( - opts.auth && - opts.auth[registryKey(registry)] - ) || opts.auth - // If a tarball is hosted on a different place than the manifest, only send - // credentials on `alwaysAuth` - const shouldAuth = auth && ( - 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}` - } - return headers -} - -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/lib/config/gentle-fs.js b/deps/npm/lib/config/gentle-fs.js deleted file mode 100644 index c4a1f9fa22d..00000000000 --- a/deps/npm/lib/config/gentle-fs.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' - -const npm = require('../npm.js') -const log = require('npmlog') - -module.exports = gentleFSOpts - -function gentleFSOpts (gently, base, abs) { - return { - // never rm the root, prefix, or bin dirs - // - // globals included because of `npm link` -- as far as the package - // requesting the link is concerned, the linked package is always - // installed globally - prefixes: [ - npm.prefix, - npm.globalPrefix, - npm.dir, - npm.root, - npm.globalDir, - npm.bin, - npm.globalBin - ], - absolute: abs, - log: log, - prefix: npm.prefix, - force: npm.config.get('force'), - gently: gently, - base: base, - name: 'npm' - } -} diff --git a/deps/npm/lib/config/get-credentials-by-uri.js b/deps/npm/lib/config/get-credentials-by-uri.js deleted file mode 100644 index d04f6137de9..00000000000 --- a/deps/npm/lib/config/get-credentials-by-uri.js +++ /dev/null @@ -1,72 +0,0 @@ -var assert = require('assert') - -var toNerfDart = require('./nerf-dart.js') - -module.exports = getCredentialsByURI - -function getCredentialsByURI (uri) { - assert(uri && typeof uri === 'string', 'registry URL is required') - var nerfed = toNerfDart(uri) - var defnerf = toNerfDart(this.get('registry')) - - // hidden class micro-optimization - var c = { - scope: nerfed, - token: undefined, - password: undefined, - username: undefined, - email: undefined, - auth: undefined, - alwaysAuth: undefined - } - - // used to override scope matching for tokens as well as legacy auth - if (this.get(nerfed + ':always-auth') !== undefined) { - var val = this.get(nerfed + ':always-auth') - c.alwaysAuth = val === 'false' ? false : !!val - } else if (this.get('always-auth') !== undefined) { - c.alwaysAuth = this.get('always-auth') - } - - if (this.get(nerfed + ':_authToken')) { - c.token = this.get(nerfed + ':_authToken') - // the bearer token is enough, don't confuse things - return c - } - - // Handle the old-style _auth= style for the default - // registry, if set. - var authDef = this.get('_auth') - var userDef = this.get('username') - var passDef = this.get('_password') - if (authDef && !(userDef && passDef)) { - authDef = new Buffer(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') - } else if (nerfed === defnerf && passDef) { - c.password = passDef - } - - if (this.get(nerfed + ':username')) { - c.username = this.get(nerfed + ':username') - } else if (nerfed === defnerf && userDef) { - c.username = userDef - } - - if (this.get(nerfed + ':email')) { - c.email = this.get(nerfed + ':email') - } else if (this.get('email')) { - c.email = this.get('email') - } - - if (c.username && c.password) { - c.auth = new Buffer(c.username + ':' + c.password).toString('base64') - } - - return c -} diff --git a/deps/npm/lib/config/lifecycle.js b/deps/npm/lib/config/lifecycle.js deleted file mode 100644 index 86941edcd8e..00000000000 --- a/deps/npm/lib/config/lifecycle.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' - -const npm = require('../npm.js') -const log = require('npmlog') - -module.exports = lifecycleOpts - -let opts - -function lifecycleOpts (moreOpts) { - if (!opts) { - opts = { - config: npm.config.snapshot, - dir: npm.dir, - failOk: false, - force: npm.config.get('force'), - group: npm.config.get('group'), - ignorePrepublish: npm.config.get('ignore-prepublish'), - ignoreScripts: npm.config.get('ignore-scripts'), - log: log, - nodeOptions: npm.config.get('node-options'), - production: npm.config.get('production'), - scriptShell: npm.config.get('script-shell'), - scriptsPrependNodePath: npm.config.get('scripts-prepend-node-path'), - unsafePerm: npm.config.get('unsafe-perm'), - user: npm.config.get('user') - } - } - - return moreOpts ? Object.assign({}, opts, moreOpts) : opts -} diff --git a/deps/npm/lib/config/load-cafile.js b/deps/npm/lib/config/load-cafile.js deleted file mode 100644 index de8f61625a6..00000000000 --- a/deps/npm/lib/config/load-cafile.js +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = loadCAFile - -var fs = require('fs') - -function loadCAFile (cafilePath, cb) { - if (!cafilePath) return process.nextTick(cb) - - fs.readFile(cafilePath, 'utf8', afterCARead.bind(this)) - - function afterCARead (er, cadata) { - if (er) { - // previous cafile no longer exists, so just continue on gracefully - if (er.code === 'ENOENT') return cb() - return cb(er) - } - - var delim = '-----END CERTIFICATE-----' - var output - - output = cadata - .split(delim) - .filter(function (xs) { - return !!xs.trim() - }) - .map(function (xs) { - return xs.trimLeft() + delim - }) - - this.set('ca', output) - cb(null) - } -} diff --git a/deps/npm/lib/config/load-prefix.js b/deps/npm/lib/config/load-prefix.js deleted file mode 100644 index c2af00c7f61..00000000000 --- a/deps/npm/lib/config/load-prefix.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = loadPrefix - -var findPrefix = require('find-npm-prefix') -var path = require('path') - -function loadPrefix (cb) { - var cli = this.list[0] - - Object.defineProperty(this, 'prefix', - { - set: function (prefix) { - var g = this.get('global') - this[g ? 'globalPrefix' : 'localPrefix'] = prefix - }.bind(this), - get: function () { - var g = this.get('global') - return g ? this.globalPrefix : this.localPrefix - }.bind(this), - enumerable: true - }) - - Object.defineProperty(this, 'globalPrefix', - { - set: function (prefix) { - this.set('prefix', prefix) - }.bind(this), - get: function () { - return path.resolve(this.get('prefix')) - }.bind(this), - enumerable: true - }) - - var p - Object.defineProperty(this, 'localPrefix', - { set: function (prefix) { p = prefix }, - get: function () { return p }, - enumerable: true }) - - // try to guess at a good node_modules location. - // If we are *explicitly* given a prefix on the cli, then - // always use that. otherwise, infer local prefix from cwd. - if (Object.prototype.hasOwnProperty.call(cli, 'prefix')) { - p = path.resolve(cli.prefix) - process.nextTick(cb) - } else { - findPrefix(process.cwd()).then((found) => { - p = found - cb() - }, cb) - } -} diff --git a/deps/npm/lib/config/load-uid.js b/deps/npm/lib/config/load-uid.js deleted file mode 100644 index 859eac7494b..00000000000 --- a/deps/npm/lib/config/load-uid.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = loadUid - -var getUid = require('uid-number') - -// Call in the context of a npmconf object - -function loadUid (cb) { - // if we're not in unsafe-perm mode, then figure out who - // to run stuff as. Do this first, to support `npm update npm -g` - if (!this.get('unsafe-perm')) { - getUid(this.get('user'), this.get('group'), cb) - } else { - process.nextTick(cb) - } -} diff --git a/deps/npm/lib/config/nerf-dart.js b/deps/npm/lib/config/nerf-dart.js deleted file mode 100644 index 8d2bdd26edf..00000000000 --- a/deps/npm/lib/config/nerf-dart.js +++ /dev/null @@ -1,23 +0,0 @@ -var url = require('url') - -module.exports = toNerfDart - -/** - * Maps a URL to an identifier. - * - * Name courtesy schiffertronix media LLC, a New Jersey corporation - * - * @param {String} uri The URL to be nerfed. - * - * @returns {String} A nerfed URL. - */ -function toNerfDart (uri) { - var parsed = url.parse(uri) - delete parsed.protocol - delete parsed.auth - delete parsed.query - delete parsed.search - delete parsed.hash - - return url.resolve(url.format(parsed), '.') -} diff --git a/deps/npm/lib/config/pacote.js b/deps/npm/lib/config/pacote.js deleted file mode 100644 index ec43178c772..00000000000 --- a/deps/npm/lib/config/pacote.js +++ /dev/null @@ -1,139 +0,0 @@ -'use strict' - -const Buffer = require('safe-buffer').Buffer - -const crypto = require('crypto') -const npm = require('../npm') -const log = require('npmlog') -let pack -const path = require('path') - -let effectiveOwner - -const npmSession = crypto.randomBytes(8).toString('hex') -log.verbose('npm-session', npmSession) - -module.exports = pacoteOpts -function pacoteOpts (moreOpts) { - if (!pack) { - pack = require('../pack.js') - } - const ownerStats = calculateOwner() - const opts = { - cache: path.join(npm.config.get('cache'), '_cacache'), - ca: npm.config.get('ca'), - cert: npm.config.get('cert'), - defaultTag: npm.config.get('tag'), - dirPacker: pack.packGitDep, - hashAlgorithm: 'sha1', - key: npm.config.get('key'), - localAddress: npm.config.get('local-address'), - log: log, - maxAge: npm.config.get('cache-min'), - maxSockets: npm.config.get('maxsockets'), - npmSession: npmSession, - offline: npm.config.get('offline'), - preferOffline: npm.config.get('prefer-offline') || npm.config.get('cache-min') > 9999, - preferOnline: npm.config.get('prefer-online') || npm.config.get('cache-max') <= 0, - projectScope: npm.projectScope, - proxy: npm.config.get('https-proxy') || npm.config.get('proxy'), - refer: npm.registry.refer, - registry: npm.config.get('registry'), - retry: { - retries: npm.config.get('fetch-retries'), - factor: npm.config.get('fetch-retry-factor'), - minTimeout: npm.config.get('fetch-retry-mintimeout'), - maxTimeout: npm.config.get('fetch-retry-maxtimeout') - }, - scope: npm.config.get('scope'), - strictSSL: npm.config.get('strict-ssl'), - userAgent: npm.config.get('user-agent'), - - dmode: npm.modes.exec, - fmode: npm.modes.file, - umask: npm.modes.umask - } - - if (ownerStats.uid != null || ownerStats.gid != null) { - Object.assign(opts, ownerStats) - } - - npm.config.keys.forEach(function (k) { - const authMatchGlobal = k.match( - /^(_authToken|username|_password|password|email|always-auth|_auth)$/ - ) - const authMatchScoped = k[0] === '/' && k.match( - /(.*):(_authToken|username|_password|password|email|always-auth|_auth)$/ - ) - - // if it matches scoped it will also match global - if (authMatchGlobal || authMatchScoped) { - let nerfDart = null - let key = null - let val = null - - if (!opts.auth) { opts.auth = {} } - - if (authMatchScoped) { - nerfDart = authMatchScoped[1] - key = authMatchScoped[2] - val = npm.config.get(k) - if (!opts.auth[nerfDart]) { - opts.auth[nerfDart] = { - alwaysAuth: !!npm.config.get('always-auth') - } - } - } else { - key = authMatchGlobal[1] - val = npm.config.get(k) - opts.auth.alwaysAuth = !!npm.config.get('always-auth') - } - - const auth = authMatchScoped ? opts.auth[nerfDart] : opts.auth - if (key === '_authToken') { - auth.token = val - } else if (key.match(/password$/i)) { - auth.password = - // the config file stores password auth already-encoded. pacote expects - // the actual username/password pair. - Buffer.from(val, 'base64').toString('utf8') - } else if (key === 'always-auth') { - auth.alwaysAuth = val === 'false' ? false : !!val - } else { - auth[key] = val - } - } - - if (k[0] === '@') { - if (!opts.scopeTargets) { opts.scopeTargets = {} } - opts.scopeTargets[k.replace(/:registry$/, '')] = npm.config.get(k) - } - }) - - Object.keys(moreOpts || {}).forEach((k) => { - opts[k] = moreOpts[k] - }) - - return opts -} - -function calculateOwner () { - if (!effectiveOwner) { - effectiveOwner = { uid: 0, gid: 0 } - - // Pretty much only on windows - if (!process.getuid) { - return effectiveOwner - } - - effectiveOwner.uid = +process.getuid() - effectiveOwner.gid = +process.getgid() - - if (effectiveOwner.uid === 0) { - if (process.env.SUDO_UID) effectiveOwner.uid = +process.env.SUDO_UID - if (process.env.SUDO_GID) effectiveOwner.gid = +process.env.SUDO_GID - } - } - - return effectiveOwner -} diff --git a/deps/npm/lib/config/reg-client.js b/deps/npm/lib/config/reg-client.js deleted file mode 100644 index d4e2417097f..00000000000 --- a/deps/npm/lib/config/reg-client.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict' - -module.exports = regClientConfig -function regClientConfig (npm, log, config) { - return { - proxy: { - http: config.get('proxy'), - https: config.get('https-proxy'), - localAddress: config.get('local-address') - }, - ssl: { - certificate: config.get('cert'), - key: config.get('key'), - ca: config.get('ca'), - strict: config.get('strict-ssl') - }, - retry: { - retries: config.get('fetch-retries'), - factor: config.get('fetch-retry-factor'), - minTimeout: config.get('fetch-retry-mintimeout'), - maxTimeout: config.get('fetch-retry-maxtimeout') - }, - userAgent: config.get('user-agent'), - log: log, - defaultTag: config.get('tag'), - maxSockets: config.get('maxsockets'), - scope: npm.projectScope - } -} diff --git a/deps/npm/lib/config/set-credentials-by-uri.js b/deps/npm/lib/config/set-credentials-by-uri.js deleted file mode 100644 index 74211380d86..00000000000 --- a/deps/npm/lib/config/set-credentials-by-uri.js +++ /dev/null @@ -1,39 +0,0 @@ -var assert = require('assert') - -var toNerfDart = require('./nerf-dart.js') - -module.exports = setCredentialsByURI - -function setCredentialsByURI (uri, c) { - assert(uri && typeof uri === 'string', 'registry URL is required') - assert(c && typeof c === 'object', 'credentials are required') - - var nerfed = toNerfDart(uri) - - if (c.token) { - this.set(nerfed + ':_authToken', c.token, 'user') - this.del(nerfed + ':_password', 'user') - this.del(nerfed + ':username', 'user') - this.del(nerfed + ':email', 'user') - this.del(nerfed + ':always-auth', 'user') - } else if (c.username || c.password || c.email) { - assert(c.username, 'must include username') - assert(c.password, 'must include password') - assert(c.email, 'must include email address') - - this.del(nerfed + ':_authToken', 'user') - - var encoded = new Buffer(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') - - if (c.alwaysAuth !== undefined) { - this.set(nerfed + ':always-auth', c.alwaysAuth, 'user') - } else { - this.del(nerfed + ':always-auth', 'user') - } - } else { - throw new Error('No credentials to set.') - } -} diff --git a/deps/npm/lib/config/set-user.js b/deps/npm/lib/config/set-user.js deleted file mode 100644 index 14cc21d2ebd..00000000000 --- a/deps/npm/lib/config/set-user.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = setUser - -var assert = require('assert') -var path = require('path') -var fs = require('fs') -var mkdirp = require('mkdirp') - -function setUser (cb) { - var defaultConf = this.root - assert(defaultConf !== Object.prototype) - - // If global, leave it as-is. - // If not global, then set the user to the owner of the prefix folder. - // Just set the default, so it can be overridden. - if (this.get('global')) return cb() - if (process.env.SUDO_UID) { - defaultConf.user = +(process.env.SUDO_UID) - return cb() - } - - var prefix = path.resolve(this.get('prefix')) - mkdirp(prefix, function (er) { - if (er) return cb(er) - fs.stat(prefix, function (er, st) { - defaultConf.user = st && st.uid - return cb(er) - }) - }) -} diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js deleted file mode 100644 index 71e60619c4f..00000000000 --- a/deps/npm/lib/dedupe.js +++ /dev/null @@ -1,160 +0,0 @@ -var util = require('util') -var path = require('path') -var validate = require('aproba') -var without = require('lodash.without') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npa = require('npm-package-arg') -var log = require('npmlog') -var npm = require('./npm.js') -var Installer = require('./install.js').Installer -var findRequirement = require('./install/deps.js').findRequirement -var earliestInstallable = require('./install/deps.js').earliestInstallable -var checkPermissions = require('./install/check-permissions.js') -var decomposeActions = require('./install/decompose-actions.js') -var loadExtraneous = require('./install/deps.js').loadExtraneous -var computeMetadata = require('./install/deps.js').computeMetadata -var sortActions = require('./install/diff-trees.js').sortActions -var moduleName = require('./utils/module-name.js') -var packageId = require('./utils/package-id.js') -var childPath = require('./utils/child-path.js') -var usage = require('./utils/usage') -var getRequested = require('./install/get-requested.js') - -module.exports = dedupe -module.exports.Deduper = Deduper - -dedupe.usage = usage( - 'dedupe', - 'npm dedupe' -) - -function dedupe (args, cb) { - validate('AF', arguments) - // the /path/to/node_modules/.. - var where = path.resolve(npm.dir, '..') - var dryrun = false - if (npm.command.match(/^find/)) dryrun = true - if (npm.config.get('dry-run')) dryrun = true - if (dryrun && !npm.config.get('json')) npm.config.set('parseable', true) - - new Deduper(where, dryrun).run(cb) -} - -function Deduper (where, dryrun) { - validate('SB', arguments) - Installer.call(this, where, dryrun, []) - this.noPackageJsonOk = true - this.topLevelLifecycles = false -} -util.inherits(Deduper, Installer) - -Deduper.prototype.loadIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadIdealTree') - - var self = this - chain([ - [this.newTracker(this.progress.loadIdealTree, 'cloneCurrentTree')], - [this, this.cloneCurrentTreeToIdealTree], - [this, this.finishTracker, 'cloneCurrentTree'], - - [this.newTracker(this.progress.loadIdealTree, 'loadAllDepsIntoIdealTree', 10)], - [ function (next) { - loadExtraneous(self.idealTree, self.progress.loadAllDepsIntoIdealTree, next) - } ], - [this, this.finishTracker, 'loadAllDepsIntoIdealTree'], - - [this, andComputeMetadata(this.idealTree)] - ], cb) -} - -function andComputeMetadata (tree) { - return function (next) { - next(null, computeMetadata(tree)) - } -} - -Deduper.prototype.generateActionsToTake = function (cb) { - validate('F', arguments) - log.silly('dedupe', 'generateActionsToTake') - chain([ - [this.newTracker(log, 'hoist', 1)], - [hoistChildren, this.idealTree, this.differences], - [this, this.finishTracker, 'hoist'], - [this.newTracker(log, 'sort-actions', 1)], - [this, function (next) { - this.differences = sortActions(this.differences) - next() - }], - [this, this.finishTracker, 'sort-actions'], - [checkPermissions, this.differences], - [decomposeActions, this.differences, this.todo] - ], cb) -} - -function move (node, hoistTo, diff) { - node.parent.children = without(node.parent.children, node) - hoistTo.children.push(node) - node.fromPath = node.path - node.path = childPath(hoistTo.path, node) - node.parent = hoistTo - if (!diff.filter(function (action) { return action[0] === 'move' && action[1] === node }).length) { - diff.push(['move', node]) - } -} - -function moveRemainingChildren (node, diff) { - node.children.forEach(function (child) { - move(child, node, diff) - moveRemainingChildren(child, diff) - }) -} - -function remove (child, diff, done) { - remove_(child, diff, new Set(), done) -} - -function remove_ (child, diff, seen, done) { - if (seen.has(child)) return done() - seen.add(child) - diff.push(['remove', child]) - child.parent.children = without(child.parent.children, child) - asyncMap(child.children, function (child, next) { - remove_(child, diff, seen, next) - }, done) -} - -function hoistChildren (tree, diff, next) { - hoistChildren_(tree, diff, new Set(), next) -} - -function hoistChildren_ (tree, diff, seen, next) { - validate('OAOF', arguments) - if (seen.has(tree)) return next() - seen.add(tree) - asyncMap(tree.children, function (child, done) { - if (!tree.parent) return hoistChildren_(child, diff, seen, done) - var better = findRequirement(tree.parent, moduleName(child), getRequested(child) || npa(packageId(child))) - if (better) { - return chain([ - [remove, child, diff], - [andComputeMetadata(tree)] - ], done) - } - var hoistTo = earliestInstallable(tree, tree.parent, child.package) - if (hoistTo) { - move(child, hoistTo, diff) - chain([ - [andComputeMetadata(hoistTo)], - [hoistChildren_, child, diff, seen], - [ function (next) { - moveRemainingChildren(child, diff) - next() - } ] - ], done) - } else { - done() - } - }, next) -} diff --git a/deps/npm/lib/deprecate.js b/deps/npm/lib/deprecate.js deleted file mode 100644 index 15ae58e0145..00000000000 --- a/deps/npm/lib/deprecate.js +++ /dev/null @@ -1,54 +0,0 @@ -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') - -module.exports = deprecate - -deprecate.usage = 'npm deprecate [@] ' - -deprecate.completion = function (opts, cb) { - // first, get a list of remote packages this user owns. - // once we have a user account, then don't complete anything. - if (opts.conf.argv.remain.length > 2) return cb() - // get the list of packages by user - var path = '/-/by-user/' - mapToRegistry(path, npm.config, function (er, uri, c) { - if (er) return cb(er) - - if (!(c && c.username)) return cb() - - var params = { - timeout: 60000, - auth: c - } - npm.registry.get(uri + c.username, params, function (er, list) { - if (er) return cb() - console.error(list) - return cb(null, list[c.username]) - }) - }) -} - -function deprecate (args, cb) { - var pkg = args[0] - var msg = args[1] - if (msg === undefined) return cb('Usage: ' + deprecate.usage) - - // fetch the data and make sure it exists. - var p = npa(pkg) - - // npa makes the default spec "latest", but for deprecation - // "*" is the appropriate default. - var spec = p.rawSpec === '' ? '*' : p.fetchSpec - - mapToRegistry(p.name, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - version: spec, - message: msg, - auth: auth - } - npm.registry.deprecate(uri, params, cb) - }) -} diff --git a/deps/npm/lib/dist-tag.js b/deps/npm/lib/dist-tag.js deleted file mode 100644 index 7c20ea99015..00000000000 --- a/deps/npm/lib/dist-tag.js +++ /dev/null @@ -1,158 +0,0 @@ -module.exports = distTag - -var log = require('npmlog') -var npa = require('npm-package-arg') -var semver = require('semver') - -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') -var readLocalPkg = require('./utils/read-local-package.js') -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -distTag.usage = usage( - 'dist-tag', - 'npm dist-tag add @ []' + - '\nnpm dist-tag rm ' + - '\nnpm dist-tag ls []' -) - -distTag.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, ['add', 'rm', 'ls']) - } - - switch (argv[2]) { - default: - return cb() - } -} - -function distTag (args, cb) { - var cmd = args.shift() - switch (cmd) { - case 'add': case 'a': case 'set': case 's': - return add(args[0], args[1], cb) - case 'rm': case 'r': case 'del': case 'd': case 'remove': - return remove(args[1], args[0], cb) - case 'ls': case 'l': case 'sl': case 'list': - return list(args[0], cb) - default: - return cb('Usage:\n' + distTag.usage) - } -} - -function add (spec, tag, cb) { - var thing = npa(spec || '') - var pkg = thing.name - var version = thing.rawSpec - var t = (tag || npm.config.get('tag')).trim() - - log.verbose('dist-tag add', t, 'to', pkg + '@' + version) - - if (!pkg || !version || !t) return cb('Usage:\n' + distTag.usage) - - if (semver.validRange(t)) { - var er = new Error('Tag name must not be a valid SemVer range: ' + t) - return cb(er) - } - - fetchTags(pkg, function (er, tags) { - if (er) return cb(er) - - if (tags[t] === version) { - log.warn('dist-tag add', t, 'is already set to version', version) - return cb() - } - tags[t] = version - - mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { - var params = { - 'package': pkg, - distTag: t, - version: version, - auth: auth - } - - npm.registry.distTags.add(base, params, function (er) { - if (er) return cb(er) - - output('+' + t + ': ' + pkg + '@' + version) - cb() - }) - }) - }) -} - -function remove (tag, pkg, cb) { - log.verbose('dist-tag del', tag, 'from', pkg) - - fetchTags(pkg, function (er, tags) { - if (er) return cb(er) - - if (!tags[tag]) { - log.info('dist-tag del', tag, 'is not a dist-tag on', pkg) - return cb(new Error(tag + ' is not a dist-tag on ' + pkg)) - } - - var version = tags[tag] - delete tags[tag] - - mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { - var params = { - 'package': pkg, - distTag: tag, - auth: auth - } - - npm.registry.distTags.rm(base, params, function (er) { - if (er) return cb(er) - - output('-' + tag + ': ' + pkg + '@' + version) - cb() - }) - }) - }) -} - -function list (pkg, cb) { - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(distTag.usage) - list(pkg, cb) - }) - } - - fetchTags(pkg, function (er, tags) { - if (er) { - log.error('dist-tag ls', "Couldn't get dist-tag data for", pkg) - return cb(er) - } - var msg = Object.keys(tags).map(function (k) { - return k + ': ' + tags[k] - }).sort().join('\n') - output(msg) - cb(er, tags) - }) -} - -function fetchTags (pkg, cb) { - mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { - if (er) return cb(er) - - var params = { - 'package': pkg, - auth: auth - } - npm.registry.distTags.fetch(base, params, function (er, tags) { - if (er) return cb(er) - if (!tags || !Object.keys(tags).length) { - return cb(new Error('No dist-tags found for ' + pkg)) - } - - cb(null, tags) - }) - }) -} diff --git a/deps/npm/lib/docs.js b/deps/npm/lib/docs.js deleted file mode 100644 index 2248702a461..00000000000 --- a/deps/npm/lib/docs.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = docs - -var npm = require('./npm.js') -var opener = require('opener') -var log = require('npmlog') -var fetchPackageMetadata = require('./fetch-package-metadata.js') -var usage = require('./utils/usage') - -docs.usage = usage( - 'docs', - 'npm docs ' + - '\nnpm docs .' -) -docs.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function docs (args, cb) { - if (!args || !args.length) args = ['.'] - var pending = args.length - log.silly('docs', args) - args.forEach(function (proj) { - getDoc(proj, function (err) { - if (err) { - return cb(err) - } - --pending || cb() - }) - }) -} - -function getDoc (project, cb) { - log.silly('getDoc', project) - fetchPackageMetadata(project, '.', {fullMetadata: true}, function (er, d) { - 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) - }) -} diff --git a/deps/npm/lib/doctor.js b/deps/npm/lib/doctor.js deleted file mode 100644 index 95ede1bc872..00000000000 --- a/deps/npm/lib/doctor.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict' - -const ansiTrim = require('./utils/ansi-trim') -const chain = require('slide').chain -const color = require('ansicolors') -const defaultRegistry = require('./config/defaults').defaults.registry -const log = require('npmlog') -const npm = require('./npm') -const output = require('./utils/output') -const path = require('path') -const semver = require('semver') -const styles = require('ansistyles') -const table = require('text-table') - -// steps -const checkFilesPermission = require('./doctor/check-files-permission') -const checkPing = require('./doctor/check-ping') -const getGitPath = require('./doctor/get-git-path') -const getLatestNodejsVersion = require('./doctor/get-latest-nodejs-version') -const getLatestNpmVersion = require('./doctor/get-latest-npm-version') -const verifyCachedFiles = require('./doctor/verify-cached-files') - -const globalNodeModules = path.join(npm.config.globalPrefix, 'lib', 'node_modules') -const localNodeModules = path.join(npm.config.localPrefix, 'node_modules') - -module.exports = doctor - -doctor.usage = 'npm doctor' - -function doctor (args, silent, cb) { - args = args || {} - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - const actionsToRun = [ - [checkPing], - [getLatestNpmVersion], - [getLatestNodejsVersion, args['node-url']], - [getGitPath], - [checkFilesPermission, npm.cache, 4, 6], - [checkFilesPermission, globalNodeModules, 4, 4], - [checkFilesPermission, localNodeModules, 6, 6], - [verifyCachedFiles, path.join(npm.cache, '_cacache')] - ] - - log.info('doctor', 'Running checkup') - chain(actionsToRun, function (stderr, stdout) { - if (stderr && stderr.message !== 'not found: git') return cb(stderr) - const list = makePretty(stdout) - let outHead = ['Check', 'Value', 'Recommendation'] - let outBody = list - - if (npm.color) { - outHead = outHead.map(function (item) { - return styles.underline(item) - }) - outBody = outBody.map(function (item) { - if (item[2]) { - item[0] = color.red(item[0]) - item[2] = color.magenta(item[2]) - } - return item - }) - } - - const outTable = [outHead].concat(outBody) - const tableOpts = { - stringLength: function (s) { return ansiTrim(s).length } - } - - if (!silent) output(table(outTable, tableOpts)) - - cb(null, list) - }) -} - -function makePretty (p) { - const ping = p[1] - const npmLTS = p[2] - const nodeLTS = p[3].replace('v', '') - const whichGit = p[4] || 'not installed' - const readbleCaches = p[5] ? 'ok' : 'notOk' - const executableGlobalModules = p[6] ? 'ok' : 'notOk' - const executableLocalModules = p[7] ? 'ok' : 'notOk' - const cacheStatus = p[8] ? `verified ${p[8].verifiedContent} tarballs` : 'notOk' - const npmV = npm.version - const nodeV = process.version.replace('v', '') - const registry = npm.config.get('registry') - const list = [ - ['npm ping', ping], - ['npm -v', 'v' + npmV], - ['node -v', 'v' + nodeV], - ['npm config get registry', registry], - ['which git', whichGit], - ['Perms check on cached files', readbleCaches], - ['Perms check on global node_modules', executableGlobalModules], - ['Perms check on local node_modules', executableLocalModules], - ['Verify cache contents', cacheStatus] - ] - - if (p[0] !== 200) list[0][2] = 'Check your internet connection' - if (!semver.satisfies(npmV, '>=' + npmLTS)) list[1][2] = 'Use npm v' + npmLTS - if (!semver.satisfies(nodeV, '>=' + nodeLTS)) list[2][2] = 'Use node v' + nodeLTS - if (registry !== defaultRegistry) list[3][2] = 'Try `npm config set registry ' + defaultRegistry + '`' - if (whichGit === 'not installed') list[4][2] = 'Install git and ensure it\'s in your PATH.' - if (readbleCaches !== 'ok') list[5][2] = 'Check the permissions of your files in ' + npm.config.get('cache') - if (executableGlobalModules !== 'ok') list[6][2] = globalNodeModules + ' must be readable and writable by the current user.' - if (executableLocalModules !== 'ok') list[7][2] = localNodeModules + ' must be readable and writable by the current user.' - - return list -} diff --git a/deps/npm/lib/doctor/check-files-permission.js b/deps/npm/lib/doctor/check-files-permission.js deleted file mode 100644 index 1cefb6e64ce..00000000000 --- a/deps/npm/lib/doctor/check-files-permission.js +++ /dev/null @@ -1,57 +0,0 @@ -var fs = require('fs') -var path = require('path') -var getUid = require('uid-number') -var chain = require('slide').chain -var log = require('npmlog') -var npm = require('../npm.js') -var fileCompletion = require('../utils/completion/file-completion.js') - -function checkFilesPermission (root, fmask, dmask, cb) { - if (process.platform === 'win32') return cb(null, true) - getUid(npm.config.get('user'), npm.config.get('group'), function (e, uid, gid) { - var tracker = log.newItem('checkFilePermissions', 1) - if (e) { - tracker.finish() - tracker.warn('checkFilePermissions', 'Error looking up user and group:', e) - return cb(e) - } - tracker.info('checkFilePermissions', 'Building file list of ' + root) - fileCompletion(root, '.', Infinity, function (e, files) { - if (e) { - tracker.warn('checkFilePermissions', 'Error building file list:', e) - tracker.finish() - return cb(e) - } - tracker.addWork(files.length) - tracker.completeWork(1) - chain(files.map(andCheckFile), function (er) { - tracker.finish() - cb(null, !er) - }) - function andCheckFile (f) { - return [checkFile, f] - } - function checkFile (f, next) { - var file = path.join(root, f) - tracker.silly('checkFilePermissions', f) - fs.lstat(file, function (e, stat) { - tracker.completeWork(1) - if (e) return next(e) - if (!stat.isDirectory() && !stat.isFile()) return next() - // 6 = fs.constants.R_OK | fs.constants.W_OK - // constants aren't available on v4 - fs.access(file, stat.isFile() ? fmask : dmask, (err) => { - if (err) { - tracker.error('checkFilePermissions', `Missing permissions on ${file}`) - return next(new Error('Missing permissions for ' + file)) - } else { - return next() - } - }) - }) - } - }) - }) -} - -module.exports = checkFilesPermission diff --git a/deps/npm/lib/doctor/check-ping.js b/deps/npm/lib/doctor/check-ping.js deleted file mode 100644 index e7e82902a71..00000000000 --- a/deps/npm/lib/doctor/check-ping.js +++ /dev/null @@ -1,12 +0,0 @@ -var log = require('npmlog') -var ping = require('../ping.js') - -function checkPing (cb) { - var tracker = log.newItem('checkPing', 1) - tracker.info('checkPing', 'Pinging registry') - ping({}, true, (_err, pong, data, res) => { - cb(null, [res.statusCode, res.statusMessage]) - }) -} - -module.exports = checkPing diff --git a/deps/npm/lib/doctor/get-git-path.js b/deps/npm/lib/doctor/get-git-path.js deleted file mode 100644 index 5b00e9d54e6..00000000000 --- a/deps/npm/lib/doctor/get-git-path.js +++ /dev/null @@ -1,13 +0,0 @@ -var log = require('npmlog') -var which = require('which') - -function getGitPath (cb) { - var tracker = log.newItem('getGitPath', 1) - tracker.info('getGitPath', 'Finding git in your PATH') - which('git', function (err, path) { - tracker.finish() - cb(err, path) - }) -} - -module.exports = getGitPath diff --git a/deps/npm/lib/doctor/get-latest-nodejs-version.js b/deps/npm/lib/doctor/get-latest-nodejs-version.js deleted file mode 100644 index 1586b087a0b..00000000000 --- a/deps/npm/lib/doctor/get-latest-nodejs-version.js +++ /dev/null @@ -1,27 +0,0 @@ -var log = require('npmlog') -var request = require('request') -var semver = require('semver') - -function getLatestNodejsVersion (url, cb) { - var tracker = log.newItem('getLatestNodejsVersion', 1) - tracker.info('getLatestNodejsVersion', 'Getting Node.js release information') - var version = 'v0.0.0' - url = url || 'https://nodejs.org/dist/index.json' - request(url, function (e, res, index) { - tracker.finish() - if (e) return cb(e) - if (res.statusCode !== 200) { - return cb(new Error('Status not 200, ' + res.statusCode)) - } - try { - JSON.parse(index).forEach(function (item) { - if (item.lts && semver.gt(item.version, version)) version = item.version - }) - cb(null, version) - } catch (e) { - cb(e) - } - }) -} - -module.exports = getLatestNodejsVersion diff --git a/deps/npm/lib/doctor/get-latest-npm-version.js b/deps/npm/lib/doctor/get-latest-npm-version.js deleted file mode 100644 index 5a096ab8950..00000000000 --- a/deps/npm/lib/doctor/get-latest-npm-version.js +++ /dev/null @@ -1,14 +0,0 @@ -var log = require('npmlog') -var fetchPackageMetadata = require('../fetch-package-metadata') - -function getLatestNpmVersion (cb) { - var tracker = log.newItem('getLatestNpmVersion', 1) - tracker.info('getLatestNpmVersion', 'Getting npm package information') - fetchPackageMetadata('npm@latest', '.', {}, function (err, d) { - tracker.finish() - if (err) { return cb(err) } - cb(null, d.version) - }) -} - -module.exports = getLatestNpmVersion diff --git a/deps/npm/lib/doctor/verify-cached-files.js b/deps/npm/lib/doctor/verify-cached-files.js deleted file mode 100644 index f00dbd62560..00000000000 --- a/deps/npm/lib/doctor/verify-cached-files.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict' - -const cacache = require('cacache') -const log = require('npmlog') - -module.exports = verifyCachedFiles -function verifyCachedFiles (cache, cb) { - log.info('verifyCachedFiles', `Verifying cache at ${cache}`) - cacache.verify(cache).then((stats) => { - log.info('verifyCachedFiles', `Verification complete. Stats: ${JSON.stringify(stats, 2)}`) - if (stats.reclaimedCount || stats.badContentCount || stats.missingContent) { - stats.badContentCount && log.warn('verifyCachedFiles', `Corrupted content removed: ${stats.badContentCount}`) - stats.reclaimedCount && log.warn('verifyCachedFiles', `Content garbage-collected: ${stats.reclaimedCount} (${stats.reclaimedSize} bytes)`) - stats.missingContent && log.warn('verifyCachedFiles', `Missing content: ${stats.missingContent}`) - log.warn('verifyCachedFiles', 'Cache issues have been fixed') - } - return stats - }).then((s) => cb(null, s), cb) -} diff --git a/deps/npm/lib/edit.js b/deps/npm/lib/edit.js deleted file mode 100644 index 8e9bbd17970..00000000000 --- a/deps/npm/lib/edit.js +++ /dev/null @@ -1,35 +0,0 @@ -// npm edit -// open the package folder in the $EDITOR - -module.exports = edit -edit.usage = 'npm edit [@]' - -edit.completion = require('./utils/completion/installed-shallow.js') - -var npm = require('./npm.js') -var path = require('path') -var fs = require('graceful-fs') -var editor = require('editor') -var noProgressTillDone = require('./utils/no-progress-while-running').tillDone - -function edit (args, cb) { - var p = args[0] - if (args.length !== 1 || !p) return cb(edit.usage) - var e = npm.config.get('editor') - if (!e) { - return cb(new Error( - "No editor set. Set the 'editor' config, or $EDITOR environ." - )) - } - p = p.split('/') - .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) - editor(f, { editor: e }, noProgressTillDone(function (er) { - if (er) return cb(er) - npm.commands.rebuild(args, cb) - })) - }) -} diff --git a/deps/npm/lib/explore.js b/deps/npm/lib/explore.js deleted file mode 100644 index 826a527fa7e..00000000000 --- a/deps/npm/lib/explore.js +++ /dev/null @@ -1,59 +0,0 @@ -// npm explore [@] -// open a subshell to the package folder. - -module.exports = explore -explore.usage = 'npm explore [ -- ]' -explore.completion = require('./utils/completion/installed-shallow.js') - -var npm = require('./npm.js') -var spawn = require('./utils/spawn') -var path = require('path') -var fs = require('graceful-fs') -var isWindowsShell = require('./utils/is-windows-shell.js') -var escapeExecPath = require('./utils/escape-exec-path.js') -var escapeArg = require('./utils/escape-arg.js') -var output = require('./utils/output.js') - -function explore (args, cb) { - if (args.length < 1 || !args[0]) return cb(explore.usage) - var p = args.shift() - - var cwd = path.resolve(npm.dir, p) - var opts = {cwd: cwd, stdio: 'inherit'} - - var shellArgs = [] - if (args) { - if (isWindowsShell) { - var execCmd = escapeExecPath(args.shift()) - var execArgs = [execCmd].concat(args.map(escapeArg)) - opts.windowsVerbatimArguments = true - shellArgs = ['/d', '/s', '/c'].concat(execArgs) - } else { - shellArgs.unshift('-c') - shellArgs = ['-c', args.map(escapeArg).join(' ').trim()] - } - } - - var sh = npm.config.get('shell') - fs.stat(cwd, function (er, s) { - if (er || !s.isDirectory()) { - return cb(new Error( - "It doesn't look like " + p + ' is installed.' - )) - } - - if (!shellArgs.length) { - output( - '\nExploring ' + cwd + '\n' + - "Type 'exit' or ^D when finished\n" - ) - } - - var shell = spawn(sh, shellArgs, opts) - shell.on('close', function (er) { - // only fail if non-interactive. - if (!shellArgs.length) return cb() - cb(er) - }) - }) -} diff --git a/deps/npm/lib/fetch-package-metadata.js b/deps/npm/lib/fetch-package-metadata.js deleted file mode 100644 index cca6dc64f41..00000000000 --- a/deps/npm/lib/fetch-package-metadata.js +++ /dev/null @@ -1,118 +0,0 @@ -'use strict' - -const deprCheck = require('./utils/depr-check') -const path = require('path') -const log = require('npmlog') -const readPackageTree = require('read-package-tree') -const rimraf = require('rimraf') -const validate = require('aproba') -const npa = require('npm-package-arg') -const npm = require('./npm') -const npmlog = require('npmlog') -const limit = require('call-limit') -const tempFilename = require('./utils/temp-filename') -const pacote = require('pacote') -let pacoteOpts -const isWindows = require('./utils/is-windows.js') - -function andLogAndFinish (spec, tracker, done) { - validate('SOF|SZF|OOF|OZF', [spec, tracker, done]) - return (er, pkg) => { - if (er) { - log.silly('fetchPackageMetaData', 'error for ' + String(spec), er.message) - if (tracker) tracker.finish() - } - return done(er, pkg) - } -} - -const CACHE = require('lru-cache')({ - max: 300 * 1024 * 1024, - length: (p) => p._contentLength -}) - -module.exports = limit(fetchPackageMetadata, npm.limit.fetch) -function fetchPackageMetadata (spec, where, opts, done) { - validate('SSOF|SSFZ|OSOF|OSFZ', [spec, where, opts, done]) - - if (!done) { - done = opts - opts = {} - } - var tracker = opts.tracker - const logAndFinish = andLogAndFinish(spec, tracker, done) - - if (typeof spec === 'object') { - var dep = spec - } else { - dep = npa(spec) - } - if (!isWindows && dep.type === 'directory' && /^[a-zA-Z]:/.test(dep.fetchSpec)) { - var err = new Error(`Can't install from windows path on a non-windows system: ${dep.fetchSpec.replace(/[/]/g, '\\')}`) - err.code = 'EWINDOWSPATH' - return logAndFinish(err) - } - if (!pacoteOpts) { - pacoteOpts = require('./config/pacote') - } - pacote.manifest(dep, pacoteOpts({ - annotate: true, - fullMetadata: opts.fullMetadata, - log: tracker || npmlog, - memoize: CACHE, - where: where - })).then( - (pkg) => logAndFinish(null, deprCheck(pkg)), - (err) => { - if (dep.type !== 'directory') return logAndFinish(err) - if (err.code === 'ENOTDIR') { - var enolocal = new Error(`Could not install "${path.relative(process.cwd(), dep.fetchSpec)}" as it is not a directory and is not a file with a name ending in .tgz, .tar.gz or .tar`) - enolocal.code = 'ENOLOCAL' - if (err.stack) enolocal.stack = err.stack - return logAndFinish(enolocal) - } else if (err.code === 'ENOPACKAGEJSON') { - var enopackage = new Error(`Could not install from "${path.relative(process.cwd(), dep.fetchSpec)}" as it does not contain a package.json file.`) - enopackage.code = 'ENOLOCAL' - if (err.stack) enopackage.stack = err.stack - return logAndFinish(enopackage) - } else { - return logAndFinish(err) - } - } - ) -} - -module.exports.addBundled = addBundled -function addBundled (pkg, next) { - validate('OF', arguments) - if (!pacoteOpts) { - pacoteOpts = require('./config/pacote') - } - if (pkg._bundled !== undefined) return next(null, pkg) - - if (!pkg.bundleDependencies && pkg._requested.type !== 'directory') return next(null, pkg) - const requested = pkg._requested || npa(pkg._from) - if (requested.type === 'directory') { - pkg._bundled = null - return readPackageTree(pkg._requested.fetchSpec, function (er, tree) { - if (tree) pkg._bundled = tree.children - return next(null, pkg) - }) - } - pkg._bundled = null - const target = tempFilename('unpack') - const opts = pacoteOpts({integrity: pkg._integrity}) - pacote.extract(pkg._resolved || pkg._requested || npa.resolve(pkg.name, pkg.version), target, opts).then(() => { - log.silly('addBundled', 'read tarball') - readPackageTree(target, (err, tree) => { - if (err) { return next(err) } - log.silly('cleanup', 'remove extracted module') - rimraf(target, function () { - if (tree) { - pkg._bundled = tree.children - } - next(null, pkg) - }) - }) - }, next) -} diff --git a/deps/npm/lib/fetch-package-metadata.md b/deps/npm/lib/fetch-package-metadata.md deleted file mode 100644 index 6fe4beac6ee..00000000000 --- a/deps/npm/lib/fetch-package-metadata.md +++ /dev/null @@ -1,37 +0,0 @@ -fetch-package-metadata ----------------------- - - var fetchPackageMetadata = require("npm/lib/fetch-package-metadata") - fetchPackageMetadata(spec, contextdir, callback) - -This will get package metadata (and if possible, ONLY package metadata) for -a specifier as passed to `npm install` et al, eg `npm@next` or `npm@^2.0.3` - -## fetchPackageMetadata(*spec*, *contextdir*, *tracker*, *callback*) - -* *spec* **string** | **object** -- The package specifier, can be anything npm can - understand (see [realize-package-specifier]), or it can be the result from - realize-package-specifier or npm-package-arg (for non-local deps). - -* *contextdir* **string** -- The directory from which relative paths to - local packages should be resolved. - -* *tracker* **object** -- **(optional)** An are-we-there-yet tracker group as - provided by `npm.log.newGroup()`. - -* *callback* **function (er, package)** -- Called when the package information - has been loaded. `package` is the object for of the `package.json` - matching the requested spec. In the case of named packages, it comes from - the registry and thus may not exactly match what's found in the associated - tarball. - -[realize-package-specifier]: (https://github.com/npm/realize-package-specifier) - -In the case of tarballs and git repos, it will use the cache to download -them in order to get the package metadata. For named packages, only the -metadata is downloaded (eg https://registry.npmjs.org/package). For local -directories, the package.json is read directly. For local tarballs, the -tarball is streamed in memory and just the package.json is extracted from -it. (Due to the nature of tars, having the package.json early in the file -will result in it being loaded faster– the extractor short-circuits the -uncompress/untar streams as best as it can.) diff --git a/deps/npm/lib/get.js b/deps/npm/lib/get.js deleted file mode 100644 index 8dc805ec560..00000000000 --- a/deps/npm/lib/get.js +++ /dev/null @@ -1,12 +0,0 @@ - -module.exports = get - -get.usage = 'npm get (See `npm config`)' - -var npm = require('./npm.js') - -get.completion = npm.commands.config.completion - -function get (args, cb) { - npm.commands.config(['get'].concat(args), cb) -} diff --git a/deps/npm/lib/help-search.js b/deps/npm/lib/help-search.js deleted file mode 100644 index ffbe554b7bc..00000000000 --- a/deps/npm/lib/help-search.js +++ /dev/null @@ -1,212 +0,0 @@ - -module.exports = helpSearch - -var fs = require('graceful-fs') -var path = require('path') -var asyncMap = require('slide').asyncMap -var npm = require('./npm.js') -var glob = require('glob') -var color = require('ansicolors') -var output = require('./utils/output.js') - -helpSearch.usage = 'npm help-search ' - -function helpSearch (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - if (!args.length) return cb(helpSearch.usage) - - var docPath = path.resolve(__dirname, '..', 'doc') - return glob(docPath + '/*/*.md', function (er, files) { - if (er) return cb(er) - readFiles(files, function (er, data) { - if (er) return cb(er) - searchFiles(args, data, function (er, results) { - if (er) return cb(er) - formatResults(args, results, cb) - }) - }) - }) -} - -function readFiles (files, cb) { - var res = {} - asyncMap(files, function (file, cb) { - fs.readFile(file, 'utf8', function (er, data) { - res[file] = data - return cb(er) - }) - }, function (er) { - return cb(er, res) - }) -} - -function searchFiles (args, files, cb) { - var results = [] - Object.keys(files).forEach(function (file) { - var data = files[file] - - // skip if no matches at all - var match - for (var a = 0, l = args.length; a < l && !match; a++) { - match = data.toLowerCase().indexOf(args[a].toLowerCase()) !== -1 - } - if (!match) return - - var lines = data.split(/\n+/) - - // if a line has a search term, then skip it and the next line. - // if the next line has a search term, then skip all 3 - // otherwise, set the line to null. then remove the nulls. - l = lines.length - for (var i = 0; i < l; i++) { - var line = lines[i] - var nextLine = lines[i + 1] - var ll - - match = false - if (nextLine) { - for (a = 0, ll = args.length; a < ll && !match; a++) { - match = nextLine.toLowerCase() - .indexOf(args[a].toLowerCase()) !== -1 - } - if (match) { - // skip over the next line, and the line after it. - i += 2 - continue - } - } - - match = false - for (a = 0, ll = args.length; a < ll && !match; a++) { - match = line.toLowerCase().indexOf(args[a].toLowerCase()) !== -1 - } - if (match) { - // skip over the next line - i++ - continue - } - - lines[i] = null - } - - // now squish any string of nulls into a single null - lines = lines.reduce(function (l, r) { - if (!(r === null && l[l.length - 1] === null)) l.push(r) - return l - }, []) - - if (lines[lines.length - 1] === null) lines.pop() - if (lines[0] === null) lines.shift() - - // now see how many args were found at all. - var found = {} - var totalHits = 0 - lines.forEach(function (line) { - args.forEach(function (arg) { - var hit = (line || '').toLowerCase() - .split(arg.toLowerCase()).length - 1 - if (hit > 0) { - found[arg] = (found[arg] || 0) + hit - totalHits += hit - } - }) - }) - - var cmd = 'npm help ' - if (path.basename(path.dirname(file)) === 'api') { - cmd = 'npm apihelp ' - } - cmd += path.basename(file, '.md').replace(/^npm-/, '') - results.push({ - file: file, - cmd: cmd, - lines: lines, - found: Object.keys(found), - hits: found, - totalHits: totalHits - }) - }) - - // if only one result, then just show that help section. - if (results.length === 1) { - return npm.commands.help([results[0].file.replace(/\.md$/, '')], cb) - } - - if (results.length === 0) { - output('No results for ' + args.map(JSON.stringify).join(' ')) - return cb() - } - - // sort results by number of results found, then by number of hits - // 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 - }) - - cb(null, results) -} - -function formatResults (args, results, cb) { - if (!results) return cb(null) - - var cols = Math.min(process.stdout.columns || Infinity, 80) + 1 - - var out = results.map(function (res) { - var out = res.cmd - var r = Object.keys(res.hits) - .map(function (k) { - return k + ':' + res.hits[k] - }).sort(function (a, b) { - return a > b ? 1 : -1 - }).join(' ') - - out += ((new Array(Math.max(1, cols - out.length - r.length))) - .join(' ')) + r - - if (!npm.config.get('long')) return out - - out = '\n\n' + out + '\n' + - (new Array(cols)).join('—') + '\n' + - res.lines.map(function (line, i) { - if (line === null || i > 3) return '' - for (var out = line, a = 0, l = args.length; a < l; a++) { - var finder = out.toLowerCase().split(args[a].toLowerCase()) - var newOut = '' - var p = 0 - - finder.forEach(function (f) { - newOut += out.substr(p, f.length) - - var hilit = out.substr(p + f.length, args[a].length) - if (npm.color) hilit = color.bgBlack(color.red(hilit)) - newOut += hilit - - p += f.length + args[a].length - }) - } - - return newOut - }).join('\n').trim() - return out - }).join('\n') - - if (results.length && !npm.config.get('long')) { - out = 'Top hits for ' + (args.map(JSON.stringify).join(' ')) + '\n' + - (new Array(cols)).join('—') + '\n' + - out + '\n' + - (new Array(cols)).join('—') + '\n' + - '(run with -l or --long to see more context)' - } - - output(out.trim()) - cb(null, results) -} diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js deleted file mode 100644 index 64c80f78745..00000000000 --- a/deps/npm/lib/help.js +++ /dev/null @@ -1,247 +0,0 @@ - -module.exports = help - -help.completion = function (opts, cb) { - if (opts.conf.argv.remain.length > 2) return cb(null, []) - getSections(cb) -} - -var path = require('path') -var spawn = require('./utils/spawn') -var npm = require('./npm.js') -var log = require('npmlog') -var opener = require('opener') -var glob = require('glob') -var didYouMean = require('./utils/did-you-mean') -var cmdList = require('./config/cmd-list').cmdList -var shorthands = require('./config/cmd-list').shorthands -var commands = cmdList.concat(Object.keys(shorthands)) -var output = require('./utils/output.js') - -function help (args, cb) { - var argv = npm.config.get('argv').cooked - - var argnum = 0 - if (args.length === 2 && ~~args[0]) { - argnum = ~~args.shift() - } - - // npm help foo bar baz: search topics - if (args.length > 1 && args[0]) { - return npm.commands['help-search'](args, argnum, cb) - } - - var section = npm.deref(args[0]) || args[0] - - // npm help : show basic usage - if (!section) { - var valid = argv[0] === 'help' ? 0 : 1 - return npmUsage(valid, cb) - } - - // npm -h: show command usage - if (npm.config.get('usage') && - npm.commands[section] && - npm.commands[section].usage) { - npm.config.set('loglevel', 'silent') - log.level = 'silent' - output(npm.commands[section].usage) - return cb() - } - - // npm apihelp
    : Prefer section 3 over section 1 - var apihelp = argv.length && argv[0].indexOf('api') !== -1 - var pref = apihelp ? [3, 1, 5, 7] : [1, 3, 5, 7] - if (argnum) { - pref = [ argnum ].concat(pref.filter(function (n) { - return n !== argnum - })) - } - - // npm help
    : Try to find the path - var manroot = path.resolve(__dirname, '..', 'man') - - // legacy - if (section === 'global') section = 'folders' - else if (section === 'json') section = 'package.json' - - // find either /section.n or /npm-section.n - // The glob is used in the glob. The regexp is used much - // further down. Globs and regexps are different - var compextglob = '.+(gz|bz2|lzma|[FYzZ]|xz)' - var compextre = '\\.(gz|bz2|lzma|[FYzZ]|xz)$' - var f = '+(npm-' + section + '|' + section + ').[0-9]?(' + compextglob + ')' - return glob(manroot + '/*/' + f, function (er, mans) { - if (er) return cb(er) - - if (!mans.length) return npm.commands['help-search'](args, cb) - - mans = mans.map(function (man) { - var ext = path.extname(man) - if (man.match(new RegExp(compextre))) man = path.basename(man, ext) - - return man - }) - - viewMan(pickMan(mans, pref), cb) - }) -} - -function pickMan (mans, pref_) { - var nre = /([0-9]+)$/ - var pref = {} - pref_.forEach(function (sect, i) { - pref[sect] = i - }) - mans = mans.sort(function (a, b) { - 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 - }) - return mans[0] -} - -function viewMan (man, cb) { - var nre = /([0-9]+)$/ - var num = man.match(nre)[1] - var section = path.basename(man, '.' + num) - - // at this point, we know that the specified man page exists - var manpath = path.join(__dirname, '..', 'man') - var env = {} - Object.keys(process.env).forEach(function (i) { - env[i] = process.env[i] - }) - env.MANPATH = manpath - var viewer = npm.config.get('viewer') - - var conf - switch (viewer) { - case 'woman': - var a = ['-e', '(woman-find-file \'' + man + '\')'] - conf = { env: env, stdio: 'inherit' } - var woman = spawn('emacsclient', a, conf) - woman.on('close', cb) - break - - case 'browser': - opener(htmlMan(man), { command: npm.config.get('browser') }, cb) - break - - default: - conf = { env: env, stdio: 'inherit' } - var manProcess = spawn('man', [num, section], conf) - manProcess.on('close', cb) - break - } -} - -function htmlMan (man) { - var sect = +man.match(/([0-9]+)$/)[1] - var f = path.basename(man).replace(/([0-9]+)$/, 'html') - switch (sect) { - case 1: - sect = 'cli' - break - case 3: - sect = 'api' - break - case 5: - sect = 'files' - break - case 7: - sect = 'misc' - break - default: - throw new Error('invalid man section: ' + sect) - } - return path.resolve(__dirname, '..', 'html', 'doc', sect, f) -} - -function npmUsage (valid, cb) { - npm.config.set('loglevel', 'silent') - log.level = 'silent' - output([ - '\nUsage: npm ', - '', - 'where is one of:', - npm.config.get('long') ? usages() - : ' ' + wrap(commands), - '', - 'npm -h quick help on ', - 'npm -l display full usage info', - 'npm help search for help on ', - 'npm help npm involved overview', - '', - 'Specify configs in the ini-formatted file:', - ' ' + npm.config.get('userconfig'), - 'or on the command line via: npm --key value', - 'Config info can be viewed via: npm help config', - '', - 'npm@' + npm.version + ' ' + path.dirname(__dirname) - ].join('\n')) - - if (npm.argv.length > 1) { - didYouMean(npm.argv[1], commands) - } - - cb(valid) -} - -function usages () { - // return a string of : - var maxLen = 0 - return Object.keys(npm.commands).filter(function (c) { - return c === npm.deref(c) - }).reduce(function (set, c) { - set.push([c, npm.commands[c].usage || '']) - maxLen = Math.max(maxLen, c.length) - return set - }, []).map(function (item) { - var c = item[0] - var usage = item[1] - return '\n ' + - c + (new Array(maxLen - c.length + 2).join(' ')) + - (usage.split('\n').join('\n' + (new Array(maxLen + 6).join(' ')))) - }).join('\n') -} - -function wrap (arr) { - var out = [''] - var l = 0 - var line - - line = process.stdout.columns - if (!line) { - line = 60 - } else { - line = Math.min(60, Math.max(line - 16, 24)) - } - - arr.sort(function (a, b) { return a < b ? -1 : 1 }) - .forEach(function (c) { - if (out[l].length + c.length + 2 < line) { - out[l] += ', ' + c - } else { - out[l++] += ',' - out[l] = c - } - }) - return out.join('\n ').substr(2) -} - -function getSections (cb) { - var g = path.resolve(__dirname, '../man/man[0-9]/*.[0-9]') - glob(g, function (er, files) { - if (er) return cb(er) - - cb(null, Object.keys(files.reduce(function (acc, file) { - file = path.basename(file).replace(/\.[0-9]+$/, '') - file = file.replace(/^npm-/, '') - acc[file] = true - return acc - }, { help: true }))) - }) -} diff --git a/deps/npm/lib/init.js b/deps/npm/lib/init.js deleted file mode 100644 index 000fa1a5b68..00000000000 --- a/deps/npm/lib/init.js +++ /dev/null @@ -1,41 +0,0 @@ -// initialize a package.json file - -module.exports = init - -var log = require('npmlog') -var npm = require('./npm.js') -var initJson = require('init-package-json') -var output = require('./utils/output.js') -var noProgressTillDone = require('./utils/no-progress-while-running').tillDone - -init.usage = 'npm init [--force|-f|--yes|-y]' - -function init (args, cb) { - var dir = process.cwd() - log.pause() - var initFile = npm.config.get('init-module') - if (!initJson.yes(npm.config)) { - output([ - 'This utility will walk you through creating a package.json file.', - 'It only covers the most common items, and tries to guess sensible defaults.', - '', - 'See `npm help json` for definitive documentation on these fields', - 'and exactly what they do.', - '', - 'Use `npm install ` afterwards to install a package and', - 'save it as a dependency in the package.json file.', - '', - 'Press ^C at any time to quit.' - ].join('\n')) - } - initJson(dir, initFile, npm.config, noProgressTillDone(function (er, data) { - log.resume() - log.silly('package data', data) - if (er && er.message === 'canceled') { - log.warn('init', 'canceled') - return cb(null, data) - } - log.info('init', 'written successfully') - cb(er, data) - })) -} diff --git a/deps/npm/lib/install-test.js b/deps/npm/lib/install-test.js deleted file mode 100644 index f66dfd40152..00000000000 --- a/deps/npm/lib/install-test.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' - -// npm install-test -// Runs `npm install` and then runs `npm test` - -module.exports = installTest -var install = require('./install.js') -var test = require('./test.js') -var usage = require('./utils/usage') - -installTest.usage = usage( - 'install-test', - '\nnpm install-test [args]' + - '\nSame args as `npm install`' -) - -installTest.completion = install.completion - -function installTest (args, cb) { - install(args, function (er) { - if (er) { - return cb(er) - } - test([], cb) - }) -} diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js deleted file mode 100644 index 42906f2394e..00000000000 --- a/deps/npm/lib/install.js +++ /dev/null @@ -1,959 +0,0 @@ -'use strict' -// npm install -// -// See doc/cli/npm-install.md for more description -// -// Managing contexts... -// there's a lot of state associated with an "install" operation, including -// packages that are already installed, parent packages, current shrinkwrap, and -// so on. We maintain this state in a "context" object that gets passed around. -// every time we dive into a deeper node_modules folder, the "family" list that -// gets passed along uses the previous "family" list as its __proto__. Any -// "resolved precise dependency" things that aren't already on this object get -// added, and then that's passed to the next generation of installation. - -module.exports = install -module.exports.Installer = Installer - -var usage = require('./utils/usage') - -install.usage = usage( - 'install', - '\nnpm install (with no args, in package dir)' + - '\nnpm install [<@scope>/]' + - '\nnpm install [<@scope>/]@' + - '\nnpm install [<@scope>/]@' + - '\nnpm install [<@scope>/]@' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install /', - '[--save-prod|--save-dev|--save-optional] [--save-exact] [--no-save]' -) - -install.completion = function (opts, cb) { - validate('OF', arguments) - // install can complete to a folder with a package.json, or any package. - // if it has a slash, then it's gotta be a folder - // if it starts with https?://, then just give up, because it's a url - if (/^https?:\/\//.test(opts.partialWord)) { - // do not complete to URLs - return cb(null, []) - } - - if (/\//.test(opts.partialWord)) { - // Complete fully to folder if there is exactly one match and it - // is a folder containing a package.json file. If that is not the - // case we return 0 matches, which will trigger the default bash - // complete. - var lastSlashIdx = opts.partialWord.lastIndexOf('/') - var partialName = opts.partialWord.slice(lastSlashIdx + 1) - var partialPath = opts.partialWord.slice(0, lastSlashIdx) - if (partialPath === '') partialPath = '/' - - var annotatePackageDirMatch = function (sibling, cb) { - var fullPath = path.join(partialPath, sibling) - if (sibling.slice(0, partialName.length) !== partialName) { - return cb(null, null) // not name match - } - fs.readdir(fullPath, function (err, contents) { - if (err) return cb(null, { isPackage: false }) - - cb( - null, - { - fullPath: fullPath, - isPackage: contents.indexOf('package.json') !== -1 - } - ) - }) - } - - return fs.readdir(partialPath, function (err, siblings) { - if (err) return cb(null, []) // invalid dir: no matching - - asyncMap(siblings, annotatePackageDirMatch, function (err, matches) { - if (err) return cb(err) - - var cleaned = matches.filter(function (x) { return x !== null }) - if (cleaned.length !== 1) return cb(null, []) - if (!cleaned[0].isPackage) return cb(null, []) - - // Success - only one match and it is a package dir - return cb(null, [cleaned[0].fullPath]) - }) - }) - } - - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -// system packages -var fs = require('fs') -var path = require('path') - -// dependencies -var log = require('npmlog') -var readPackageTree = require('read-package-tree') -var readPackageJson = require('read-package-json') -var chain = require('slide').chain -var asyncMap = require('slide').asyncMap -var archy = require('archy') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var iferr = require('iferr') -var validate = require('aproba') -var uniq = require('lodash.uniq') -var Bluebird = require('bluebird') - -// npm internal utils -var npm = require('./npm.js') -var locker = require('./utils/locker.js') -var lock = locker.lock -var unlock = locker.unlock -var parseJSON = require('./utils/parse-json.js') -var output = require('./utils/output.js') -var saveMetrics = require('./utils/metrics.js').save - -// install specific libraries -var copyTree = require('./install/copy-tree.js') -var readShrinkwrap = require('./install/read-shrinkwrap.js') -var computeMetadata = require('./install/deps.js').computeMetadata -var prefetchDeps = require('./install/deps.js').prefetchDeps -var loadDeps = require('./install/deps.js').loadDeps -var loadDevDeps = require('./install/deps.js').loadDevDeps -var getAllMetadata = require('./install/deps.js').getAllMetadata -var loadRequestedDeps = require('./install/deps.js').loadRequestedDeps -var loadExtraneous = require('./install/deps.js').loadExtraneous -var diffTrees = require('./install/diff-trees.js') -var checkPermissions = require('./install/check-permissions.js') -var decomposeActions = require('./install/decompose-actions.js') -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 getSaveType = require('./install/save.js').getSaveType -var doSerialActions = require('./install/actions.js').doSerial -var doReverseSerialActions = require('./install/actions.js').doReverseSerial -var doParallelActions = require('./install/actions.js').doParallel -var doOneAction = require('./install/actions.js').doOne -var removeObsoleteDep = require('./install/deps.js').removeObsoleteDep -var removeExtraneous = require('./install/deps.js').removeExtraneous -var computeVersionSpec = require('./install/deps.js').computeVersionSpec -var packageId = require('./utils/package-id.js') -var moduleName = require('./utils/module-name.js') -var errorMessage = require('./utils/error-message.js') -var isExtraneous = require('./install/is-extraneous.js') - -function unlockCB (lockPath, name, cb) { - validate('SSF', arguments) - return function (installEr) { - var args = arguments - try { - unlock(lockPath, name, reportErrorAndReturn) - } catch (unlockEx) { - process.nextTick(function () { - reportErrorAndReturn(unlockEx) - }) - } - function reportErrorAndReturn (unlockEr) { - if (installEr) { - if (unlockEr && unlockEr.code !== 'ENOTLOCKED') { - log.warn('unlock' + name, unlockEr) - } - return cb.apply(null, args) - } - if (unlockEr) return cb(unlockEr) - return cb.apply(null, args) - } - } -} - -function install (where, args, cb) { - if (!cb) { - cb = args - args = where - where = null - } - var globalTop = path.resolve(npm.globalDir, '..') - if (!where) { - where = npm.config.get('global') - ? globalTop - : npm.prefix - } - validate('SAF', [where, args, cb]) - // the /path/to/node_modules/.. - var dryrun = !!npm.config.get('dry-run') - - if (npm.config.get('dev')) { - log.warn('install', 'Usage of the `--dev` option is deprecated. Use `--only=dev` instead.') - } - - if (where === globalTop && !args.length) { - args = ['.'] - } - args = args.filter(function (a) { - return path.resolve(a) !== npm.prefix - }) - - new Installer(where, dryrun, args).run(cb) -} - -function Installer (where, dryrun, args, opts) { - validate('SBA|SBAO', arguments) - if (!opts) opts = {} - this.where = where - this.dryrun = dryrun - this.args = args - // fakechildren are children created from the lockfile and lack relationship data - // the only exist when the tree does not match the lockfile - // this is fine when doing full tree installs/updates but not ok when modifying only - // a few deps via `npm install` or `npm uninstall`. - this.currentTree = null - this.idealTree = null - this.differences = [] - this.todo = [] - this.progress = {} - this.noPackageJsonOk = !!args.length - this.topLevelLifecycles = !args.length - - const dev = npm.config.get('dev') - const only = npm.config.get('only') - const onlyProd = /^prod(uction)?$/.test(only) - const onlyDev = /^dev(elopment)?$/.test(only) - const prod = npm.config.get('production') - this.dev = opts.dev != null ? opts.dev : dev || (!onlyProd && !prod) || onlyDev - this.prod = opts.prod != null ? opts.prod : !onlyDev - - this.packageLockOnly = opts.packageLockOnly != null - ? opts.packageLockOnly : npm.config.get('package-lock-only') - this.rollback = opts.rollback != null ? opts.rollback : npm.config.get('rollback') - 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.started = Date.now() -} -Installer.prototype = {} - -Installer.prototype.run = function (_cb) { - validate('F|', arguments) - - var result - var cb - if (_cb) { - cb = function (err) { - saveMetrics(!err) - return _cb.apply(this, arguments) - } - } else { - result = new Promise((resolve, reject) => { - cb = (err, value) => err ? reject(err) : resolve(value) - }) - } - // FIXME: This is bad and I should feel bad. - // lib/install needs to have some way of sharing _limited_ - // state with the things it calls. Passing the object is too - // much. The global config is WAY too much. =( =( - // But not having this is gonna break linked modules in - // subtle stupid ways, and refactoring all this code isn't - // the right thing to do just yet. - if (this.global) { - var prevGlobal = npm.config.get('global') - npm.config.set('global', true) - var next = cb - cb = function () { - npm.config.set('global', prevGlobal) - next.apply(null, arguments) - } - } - - var installSteps = [] - var postInstallSteps = [] - if (!this.dryrun) { - installSteps.push( - [this.newTracker(log, 'runTopLevelLifecycles', 2)], - [this, this.runPreinstallTopLevelLifecycles]) - } - installSteps.push( - [this.newTracker(log, 'loadCurrentTree', 4)], - [this, this.loadCurrentTree], - [this, this.finishTracker, 'loadCurrentTree'], - - [this.newTracker(log, 'loadIdealTree', 12)], - [this, this.loadIdealTree], - [this, this.finishTracker, 'loadIdealTree'], - - [this, this.debugTree, 'currentTree', 'currentTree'], - [this, this.debugTree, 'idealTree', 'idealTree'], - - [this.newTracker(log, 'generateActionsToTake')], - [this, this.generateActionsToTake], - [this, this.finishTracker, 'generateActionsToTake'], - - [this, this.debugActions, 'diffTrees', 'differences'], - [this, this.debugActions, 'decomposeActions', 'todo']) - - if (this.packageLockOnly) { - postInstallSteps.push( - [this, this.saveToDependencies]) - } else if (!this.dryrun) { - installSteps.push( - [this.newTracker(log, 'executeActions', 8)], - [this, this.executeActions], - [this, this.finishTracker, 'executeActions']) - var node_modules = path.resolve(this.where, 'node_modules') - var staging = path.resolve(node_modules, '.staging') - postInstallSteps.push( - [this.newTracker(log, 'rollbackFailedOptional', 1)], - [this, this.rollbackFailedOptional, staging, this.todo], - [this, this.finishTracker, 'rollbackFailedOptional'], - [this, this.commit, staging, this.todo], - - [this, this.runPostinstallTopLevelLifecycles], - [this, this.finishTracker, 'runTopLevelLifecycles'] - ) - if (getSaveType()) { - postInstallSteps.push( - // this is necessary as we don't fill in `dependencies` and `devDependencies` in deps loaded from shrinkwrap - // until after we extract them - [this, (next) => { computeMetadata(this.idealTree); next() }], - [this, this.pruneIdealTree], - [this, this.debugLogicalTree, 'saveTree', 'idealTree'], - [this, this.saveToDependencies]) - } - } - postInstallSteps.push( - [this, this.printWarnings], - [this, this.printInstalled]) - - var self = this - chain(installSteps, function (installEr) { - if (installEr) self.failing = true - chain(postInstallSteps, function (postInstallEr) { - if (installEr && postInstallEr) { - var msg = errorMessage(postInstallEr) - msg.summary.forEach(function (logline) { - log.warn.apply(log, logline) - }) - msg.detail.forEach(function (logline) { - log.verbose.apply(log, logline) - }) - } - cb(installEr || postInstallEr, self.getInstalledModules(), self.idealTree) - }) - }) - return result -} - -Installer.prototype.loadArgMetadata = function (next) { - getAllMetadata(this.args, this.currentTree, process.cwd(), iferr(next, (args) => { - this.args = args - next() - })) -} - -Installer.prototype.newTracker = function (tracker, name, size) { - validate('OS', [tracker, name]) - if (size) validate('N', [size]) - this.progress[name] = tracker.newGroup(name, size) - return function (next) { - process.emit('time', 'stage:' + name) - next() - } -} - -Installer.prototype.finishTracker = function (name, cb) { - validate('SF', arguments) - process.emit('timeEnd', 'stage:' + name) - cb() -} - -Installer.prototype.loadCurrentTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadCurrentTree') - var todo = [] - if (this.global) { - todo.push([this, this.readGlobalPackageData]) - } else { - todo.push([this, this.readLocalPackageData]) - } - todo.push([this, this.normalizeCurrentTree]) - chain(todo, cb) -} - -var createNode = require('./install/node.js').create -var flatNameFromTree = require('./install/flatten-tree.js').flatNameFromTree -Installer.prototype.normalizeCurrentTree = function (cb) { - this.currentTree.isTop = true - normalizeTree(this.currentTree) - // If the user didn't have a package.json then fill in deps with what was on disk - if (this.currentTree.error) { - for (let child of this.currentTree.children) { - if (!child.fakeChild && isExtraneous(child)) { - this.currentTree.package.dependencies[child.package.name] = computeVersionSpec(this.currentTree, child) - } - } - } - computeMetadata(this.currentTree) - return cb() - - function normalizeTree (tree, seen) { - if (!seen) seen = new Set() - if (seen.has(tree)) return - seen.add(tree) - createNode(tree) - tree.location = flatNameFromTree(tree) - tree.children.forEach((child) => normalizeTree(child, seen)) - } -} - -Installer.prototype.loadIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadIdealTree') - - chain([ - [this.newTracker(this.progress.loadIdealTree, 'loadIdealTree:cloneCurrentTree')], - [this, this.cloneCurrentTreeToIdealTree], - [this, this.finishTracker, 'loadIdealTree:cloneCurrentTree'], - - [this.newTracker(this.progress.loadIdealTree, 'loadIdealTree:loadShrinkwrap')], - [this, this.loadShrinkwrap], - [this, this.finishTracker, 'loadIdealTree:loadShrinkwrap'], - - [this.newTracker(this.progress.loadIdealTree, 'loadIdealTree:loadAllDepsIntoIdealTree', 10)], - [this, this.loadAllDepsIntoIdealTree], - [this, this.finishTracker, 'loadIdealTree:loadAllDepsIntoIdealTree'], - [this, function (next) { computeMetadata(this.idealTree); next() }], - [this, this.pruneIdealTree] - ], cb) -} - -Installer.prototype.pruneIdealTree = function (cb) { - if (!this.idealTree) return 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) - .map((n) => ({name: moduleName(n)})) - return removeExtraneous(toPrune, this.idealTree, cb) -} - -Installer.prototype.loadAllDepsIntoIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadAllDepsIntoIdealTree') - var saveDeps = getSaveType() - - var cg = this.progress['loadIdealTree:loadAllDepsIntoIdealTree'] - var installNewModules = !!this.args.length - var steps = [] - - if (installNewModules) { - steps.push([validateArgs, this.idealTree, this.args]) - 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 : {} - ) - 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( - [loadExtraneous.andResolveDeps, this.idealTree, cg.newGroup('loadExtraneous')]) - chain(steps, cb) -} - -Installer.prototype.generateActionsToTake = function (cb) { - validate('F', arguments) - log.silly('install', 'generateActionsToTake') - var cg = this.progress.generateActionsToTake - chain([ - [validateTree, this.idealTree, cg.newGroup('validateTree')], - [diffTrees, this.currentTree, this.idealTree, this.differences, cg.newGroup('diffTrees')], - [this, this.computeLinked], - [checkPermissions, this.differences], - [decomposeActions, this.differences, this.todo] - ], cb) -} - -Installer.prototype.computeLinked = function (cb) { - validate('F', arguments) - if (!this.link || this.global) return cb() - var linkTodoList = [] - var self = this - asyncMap(this.differences, function (action, next) { - var cmd = action[0] - var pkg = action[1] - if (cmd !== 'add' && cmd !== 'update') return next() - var isReqByTop = pkg.requiredBy.filter(function (mod) { return mod.isTop }).length - var isReqByUser = pkg.userRequired - var isExtraneous = pkg.requiredBy.length === 0 - if (!isReqByTop && !isReqByUser && !isExtraneous) return next() - isLinkable(pkg, function (install, link) { - if (install) linkTodoList.push(['global-install', pkg]) - if (link) linkTodoList.push(['global-link', pkg]) - if (install || link) removeObsoleteDep(pkg) - next() - }) - }, function () { - if (linkTodoList.length === 0) return cb() - self.differences.length = 0 - Array.prototype.push.apply(self.differences, linkTodoList) - diffTrees(self.currentTree, self.idealTree, self.differences, log.newGroup('d2'), cb) - }) -} - -function isLinkable (pkg, cb) { - var globalPackage = path.resolve(npm.globalPrefix, 'lib', 'node_modules', moduleName(pkg)) - var globalPackageJson = path.resolve(globalPackage, 'package.json') - fs.stat(globalPackage, function (er) { - if (er) return cb(true, true) - fs.readFile(globalPackageJson, function (er, data) { - var json = parseJSON.noExceptions(data) - cb(false, json && json.version === pkg.package.version) - }) - }) -} - -Installer.prototype.executeActions = function (cb) { - validate('F', arguments) - log.silly('install', 'executeActions') - var todo = this.todo - var cg = this.progress.executeActions - - var node_modules = path.resolve(this.where, 'node_modules') - var staging = path.resolve(node_modules, '.staging') - var steps = [] - var trackLifecycle = cg.newGroup('lifecycle') - - cb = unlockCB(node_modules, '.staging', cb) - - steps.push( - [doSerialActions, 'global-install', staging, todo, trackLifecycle.newGroup('global-install')], - [lock, node_modules, '.staging'], - [rimraf, staging], - [doParallelActions, 'extract', staging, todo, cg.newGroup('extract', 100)], - [doReverseSerialActions, 'unbuild', staging, todo, cg.newGroup('unbuild')], - [doSerialActions, 'remove', staging, todo, cg.newGroup('remove')], - [doSerialActions, 'move', staging, todo, cg.newGroup('move')], - [doSerialActions, 'finalize', staging, todo, cg.newGroup('finalize')], - [doParallelActions, 'refresh-package-json', staging, todo, cg.newGroup('refresh-package-json')], - [doParallelActions, 'preinstall', staging, todo, trackLifecycle.newGroup('preinstall')], - [doSerialActions, 'build', staging, todo, trackLifecycle.newGroup('build')], - [doSerialActions, 'global-link', staging, todo, trackLifecycle.newGroup('global-link')], - [doParallelActions, 'update-linked', staging, todo, trackLifecycle.newGroup('update-linked')], - [doSerialActions, 'install', staging, todo, trackLifecycle.newGroup('install')], - [doSerialActions, 'postinstall', staging, todo, trackLifecycle.newGroup('postinstall')]) - - var self = this - chain(steps, function (er) { - if (!er || self.rollback) { - rimraf(staging, function () { cb(er) }) - } else { - cb(er) - } - }) -} - -Installer.prototype.rollbackFailedOptional = function (staging, actionsToRun, cb) { - if (!this.rollback) return cb() - var failed = uniq(actionsToRun.map(function (action) { - return action[1] - }).filter(function (pkg) { - return pkg.failed && pkg.rollback - })) - var top = this.currentTree && this.currentTree.path - Bluebird.map(failed, (pkg) => { - return Bluebird.map(pkg.rollback, (rollback) => rollback(top, staging, pkg)) - }).asCallback(cb) -} - -Installer.prototype.commit = function (staging, actionsToRun, cb) { - var toCommit = actionsToRun.map(function (action) { return action[1] }).filter(function (pkg) { return !pkg.failed && pkg.commit }) - asyncMap(toCommit, function (pkg, next) { - asyncMap(pkg.commit, function (commit, done) { - commit(staging, pkg, done) - }, function () { - pkg.commit = [] - next.apply(null, arguments) - }) - }, cb) -} - -Installer.prototype.runPreinstallTopLevelLifecycles = function (cb) { - validate('F', arguments) - if (this.failing) return cb() - if (!this.topLevelLifecycles) return cb() - log.silly('install', 'runPreinstallTopLevelLifecycles') - - readPackageJson(path.join(this.where, 'package.json'), log, false, (err, data) => { - if (err) return cb() - this.currentTree = createNode({ - isTop: true, - package: data, - path: this.where - }) - doOneAction('preinstall', this.where, this.currentTree, log.newGroup('preinstall:.'), cb) - }) -} - -Installer.prototype.runPostinstallTopLevelLifecycles = function (cb) { - validate('F', arguments) - if (this.failing) return cb() - if (!this.topLevelLifecycles) return cb() - log.silly('install', 'runPostinstallTopLevelLifecycles') - var steps = [] - var trackLifecycle = this.progress.runTopLevelLifecycles - - steps.push( - [doOneAction, 'build', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('build:.')], - [doOneAction, 'install', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('install:.')], - [doOneAction, 'postinstall', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('postinstall:.')]) - if (this.dev) { - steps.push( - [doOneAction, 'prepare', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('prepare')]) - } - chain(steps, cb) -} - -Installer.prototype.saveToDependencies = function (cb) { - validate('F', arguments) - if (this.failing) return cb() - log.silly('install', 'saveToDependencies') - if (this.saveOnlyLock) { - saveShrinkwrap(this.idealTree, cb) - } else { - saveRequested(this.idealTree, cb) - } -} - -Installer.prototype.readGlobalPackageData = function (cb) { - validate('F', arguments) - log.silly('install', 'readGlobalPackageData') - var self = this - this.loadArgMetadata(iferr(cb, function () { - mkdirp(self.where, iferr(cb, function () { - var pkgs = {} - self.args.forEach(function (pkg) { - pkgs[pkg.name] = true - }) - readPackageTree(self.where, function (ctx, kid) { return ctx.parent || pkgs[kid] }, iferr(cb, function (currentTree) { - self.currentTree = currentTree - return cb() - })) - })) - })) -} - -Installer.prototype.readLocalPackageData = function (cb) { - validate('F', arguments) - log.silly('install', 'readLocalPackageData') - var self = this - mkdirp(this.where, iferr(cb, function () { - readPackageTree(self.where, iferr(cb, function (currentTree) { - self.currentTree = currentTree - self.currentTree.warnings = [] - if (currentTree.error && currentTree.error.code === 'EJSONPARSE') { - return cb(currentTree.error) - } - if (!self.noPackageJsonOk && !currentTree.package) { - log.error('install', "Couldn't read dependencies") - var er = new Error("ENOENT, open '" + path.join(self.where, 'package.json') + "'") - er.code = 'ENOPACKAGEJSON' - er.errno = 34 - return cb(er) - } - if (!currentTree.package) currentTree.package = {} - readShrinkwrap(currentTree, function (err) { - if (err) { - cb(err) - } else { - self.loadArgMetadata(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.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) -} - -Installer.prototype.getInstalledModules = function () { - return this.differences.filter(function (action) { - var mutation = action[0] - return (mutation === 'add' || mutation === 'update') - }).map(function (action) { - var child = action[1] - return [child.package._id, child.path] - }) -} - -Installer.prototype.printWarnings = function (cb) { - if (!this.idealTree) return cb() - - var self = this - var warned = false - this.idealTree.warnings.forEach(function (warning) { - if (warning.code === 'EPACKAGEJSON' && self.global) return - if (warning.code === 'ENOTDIR') return - warned = true - var msg = errorMessage(warning) - msg.summary.forEach(function (logline) { - log.warn.apply(log, logline) - }) - msg.detail.forEach(function (logline) { - log.verbose.apply(log, logline) - }) - }) - if (warned && log.levels[npm.config.get('loglevel')] <= log.levels.warn) console.error() - cb() -} - -Installer.prototype.printInstalled = function (cb) { - validate('F', arguments) - if (this.failing) return cb() - log.silly('install', 'printInstalled') - const diffs = this.differences - if (!this.idealTree.error && this.idealTree.removedChildren) { - const deps = this.currentTree.package.dependencies || {} - const dev = this.currentTree.package.devDependencies || {} - this.idealTree.removedChildren.forEach((r) => { - if (diffs.some((d) => d[0] === 'remove' && d[1].path === r.path)) return - if (!deps[moduleName(r)] && !dev[moduleName(r)]) return - 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) - } -} - -Installer.prototype.printInstalledForHuman = function (diffs, cb) { - var removed = 0 - var added = 0 - var updated = 0 - var moved = 0 - diffs.forEach(function (action) { - var mutation = action[0] - var pkg = action[1] - if (pkg.failed) return - if (mutation === 'remove') { - ++removed - } else if (mutation === 'move') { - ++moved - } else if (mutation === 'add') { - ++added - } else if (mutation === 'update' || mutation === 'update-linked') { - ++updated - } - }) - var report = '' - if (this.args.length && (added || updated)) { - report += this.args.map((p) => { - return `+ ${p.name}@${p.version}` - }).join('\n') + '\n' - } - var actions = [] - if (added) actions.push('added ' + packages(added)) - if (removed) actions.push('removed ' + packages(removed)) - if (updated) actions.push('updated ' + packages(updated)) - if (moved) actions.push('moved ' + packages(moved)) - if (actions.length === 0) { - report += 'up to date' - } else if (actions.length === 1) { - report += actions[0] - } else { - var lastAction = actions.pop() - report += actions.join(', ') + ' and ' + lastAction - } - report += ' in ' + ((Date.now() - this.started) / 1000) + 's' - - output(report) - return cb() - - function packages (num) { - return num + ' package' + (num > 1 ? 's' : '') - } -} - -Installer.prototype.printInstalledForJSON = function (diffs, cb) { - var result = { - added: [], - removed: [], - updated: [], - moved: [], - failed: [], - warnings: [], - elapsed: Date.now() - this.started - } - var self = this - this.idealTree.warnings.forEach(function (warning) { - if (warning.code === 'EPACKAGEJSON' && self.global) return - if (warning.code === 'ENOTDIR') return - var output = errorMessage(warning) - var message = flattenMessage(output.summary) - if (output.detail.length) { - message += '\n' + flattenMessage(output.detail) - } - result.warnings.push(message) - }) - diffs.forEach(function (action) { - var mutation = action[0] - var child = action[1] - var record = recordAction(action) - if (child.failed) { - result.failed.push(record) - } else if (mutation === 'add') { - result.added.push(record) - } else if (mutation === 'update' || mutation === 'update-linked') { - result.updated.push(record) - } else if (mutation === 'move') { - result.moved.push(record) - } else if (mutation === 'remove') { - result.removed.push(record) - } - }) - output(JSON.stringify(result, null, 2)) - cb() - - function flattenMessage (msg) { - return msg.map(function (logline) { return logline.slice(1).join(' ') }).join('\n') - } - - function recordAction (action) { - var mutation = action[0] - var child = action[1] - var result = { - action: mutation, - name: moduleName(child), - version: child.package && child.package.version, - path: child.path - } - if (mutation === 'move') { - result.previousPath = child.fromPath - } else if (mutation === 'update') { - result.previousVersion = child.oldPkg.package && child.oldPkg.package.version - } - return result - } -} - -Installer.prototype.printInstalledForParseable = function (diffs, cb) { - var self = this - diffs.forEach(function (action) { - var mutation = action[0] - var child = action[1] - if (mutation === 'move') { - var previousPath = path.relative(self.where, child.fromPath) - } else if (mutation === 'update') { - var previousVersion = child.oldPkg.package && child.oldPkg.package.version - } - output( - mutation + '\t' + - moduleName(child) + '\t' + - (child.package ? child.package.version : '') + '\t' + - (child.path ? path.relative(self.where, child.path) : '') + '\t' + - (previousVersion || '') + '\t' + - (previousPath || '')) - }) - return cb() -} - -Installer.prototype.debugActions = function (name, actionListName, cb) { - validate('SSF', arguments) - var actionsToLog = this[actionListName] - log.silly(name, 'action count', actionsToLog.length) - actionsToLog.forEach(function (action) { - log.silly(name, action.map(function (value) { - return (value && value.package) ? packageId(value) : value - }).join(' ')) - }) - cb() -} - -// This takes an object and a property name instead of a value to allow us -// to define the arguments for use by chain before the property exists yet. -Installer.prototype.debugTree = function (name, treeName, cb) { - validate('SSF', arguments) - log.silly(name, this.archyDebugTree(this[treeName]).trim()) - cb() -} - -Installer.prototype.archyDebugTree = function (tree) { - validate('O', arguments) - var seen = new Set() - function byName (aa, bb) { - return packageId(aa).localeCompare(packageId(bb)) - } - function expandTree (tree) { - seen.add(tree) - return { - label: packageId(tree), - nodes: tree.children.filter((tree) => { return !seen.has(tree) && !tree.removed }).sort(byName).map(expandTree) - } - } - return archy(expandTree(tree), '', { unicode: npm.config.get('unicode') }) -} - -Installer.prototype.debugLogicalTree = function (name, treeName, cb) { - validate('SSF', arguments) - this[treeName] && log.silly(name, this.archyDebugLogicalTree(this[treeName]).trim()) - cb() -} - -Installer.prototype.archyDebugLogicalTree = function (tree) { - validate('O', arguments) - var seen = new Set() - function byName (aa, bb) { - return packageId(aa).localeCompare(packageId(bb)) - } - function expandTree (tree) { - seen.add(tree) - return { - label: packageId(tree), - nodes: tree.requires.filter((tree) => { return !seen.has(tree) && !tree.removed }).sort(byName).map(expandTree) - } - } - return archy(expandTree(tree), '', { unicode: npm.config.get('unicode') }) -} diff --git a/deps/npm/lib/install/access-error.js b/deps/npm/lib/install/access-error.js deleted file mode 100644 index ff94be98576..00000000000 --- a/deps/npm/lib/install/access-error.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = function (dir, er) { - if (!er) return - var accessEr = new Error("EACCES, access '" + dir + "'", -13) - accessEr.code = 'EACCES' - accessEr.path = dir - return accessEr -} diff --git a/deps/npm/lib/install/action/build.js b/deps/npm/lib/install/action/build.js deleted file mode 100644 index be2c141f0dc..00000000000 --- a/deps/npm/lib/install/action/build.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var chain = require('slide').chain -var build = require('../../build.js') -var npm = require('../../npm.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('build', packageId(pkg)) - chain([ - [build.linkStuff, pkg.package, pkg.path, npm.config.get('global')], - [build.writeBuiltinConf, pkg.package, pkg.path] - ], next) -} diff --git a/deps/npm/lib/install/action/extract-worker.js b/deps/npm/lib/install/action/extract-worker.js deleted file mode 100644 index 24508c78049..00000000000 --- a/deps/npm/lib/install/action/extract-worker.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const extract = require('pacote/extract') -const npmlog = require('npmlog') - -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] - if (!opts.log && opts.loglevel) { - opts.log = npmlog - opts.log.level = opts.loglevel - } - 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 deleted file mode 100644 index 6b827f36ea9..00000000000 --- a/deps/npm/lib/install/action/extract.js +++ /dev/null @@ -1,160 +0,0 @@ -'use strict' - -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') -const npm = require('../../npm.js') -const packageId = require('../../utils/package-id.js') -let pacoteOpts -const path = require('path') -const localWorker = require('./extract-worker.js') -const workerFarm = require('worker-farm') -const isRegistry = require('../../utils/is-registry.js') - -const WORKER_PATH = require.resolve('./extract-worker.js') -let workers - -// NOTE: temporarily disabled on non-OSX due to ongoing issues: -// -// * Seems to make Windows antivirus issues much more common -// * Messes with Docker (I think) -// -// There are other issues that should be fixed that affect OSX too: -// -// * Logging is messed up right now because pacote does its own thing -// * Global deduplication in pacote breaks due to multiple procs -// -// As these get fixed, we can start experimenting with re-enabling it -// at least on some platforms. -const ENABLE_WORKERS = process.platform === 'darwin' - -extract.init = () => { - if (ENABLE_WORKERS) { - workers = workerFarm({ - maxConcurrentCallsPerWorker: npm.limit.fetch, - maxRetries: 1 - }, WORKER_PATH) - } - return BB.resolve() -} -extract.teardown = () => { - if (ENABLE_WORKERS) { - workerFarm.end(workers) - workers = null - } - return BB.resolve() -} -module.exports = extract -function extract (staging, pkg, log) { - log.silly('extract', packageId(pkg)) - const extractTo = moduleStagingPath(staging, pkg) - if (!pacoteOpts) { - pacoteOpts = require('../../config/pacote') - } - const opts = pacoteOpts({ - integrity: pkg.package._integrity - }) - const args = [ - pkg.package._resolved - ? npa.resolve(pkg.package.name, pkg.package._resolved) - : pkg.package._requested, - extractTo, - opts - ] - return BB.fromNode((cb) => { - let launcher = localWorker - let msg = args - const spec = typeof args[0] === 'string' ? npa(args[0]) : args[0] - args[0] = spec.raw - if (ENABLE_WORKERS && (isRegistry(spec) || spec.type === 'remote')) { - // We can't serialize these options - opts.loglevel = opts.log.level - opts.log = null - opts.dirPacker = null - // workers will run things in parallel! - launcher = workers - try { - msg = JSON.stringify(msg) - } catch (e) { - return cb(e) - } - } - launcher(msg, cb) - }).then(() => { - if (pkg.package.bundleDependencies || anyBundled(pkg)) { - return readBundled(pkg, staging, extractTo) - } - }).then(() => { - return gentlyRm(path.join(extractTo, 'node_modules')) - }) -} - -function anyBundled (top, pkg) { - if (!pkg) pkg = top - return pkg.children.some((child) => child.fromBundle === top || anyBundled(top, child)) -} - -function readBundled (pkg, staging, extractTo) { - return BB.map(pkg.children, (child) => { - if (!child.fromBundle) return - if (child.error) { - throw child.error - } else { - return stageBundledModule(pkg, child, 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) - - return BB.map(child.children, (child) => { - if (child.error) { - throw child.error - } else { - return stageBundledModule(bundler, child, staging, stageFrom) - } - }).then(() => { - return finishModule(bundler, child, stageTo, stageFrom) - }) -} - -function finishModule (bundler, child, stageTo, stageFrom) { - // If we were the one's who bundled this module… - if (child.fromBundle === bundler) { - return mkdirp(path.dirname(stageTo)).then(() => { - 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) - }, () => {}) - } -} diff --git a/deps/npm/lib/install/action/fetch.js b/deps/npm/lib/install/action/fetch.js deleted file mode 100644 index a4d760fe829..00000000000 --- a/deps/npm/lib/install/action/fetch.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const finished = BB.promisify(require('mississippi').finished) -const packageId = require('../../utils/package-id.js') -const pacote = require('pacote') -const pacoteOpts = require('../../config/pacote') - -module.exports = fetch -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) -} diff --git a/deps/npm/lib/install/action/finalize.js b/deps/npm/lib/install/action/finalize.js deleted file mode 100644 index e46f1b9d833..00000000000 --- a/deps/npm/lib/install/action/finalize.js +++ /dev/null @@ -1,106 +0,0 @@ -'use strict' -const path = require('path') -const fs = require('graceful-fs') -const Bluebird = require('bluebird') -const rimraf = Bluebird.promisify(require('rimraf')) -const mkdirp = Bluebird.promisify(require('mkdirp')) -const lstat = Bluebird.promisify(fs.lstat) -const readdir = Bluebird.promisify(fs.readdir) -const symlink = Bluebird.promisify(fs.symlink) -const gentlyRm = Bluebird.promisify(require('../../utils/gently-rm')) -const moduleStagingPath = require('../module-staging-path.js') -const move = require('move-concurrently') -const moveOpts = {fs: fs, Promise: Bluebird, maxConcurrency: 4} -const getRequested = require('../get-requested.js') -const log = require('npmlog') -const packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log) { - log.silly('finalize', pkg.realpath) - - const extractedTo = moduleStagingPath(staging, pkg) - - const delpath = path.join(path.dirname(pkg.realpath), '.' + path.basename(pkg.realpath) + '.DELETE') - let movedDestAway = false - - const requested = pkg.package._requested || getRequested(pkg) - if (requested.type === 'directory') { - const relative = path.relative(path.dirname(pkg.path), pkg.realpath) - return makeParentPath(pkg.path) - .then(() => symlink(relative, pkg.path, 'junction')) - .catch((ex) => { - return rimraf(pkg.path).then(() => symlink(relative, pkg.path, 'junction')) - }) - } else { - return makeParentPath(pkg.realpath) - .then(moveStagingToDestination) - .then(restoreOldNodeModules) - .catch((err) => { - if (movedDestAway) { - return rimraf(pkg.realpath).then(moveOldDestinationBack).then(() => { - throw err - }) - } else { - throw err - } - }) - .then(() => rimraf(delpath)) - } - - function makeParentPath (dir) { - return mkdirp(path.dirname(dir)) - } - - function moveStagingToDestination () { - return destinationIsClear() - .then(actuallyMoveStaging) - .catch(() => moveOldDestinationAway().then(actuallyMoveStaging)) - } - - function destinationIsClear () { - return lstat(pkg.realpath).then(() => { - throw new Error('destination exists') - }, () => {}) - } - - function actuallyMoveStaging () { - return move(extractedTo, pkg.realpath, moveOpts) - } - - function moveOldDestinationAway () { - return rimraf(delpath).then(() => { - return move(pkg.realpath, delpath, moveOpts) - }).then(() => { movedDestAway = true }) - } - - function moveOldDestinationBack () { - return move(delpath, pkg.realpath, moveOpts).then(() => { movedDestAway = false }) - } - - function restoreOldNodeModules () { - if (!movedDestAway) return - return readdir(path.join(delpath, 'node_modules')).catch(() => []).then((modules) => { - if (!modules.length) return - return mkdirp(path.join(pkg.realpath, 'node_modules')).then(() => Bluebird.map(modules, (file) => { - const from = path.join(delpath, 'node_modules', file) - const to = path.join(pkg.realpath, 'node_modules', file) - return move(from, to, moveOpts) - })) - }) - } -} - -module.exports.rollback = function (top, staging, pkg) { - return Bluebird.try(() => { - const requested = pkg.package._requested || getRequested(pkg) - if (requested && requested.type === 'directory') return Promise.resolve() - // strictly speaking rolling back a finalize should ONLY remove module that - // was being finalized, not any of the things under it. But currently - // those modules are guaranteed to be useless so we may as well remove them too. - // When/if we separate `commit` step and can rollback to previous versions - // of upgraded modules then we'll need to revisit this… - return gentlyRm(pkg.path, false, top).catch((err) => { - log.warn('rollback', `Rolling back ${packageId(pkg)} failed (this is probably harmless): ${err.message ? err.message : err}`) - }) - }) -} diff --git a/deps/npm/lib/install/action/global-install.js b/deps/npm/lib/install/action/global-install.js deleted file mode 100644 index bdc121b693c..00000000000 --- a/deps/npm/lib/install/action/global-install.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict' -var path = require('path') -var npm = require('../../npm.js') -var Installer = require('../../install.js').Installer -var packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('global-install', packageId(pkg)) - var globalRoot = path.resolve(npm.globalDir, '..') - npm.config.set('global', true) - var install = new Installer(globalRoot, false, [pkg.package.name + '@' + pkg.package._requested.fetchSpec]) - install.link = false - install.run(function () { - npm.config.set('global', false) - next.apply(null, arguments) - }) -} diff --git a/deps/npm/lib/install/action/global-link.js b/deps/npm/lib/install/action/global-link.js deleted file mode 100644 index f109e5b88a1..00000000000 --- a/deps/npm/lib/install/action/global-link.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var npm = require('../../npm.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('global-link', packageId(pkg)) - npm.link(pkg.package.name, next) -} diff --git a/deps/npm/lib/install/action/install.js b/deps/npm/lib/install/action/install.js deleted file mode 100644 index a5cf63b7396..00000000000 --- a/deps/npm/lib/install/action/install.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('install', packageId(pkg)) - lifecycle(pkg.package, 'install', pkg.path, next) -} diff --git a/deps/npm/lib/install/action/move.js b/deps/npm/lib/install/action/move.js deleted file mode 100644 index 00d58a15923..00000000000 --- a/deps/npm/lib/install/action/move.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var chain = require('slide').chain -var iferr = require('iferr') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var rmStuff = require('../../unbuild.js').rmStuff -var lifecycle = require('../../utils/lifecycle.js') -var move = require('../../utils/move.js') - -/* - Move a module from one point in the node_modules tree to another. - Do not disturb either the source or target location's node_modules - folders. -*/ - -module.exports = function (staging, pkg, log, next) { - log.silly('move', pkg.fromPath, pkg.path) - chain([ - [lifecycle, pkg.package, 'preuninstall', pkg.fromPath, { failOk: true }], - [lifecycle, pkg.package, 'uninstall', pkg.fromPath, { failOk: true }], - [rmStuff, pkg.package, pkg.fromPath], - [lifecycle, pkg.package, 'postuninstall', pkg.fromPath, { failOk: true }], - [moveModuleOnly, pkg.fromPath, pkg.path, log], - [lifecycle, pkg.package, 'preinstall', pkg.path, { failOk: true }], - [removeEmptyParents, path.resolve(pkg.fromPath, '..')] - ], next) -} - -function removeEmptyParents (pkgdir, next) { - fs.rmdir(pkgdir, function (er) { - // FIXME: Make sure windows does what we want here - if (er && er.code !== 'ENOENT') return next() - removeEmptyParents(path.resolve(pkgdir, '..'), next) - }) -} - -function moveModuleOnly (from, to, log, done) { - var fromModules = path.join(from, 'node_modules') - var tempFromModules = from + '.node_modules' - var toModules = path.join(to, 'node_modules') - var tempToModules = to + '.node_modules' - - log.silly('move', 'move existing destination node_modules away', toModules) - - move(toModules, tempToModules).then(removeDestination(done), removeDestination(done)) - - function removeDestination (next) { - return function (er) { - log.silly('move', 'remove existing destination', to) - if (er) { - rimraf(to, iferr(next, makeDestination(next))) - } else { - rimraf(to, iferr(next, makeDestination(iferr(next, moveToModulesBack(next))))) - } - } - } - - function moveToModulesBack (next) { - return function () { - log.silly('move', 'move existing destination node_modules back', toModules) - move(tempToModules, toModules).then(next, done) - } - } - - function makeDestination (next) { - return function () { - log.silly('move', 'make sure destination parent exists', path.resolve(to, '..')) - mkdirp(path.resolve(to, '..'), iferr(done, moveNodeModules(next))) - } - } - - function moveNodeModules (next) { - return function () { - log.silly('move', 'move source node_modules away', fromModules) - move(fromModules, tempFromModules).then(doMove(moveNodeModulesBack(next)), doMove(next)) - } - } - - function doMove (next) { - return function () { - log.silly('move', 'move module dir to final dest', from, to) - move(from, to).then(next, done) - } - } - - function moveNodeModulesBack (next) { - return function () { - mkdirp(from, iferr(done, function () { - log.silly('move', 'put source node_modules back', fromModules) - move(tempFromModules, fromModules).then(next, done) - })) - } - } -} diff --git a/deps/npm/lib/install/action/postinstall.js b/deps/npm/lib/install/action/postinstall.js deleted file mode 100644 index 01accb2a471..00000000000 --- a/deps/npm/lib/install/action/postinstall.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('postinstall', packageId(pkg)) - lifecycle(pkg.package, 'postinstall', pkg.path, next) -} diff --git a/deps/npm/lib/install/action/preinstall.js b/deps/npm/lib/install/action/preinstall.js deleted file mode 100644 index 374ff563326..00000000000 --- a/deps/npm/lib/install/action/preinstall.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('preinstall', packageId(pkg)) - lifecycle(pkg.package, 'preinstall', pkg.path, next) -} diff --git a/deps/npm/lib/install/action/prepare.js b/deps/npm/lib/install/action/prepare.js deleted file mode 100644 index d48c8e7e862..00000000000 --- a/deps/npm/lib/install/action/prepare.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var chain = require('slide').chain -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') -var prepublishWarning = require('../../utils/warn-deprecated.js')('prepublish-on-install') -var moduleStagingPath = require('../module-staging-path.js') - -module.exports = function (staging, pkg, log, next) { - log.silly('prepublish', packageId(pkg)) - // TODO: for `npm@5`, change the behavior and remove this warning. - // see https://github.com/npm/npm/issues/10074 for details - if (pkg.package && pkg.package.scripts && pkg.package.scripts.prepublish) { - prepublishWarning([ - 'As of npm@5, `prepublish` scripts are deprecated.', - 'Use `prepare` for build steps and `prepublishOnly` for upload-only.', - 'See the deprecation note in `npm help scripts` for more information.' - ]) - } - var buildpath = moduleStagingPath(staging, pkg) - chain( - [ - [lifecycle, pkg.package, 'prepublish', buildpath], - [lifecycle, pkg.package, 'prepare', buildpath] - ], - next - ) -} diff --git a/deps/npm/lib/install/action/refresh-package-json.js b/deps/npm/lib/install/action/refresh-package-json.js deleted file mode 100644 index 32e64444445..00000000000 --- a/deps/npm/lib/install/action/refresh-package-json.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict' - -const Bluebird = require('bluebird') - -const checkPlatform = Bluebird.promisify(require('npm-install-checks').checkPlatform) -const getRequested = require('../get-requested.js') -const npm = require('../../npm.js') -const path = require('path') -const readJson = Bluebird.promisify(require('read-package-json')) -const updatePackageJson = Bluebird.promisify(require('../update-package-json')) - -module.exports = function (staging, pkg, log) { - log.silly('refresh-package-json', pkg.realpath) - - return readJson(path.join(pkg.path, 'package.json'), false).then((metadata) => { - Object.keys(pkg.package).forEach(function (key) { - if (key !== 'version' && key !== 'dependencies' && !isEmpty(pkg.package[key])) { - metadata[key] = pkg.package[key] - } - }) - if (metadata._resolved == null && pkg.fakeChild) { - metadata._resolved = pkg.fakeChild.resolved - } - // These two sneak in and it's awful - delete metadata.readme - delete metadata.readmeFilename - - pkg.package = metadata - pkg.fakeChild = false - }).catch(() => 'ignore').then(() => { - return checkPlatform(pkg.package, npm.config.get('force')) - }).then(() => { - const requested = pkg.package._requested || getRequested(pkg) - if (requested.type !== 'directory') { - return updatePackageJson(pkg, pkg.path) - } - }) -} - -function isEmpty (value) { - if (value == null) return true - if (Array.isArray(value)) return !value.length - if (typeof value === 'object') return !Object.keys(value).length - return false -} diff --git a/deps/npm/lib/install/action/remove.js b/deps/npm/lib/install/action/remove.js deleted file mode 100644 index a852d10c5fd..00000000000 --- a/deps/npm/lib/install/action/remove.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var rimraf = require('rimraf') -var asyncMap = require('slide').asyncMap -var mkdirp = require('mkdirp') -var npm = require('../../npm.js') -var andIgnoreErrors = require('../and-ignore-errors.js') -var move = require('../../utils/move.js') -var isInside = require('path-is-inside') -var vacuum = require('fs-vacuum') - -// This is weird because we want to remove the module but not it's node_modules folder -// allowing for this allows us to not worry about the order of operations -module.exports = function (staging, pkg, log, next) { - log.silly('remove', pkg.path) - if (pkg.target) { - removeLink(pkg, next) - } else { - removeDir(pkg, log, next) - } -} - -function removeLink (pkg, next) { - var base = isInside(pkg.path, npm.prefix) ? npm.prefix : pkg.path - rimraf(pkg.path, (err) => { - if (err) return next(err) - vacuum(pkg.path, {base: base}, next) - }) -} - -function removeDir (pkg, log, next) { - var modpath = path.join(path.dirname(pkg.path), '.' + path.basename(pkg.path) + '.MODULES') - - move(path.join(pkg.path, 'node_modules'), modpath).then(unbuildPackage, unbuildPackage) - - function unbuildPackage (moveEr) { - rimraf(pkg.path, moveEr ? andRemoveEmptyParents(pkg.path) : moveModulesBack) - } - - function andRemoveEmptyParents (path) { - return function (er) { - if (er) return next(er) - removeEmptyParents(pkg.path) - } - } - - function moveModulesBack () { - fs.readdir(modpath, makeTarget) - } - - function makeTarget (readdirEr, files) { - if (readdirEr) return cleanup() - if (!files.length) return cleanup() - mkdirp(path.join(pkg.path, 'node_modules'), function (mkdirEr) { moveModules(mkdirEr, files) }) - } - - function moveModules (mkdirEr, files) { - if (mkdirEr) return next(mkdirEr) - asyncMap(files, function (file, done) { - var from = path.join(modpath, file) - var to = path.join(pkg.path, 'node_modules', file) - // we ignore errors here, because they can legitimately happen, for instance, - // bundled modules will be in both node_modules folders - move(from, to).then(andIgnoreErrors(done), andIgnoreErrors(done)) - }, cleanup) - } - - function cleanup () { - rimraf(modpath, afterCleanup) - } - - function afterCleanup (rimrafEr) { - if (rimrafEr) log.warn('remove', rimrafEr) - removeEmptyParents(path.resolve(pkg.path, '..')) - } - - function removeEmptyParents (pkgdir) { - fs.rmdir(pkgdir, function (er) { - // FIXME: Make sure windows does what we want here - if (er && er.code !== 'ENOENT') return next() - removeEmptyParents(path.resolve(pkgdir, '..')) - }) - } -} diff --git a/deps/npm/lib/install/action/unbuild.js b/deps/npm/lib/install/action/unbuild.js deleted file mode 100644 index dbfbd9c4b12..00000000000 --- a/deps/npm/lib/install/action/unbuild.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var Bluebird = require('bluebird') -var lifecycle = Bluebird.promisify(require('../../utils/lifecycle.js')) -var packageId = require('../../utils/package-id.js') -var rmStuff = Bluebird.promisify(require('../../unbuild.js').rmStuff) - -module.exports = function (staging, pkg, log) { - log.silly('unbuild', packageId(pkg)) - return lifecycle(pkg.package, 'preuninstall', pkg.path, { failOk: true }).then(() => { - return lifecycle(pkg.package, 'uninstall', pkg.path, { failOk: true }) - }).then(() => { - return rmStuff(pkg.package, pkg.path) - }).then(() => { - return lifecycle(pkg.package, 'postuninstall', pkg.path, { failOk: true }) - }) -} diff --git a/deps/npm/lib/install/actions.js b/deps/npm/lib/install/actions.js deleted file mode 100644 index 9608a943a5a..00000000000 --- a/deps/npm/lib/install/actions.js +++ /dev/null @@ -1,192 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const andAddParentToErrors = require('./and-add-parent-to-errors.js') -const failedDependency = require('./deps.js').failedDependency -const isInstallable = BB.promisify(require('./validate-args.js').isInstallable) -const moduleName = require('../utils/module-name.js') -const npm = require('../npm.js') -const reportOptionalFailure = require('./report-optional-failure.js') -const validate = require('aproba') - -const actions = {} - -actions.fetch = require('./action/fetch.js') -actions.extract = require('./action/extract.js') -actions.build = require('./action/build.js') -actions.preinstall = require('./action/preinstall.js') -actions.install = require('./action/install.js') -actions.postinstall = require('./action/postinstall.js') -actions.prepare = require('./action/prepare.js') -actions.finalize = require('./action/finalize.js') -actions.remove = require('./action/remove.js') -actions.unbuild = require('./action/unbuild.js') -actions.move = require('./action/move.js') -actions['global-install'] = require('./action/global-install.js') -actions['global-link'] = require('./action/global-link.js') -actions['refresh-package-json'] = require('./action/refresh-package-json.js') - -// FIXME: We wrap actions like three ways to sunday here. -// Rewrite this to only work one way. - -Object.keys(actions).forEach(function (actionName) { - var action = actions[actionName] - actions[actionName] = (staging, pkg, log) => { - validate('SOO', [staging, pkg, log]) - // refuse to run actions for failed packages - if (pkg.failed) return BB.resolve() - if (action.rollback) { - if (!pkg.rollback) pkg.rollback = [] - pkg.rollback.unshift(action.rollback) - } - if (action.commit) { - if (!pkg.commit) pkg.commit = [] - pkg.commit.push(action.commit) - } - - let actionP - if (pkg.knownInstallable) { - actionP = runAction(action, staging, pkg, log) - } else { - actionP = isInstallable(pkg.package).then(() => { - pkg.knownInstallable = true - return runAction(action, staging, pkg, log) - }) - } - - return actionP.then(() => { - log.finish() - }, (err) => { - return BB.fromNode((cb) => { - andAddParentToErrors(pkg.parent, cb)(err) - }).catch((err) => { - return handleOptionalDepErrors(pkg, err) - }) - }) - } - actions[actionName].init = action.init || (() => BB.resolve()) - actions[actionName].teardown = action.teardown || (() => BB.resolve()) -}) -exports.actions = actions - -function runAction (action, staging, pkg, log) { - return BB.fromNode((cb) => { - const result = action(staging, pkg, log, cb) - if (result && result.then) { - result.then(() => cb(), cb) - } - }) -} - -function markAsFailed (pkg) { - if (pkg.failed) return - pkg.failed = true - pkg.requires.forEach((req) => { - var requiredBy = req.requiredBy.filter((reqReqBy) => !reqReqBy.failed) - if (requiredBy.length === 0 && !req.userRequired) { - markAsFailed(req) - } - }) -} - -function handleOptionalDepErrors (pkg, err) { - markAsFailed(pkg) - var anyFatal = failedDependency(pkg) - if (anyFatal) { - throw err - } else { - reportOptionalFailure(pkg, null, err) - } -} - -exports.doOne = doOne -function doOne (cmd, staging, pkg, log, next) { - validate('SSOOF', arguments) - const prepped = prepareAction([cmd, pkg], staging, log) - return withInit(actions[cmd], () => { - return execAction(prepped) - }).nodeify(next) -} - -exports.doParallel = doParallel -function doParallel (type, staging, actionsToRun, log, next) { - validate('SSAOF', arguments) - const acts = actionsToRun.reduce((acc, todo) => { - if (todo[0] === type) { - acc.push(prepareAction(todo, staging, log)) - } - return acc - }, []) - log.silly('doParallel', type + ' ' + actionsToRun.length) - time(log) - if (!acts.length) { return next() } - return withInit(actions[type], () => { - return BB.map(acts, execAction, { - concurrency: npm.limit.action - }) - }).nodeify((err) => { - log.finish() - timeEnd(log) - next(err) - }) -} - -exports.doSerial = doSerial -function doSerial (type, staging, actionsToRun, log, next) { - validate('SSAOF', arguments) - log.silly('doSerial', '%s %d', type, actionsToRun.length) - runSerial(type, staging, actionsToRun, log, next) -} - -exports.doReverseSerial = doReverseSerial -function doReverseSerial (type, staging, actionsToRun, log, next) { - validate('SSAOF', arguments) - log.silly('doReverseSerial', '%s %d', type, actionsToRun.length) - runSerial(type, staging, [].concat(actionsToRun).reverse(), log, next) -} - -function runSerial (type, staging, actionsToRun, log, next) { - const acts = actionsToRun.reduce((acc, todo) => { - if (todo[0] === type) { - acc.push(prepareAction(todo, staging, log)) - } - return acc - }, []) - time(log) - if (!acts.length) { return next() } - return withInit(actions[type], () => { - return BB.each(acts, execAction) - }).nodeify((err) => { - log.finish() - timeEnd(log) - next(err) - }) -} - -function time (log) { - process.emit('time', 'action:' + log.name) -} -function timeEnd (log) { - process.emit('timeEnd', 'action:' + log.name) -} - -function withInit (action, body) { - return BB.using( - action.init().disposer(() => action.teardown()), - body - ) -} - -function prepareAction (action, staging, log) { - validate('ASO', arguments) - validate('SO', action) - var cmd = action[0] - var pkg = action[1] - if (!actions[cmd]) throw new Error('Unknown decomposed command "' + cmd + '" (is it new?)') - return [actions[cmd], staging, pkg, log.newGroup(cmd + ':' + moduleName(pkg))] -} - -function execAction (todo) { - return todo[0].apply(null, todo.slice(1)) -} diff --git a/deps/npm/lib/install/and-add-parent-to-errors.js b/deps/npm/lib/install/and-add-parent-to-errors.js deleted file mode 100644 index 62a86bd4a6c..00000000000 --- a/deps/npm/lib/install/and-add-parent-to-errors.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var validate = require('aproba') - -module.exports = function (parent, cb) { - validate('F', [cb]) - return function (er) { - if (!er) return cb.apply(null, arguments) - if (er instanceof Error && parent && parent.package && parent.package.name) { - er.parent = parent.package.name - } - cb(er) - } -} diff --git a/deps/npm/lib/install/and-finish-tracker.js b/deps/npm/lib/install/and-finish-tracker.js deleted file mode 100644 index 2bab60ddc40..00000000000 --- a/deps/npm/lib/install/and-finish-tracker.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var validate = require('aproba') - -module.exports = function (tracker, cb) { - validate('OF', [tracker, cb]) - return function () { - tracker.finish() - cb.apply(null, arguments) - } -} - -module.exports.now = function (tracker, cb) { - validate('OF', [tracker, cb]) - tracker.finish() - cb.apply(null, Array.prototype.slice.call(arguments, 2)) -} diff --git a/deps/npm/lib/install/and-ignore-errors.js b/deps/npm/lib/install/and-ignore-errors.js deleted file mode 100644 index cf46ad82155..00000000000 --- a/deps/npm/lib/install/and-ignore-errors.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict' - -module.exports = function (cb) { - return function () { - var args = Array.prototype.slice.call(arguments, 1) - if (args.length) args.unshift(null) - return cb.apply(null, args) - } -} diff --git a/deps/npm/lib/install/check-permissions.js b/deps/npm/lib/install/check-permissions.js deleted file mode 100644 index 7806fcff993..00000000000 --- a/deps/npm/lib/install/check-permissions.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' -var path = require('path') -var log = require('npmlog') -var validate = require('aproba') -var uniq = require('lodash.uniq') -var asyncMap = require('slide').asyncMap -var npm = require('../npm.js') -var exists = require('./exists.js') -var writable = require('./writable.js') - -module.exports = function (actions, next) { - validate('AF', arguments) - var errors = [] - asyncMap(actions, function (action, done) { - var cmd = action[0] - var pkg = action[1] - switch (cmd) { - case 'add': - hasAnyWriteAccess(path.resolve(pkg.path, '..'), errors, done) - break - case 'update': - case 'remove': - hasWriteAccess(pkg.path, errors, andHasWriteAccess(path.resolve(pkg.path, '..'), errors, done)) - break - case 'move': - hasAnyWriteAccess(pkg.path, errors, andHasWriteAccess(path.resolve(pkg.fromPath, '..'), errors, done)) - break - default: - done() - } - }, function () { - if (!errors.length) return next() - uniq(errors.map(function (er) { return 'Missing write access to ' + er.path })).forEach(function (er) { - log.warn('checkPermissions', er) - }) - npm.config.get('force') ? next() : next(errors[0]) - }) -} - -function andHasWriteAccess (dir, errors, done) { - validate('SAF', arguments) - return function () { - hasWriteAccess(dir, errors, done) - } -} - -function hasAnyWriteAccess (dir, errors, done) { - validate('SAF', arguments) - findNearestDir() - function findNearestDir () { - var nextDir = path.resolve(dir, '..') - exists(dir, function (dirDoesntExist) { - if (!dirDoesntExist || nextDir === dir) { - return hasWriteAccess(dir, errors, done) - } else { - dir = nextDir - findNearestDir() - } - }) - } -} - -function hasWriteAccess (dir, errors, done) { - validate('SAF', arguments) - writable(dir, function (er) { - if (er) errors.push(er) - done() - }) -} diff --git a/deps/npm/lib/install/copy-tree.js b/deps/npm/lib/install/copy-tree.js deleted file mode 100644 index a5b558cf598..00000000000 --- a/deps/npm/lib/install/copy-tree.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' -var createNode = require('./node.js').create -module.exports = function (tree, filter) { - return copyTree(tree, {}, filter) -} - -function copyTree (tree, cache, filter) { - if (filter && !filter(tree)) { return null } - if (cache[tree.path]) { return cache[tree.path] } - var newTree = cache[tree.path] = createNode(Object.assign({}, tree)) - copyModuleList(newTree, 'children', cache, filter) - newTree.children.forEach(function (child) { - child.parent = newTree - }) - copyModuleList(newTree, 'requires', cache, filter) - copyModuleList(newTree, 'requiredBy', cache, filter) - return newTree -} - -function copyModuleList (tree, key, cache, filter) { - var newList = [] - if (tree[key]) { - tree[key].forEach(function (child) { - const copy = copyTree(child, cache, filter) - if (copy) { - newList.push(copy) - } - }) - } - tree[key] = newList -} diff --git a/deps/npm/lib/install/decompose-actions.js b/deps/npm/lib/install/decompose-actions.js deleted file mode 100644 index 57dc7cd6874..00000000000 --- a/deps/npm/lib/install/decompose-actions.js +++ /dev/null @@ -1,72 +0,0 @@ -'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) { - var cmd = action[0] - var pkg = action[1] - switch (cmd) { - case 'add': - addSteps(decomposed, pkg, done) - break - case 'update': - updateSteps(decomposed, pkg, done) - break - case 'move': - moveSteps(decomposed, pkg, done) - break - case 'remove': - removeSteps(decomposed, pkg, done) - break - default: - defaultSteps(decomposed, cmd, pkg, done) - } - }, next) -} - -function addSteps (decomposed, pkg, done) { - if (!pkg.fromBundle && !pkg.isLink) { - decomposed.push(['fetch', pkg]) - decomposed.push(['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]) - } - if (!pkg.fromBundle || !pkg.isLink) { - decomposed.push(['finalize', pkg]) - } - decomposed.push(['refresh-package-json', pkg]) - done() -} - -function updateSteps (decomposed, pkg, done) { - removeSteps(decomposed, pkg.oldPkg, () => { - addSteps(decomposed, pkg, done) - }) -} - -function removeSteps (decomposed, pkg, done) { - decomposed.push(['unbuild', pkg]) - decomposed.push(['remove', pkg]) - done() -} - -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 defaultSteps (decomposed, cmd, pkg, done) { - decomposed.push([cmd, pkg]) - done() -} diff --git a/deps/npm/lib/install/deps.js b/deps/npm/lib/install/deps.js deleted file mode 100644 index 93c4adffd7e..00000000000 --- a/deps/npm/lib/install/deps.js +++ /dev/null @@ -1,742 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -var fs = require('fs') -var assert = require('assert') -var path = require('path') -var semver = require('semver') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var iferr = require('iferr') -var npa = require('npm-package-arg') -var validate = require('aproba') -var dezalgo = require('dezalgo') -var fetchPackageMetadata = require('../fetch-package-metadata.js') -var andAddParentToErrors = require('./and-add-parent-to-errors.js') -var addBundled = require('../fetch-package-metadata.js').addBundled -var readShrinkwrap = require('./read-shrinkwrap.js') -var inflateShrinkwrap = require('./inflate-shrinkwrap.js') -var inflateBundled = require('./inflate-bundled.js') -var andFinishTracker = require('./and-finish-tracker.js') -var npm = require('../npm.js') -var flatNameFromTree = require('./flatten-tree.js').flatNameFromTree -var createChild = require('./node.js').create -var resetMetadata = require('./node.js').reset -var isInstallable = require('./validate-args.js').isInstallable -var packageId = require('../utils/package-id.js') -var moduleName = require('../utils/module-name.js') -var isDevDep = require('./is-dev-dep.js') -var isProdDep = require('./is-prod-dep.js') -var reportOptionalFailure = require('./report-optional-failure.js') -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') - -// The export functions in this module mutate a dependency tree, adding -// items to them. - -var registryTypes = { range: true, version: true } - -function doesChildVersionMatch (child, requested, requestor) { - if (child.fromShrinkwrap && !child.hasRequiresFromLock) return true - // ranges of * ALWAYS count as a match, because when downloading we allow - // prereleases to match * if there are ONLY prereleases - if (requested.type === 'range' && requested.fetchSpec === '*') return true - - if (requested.type === 'directory') { - if (!child.isLink) return false - return path.relative(child.realpath, requested.fetchSpec) === '' - } - - if (!registryTypes[requested.type]) { - var childReq = child.package._requested - if (childReq) { - if (childReq.rawSpec === requested.rawSpec) return true - if (childReq.type === requested.type && childReq.saveSpec === requested.saveSpec) return true - } - // If _requested didn't exist OR if it didn't match then we'll try using - // _from. We pass it through npa to normalize the specifier. - // This can happen when installing from an `npm-shrinkwrap.json` where `_requested` will - // be the tarball URL from `resolved` and thus can't match what's in the `package.json`. - // In those cases _from, will be preserved and we can compare that to ensure that they - // really came from the same sources. - // 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*@'), '')) - if (fromReq.rawSpec === requested.rawSpec) return true - if (fromReq.type === requested.type && fromReq.saveSpec && fromReq.saveSpec === requested.saveSpec) return true - } - return false - } - try { - return semver.satisfies(child.package.version, requested.fetchSpec, true) - } catch (e) { - return false - } -} - -function childDependencySpecifier (tree, name, spec) { - return npa.resolve(name, spec, packageRelativePath(tree)) -} - -exports.computeMetadata = computeMetadata -function computeMetadata (tree, seen) { - if (!seen) seen = new Set() - if (!tree || seen.has(tree)) return - seen.add(tree) - if (tree.parent == null) { - resetMetadata(tree) - tree.isTop = true - } - tree.location = flatNameFromTree(tree) - - function findChild (name, spec, kind) { - try { - var req = childDependencySpecifier(tree, name, spec) - } catch (err) { - return - } - var child = findRequirement(tree, req.name, req) - if (child) { - 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 - tree.missingDeps[name] = deps[name] - } - if (tree.isTop) { - const devDeps = tree.package.devDependencies || {} - for (let name of Object.keys(devDeps)) { - if (findChild(name, devDeps[name])) continue - tree.missingDevDeps[name] = devDeps[name] - } - } - - tree.children.filter((child) => !child.removed).forEach((child) => computeMetadata(child, seen)) - - return tree -} - -function isDep (tree, child) { - var name = moduleName(child) - var prodVer = isProdDep(tree, name) - var devVer = isDevDep(tree, name) - - try { - var prodSpec = childDependencySpecifier(tree, name, prodVer) - } catch (err) { - return {isDep: true, isProdDep: false, isDevDep: false} - } - var matches - if (prodSpec) matches = doesChildVersionMatch(child, prodSpec, tree) - if (matches) return {isDep: true, isProdDep: prodSpec, isDevDep: false} - if (devVer === prodVer) return {isDep: child.fromShrinkwrap, isProdDep: false, isDevDep: false} - try { - var devSpec = childDependencySpecifier(tree, name, devVer) - return {isDep: doesChildVersionMatch(child, devSpec, tree) || child.fromShrinkwrap, isProdDep: false, isDevDep: devSpec} - } catch (err) { - return {isDep: child.fromShrinkwrap, isProdDep: false, isDevDep: false} - } -} - -function addRequiredDep (tree, child) { - var dep = isDep(tree, child) - if (!dep.isDep) return false - replaceModuleByPath(child, 'requiredBy', tree) - replaceModuleByName(tree, 'requires', child) - if (dep.isProdDep && tree.missingDeps) delete tree.missingDeps[moduleName(child)] - if (dep.isDevDep && tree.missingDevDeps) delete tree.missingDevDeps[moduleName(child)] - return true -} - -exports.removeObsoleteDep = removeObsoleteDep -function removeObsoleteDep (child, log) { - if (child.removed) return - child.removed = true - if (log) { - log.silly('removeObsoleteDep', 'removing ' + packageId(child) + - ' from the tree as its been replaced by a newer version or is no longer required') - } - // remove from physical tree - if (child.parent) { - child.parent.children = child.parent.children.filter(function (pchild) { return pchild !== child }) - } - // remove from logical tree - var requires = child.requires || [] - requires.forEach(function (requirement) { - requirement.requiredBy = requirement.requiredBy.filter(function (reqBy) { return reqBy !== child }) - // we don't just check requirement.requires because that doesn't account - // for circular deps. isExtraneous does. - if (isExtraneous(requirement)) removeObsoleteDep(requirement, log) - }) -} - -function packageRelativePath (tree) { - if (!tree) return '' - 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 -} - -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) { - asyncMap(args, function (arg, done) { - let spec - try { - spec = npa(arg) - } catch (e) { - return done(e) - } - if (spec.type !== 'file' && spec.type !== 'directory' && (spec.name == null || spec.rawSpec === '')) { - return fs.stat(path.join(arg, 'package.json'), (err) => { - if (err) { - var version = matchingDep(tree, spec.name) - if (version) { - try { - return fetchPackageMetadata(npa.resolve(spec.name, version), where, done) - } catch (e) { - return done(e) - } - } else { - return fetchPackageMetadata(spec, where, done) - } - } else { - try { - return fetchPackageMetadata(npa('file:' + arg), where, done) - } catch (e) { - return done(e) - } - } - }) - } else { - return fetchPackageMetadata(spec, where, done) - } - }, next) -} - -// Add a list of args to tree's top level dependencies -exports.loadRequestedDeps = function (args, tree, saveToDependencies, log, next) { - validate('AOOF', [args, tree, log, next]) - asyncMap(args, function (pkg, done) { - var depLoaded = andAddParentToErrors(tree, done) - resolveWithNewModule(pkg, tree, log.newGroup('loadRequestedDeps'), iferr(depLoaded, function (child, tracker) { - validate('OO', arguments) - if (npm.config.get('global')) { - child.isGlobal = true - } - var childName = moduleName(child) - child.saveSpec = computeVersionSpec(tree, child) - child.userRequired = true - child.save = getSaveType(tree, child) - const types = ['dependencies', 'devDependencies', 'optionalDependencies'] - if (child.save) { - tree.package[child.save][childName] = child.saveSpec - // Astute readers might notice that this exact same code exists in - // save.js under a different guise. That code is responsible for deps - // being removed from the final written `package.json`. The removal in - // this function is specifically to prevent "installed as both X and Y" - // warnings when moving an existing dep between different dep fields. - // - // Or, try it by removing this loop, and do `npm i -P x && npm i -D x` - for (let saveType of types) { - if (child.save !== saveType) { - delete tree.package[saveType][childName] - } - } - } - - // For things the user asked to install, that aren't a dependency (or - // won't be when we're done), flag it as "depending" on the user - // themselves, so we don't remove it as a dep that no longer exists - var childIsDep = addRequiredDep(tree, child) - if (!childIsDep) child.userRequired = true - depLoaded(null, child, tracker) - })) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -function isNotEmpty (value) { - return value != null && value !== '' -} - -exports.computeVersionSpec = computeVersionSpec -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)))) { - requested = child.package._requested - } else if (child.package._from) { - requested = npa(child.package._from) - } else { - requested = npa.resolve(child.package.name, child.package.version) - } - if (isRegistry(requested)) { - var version = child.package.version - var rangeDescriptor = '' - if (semver.valid(version, true) && - semver.gte(version, '0.1.0', true) && - !npm.config.get('save-exact')) { - rangeDescriptor = npm.config.get('save-prefix') - } - return rangeDescriptor + version - } else if (requested.type === 'directory' || requested.type === 'file') { - return 'file:' + unixFormatPath(path.relative(tree.path, requested.fetchSpec)) - } else { - return requested.saveSpec || requested.rawSpec - } -} - -function moduleNameMatches (name) { - return function (child) { return moduleName(child) === name } -} - -// while this implementation does not require async calling, doing so -// gives this a consistent interface with loadDeps et al -exports.removeDeps = function (args, tree, saveToDependencies, next) { - validate('AOSF|AOZF', [args, tree, saveToDependencies, next]) - for (let pkg of args) { - var pkgName = moduleName(pkg) - var toRemove = tree.children.filter(moduleNameMatches(pkgName)) - var pkgToRemove = toRemove[0] || createChild({package: {name: pkgName}}) - var saveType = getSaveType(tree, pkg) || 'dependencies' - if (tree.isTop && saveToDependencies) { - pkgToRemove.save = saveType - } - if (tree.package[saveType][pkgName]) { - delete tree.package[saveType][pkgName] - if (saveType === 'optionalDependencies' && tree.package.dependencies[pkgName]) { - delete tree.package.dependencies[pkgName] - } - } - replaceModuleByPath(tree, 'removedChildren', pkgToRemove) - for (let parent of pkgToRemove.requiredBy) { - parent.requires = parent.requires.filter((child) => child !== pkgToRemove) - } - pkgToRemove.requiredBy = pkgToRemove.requiredBy.filter((parent) => parent !== tree) - } - next() -} -exports.removeExtraneous = function (args, tree, next) { - for (let pkg of args) { - var pkgName = moduleName(pkg) - var toRemove = tree.children.filter(moduleNameMatches(pkgName)) - if (toRemove.length) { - removeObsoleteDep(toRemove[0]) - } - } - next() -} - -function andForEachChild (load, next) { - validate('F', [next]) - next = dezalgo(next) - return function (er, children, logs) { - // when children is empty, logs won't be passed in at all (asyncMap is weird) - // so shortcircuit before arg validation - if (!er && (!children || children.length === 0)) return next() - validate('EAA', arguments) - if (er) return next(er) - assert(children.length === logs.length) - var cmds = [] - for (var ii = 0; ii < children.length; ++ii) { - cmds.push([load, children[ii], logs[ii]]) - } - var sortedCmds = cmds.sort(function installOrder (aa, bb) { - return moduleName(aa[1]).localeCompare(moduleName(bb[1])) - }) - chain(sortedCmds, 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 - return false -} - -exports.failedDependency = failedDependency -function failedDependency (tree, name, pkg) { - if (name) { - if (isDepOptional(tree, name, pkg || {})) { - return false - } - } - - tree.failed = true - - if (tree.isTop) return true - - if (tree.userRequired) return true - - if (!tree.requiredBy) return false - - let anyFailed = false - for (var ii = 0; ii < tree.requiredBy.length; ++ii) { - var requireParent = tree.requiredBy[ii] - if (failedDependency(requireParent, moduleName(tree), tree)) { - anyFailed = true - } - } - return anyFailed -} - -function andHandleOptionalErrors (log, tree, name, done) { - validate('OOSF', arguments) - return function (er, child, childLog) { - if (!er) validate('OO', [child, childLog]) - if (!er) return done(er, child, childLog) - var isFatal = failedDependency(tree, name) - if (er && !isFatal) { - reportOptionalFailure(tree, name, er) - return done() - } else { - return done(er, child, childLog) - } - } -} - -exports.prefetchDeps = prefetchDeps -function prefetchDeps (tree, deps, log, next) { - validate('OOOF', arguments) - var skipOptional = !npm.config.get('optional') - var seen = new Set() - const finished = andFinishTracker(log, next) - const fpm = BB.promisify(fetchPackageMetadata) - resolveBranchDeps(tree.package, deps).then( - () => finished(), finished - ) - - function resolveBranchDeps (pkg, deps) { - return BB.resolve(null).then(() => { - var allDependencies = Object.keys(deps).map((dep) => { - return npa.resolve(dep, deps[dep]) - }).filter((dep) => { - return isRegistry(dep) && - !seen.has(dep.toString()) && - !findRequirement(tree, dep.name, dep) - }) - if (skipOptional) { - var optDeps = pkg.optionalDependencies || {} - allDependencies = allDependencies.filter((dep) => !optDeps[dep.name]) - } - return BB.map(allDependencies, (dep) => { - seen.add(dep.toString()) - return fpm(dep, '', {tracker: log.newItem('fetchMetadata')}).then( - (pkg) => { - return pkg && pkg.dependencies && resolveBranchDeps(pkg, pkg.dependencies) - }, - () => null - ) - }) - }) - } -} - -// Load any missing dependencies in the given tree -exports.loadDeps = loadDeps -function loadDeps (tree, log, next) { - validate('OOF', arguments) - if (tree.loaded || (tree.parent && tree.parent.failed) || tree.removed) return andFinishTracker.now(log, next) - if (tree.parent) tree.loaded = true - 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))) -} - -// Load development dependencies into the given tree -exports.loadDevDeps = function (tree, log, next) { - validate('OOF', arguments) - if (!tree.package.devDependencies) return andFinishTracker.now(log, next) - asyncMap(Object.keys(tree.package.devDependencies), function (dep, done) { - // things defined as both dev dependencies and regular dependencies are treated - // as the former - if (tree.package.dependencies[dep]) return done() - - var logGroup = log.newGroup('loadDevDep:' + dep) - addDependency(dep, tree.package.devDependencies[dep], tree, logGroup, done) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -var loadExtraneous = exports.loadExtraneous = function (tree, log, next) { - var seen = new Set() - - function loadExtraneous (tree) { - if (seen.has(tree)) return - seen.add(tree) - for (var child of tree.children) { - if (child.loaded) continue - resolveWithExistingModule(child, tree) - loadExtraneous(child) - } - } - loadExtraneous(tree) - log.finish() - next() -} - -exports.loadExtraneous.andResolveDeps = function (tree, log, next) { - validate('OOF', arguments) - // For canonicalized trees (eg from shrinkwrap) we don't want to bother - // resolving the dependencies of extraneous deps. - if (tree.loaded) return loadExtraneous(tree, log, next) - asyncMap(tree.children.filter(function (child) { return !child.loaded }), function (child, done) { - resolveWithExistingModule(child, tree) - done(null, child, log) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -function addDependency (name, versionSpec, tree, log, done) { - validate('SSOOF', arguments) - var next = andAddParentToErrors(tree, done) - try { - var req = childDependencySpecifier(tree, name, versionSpec) - if (tree.swRequires && tree.swRequires[name]) { - var swReq = childDependencySpecifier(tree, name, tree.swRequires[name]) - } - } catch (err) { - return done(err) - } - var child = findRequirement(tree, name, req) - if (!child && swReq) child = findRequirement(tree, name, swReq) - if (child) { - resolveWithExistingModule(child, tree) - if (child.package._shrinkwrap === undefined) { - readShrinkwrap.andInflate(child, function (er) { next(er, child, log) }) - } else { - next(null, child, log) - } - } else { - fetchPackageMetadata(req, packageRelativePath(tree), {tracker: log.newItem('fetchMetadata')}, iferr(next, function (pkg) { - resolveWithNewModule(pkg, tree, log, next) - })) - } -} - -function resolveWithExistingModule (child, tree) { - validate('OO', arguments) - addRequiredDep(tree, child) - if (tree.parent && child.parent !== tree) updatePhantomChildren(tree.parent, child) -} - -var updatePhantomChildren = exports.updatePhantomChildren = function (current, child) { - validate('OO', arguments) - while (current && current !== child.parent) { - if (!current.phantomChildren) current.phantomChildren = {} - current.phantomChildren[moduleName(child)] = child - current = current.parent - } -} - -exports._replaceModuleByPath = replaceModuleByPath -function replaceModuleByPath (obj, key, child) { - return replaceModule(obj, key, child, function (replacing, child) { - return replacing.path === child.path - }) -} - -exports._replaceModuleByName = replaceModuleByName -function replaceModuleByName (obj, key, child) { - var childName = moduleName(child) - return replaceModule(obj, key, child, function (replacing, child) { - return moduleName(replacing) === childName - }) -} - -function replaceModule (obj, key, child, matchBy) { - validate('OSOF', arguments) - if (!obj[key]) obj[key] = [] - // we replace children with a new array object instead of mutating it - // because mutating it results in weird failure states. - // I would very much like to know _why_ this is. =/ - var children = [].concat(obj[key]) - for (var replaceAt = 0; replaceAt < children.length; ++replaceAt) { - if (matchBy(children[replaceAt], child)) break - } - var replacing = children.splice(replaceAt, 1, child) - obj[key] = children - return replacing[0] -} - -function resolveWithNewModule (pkg, tree, log, next) { - validate('OOOF', arguments) - - log.silly('resolveWithNewModule', packageId(pkg), 'checking installable status') - return isInstallable(pkg, (err) => { - let installable = !err - addBundled(pkg, (bundleErr) => { - var parent = earliestInstallable(tree, tree, pkg) || tree - var isLink = pkg._requested.type === 'directory' - var child = createChild({ - package: pkg, - parent: parent, - path: path.join(parent.isLink ? parent.realpath : parent.path, 'node_modules', pkg.name), - realpath: isLink ? pkg._requested.fetchSpec : path.join(parent.realpath, 'node_modules', pkg.name), - children: pkg._bundled || [], - isLink: isLink, - isInLink: parent.isLink, - knownInstallable: installable - }) - if (!installable || bundleErr) child.failed = true - delete pkg._bundled - var hasBundled = child.children.length - - var replaced = replaceModuleByName(parent, 'children', child) - if (replaced) removeObsoleteDep(replaced) - addRequiredDep(tree, child) - child.location = flatNameFromTree(child) - - if (tree.parent && parent !== tree) updatePhantomChildren(tree.parent, child) - - if (hasBundled) { - inflateBundled(child, child, child.children) - } - - if (pkg._shrinkwrap && pkg._shrinkwrap.dependencies) { - return inflateShrinkwrap(child, pkg._shrinkwrap, (swErr) => { - if (swErr) child.failed = true - next(err || bundleErr || swErr, child, log) - }) - } - next(err || bundleErr, child, log) - }) - }) -} - -var validatePeerDeps = exports.validatePeerDeps = function (tree, onInvalid) { - if (!tree.package.peerDependencies) return - Object.keys(tree.package.peerDependencies).forEach(function (pkgname) { - var version = tree.package.peerDependencies[pkgname] - try { - var spec = npa.resolve(pkgname, version) - } catch (e) {} - var match = spec && findRequirement(tree.parent || tree, pkgname, spec) - if (!match) onInvalid(tree, pkgname, version) - }) -} - -exports.validateAllPeerDeps = function (tree, onInvalid) { - validateAllPeerDeps(tree, onInvalid, new Set()) -} - -function validateAllPeerDeps (tree, onInvalid, seen) { - validate('OFO', arguments) - if (seen.has(tree)) return - seen.add(tree) - validatePeerDeps(tree, onInvalid) - tree.children.forEach(function (child) { validateAllPeerDeps(child, onInvalid, seen) }) -} - -// Determine if a module requirement is already met by the tree at or above -// our current location in the tree. -var findRequirement = exports.findRequirement = function (tree, name, requested, requestor) { - validate('OSO', [tree, name, requested]) - if (!requestor) requestor = tree - var nameMatch = function (child) { - return moduleName(child) === name && child.parent && !child.removed - } - var versionMatch = function (child) { - return doesChildVersionMatch(child, requested, requestor) - } - if (nameMatch(tree)) { - // this *is* the module, but it doesn't match the version, so a - // new copy will have to be installed - return versionMatch(tree) ? tree : null - } - - var matches = tree.children.filter(nameMatch) - if (matches.length) { - matches = matches.filter(versionMatch) - // the module exists as a dependent, but the version doesn't match, so - // a new copy will have to be installed above here - if (matches.length) return matches[0] - return null - } - if (tree.isTop) return null - if (!preserveSymlinks() && /^[.][.][\\/]/.test(path.relative(tree.parent.realpath, tree.realpath))) return null - return findRequirement(tree.parent, name, requested, requestor) -} - -function preserveSymlinks () { - if (!('NODE_PRESERVE_SYMLINKS' in process.env)) return false - const value = process.env.NODE_PRESERVE_SYMLINKS - if (value == null || value === '' || value === 'false' || value === 'no' || value === '0') return false - return true -} - -// 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) - function undeletedModuleMatches (child) { - return !child.removed && moduleName(child) === pkg.name - } - if (tree.children.some(undeletedModuleMatches)) return null - - // If any of the children of this tree have conflicting - // binaries then we need to decline to install this package here. - var binaryMatches = pkg.bin && tree.children.some(function (child) { - if (child.removed || !child.package.bin) return false - return Object.keys(child.package.bin).some(function (bin) { - return pkg.bin[bin] - }) - }) - - if (binaryMatches) return null - - // if this tree location requested the same module then we KNOW it - // isn't compatible because if it were findRequirement would have - // found that version. - var deps = tree.package.dependencies || {} - if (!tree.removed && requiredBy !== tree && deps[pkg.name]) { - return null - } - - var devDeps = tree.package.devDependencies || {} - if (tree.isTop && devDeps[pkg.name]) { - var requested = childDependencySpecifier(tree, pkg.name, devDeps[pkg.name]) - if (!doesChildVersionMatch({package: pkg}, requested, tree)) { - return null - } - } - - if (tree.phantomChildren && tree.phantomChildren[pkg.name]) return null - - if (tree.isTop) return tree - if (tree.isGlobal) return tree - - if (npm.config.get('global-style') && tree.parent.isTop) return tree - if (npm.config.get('legacy-bundling')) return tree - - if (!preserveSymlinks() && /^[.][.][\\/]/.test(path.relative(tree.parent.realpath, tree.realpath))) return tree - - return (earliestInstallable(requiredBy, tree.parent, pkg) || tree) -} diff --git a/deps/npm/lib/install/diff-trees.js b/deps/npm/lib/install/diff-trees.js deleted file mode 100644 index 4316f351cc6..00000000000 --- a/deps/npm/lib/install/diff-trees.js +++ /dev/null @@ -1,244 +0,0 @@ -'use strict' -var npm = require('../npm.js') -var validate = require('aproba') -var npa = require('npm-package-arg') -var flattenTree = require('./flatten-tree.js') -var isOnlyDev = require('./is-only-dev.js') -var log = require('npmlog') -var path = require('path') -var ssri = require('ssri') -var moduleName = require('../utils/module-name.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. -function pkgRequested (pkg) { - return pkg._requested || (pkg._resolved && npa(pkg._resolved)) || (pkg._from && npa(pkg._from)) -} - -function nonRegistrySource (requested) { - if (fromGit(requested)) return true - if (fromLocal(requested)) return true - if (fromRemote(requested)) return true - return false -} - -function fromRemote (requested) { - if (requested.type === 'remote') return true -} - -function fromLocal (requested) { - // local is an npm@3 type that meant "file" - if (requested.type === 'file' || requested.type === 'directory' || requested.type === 'local') return true - return false -} - -function fromGit (requested) { - if (requested.type === 'hosted' || requested.type === 'git') return true - return false -} - -function pkgIntegrity (pkg) { - try { - // dist is provided by the registry - var sri = (pkg.dist && pkg.dist.integrity) || - // _integrity is provided by pacote - pkg._integrity || - // _shasum is legacy - (pkg._shasum && ssri.fromHex(pkg._shasum, 'sha1').toString()) - if (!sri) return - var integrity = ssri.parse(sri) - if (Object.keys(integrity).length === 0) return - return integrity - } catch (ex) { - return - } -} - -function sriMatch (aa, bb) { - if (!aa || !bb) return false - for (let algo of Object.keys(aa)) { - if (!bb[algo]) continue - for (let aaHash of aa[algo]) { - for (let bbHash of bb[algo]) { - return aaHash.digest === bbHash.digest - } - } - } - return false -} - -function pkgAreEquiv (aa, bb) { - // coming in we know they share a path… - - // 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 - var aaIntegrity = pkgIntegrity(aa.package) - var bbIntegrity = pkgIntegrity(bb.package) - if (aaIntegrity || bbIntegrity) return sriMatch(aaIntegrity, bbIntegrity) - - // if they're links and they share the same target, they're the same thing - if (aa.isLink && bb.isLink) return aa.realpath === bb.realpath - - // if we can't determine both their sources then we have no way to know - // if they're the same thing, so we have to assume they aren't - var aaReq = pkgRequested(aa.package) - var bbReq = pkgRequested(bb.package) - if (!aaReq || !bbReq) return false - - if (fromGit(aaReq) && fromGit(bbReq)) { - // if both are git and share a _resolved specifier (one with the - // comittish replaced by a commit hash) then they're the same - return aa.package._resolved && bb.package._resolved && - aa.package._resolved === bb.package._resolved - } - - // we have to give up trying to find matches for non-registry sources at this point… - if (nonRegistrySource(aaReq) || nonRegistrySource(bbReq)) return false - - // finally, if they ARE a registry source then version matching counts - return aa.package.version === bb.package.version -} - -function pushAll (aa, bb) { - Array.prototype.push.apply(aa, bb) -} - -module.exports = function (oldTree, newTree, differences, log, next) { - validate('OOAOF', arguments) - pushAll(differences, sortActions(diffTrees(oldTree, newTree))) - log.finish() - next() -} - -function isNotTopOrExtraneous (node) { - return !node.isTop && !node.userRequired && !node.existing -} - -var sortActions = module.exports.sortActions = function (differences) { - var actions = {} - differences.forEach(function (action) { - var child = action[1] - actions[child.location] = action - }) - - var sorted = [] - var added = {} - - var sortedlocs = Object.keys(actions).sort(sortByLocation) - - // We're going to sort the actions taken on top level dependencies first, before - // considering the order of transitive deps. Because we're building our list - // from the bottom up, this means we will return a list with top level deps LAST. - // This is important in terms of keeping installations as consistent as possible - // as folks add new dependencies. - var toplocs = sortedlocs.filter(function (location) { - var mod = actions[location][1] - if (!mod.requiredBy) return true - // If this module is required by any non-top level module - // or by any extraneous module, eg user requested or existing - // then we don't want to give this priority sorting. - return !mod.requiredBy.some(isNotTopOrExtraneous) - }) - - toplocs.concat(sortedlocs).forEach(function (location) { - sortByDeps(actions[location]) - }) - - function sortByLocation (aa, bb) { - return bb.localeCompare(aa) - } - function sortModuleByLocation (aa, bb) { - return sortByLocation(aa && aa.location, bb && bb.location) - } - function sortByDeps (action) { - var mod = action[1] - if (added[mod.location]) return - added[mod.location] = action - if (!mod.requiredBy) mod.requiredBy = [] - mod.requiredBy.sort(sortModuleByLocation).forEach(function (mod) { - if (actions[mod.location]) sortByDeps(actions[mod.location]) - }) - sorted.unshift(action) - } - - return sorted -} - -function setAction (differences, action, pkg) { - differences.push([action, pkg]) -} - -var diffTrees = module.exports._diffTrees = function (oldTree, newTree) { - validate('OO', arguments) - var differences = [] - var flatOldTree = flattenTree(oldTree) - var flatNewTree = flattenTree(newTree) - var toRemove = {} - var toRemoveByName = {} - - // Build our tentative remove list. We don't add remove actions yet - // because we might resuse them as part of a move. - Object.keys(flatOldTree).forEach(function (flatname) { - if (flatname === '/') return - if (flatNewTree[flatname]) return - var pkg = flatOldTree[flatname] - if (pkg.isInLink && /^[.][.][/\\]/.test(path.relative(newTree.realpath, pkg.realpath))) return - - toRemove[flatname] = pkg - var name = moduleName(pkg) - if (!toRemoveByName[name]) toRemoveByName[name] = [] - toRemoveByName[name].push({flatname: flatname, pkg: pkg}) - }) - - // generate our add/update/move actions - Object.keys(flatNewTree).forEach(function (flatname) { - if (flatname === '/') return - var pkg = flatNewTree[flatname] - var oldPkg = pkg.oldPkg = flatOldTree[flatname] - if (oldPkg) { - // if the versions are equivalent then we don't need to update… unless - // the user explicitly asked us to. - if (!pkg.userRequired && pkgAreEquiv(oldPkg, pkg)) return - setAction(differences, 'update', pkg) - } else { - var name = moduleName(pkg) - // find any packages we're removing that share the same name and are equivalent - var removing = (toRemoveByName[name] || []).filter((rm) => pkgAreEquiv(rm.pkg, pkg)) - var bundlesOrFromBundle = pkg.fromBundle || pkg.package.bundleDependencies - // if we have any removes that match AND we're not working with a bundle then upgrade to a move - if (removing.length && !bundlesOrFromBundle) { - var toMv = removing.shift() - toRemoveByName[name] = toRemoveByName[name].filter((rm) => rm !== toMv) - 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)) { - setAction(differences, 'add', pkg) - } - } - }) - - // finally generate our remove actions from any not consumed by moves - Object - .keys(toRemove) - .map((flatname) => toRemove[flatname]) - .forEach((pkg) => setAction(differences, 'remove', pkg)) - - 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 -} diff --git a/deps/npm/lib/install/exists.js b/deps/npm/lib/install/exists.js deleted file mode 100644 index 59100d63ba0..00000000000 --- a/deps/npm/lib/install/exists.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var fs = require('fs') -var inflight = require('inflight') -var accessError = require('./access-error.js') -var isFsAccessAvailable = require('./is-fs-access-available.js') - -if (isFsAccessAvailable) { - module.exports = fsAccessImplementation -} else { - module.exports = fsStatImplementation -} - -// exposed only for testing purposes -module.exports.fsAccessImplementation = fsAccessImplementation -module.exports.fsStatImplementation = fsStatImplementation - -function fsAccessImplementation (dir, done) { - done = inflight('exists:' + dir, done) - if (!done) return - fs.access(dir, fs.F_OK, done) -} - -function fsStatImplementation (dir, done) { - done = inflight('exists:' + dir, done) - if (!done) return - fs.stat(dir, function (er) { done(accessError(dir, er)) }) -} diff --git a/deps/npm/lib/install/flatten-tree.js b/deps/npm/lib/install/flatten-tree.js deleted file mode 100644 index 56282b771da..00000000000 --- a/deps/npm/lib/install/flatten-tree.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict' -var validate = require('aproba') -var moduleName = require('../utils/module-name.js') - -module.exports = flattenTree -module.exports.flatName = flatName -module.exports.flatNameFromTree = flatNameFromTree - -function flattenTree (tree) { - validate('O', arguments) - var seen = new Set() - var flat = {} - var todo = [[tree, '/']] - while (todo.length) { - var next = todo.shift() - var pkg = next[0] - seen.add(pkg) - var path = next[1] - flat[path] = pkg - if (path !== '/') path += '/' - for (var ii = 0; ii < pkg.children.length; ++ii) { - var child = pkg.children[ii] - if (!seen.has(child)) { - todo.push([child, flatName(path, child)]) - } - } - } - return flat -} - -function flatName (path, child) { - validate('SO', arguments) - return path + (moduleName(child) || 'TOP') -} - -function flatNameFromTree (tree) { - validate('O', arguments) - if (tree.isTop) return '/' - var path = flatNameFromTree(tree.parent) - if (path !== '/') path += '/' - return flatName(path, tree) -} diff --git a/deps/npm/lib/install/get-requested.js b/deps/npm/lib/install/get-requested.js deleted file mode 100644 index f6c44d14634..00000000000 --- a/deps/npm/lib/install/get-requested.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' -const npa = require('npm-package-arg') -const moduleName = require('../utils/module-name.js') - -module.exports = function (child) { - if (!child.requiredBy.length) return - const reqBy = child.requiredBy[0] - const deps = reqBy.package.dependencies || {} - const devDeps = reqBy.package.devDependencies || {} - const name = moduleName(child) - return npa.resolve(name, deps[name] || devDeps[name], reqBy.realpath) -} diff --git a/deps/npm/lib/install/inflate-bundled.js b/deps/npm/lib/install/inflate-bundled.js deleted file mode 100644 index 66bbb44a33d..00000000000 --- a/deps/npm/lib/install/inflate-bundled.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict' - -var childPath = require('../utils/child-path.js') -var reset = require('./node.js').reset - -module.exports = function inflateBundled (bundler, parent, children) { - children.forEach(function (child) { - if (child.fromBundle === bundler) return - reset(child) - child.fromBundle = bundler - child.isInLink = bundler.isLink - child.parent = parent - child.path = childPath(parent.path, child) - child.realpath = bundler.isLink ? child.realpath : childPath(parent.realpath, child) - child.isLink = child.isLink || parent.isLink || parent.target - inflateBundled(bundler, child, child.children) - }) -} diff --git a/deps/npm/lib/install/inflate-shrinkwrap.js b/deps/npm/lib/install/inflate-shrinkwrap.js deleted file mode 100644 index 43ac9136f01..00000000000 --- a/deps/npm/lib/install/inflate-shrinkwrap.js +++ /dev/null @@ -1,206 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -let addBundled -const childPath = require('../utils/child-path.js') -const createChild = require('./node.js').create -let fetchPackageMetadata -const inflateBundled = require('./inflate-bundled.js') -const moduleName = require('../utils/module-name.js') -const normalizePackageData = require('normalize-package-data') -const npm = require('../npm.js') -const realizeShrinkwrapSpecifier = require('./realize-shrinkwrap-specifier.js') -const validate = require('aproba') -const path = require('path') -const isRegistry = require('../utils/is-registry.js') - -module.exports = function (tree, sw, opts, finishInflating) { - if (!fetchPackageMetadata) { - fetchPackageMetadata = BB.promisify(require('../fetch-package-metadata.js')) - addBundled = BB.promisify(fetchPackageMetadata.addBundled) - } - if (arguments.length === 3) { - finishInflating = opts - opts = {} - } - if (!npm.config.get('shrinkwrap') || !npm.config.get('package-lock')) { - return finishInflating() - } - tree.loaded = false - tree.hasRequiresFromLock = sw.requires - return inflateShrinkwrap(tree.path, tree, sw.dependencies, opts).then( - () => finishInflating(), - finishInflating - ) -} - -function inflateShrinkwrap (topPath, tree, swdeps, opts) { - if (!swdeps) return Promise.resolve() - if (!opts) opts = {} - const onDisk = {} - tree.children.forEach((child) => { - onDisk[moduleName(child)] = child - }) - - tree.children = [] - - return BB.each(Object.keys(swdeps), (name) => { - const sw = swdeps[name] - const dependencies = sw.dependencies || {} - const requested = realizeShrinkwrapSpecifier(name, sw, topPath) - return inflatableChild( - onDisk[name], name, topPath, tree, sw, requested, opts - ).then((child) => { - child.hasRequiresFromLock = tree.hasRequiresFromLock - return inflateShrinkwrap(topPath, child, dependencies) - }) - }) -} - -function normalizePackageDataNoErrors (pkg) { - try { - normalizePackageData(pkg) - } catch (ex) { - // don't care - } -} - -function inflatableChild (onDiskChild, name, topPath, tree, sw, requested, opts) { - validate('OSSOOOO|ZSSOOOO', arguments) - if (onDiskChild && childIsEquivalent(sw, requested, onDiskChild)) { - // The version on disk matches the shrinkwrap entry. - if (!onDiskChild.fromShrinkwrap) onDiskChild.fromShrinkwrap = true - onDiskChild.package._requested = requested - onDiskChild.package._spec = requested.rawSpec - onDiskChild.package._where = topPath - onDiskChild.package._optional = sw.optional - onDiskChild.package._development = sw.dev - onDiskChild.package._inBundle = sw.bundled - onDiskChild.fromBundle = (sw.bundled || onDiskChild.package._inBundle) ? tree.fromBundle || tree : null - if (!onDiskChild.package._args) onDiskChild.package._args = [] - onDiskChild.package._args.push([String(requested), topPath]) - // non-npm registries can and will return unnormalized data, plus - // even the npm registry may have package data normalized with older - // normalization rules. This ensures we get package data in a consistent, - // stable format. - normalizePackageDataNoErrors(onDiskChild.package) - onDiskChild.swRequires = sw.requires - tree.children.push(onDiskChild) - return BB.resolve(onDiskChild) - } else if ((sw.version && sw.integrity) || 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)) - } else { - // It's not on disk, and we can't just look it up by address -- do a full - // fpm/inflate bundle pass. For registry deps, this will go straight to the - // tarball URL, as if it were a remote tarball dep. - return fetchChild(topPath, tree, sw, requested) - } -} - -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), - _requested: requested, - _optional: sw.optional, - _development: sw.dev, - _inBundle: sw.bundled, - _integrity: sw.integrity, - _from: from, - _spec: requested.rawSpec, - _where: topPath, - _args: [[requested.toString(), topPath]], - dependencies: sw.requires - } - - if (!sw.bundled) { - const bundleDependencies = Object.keys(sw.dependencies || {}).filter((d) => sw.dependencies[d].bundled) - if (bundleDependencies.length === 0) { - pkg.bundleDependencies = bundleDependencies - } - } - const child = createChild({ - package: pkg, - loaded: true, - parent: tree, - children: [], - fromShrinkwrap: true, - fakeChild: sw, - fromBundle: sw.bundled ? tree.fromBundle || tree : null, - path: childPath(tree.path, pkg), - realpath: childPath(tree.realpath, pkg), - location: tree.location + '/' + pkg.name, - isLink: requested.type === 'directory', - isInLink: tree.isLink, - swRequires: sw.requires - }) - tree.children.push(child) - 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 - pkg._optional = sw.optional - pkg._development = sw.dev - pkg._inBundle = false - return addBundled(pkg).then(() => pkg) - }).then((pkg) => { - var isLink = pkg._requested.type === 'directory' - const child = createChild({ - package: pkg, - loaded: false, - parent: tree, - fromShrinkwrap: requested, - path: childPath(tree.path, pkg), - realpath: isLink ? requested.fetchSpec : childPath(tree.realpath, pkg), - children: pkg._bundled || [], - location: tree.location + '/' + pkg.name, - fromBundle: null, - isLink: isLink, - isInLink: tree.isLink, - swRequires: sw.requires - }) - tree.children.push(child) - if (pkg._bundled) { - delete pkg._bundled - inflateBundled(child, child, child.children) - } - return child - }) -} - -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 (child.isLink && requested.type === 'directory') return path.relative(child.realpath, requested.fetchSpec) === '' - - if (sw.resolved) return child.package._resolved === sw.resolved - if (!isRegistry(requested) && sw.from) return child.package._from === sw.from - if (!isRegistry(requested) && child.package._resolved) return sw.version === child.package._resolved - return child.package.version === sw.version -} diff --git a/deps/npm/lib/install/is-dev-dep.js b/deps/npm/lib/install/is-dev-dep.js deleted file mode 100644 index c7a7982c5e6..00000000000 --- a/deps/npm/lib/install/is-dev-dep.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = isDevDep - -function isDevDep (node, name) { - return node.package && - node.package.devDependencies && - node.package.devDependencies[name] -} diff --git a/deps/npm/lib/install/is-extraneous.js b/deps/npm/lib/install/is-extraneous.js deleted file mode 100644 index a6477c23744..00000000000 --- a/deps/npm/lib/install/is-extraneous.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -module.exports = isExtraneous - -function isExtraneous (tree) { - var result = !isNotExtraneous(tree) - return result -} - -function topHasNoPjson (tree) { - var top = tree - while (!top.isTop) top = top.parent - return top.error -} - -function isNotExtraneous (tree, isCycle) { - if (!isCycle) isCycle = {} - if (tree.isTop || tree.userRequired) { - return true - } else if (isCycle[tree.path]) { - return topHasNoPjson(tree) - } else { - isCycle[tree.path] = true - return tree.requiredBy && tree.requiredBy.some(function (node) { - return isNotExtraneous(node, Object.create(isCycle)) - }) - } -} diff --git a/deps/npm/lib/install/is-fs-access-available.js b/deps/npm/lib/install/is-fs-access-available.js deleted file mode 100644 index a7d2640d794..00000000000 --- a/deps/npm/lib/install/is-fs-access-available.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict' -var fs = require('fs') -var semver = require('semver') -var isWindows = process.platform === 'win32' - -// fs.access first introduced in node 0.12 / io.js -if (!fs.access) { - module.exports = false -} else if (!isWindows) { - // fs.access always works on non-Windows OSes - module.exports = true -} else { - // The Windows implementation of `fs.access` has a bug where it will - // sometimes return access errors all the time for directories, even - // when access is available. As all we actually test ARE directories, this - // is a bit of a problem. - // This was fixed in io.js version 1.5.0 - // As of 2015-07-20, it is still unfixed in node: - // https://github.com/joyent/node/issues/25657 - - module.exports = semver.gte(process.version, '1.5.0') -} diff --git a/deps/npm/lib/install/is-only-dev.js b/deps/npm/lib/install/is-only-dev.js deleted file mode 100644 index ef41e8ad1a2..00000000000 --- a/deps/npm/lib/install/is-only-dev.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' -module.exports = isOnlyDev - -const moduleName = require('../utils/module-name.js') -const isDevDep = require('./is-dev-dep.js') -const isProdDep = require('./is-prod-dep.js') - -// Returns true if the module `node` is only required direcctly as a dev -// dependency of the top level or transitively _from_ top level dev -// dependencies. -// Dual mode modules (that are both dev AND prod) should return false. -function isOnlyDev (node, seen) { - if (!seen) seen = new Set() - return node.requiredBy.length && node.requiredBy.every(andIsOnlyDev(moduleName(node), seen)) -} - -// There is a known limitation with this implementation: If a dependency is -// ONLY required by cycles that are detached from the top level then it will -// ultimately return true. -// -// This is ok though: We don't allow shrinkwraps with extraneous deps and -// these situation is caught by the extraneous checker before we get here. -function andIsOnlyDev (name, seen) { - return function (req) { - const isDev = isDevDep(req, name) - const isProd = isProdDep(req, name) - if (req.isTop) { - return isDev && !isProd - } else { - if (seen.has(req)) return true - seen.add(req) - return isOnlyDev(req, seen) - } - } -} diff --git a/deps/npm/lib/install/is-only-optional.js b/deps/npm/lib/install/is-only-optional.js deleted file mode 100644 index 7366e9abe1b..00000000000 --- a/deps/npm/lib/install/is-only-optional.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict' -module.exports = isOptional - -const isOptDep = require('./is-opt-dep.js') - -function isOptional (node, seen) { - if (!seen) seen = new Set() - // If a node is not required by anything, then we've reached - // the top level package. - if (seen.has(node) || node.requiredBy.length === 0) { - return false - } - seen.add(node) - - return node.requiredBy.every(function (req) { - return isOptDep(req, node.package.name) || isOptional(req, seen) - }) -} diff --git a/deps/npm/lib/install/is-opt-dep.js b/deps/npm/lib/install/is-opt-dep.js deleted file mode 100644 index 807b8ab998b..00000000000 --- a/deps/npm/lib/install/is-opt-dep.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = isOptDep - -function isOptDep (node, name) { - return node.package && - node.package.optionalDependencies && - node.package.optionalDependencies[name] -} diff --git a/deps/npm/lib/install/is-prod-dep.js b/deps/npm/lib/install/is-prod-dep.js deleted file mode 100644 index 1e2a0b4e490..00000000000 --- a/deps/npm/lib/install/is-prod-dep.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict' - -module.exports = isProdDep - -function isProdDep (node, name) { - return node.package && - node.package.dependencies && - node.package.dependencies[name] -} diff --git a/deps/npm/lib/install/module-staging-path.js b/deps/npm/lib/install/module-staging-path.js deleted file mode 100644 index 00ee96b33d5..00000000000 --- a/deps/npm/lib/install/module-staging-path.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var uniqueFilename = require('unique-filename') -var moduleName = require('../utils/module-name.js') - -module.exports = moduleStagingPath -function moduleStagingPath (staging, pkg) { - return uniqueFilename(staging, moduleName(pkg), pkg.realpath) -} diff --git a/deps/npm/lib/install/mutate-into-logical-tree.js b/deps/npm/lib/install/mutate-into-logical-tree.js deleted file mode 100644 index 0979afc7814..00000000000 --- a/deps/npm/lib/install/mutate-into-logical-tree.js +++ /dev/null @@ -1,140 +0,0 @@ -'use strict' -var union = require('lodash.union') -var without = require('lodash.without') -var validate = require('aproba') -var flattenTree = require('./flatten-tree.js') -var isExtraneous = require('./is-extraneous.js') -var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps -var packageId = require('../utils/package-id.js') -var moduleName = require('../utils/module-name.js') -var npm = require('../npm.js') - -// Return true if tree is a part of a cycle that: -// A) Never connects to the top of the tree -// B) Has not not had a point in the cycle arbitraryly declared its top -// yet. -function isDisconnectedCycle (tree, seen) { - if (!seen) seen = {} - if (tree.isTop || tree.cycleTop || tree.requiredBy.length === 0) { - return false - } else if (seen[tree.path]) { - return true - } else { - seen[tree.path] = true - return tree.requiredBy.every(function (node) { - return isDisconnectedCycle(node, Object.create(seen)) - }) - } -} - -var mutateIntoLogicalTree = module.exports = function (tree) { - validate('O', arguments) - - validateAllPeerDeps(tree, function (tree, pkgname, version) { - if (!tree.missingPeers) tree.missingPeers = {} - tree.missingPeers[pkgname] = version - }) - - var flat = flattenTree(tree) - - Object.keys(flat).sort().forEach(function (flatname) { - var node = flat[flatname] - if (!(node.requiredBy && node.requiredBy.length)) return - - if (node.parent) { - // If a node is a cycle that never reaches the root of the logical - // tree then we'll leave it attached to the root, or else it - // would go missing. Further we'll note that this is the node in the - // cycle that we picked arbitrarily to be the one attached to the root. - // others will fall - if (isDisconnectedCycle(node)) { - node.cycleTop = true - // Nor do we want to disconnect non-cyclical extraneous modules from the tree. - } else if (node.requiredBy.length) { - // regular deps though, we do, as we're moving them into the capable - // hands of the modules that require them. - node.parent.children = without(node.parent.children, node) - } - } - - node.requiredBy.forEach(function (parentNode) { - parentNode.children = union(parentNode.children, [node]) - }) - }) - return tree -} - -module.exports.asReadInstalled = function (tree) { - mutateIntoLogicalTree(tree) - return translateTree(tree) -} - -function translateTree (tree) { - return translateTree_(tree, new Set()) -} - -function translateTree_ (tree, seen) { - var pkg = tree.package - if (seen.has(tree)) return pkg - seen.add(tree) - if (pkg._dependencies) return pkg - pkg._dependencies = pkg.dependencies - pkg.dependencies = {} - tree.children.forEach(function (child) { - const dep = pkg.dependencies[moduleName(child)] = translateTree_(child, seen) - if (child.fakeChild) { - dep.missing = true - dep.optional = child.package._optional - dep.requiredBy = child.package._spec - } - }) - - function markMissing (name, requiredBy) { - if (pkg.dependencies[name]) { - if (pkg.dependencies[name].missing) return - pkg.dependencies[name].invalid = true - pkg.dependencies[name].realName = name - pkg.dependencies[name].extraneous = false - } else { - pkg.dependencies[name] = { - requiredBy: requiredBy, - missing: true, - optional: !!pkg.optionalDependencies[name] - } - } - } - - Object.keys(tree.missingDeps).forEach(function (name) { - markMissing(name, tree.missingDeps[name]) - }) - Object.keys(tree.missingDevDeps).forEach(function (name) { - markMissing(name, tree.missingDevDeps[name]) - }) - var checkForMissingPeers = (tree.parent ? [] : [tree]).concat(tree.children) - checkForMissingPeers.filter(function (child) { - return child.missingPeers - }).forEach(function (child) { - Object.keys(child.missingPeers).forEach(function (pkgname) { - var version = child.missingPeers[pkgname] - var peerPkg = pkg.dependencies[pkgname] - if (!peerPkg) { - peerPkg = pkg.dependencies[pkgname] = { - _id: pkgname + '@' + version, - name: pkgname, - version: version - } - } - if (!peerPkg.peerMissing) peerPkg.peerMissing = [] - peerPkg.peerMissing.push({ - requiredBy: packageId(child), - requires: pkgname + '@' + version - }) - }) - }) - pkg.path = tree.path - - pkg.error = tree.error - pkg.extraneous = !tree.isTop && (!tree.parent.isTop || !tree.parent.error) && !npm.config.get('global') && isExtraneous(tree) - if (tree.target && tree.parent && !tree.parent.target) pkg.link = tree.realpath - return pkg -} diff --git a/deps/npm/lib/install/node.js b/deps/npm/lib/install/node.js deleted file mode 100644 index 18138078a2e..00000000000 --- a/deps/npm/lib/install/node.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict' - -var defaultTemplate = { - package: { - version: '', - dependencies: {}, - devDependencies: {}, - optionalDependencies: {} - }, - loaded: false, - children: [], - requiredBy: [], - requires: [], - missingDeps: {}, - missingDevDeps: {}, - phantomChildren: {}, - path: null, - realpath: null, - location: null, - userRequired: false, - save: false, - saveSpec: null, - isTop: false, - fromBundle: false -} - -function isLink (node) { - return node && node.isLink -} -function isInLink (node) { - return node && (node.isInLink || node.isLink) -} - -var create = exports.create = function (node, template, isNotTop) { - if (!template) template = defaultTemplate - Object.keys(template).forEach(function (key) { - if (template[key] != null && typeof template[key] === 'object' && !(template[key] instanceof Array)) { - if (!node[key]) node[key] = {} - return create(node[key], template[key], true) - } - if (node[key] != null) return - node[key] = template[key] - }) - if (!isNotTop) { - // isLink is true for the symlink and everything inside it. - // by contrast, isInLink is true for only the things inside a link - if (node.isLink == null) node.isLink = isLink(node.parent) - if (node.isInLink == null) node.isInLink = isInLink(node.parent) - if (node.fromBundle == null) { - node.fromBundle = false - } - } - return node -} - -exports.reset = function (node) { - reset(node, new Set()) -} - -function reset (node, seen) { - if (seen.has(node)) return - seen.add(node) - var child = create(node) - - // FIXME: cleaning up after read-package-json's mess =( - if (child.package._id === '@') delete child.package._id - - child.isTop = false - child.requiredBy = [] - child.requires = [] - child.missingDeps = {} - child.missingDevDeps = {} - child.phantomChildren = {} - child.location = null - - child.children.forEach(function (child) { reset(child, seen) }) -} diff --git a/deps/npm/lib/install/read-shrinkwrap.js b/deps/npm/lib/install/read-shrinkwrap.js deleted file mode 100644 index 45e883caa2f..00000000000 --- a/deps/npm/lib/install/read-shrinkwrap.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const fs = require('graceful-fs') -const iferr = require('iferr') -const inflateShrinkwrap = require('./inflate-shrinkwrap.js') -const log = require('npmlog') -const parseJSON = require('../utils/parse-json.js') -const path = require('path') -const PKGLOCK_VERSION = require('../npm.js').lockfileVersion - -const readFileAsync = BB.promisify(fs.readFile) - -module.exports = readShrinkwrap -function readShrinkwrap (child, next) { - if (child.package._shrinkwrap) return process.nextTick(next) - BB.join( - maybeReadFile('npm-shrinkwrap.json', child), - // Don't read non-root lockfiles - child.isTop && maybeReadFile('package-lock.json', child), - child.isTop && maybeReadFile('package.json', child), - (shrinkwrap, lockfile, pkgJson) => { - if (shrinkwrap && lockfile) { - 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 - } - } - 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!`) - } - child.package._shrinkwrap = parsed - } - ).then(() => next(), next) -} - -function maybeReadFile (name, child) { - return readFileAsync( - path.join(child.path, name) - ).catch({code: 'ENOENT'}, () => null) -} - -module.exports.andInflate = function (child, next) { - readShrinkwrap(child, iferr(next, function () { - if (child.package._shrinkwrap) { - return inflateShrinkwrap(child, child.package._shrinkwrap || {}, next) - } else { - return next() - } - })) -} diff --git a/deps/npm/lib/install/realize-shrinkwrap-specifier.js b/deps/npm/lib/install/realize-shrinkwrap-specifier.js deleted file mode 100644 index e4b14b1f0d9..00000000000 --- a/deps/npm/lib/install/realize-shrinkwrap-specifier.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict' -var npa = require('npm-package-arg') -const isRegistry = require('../utils/is-registry.js') - -module.exports = function (name, sw, where) { - try { - if (sw.version && sw.integrity) { - return npa.resolve(name, sw.version, where) - } else if (sw.from) { - const spec = npa(sw.from, where) - if (isRegistry(spec) && sw.version) { - return npa.resolve(name, sw.version, where) - } else if (!sw.resolved) { - return spec - } - } - if (sw.resolved) { - return npa.resolve(name, sw.resolved, where) - } - } catch (_) { } - return npa.resolve(name, sw.version, where) -} diff --git a/deps/npm/lib/install/report-optional-failure.js b/deps/npm/lib/install/report-optional-failure.js deleted file mode 100644 index 41c7c535bdd..00000000000 --- a/deps/npm/lib/install/report-optional-failure.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' -var path = require('path') -var moduleName = require('../utils/module-name.js') - -module.exports = reportOptionalFailure - -function top (tree) { - if (tree.parent) return top(tree.parent) - return tree -} - -function reportOptionalFailure (tree, what, error) { - var topTree = top(tree) - if (!topTree.warnings) topTree.warnings = [] - var id - if (what) { - var depVer = tree.package.dependencies && tree.package.dependencies[what] - var optDepVer = tree.package.optionalDependencies && tree.package.optionalDependencies[what] - var devDepVer = tree.package.devDependencies && tree.package.devDependencies[what] - var version = depVer || optDepVer || devDepVer - id = what + (version ? '@' + version : '') - } else { - id = tree._id || moduleName(tree) + (tree.package.version ? '@' + tree.package.version : '') - } - var location = path.relative(topTree.path, tree.path) - if (what) location = path.join(location, 'node_modules', what) - - error.optional = id - error.location = location - topTree.warnings.push(error) -} diff --git a/deps/npm/lib/install/save.js b/deps/npm/lib/install/save.js deleted file mode 100644 index f0c61f555d6..00000000000 --- a/deps/npm/lib/install/save.js +++ /dev/null @@ -1,187 +0,0 @@ -'use strict' - -const createShrinkwrap = require('../shrinkwrap.js').createShrinkwrap -const deepSortObject = require('../utils/deep-sort-object.js') -const detectIndent = require('detect-indent') -const fs = require('graceful-fs') -const iferr = require('iferr') -const log = require('npmlog') -const moduleName = require('../utils/module-name.js') -const npm = require('../npm.js') -const parseJSON = require('../utils/parse-json.js') -const path = require('path') -const validate = require('aproba') -const without = require('lodash.without') -const writeFileAtomic = require('write-file-atomic') - -// if the -S|--save option is specified, then write installed packages -// as dependencies to a package.json file. - -exports.saveRequested = function (tree, andReturn) { - validate('OF', arguments) - savePackageJson(tree, andWarnErrors(andSaveShrinkwrap(tree, andReturn))) -} - -function andSaveShrinkwrap (tree, andReturn) { - validate('OF', arguments) - return function (er) { - validate('E', arguments) - saveShrinkwrap(tree, andWarnErrors(andReturn)) - } -} - -function andWarnErrors (cb) { - validate('F', arguments) - return function (er) { - if (er) log.warn('saveError', er.message) - arguments[0] = null - cb.apply(null, arguments) - } -} - -exports.saveShrinkwrap = saveShrinkwrap - -function saveShrinkwrap (tree, next) { - validate('OF', arguments) - if (!npm.config.get('shrinkwrap') || !npm.config.get('package-lock')) { - next() - } - createShrinkwrap(tree, {silent: false}, next) -} - -function savePackageJson (tree, next) { - validate('OF', arguments) - var saveBundle = npm.config.get('save-bundle') - - // each item in the tree is a top-level thing that should be saved - // to the package.json file. - // The relevant tree shape is { : {what:} } - var saveTarget = path.resolve(tree.path, 'package.json') - // 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 || ' ' - try { - tree.package = parseJSON(packagejson) - } catch (ex) { - return next(ex) - } - - // If we're saving bundled deps, normalize the key before we start - if (saveBundle) { - var bundle = tree.package.bundleDependencies || tree.package.bundledDependencies - delete tree.package.bundledDependencies - if (!Array.isArray(bundle)) bundle = [] - } - - var toSave = getThingsToSave(tree) - var toRemove = getThingsToRemove(tree) - var savingTo = {} - toSave.forEach(function (pkg) { if (pkg.save) savingTo[pkg.save] = true }) - toRemove.forEach(function (pkg) { if (pkg.save) savingTo[pkg.save] = true }) - - Object.keys(savingTo).forEach(function (save) { - if (!tree.package[save]) tree.package[save] = {} - }) - - log.verbose('saving', toSave) - const types = ['dependencies', 'devDependencies', 'optionalDependencies'] - toSave.forEach(function (pkg) { - if (pkg.save) tree.package[pkg.save][pkg.name] = pkg.spec - const movedFrom = [] - for (let saveType of types) { - if ( - pkg.save !== saveType && - tree.package[saveType] && - tree.package[saveType][pkg.name] - ) { - movedFrom.push(saveType) - delete tree.package[saveType][pkg.name] - } - } - if (movedFrom.length) { - log.notice('save', `${pkg.name} is being moved from ${movedFrom.join(' and ')} to ${pkg.save}`) - } - if (saveBundle) { - var ii = bundle.indexOf(pkg.name) - if (ii === -1) bundle.push(pkg.name) - } - }) - - toRemove.forEach(function (pkg) { - if (pkg.save) delete tree.package[pkg.save][pkg.name] - if (saveBundle) { - bundle = without(bundle, pkg.name) - } - }) - - Object.keys(savingTo).forEach(function (key) { - tree.package[key] = deepSortObject(tree.package[key]) - }) - if (saveBundle) { - tree.package.bundleDependencies = deepSortObject(bundle) - } - - var json = JSON.stringify(tree.package, null, indent) + '\n' - if (json === packagejson) { - log.verbose('shrinkwrap', 'skipping write for package.json because there were no changes.') - next() - } else { - writeFileAtomic(saveTarget, json, next) - } - })) -} - -exports.getSaveType = function (tree, arg) { - if (arguments.length) validate('OO', arguments) - var globalInstall = npm.config.get('global') - var noSaveFlags = !npm.config.get('save') && - !npm.config.get('save-dev') && - !npm.config.get('save-prod') && - !npm.config.get('save-optional') - if (globalInstall || noSaveFlags) return null - - if (npm.config.get('save-optional')) { - return 'optionalDependencies' - } else if (npm.config.get('save-dev')) { - return 'devDependencies' - } else if (npm.config.get('save-prod')) { - return 'dependencies' - } else { - if (arg) { - var name = moduleName(arg) - if (tree.package.optionalDependencies[name]) { - return 'optionalDependencies' - } else if (tree.package.devDependencies[name]) { - return 'devDependencies' - } - } - return 'dependencies' - } -} - -function getThingsToSave (tree) { - validate('O', arguments) - var toSave = tree.children.filter(function (child) { - return child.save - }).map(function (child) { - return { - name: moduleName(child), - spec: child.saveSpec, - save: child.save - } - }) - return toSave -} - -function getThingsToRemove (tree) { - validate('O', arguments) - if (!tree.removedChildren) return [] - var toRemove = tree.removedChildren.map(function (child) { - return { - name: moduleName(child), - save: child.save - } - }) - return toRemove -} diff --git a/deps/npm/lib/install/update-package-json.js b/deps/npm/lib/install/update-package-json.js deleted file mode 100644 index afffaf78002..00000000000 --- a/deps/npm/lib/install/update-package-json.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict' -var path = require('path') -var writeFileAtomic = require('write-file-atomic') -var moduleName = require('../utils/module-name.js') -var deepSortObject = require('../utils/deep-sort-object.js') -var sortedObject = require('sorted-object') -var isWindows = require('../utils/is-windows.js') - -var sortKeys = [ - 'dependencies', 'devDependencies', 'bundleDependencies', - 'optionalDependencies', 'keywords', 'engines', 'scripts', - 'files' -] - -module.exports = function (mod, buildpath, next) { - var pkg = sortedObject(mod.package) - var name = moduleName(mod) - // Add our diagnostic keys to the package.json. - // Note that there are folks relying on these, for ex, the Visual Studio - // Node.js addon. - pkg._requiredBy = - mod.requiredBy - .map(function (req) { - if ( - req.package.devDependencies && - req.package.devDependencies[name] && - !req.package.dependencies[name] - ) { - return '#DEV:' + req.location - } else { - return req.location - } - }) - .concat(mod.userRequired ? ['#USER'] : []) - .sort() - pkg._location = mod.location - pkg._phantomChildren = {} - Object.keys(mod.phantomChildren).sort().forEach(function (name) { - pkg._phantomChildren[name] = mod.phantomChildren[name].package.version - }) - pkg._inBundle = !!mod.fromBundle - - // sort keys that are known safe to sort to produce more consistent output - sortKeys.forEach(function (key) { - if (pkg[key] != null) pkg[key] = deepSortObject(pkg[key]) - }) - - var data = JSON.stringify(sortedObject(pkg), null, 2) + '\n' - - writeFileAtomic(path.resolve(buildpath, 'package.json'), data, { - // We really don't need this guarantee, and fsyncing here is super slow. Except on - // Windows where there isn't a big performance difference and it prevents errors when - // rolling back optional packages (#17671) - fsync: isWindows - }, next) -} diff --git a/deps/npm/lib/install/validate-args.js b/deps/npm/lib/install/validate-args.js deleted file mode 100644 index 65b660417a4..00000000000 --- a/deps/npm/lib/install/validate-args.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict' -var validate = require('aproba') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npmInstallChecks = require('npm-install-checks') -var iferr = require('iferr') -var checkEngine = npmInstallChecks.checkEngine -var checkPlatform = npmInstallChecks.checkPlatform -var npm = require('../npm.js') - -module.exports = function (idealTree, args, next) { - validate('OAF', arguments) - var force = npm.config.get('force') - - asyncMap(args, function (pkg, done) { - chain([ - [hasMinimumFields, pkg], - [checkSelf, idealTree, pkg, force], - [isInstallable, pkg] - ], done) - }, next) -} - -function hasMinimumFields (pkg, cb) { - if (pkg.name === '' || pkg.name == null) { - return cb(new Error(`Can't install ${pkg._resolved}: Missing package name`)) - } else if (pkg.version === '' || pkg.version == null) { - return cb(new Error(`Can't install ${pkg._resolved}: Missing package version`)) - } else { - return cb() - } -} - -function getWarnings (pkg) { - while (pkg.parent) pkg = pkg.parent - if (!pkg.warnings) pkg.warnings = [] - return pkg.warnings -} - -var isInstallable = module.exports.isInstallable = function (pkg, next) { - var force = npm.config.get('force') - var nodeVersion = npm.config.get('node-version') - if (/-/.test(nodeVersion)) { - // for the purposes of validation, if the node version is a prerelease, - // strip that. We check and warn about this sceanrio over in validate-tree. - nodeVersion = nodeVersion.replace(/-.*/, '') - } - var strict = npm.config.get('engine-strict') - checkEngine(pkg, npm.version, nodeVersion, force, strict, iferr(next, thenWarnEngineIssues)) - function thenWarnEngineIssues (warn) { - if (warn) getWarnings(pkg).push(warn) - checkPlatform(pkg, force, next) - } -} - -function checkSelf (idealTree, pkg, force, next) { - if (idealTree.package && idealTree.package.name !== pkg.name) return next() - if (force) { - var warn = new Error("Wouldn't install " + pkg.name + ' as a dependency of itself, but being forced') - warn.code = 'ENOSELF' - idealTree.warnings.push(warn) - next() - } else { - var er = new Error('Refusing to install package with name "' + pkg.name + - '" under a package\n' + - 'also called "' + pkg.name + '". Did you name your project the same\n' + - 'as the dependency you\'re installing?\n\n' + - 'For more information, see:\n' + - ' ') - er.code = 'ENOSELF' - next(er) - } -} diff --git a/deps/npm/lib/install/validate-tree.js b/deps/npm/lib/install/validate-tree.js deleted file mode 100644 index 24a140171d4..00000000000 --- a/deps/npm/lib/install/validate-tree.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npmInstallChecks = require('npm-install-checks') -var checkGit = npmInstallChecks.checkGit -var clone = require('lodash.clonedeep') -var normalizePackageData = require('normalize-package-data') -var npm = require('../npm.js') -var andFinishTracker = require('./and-finish-tracker.js') -var flattenTree = require('./flatten-tree.js') -var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps -var packageId = require('../utils/package-id.js') - -module.exports = function (idealTree, log, next) { - validate('OOF', arguments) - var moduleMap = flattenTree(idealTree) - var modules = Object.keys(moduleMap).map(function (name) { return moduleMap[name] }) - - chain([ - [asyncMap, modules, function (mod, done) { - chain([ - mod.parent && !mod.isLink && [checkGit, mod.realpath], - [checkErrors, mod, idealTree] - ], done) - }], - [thenValidateAllPeerDeps, idealTree], - [thenCheckTop, idealTree], - [thenCheckDuplicateDeps, idealTree] - ], andFinishTracker(log, next)) -} - -function checkErrors (mod, idealTree, next) { - if (mod.error && (mod.parent || path.resolve(npm.globalDir, '..') !== mod.path)) idealTree.warnings.push(mod.error) - next() -} - -function thenValidateAllPeerDeps (idealTree, next) { - validate('OF', arguments) - validateAllPeerDeps(idealTree, function (tree, pkgname, version) { - var warn = new Error(packageId(tree) + ' requires a peer of ' + pkgname + '@' + - version + ' but none is installed. You must install peer dependencies yourself.') - warn.code = 'EPEERINVALID' - idealTree.warnings.push(warn) - }) - next() -} - -function thenCheckTop (idealTree, next) { - validate('OF', arguments) - if (idealTree.package.error) return next() - - // FIXME: when we replace read-package-json with something less magic, - // this should done elsewhere. - // As it is, the package has already been normalized and thus some - // errors are suppressed. - var pkg = clone(idealTree.package) - try { - normalizePackageData(pkg, function (warn) { - var warnObj = new Error(packageId(idealTree) + ' ' + warn) - warnObj.code = 'EPACKAGEJSON' - idealTree.warnings.push(warnObj) - }, false) - } catch (er) { - er.code = 'EPACKAGEJSON' - idealTree.warnings.push(er) - } - - var nodeVersion = npm.config.get('node-version') - if (/-/.test(nodeVersion)) { - // if this is a prerelease node… - var warnObj = new Error('You are using a pre-release version of node and things may not work as expected') - warnObj.code = 'ENODEPRE' - idealTree.warnings.push(warnObj) - } - - next() -} - -// check for deps duplciated between devdeps and regular deps -function thenCheckDuplicateDeps (idealTree, next) { - var deps = idealTree.package.dependencies || {} - var devDeps = idealTree.package.devDependencies || {} - - for (var pkg in devDeps) { - if (pkg in deps) { - var warnObj = new Error('The package ' + pkg + ' is included as both a dev and production dependency.') - warnObj.code = 'EDUPLICATEDEP' - idealTree.warnings.push(warnObj) - } - } - - next() -} diff --git a/deps/npm/lib/install/writable.js b/deps/npm/lib/install/writable.js deleted file mode 100644 index 199b48f5970..00000000000 --- a/deps/npm/lib/install/writable.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var inflight = require('inflight') -var accessError = require('./access-error.js') -var andIgnoreErrors = require('./and-ignore-errors.js') -var isFsAccessAvailable = require('./is-fs-access-available.js') - -if (isFsAccessAvailable) { - module.exports = fsAccessImplementation -} else { - module.exports = fsOpenImplementation -} - -// exposed only for testing purposes -module.exports.fsAccessImplementation = fsAccessImplementation -module.exports.fsOpenImplementation = fsOpenImplementation - -function fsAccessImplementation (dir, done) { - done = inflight('writable:' + dir, done) - if (!done) return - fs.access(dir, fs.W_OK, done) -} - -function fsOpenImplementation (dir, done) { - done = inflight('writable:' + dir, done) - if (!done) return - var tmp = path.join(dir, '.npm.check.permissions') - fs.open(tmp, 'w', function (er, fd) { - if (er) return done(accessError(dir, er)) - fs.close(fd, function () { - fs.unlink(tmp, andIgnoreErrors(done)) - }) - }) -} diff --git a/deps/npm/lib/link.js b/deps/npm/lib/link.js deleted file mode 100644 index 158d9b06456..00000000000 --- a/deps/npm/lib/link.js +++ /dev/null @@ -1,197 +0,0 @@ -// link with no args: symlink the folder to the global location -// link with package arg: symlink the global to the local - -var npm = require('./npm.js') -var symlink = require('./utils/link.js') -var fs = require('graceful-fs') -var log = require('npmlog') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var path = require('path') -var build = require('./build.js') -var npa = require('npm-package-arg') -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -module.exports = link - -link.usage = usage( - 'link', - 'npm link (in package dir)' + - '\nnpm link [<@scope>/][@]' -) - -link.completion = function (opts, cb) { - var dir = npm.globalDir - fs.readdir(dir, function (er, files) { - cb(er, files.filter(function (f) { - return !f.match(/^[\._-]/) - })) - }) -} - -function link (args, cb) { - if (process.platform === 'win32') { - var semver = require('semver') - if (!semver.gte(process.version, '0.7.9')) { - 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 - return cb(e) - } - } - - if (npm.config.get('global')) { - return cb(new Error( - 'link should never be --global.\n' + - 'Please re-run this command with --local' - )) - } - - if (args.length === 1 && args[0] === '.') args = [] - if (args.length) return linkInstall(args, cb) - linkPkg(npm.prefix, cb) -} - -function parentFolder (id, folder) { - if (id[0] === '@') { - return path.resolve(folder, '..', '..') - } else { - return path.resolve(folder, '..') - } -} - -function linkInstall (pkgs, cb) { - asyncMap(pkgs, function (pkg, cb) { - var t = path.resolve(npm.globalDir, '..') - var pp = path.resolve(npm.globalDir, pkg) - var rp = null - var target = path.resolve(npm.dir, pkg) - - function n (er, data) { - if (er) return cb(er, data) - // we want the ONE thing that was installed into the global dir - var installed = data.filter(function (info) { - var id = info[0] - var folder = info[1] - return parentFolder(id, folder) === npm.globalDir - }) - var id = installed[0][0] - pp = installed[0][1] - var what = npa(id) - pkg = what.name - target = path.resolve(npm.dir, pkg) - next() - } - - // if it's a folder, a random not-installed thing, or not a scoped package, - // then link or install it first - if (pkg[0] !== '@' && (pkg.indexOf('/') !== -1 || pkg.indexOf('\\') !== -1)) { - return fs.lstat(path.resolve(pkg), function (er, st) { - if (er || !st.isDirectory()) { - npm.commands.install(t, pkg, n) - } else { - rp = path.resolve(pkg) - linkPkg(rp, n) - } - }) - } - - fs.lstat(pp, function (er, st) { - if (er) { - rp = pp - return npm.commands.install(t, [pkg], n) - } else if (!st.isSymbolicLink()) { - rp = pp - next() - } else { - return fs.realpath(pp, function (er, real) { - if (er) log.warn('invalid symbolic link', pkg) - else rp = real - next() - }) - } - }) - - function next () { - if (npm.config.get('dry-run')) return resultPrinter(pkg, pp, target, rp, cb) - chain( - [ - [ function (cb) { - log.verbose('link', 'symlinking %s to %s', pp, target) - cb() - } ], - [symlink, pp, target, false, false], - // do not run any scripts - rp && [build, [target], npm.config.get('global'), build._noLC, true], - [resultPrinter, pkg, pp, target, rp] - ], - cb - ) - } - }, cb) -} - -function linkPkg (folder, cb_) { - var me = folder || npm.prefix - var readJson = require('read-package-json') - - log.verbose('linkPkg', folder) - - readJson(path.resolve(me, 'package.json'), function (er, d) { - function cb (er) { - return cb_(er, [[d && d._id, target, null, null]]) - } - if (er) return cb(er) - if (!d.name) { - 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) - symlink(me, target, false, true, function (er) { - if (er) return cb(er) - log.verbose('link', 'build target', target) - // also install missing dependencies. - npm.commands.install(me, [], function (er) { - if (er) return cb(er) - // build the global stuff. Don't run *any* scripts, because - // install command already will have done that. - build([target], true, build._noLC, true, function (er) { - if (er) return cb(er) - resultPrinter(path.basename(me), me, target, cb) - }) - }) - }) - }) -} - -function resultPrinter (pkg, src, dest, rp, cb) { - if (typeof cb !== 'function') { - cb = rp - rp = null - } - var where = dest - rp = (rp || '').trim() - src = (src || '').trim() - // XXX If --json is set, then look up the data from the package.json - if (npm.config.get('parseable')) { - return parseableOutput(dest, rp || src, cb) - } - if (rp === src) rp = null - output(where + ' -> ' + src + (rp ? ' -> ' + rp : '')) - cb() -} - -function parseableOutput (dest, rp, cb) { - // XXX this should match ls --parseable and install --parseable - // look up the data from package.json, format it the same way. - // - // link is always effectively 'long', since it doesn't help much to - // *just* print the target folder. - // However, we don't actually ever read the version number, so - // the second field is always blank. - output(dest + '::' + rp) - cb() -} diff --git a/deps/npm/lib/logout.js b/deps/npm/lib/logout.js deleted file mode 100644 index a3287d42d16..00000000000 --- a/deps/npm/lib/logout.js +++ /dev/null @@ -1,43 +0,0 @@ -module.exports = logout - -var dezalgo = require('dezalgo') -var log = require('npmlog') - -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') - -logout.usage = 'npm logout [--registry=] [--scope=<@scope>]' - -function afterLogout (normalized, cb) { - var scope = npm.config.get('scope') - - if (scope) npm.config.del(scope + ':registry') - - npm.config.clearCredentialsByURI(normalized) - npm.config.save('user', cb) -} - -function logout (args, cb) { - cb = dezalgo(cb) - - mapToRegistry('/', npm.config, function (err, uri, auth, normalized) { - if (err) return cb(err) - - if (auth.token) { - log.verbose('logout', 'clearing session token for', normalized) - npm.registry.logout(normalized, { auth: auth }, function (err) { - if (err) return cb(err) - - afterLogout(normalized, cb) - }) - } else if (auth.username || auth.password) { - log.verbose('logout', 'clearing user credentials for', normalized) - - afterLogout(normalized, cb) - } else { - cb(new Error( - 'Not logged in to', normalized + ',', "so can't log out." - )) - } - }) -} diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js deleted file mode 100644 index 7c0ea71e773..00000000000 --- a/deps/npm/lib/ls.js +++ /dev/null @@ -1,548 +0,0 @@ -// show the installed versions of packages -// -// --parseable creates output like this: -// ::: -// Flags are a :-separated list of zero or more indicators - -module.exports = exports = ls - -var path = require('path') -var url = require('url') -var readPackageTree = require('read-package-tree') -var archy = require('archy') -var semver = require('semver') -var color = require('ansicolors') -var npa = require('npm-package-arg') -var sortedObject = require('sorted-object') -var npm = require('./npm.js') -var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') -var computeMetadata = require('./install/deps.js').computeMetadata -var readShrinkwrap = require('./install/read-shrinkwrap.js') -var packageId = require('./utils/package-id.js') -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -ls.usage = usage( - 'ls', - 'npm ls [[<@scope>/] ...]' -) - -ls.completion = require('./utils/completion/installed-deep.js') - -function ls (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var dir = path.resolve(npm.dir, '..') - readPackageTree(dir, function (_, physicalTree) { - if (!physicalTree) physicalTree = {package: {}, path: dir} - physicalTree.isTop = true - readShrinkwrap.andInflate(physicalTree, function () { - lsFromTree(dir, computeMetadata(physicalTree), args, silent, cb) - }) - }) -} - -function inList (list, value) { - return list.indexOf(value) !== -1 -} - -var lsFromTree = ls.fromTree = function (dir, physicalTree, args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - // npm ls 'foo@~1.3' bar 'baz@<2' - if (!args) { - args = [] - } else { - args = args.map(function (a) { - if (typeof a === 'object') { - return [a.package.name, a.package.version, a] - } else { - var p = npa(a) - var name = p.name - // When version spec is missing, we'll skip using it when filtering. - // Otherwise, `semver.validRange` would return '*', which won't - // match prerelease versions. - var ver = (p.rawSpec && - (semver.validRange(p.rawSpec) || '')) - return [ name, ver, a ] - } - }) - } - - var data = mutateIntoLogicalTree.asReadInstalled(physicalTree) - - pruneNestedExtraneous(data) - filterByEnv(data) - filterByLink(data) - - var unlooped = filterFound(unloop(data), args) - var lite = getLite(unlooped) - - if (silent) return cb(null, data, lite) - - var long = npm.config.get('long') - var json = npm.config.get('json') - var out - if (json) { - var seen = new Set() - var d = long ? unlooped : lite - // the raw data can be circular - out = JSON.stringify(d, function (k, o) { - if (typeof o === 'object') { - if (seen.has(o)) return '[Circular]' - seen.add(o) - } - return o - }, 2) - } else if (npm.config.get('parseable')) { - out = makeParseable(unlooped, long, dir) - } else if (data) { - out = makeArchy(unlooped, long, dir) - } - output(out) - - if (args.length && !data._found) process.exitCode = 1 - - var er - // if any errors were found, then complain and exit status 1 - if (lite.problems && lite.problems.length) { - er = lite.problems.join('\n') - } - cb(er, data, lite) -} - -function pruneNestedExtraneous (data, visited) { - visited = visited || [] - visited.push(data) - for (var i in data.dependencies) { - if (data.dependencies[i].extraneous) { - data.dependencies[i].dependencies = {} - } else if (visited.indexOf(data.dependencies[i]) === -1) { - pruneNestedExtraneous(data.dependencies[i], visited) - } - } -} - -function filterByEnv (data) { - var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('only')) - var production = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) - var dependencies = {} - var devKeys = Object.keys(data.devDependencies || []) - var prodKeys = Object.keys(data._dependencies || []) - Object.keys(data.dependencies).forEach(function (name) { - if (!dev && inList(devKeys, name) && !inList(prodKeys, name) && data.dependencies[name].missing) { - return - } - - 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] - } - }) - data.dependencies = dependencies -} - -function filterByLink (data) { - if (npm.config.get('link')) { - var dependencies = {} - Object.keys(data.dependencies).forEach(function (name) { - var dependency = data.dependencies[name] - if (dependency.link) { - dependencies[name] = dependency - } - }) - data.dependencies = dependencies - } -} - -function alphasort (a, b) { - a = a.toLowerCase() - b = b.toLowerCase() - return a > b ? 1 - : a < b ? -1 : 0 -} - -function isCruft (data) { - return data.extraneous && data.error && data.error.code === 'ENOTDIR' -} - -function getLite (data, noname, depth) { - var lite = {} - - if (isCruft(data)) return lite - - var maxDepth = npm.config.get('depth') - - if (typeof depth === 'undefined') depth = 0 - if (!noname && data.name) lite.name = data.name - if (data.version) lite.version = data.version - if (data.extraneous) { - lite.extraneous = true - lite.problems = lite.problems || [] - lite.problems.push('extraneous: ' + packageId(data) + ' ' + (data.path || '')) - } - - if (data.error && data.path !== path.resolve(npm.globalDir, '..') && - (data.error.code !== 'ENOENT' || noname)) { - lite.invalid = true - lite.problems = lite.problems || [] - var message = data.error.message - lite.problems.push('error in ' + data.path + ': ' + message) - } - - if (data._from) { - lite.from = data._from - } - - if (data._resolved) { - lite.resolved = data._resolved - } - - if (data.invalid) { - lite.invalid = true - lite.problems = lite.problems || [] - lite.problems.push('invalid: ' + - packageId(data) + - ' ' + (data.path || '')) - } - - if (data.peerInvalid) { - lite.peerInvalid = true - lite.problems = lite.problems || [] - lite.problems.push('peer dep not met: ' + - packageId(data) + - ' ' + (data.path || '')) - } - - var deps = (data.dependencies && Object.keys(data.dependencies)) || [] - if (deps.length) { - lite.dependencies = deps.map(function (d) { - var dep = data.dependencies[d] - if (dep.missing && !dep.optional) { - lite.problems = lite.problems || [] - var p - if (data.depth > maxDepth) { - p = 'max depth reached: ' - } else { - p = 'missing: ' - } - p += d + '@' + dep.requiredBy + - ', required by ' + - packageId(data) - lite.problems.push(p) - if (dep.dependencies) { - return [d, getLite(dep, true)] - } else { - return [d, { required: dep.requiredBy, missing: true }] - } - } else if (dep.peerMissing) { - lite.problems = lite.problems || [] - dep.peerMissing.forEach(function (missing) { - var pdm = 'peer dep missing: ' + - missing.requires + - ', required by ' + - missing.requiredBy - lite.problems.push(pdm) - }) - return [d, { required: dep, peerMissing: true }] - } else if (npm.config.get('json')) { - if (depth === maxDepth) delete dep.dependencies - return [d, getLite(dep, true, depth + 1)] - } - return [d, getLite(dep, true)] - }).reduce(function (deps, d) { - if (d[1].problems) { - lite.problems = lite.problems || [] - lite.problems.push.apply(lite.problems, d[1].problems) - } - deps[d[0]] = d[1] - return deps - }, {}) - } - return lite -} - -function unloop (root) { - var queue = [root] - var seen = new Set() - seen.add(root) - - while (queue.length) { - var current = queue.shift() - var deps = current.dependencies = current.dependencies || {} - Object.keys(deps).forEach(function (d) { - var dep = deps[d] - if (dep.missing && !dep.dependencies) return - if (dep.path && seen.has(dep)) { - dep = deps[d] = Object.assign({}, dep) - dep.dependencies = {} - dep._deduped = path.relative(root.path, dep.path).replace(/node_modules\//g, '') - return - } - seen.add(dep) - queue.push(dep) - }) - } - - return root -} - -function filterFound (root, args) { - if (!args.length) return root - if (!root.dependencies) return root - - // Mark all deps - var toMark = [root] - while (toMark.length) { - var markPkg = toMark.shift() - var markDeps = markPkg.dependencies - if (!markDeps) continue - Object.keys(markDeps).forEach(function (depName) { - var dep = markDeps[depName] - if (dep.peerMissing) return - dep._parent = markPkg - for (var ii = 0; ii < args.length; ii++) { - var argName = args[ii][0] - var argVersion = args[ii][1] - var argRaw = args[ii][2] - var found - if (typeof argRaw === 'object') { - if (dep.path === argRaw.path) { - found = true - } - } else if (depName === argName && argVersion) { - found = semver.satisfies(dep.version, argVersion, true) - } else if (depName === argName) { - // If version is missing from arg, just do a name match. - found = true - } - if (found) { - dep._found = 'explicit' - var parent = dep._parent - while (parent && !parent._found && !parent._deduped) { - parent._found = 'implicit' - parent = parent._parent - } - break - } - } - toMark.push(dep) - }) - } - var toTrim = [root] - while (toTrim.length) { - var trimPkg = toTrim.shift() - var trimDeps = trimPkg.dependencies - if (!trimDeps) continue - trimPkg.dependencies = {} - Object.keys(trimDeps).forEach(function (name) { - var dep = trimDeps[name] - if (!dep._found) return - if (dep._found === 'implicit' && dep._deduped) return - trimPkg.dependencies[name] = dep - toTrim.push(dep) - }) - } - return root -} - -function makeArchy (data, long, dir) { - var out = makeArchy_(data, long, dir, 0) - return archy(out, '', { unicode: npm.config.get('unicode') }) -} - -function makeArchy_ (data, long, dir, depth, parent, d) { - if (data.missing) { - if (depth - 1 <= npm.config.get('depth')) { - // just missing - var unmet = 'UNMET ' + (data.optional ? 'OPTIONAL ' : '') + 'DEPENDENCY' - if (npm.color) { - if (data.optional) { - unmet = color.bgBlack(color.yellow(unmet)) - } else { - unmet = color.bgBlack(color.red(unmet)) - } - } - var label = data._id || (d + '@' + data.requiredBy) - if (data._found === 'explicit' && data._id) { - if (npm.color) { - label = color.bgBlack(color.yellow(label.trim())) + ' ' - } else { - label = label.trim() + ' ' - } - } - return { - label: unmet + ' ' + label, - nodes: Object.keys(data.dependencies || {}) - .sort(alphasort).filter(function (d) { - return !isCruft(data.dependencies[d]) - }).map(function (d) { - return makeArchy_(sortedObject(data.dependencies[d]), long, dir, depth + 1, data, d) - }) - } - } else { - return {label: d + '@' + data.requiredBy} - } - } - - var out = {} - // the top level is a bit special. - out.label = data._id || '' - if (data._found === 'explicit' && data._id) { - if (npm.color) { - out.label = color.bgBlack(color.yellow(out.label.trim())) + ' ' - } else { - out.label = out.label.trim() + ' ' - } - } - if (data.link) out.label += ' -> ' + data.link - - if (data._deduped) { - if (npm.color) { - out.label += ' ' + color.brightBlack('deduped') - } else { - out.label += ' deduped' - } - } - - if (data.invalid) { - if (data.realName !== data.name) out.label += ' (' + data.realName + ')' - var invalid = 'invalid' - if (npm.color) invalid = color.bgBlack(color.red(invalid)) - out.label += ' ' + invalid - } - - if (data.peerInvalid) { - var peerInvalid = 'peer invalid' - if (npm.color) peerInvalid = color.bgBlack(color.red(peerInvalid)) - out.label += ' ' + peerInvalid - } - - if (data.peerMissing) { - var peerMissing = 'UNMET PEER DEPENDENCY' - - if (npm.color) peerMissing = color.bgBlack(color.red(peerMissing)) - out.label = peerMissing + ' ' + out.label - } - - if (data.extraneous && data.path !== dir) { - var extraneous = 'extraneous' - if (npm.color) extraneous = color.bgBlack(color.green(extraneous)) - out.label += ' ' + extraneous - } - - if (data.error && depth) { - var message = data.error.message - if (message.indexOf('\n')) message = message.slice(0, message.indexOf('\n')) - var error = 'error: ' + message - if (npm.color) error = color.bgRed(color.brightWhite(error)) - out.label += ' ' + error - } - - // add giturl to name@version - if (data._resolved) { - try { - var type = npa(data._resolved).type - var isGit = type === 'git' || type === 'hosted' - if (isGit) { - out.label += ' (' + data._resolved + ')' - } - } catch (ex) { - // npa threw an exception then it ain't git so whatev - } - } - - if (long) { - if (dir === data.path) out.label += '\n' + dir - out.label += '\n' + getExtras(data) - } else if (dir === data.path) { - if (out.label) out.label += ' ' - out.label += dir - } - - // now all the children. - out.nodes = [] - if (depth <= npm.config.get('depth')) { - out.nodes = Object.keys(data.dependencies || {}) - .sort(alphasort).filter(function (d) { - return !isCruft(data.dependencies[d]) - }).map(function (d) { - return makeArchy_(sortedObject(data.dependencies[d]), long, dir, depth + 1, data, d) - }) - } - - if (out.nodes.length === 0 && data.path === dir) { - out.nodes = ['(empty)'] - } - - return out -} - -function getExtras (data) { - var extras = [] - - if (data.description) extras.push(data.description) - if (data.repository) extras.push(data.repository.url) - if (data.homepage) extras.push(data.homepage) - if (data._from) { - var from = data._from - if (from.indexOf(data.name + '@') === 0) { - from = from.substr(data.name.length + 1) - } - var u = url.parse(from) - if (u.protocol) extras.push(from) - } - return extras.join('\n') -} - -function makeParseable (data, long, dir, depth, parent, d) { - if (data._deduped) return [] - depth = depth || 0 - if (depth > npm.config.get('depth')) return [ makeParseable_(data, long, dir, depth, parent, d) ] - return [ makeParseable_(data, long, dir, depth, parent, d) ] - .concat(Object.keys(data.dependencies || {}) - .sort(alphasort).map(function (d) { - return makeParseable(data.dependencies[d], long, dir, depth + 1, data, d) - })) - .filter(function (x) { return x && x.length }) - .join('\n') -} - -function makeParseable_ (data, long, dir, depth, parent, d) { - if (data.hasOwnProperty('_found') && data._found !== 'explicit') return '' - - if (data.missing) { - if (depth < npm.config.get('depth')) { - data = npm.config.get('long') - ? 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) + - ':' + // no realpath resolved - ':MAXDEPTH' - : '') - } - - return data - } - - if (!npm.config.get('long')) return data.path - - return data.path + - ':' + (data._id || '') + - ':' + (data.realPath !== data.path ? data.realPath : '') + - (data.extraneous ? ':EXTRANEOUS' : '') + - (data.error && data.path !== path.resolve(npm.globalDir, '..') ? ':ERROR' : '') + - (data.invalid ? ':INVALID' : '') + - (data.peerInvalid ? ':PEERINVALID' : '') + - (data.peerMissing ? ':PEERINVALID:MISSING' : '') -} diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js deleted file mode 100644 index e58712603bf..00000000000 --- a/deps/npm/lib/npm.js +++ /dev/null @@ -1,480 +0,0 @@ -;(function () { - // windows: running 'npm blah' in this folder will invoke WSH, not node. - /*globals WScript*/ - if (typeof WScript !== 'undefined') { - WScript.echo( - 'npm does not work when run\n' + - 'with the Windows Scripting Host\n\n' + - '"cd" to a different directory,\n' + - 'or type "npm.cmd ",\n' + - 'or type "node npm ".' - ) - WScript.quit(1) - return - } - - var unsupported = require('../lib/utils/unsupported.js') - unsupported.checkForBrokenNode() - - var gfs = require('graceful-fs') - // Patch the global fs module here at the app level - var fs = gfs.gracefulify(require('fs')) - - var EventEmitter = require('events').EventEmitter - var npm = module.exports = new EventEmitter() - var npmconf = require('./config/core.js') - var log = require('npmlog') - var inspect = require('util').inspect - - // capture global logging - process.on('log', function (level) { - try { - return log[level].apply(log, [].slice.call(arguments, 1)) - } catch (ex) { - log.verbose('attempt to log ' + inspect(arguments) + ' crashed: ' + ex.message) - } - }) - - var path = require('path') - var abbrev = require('abbrev') - var which = require('which') - var glob = require('glob') - var rimraf = require('rimraf') - var lazyProperty = require('lazy-property') - var parseJSON = require('./utils/parse-json.js') - var clientConfig = require('./config/reg-client.js') - var aliases = require('./config/cmd-list').aliases - var cmdList = require('./config/cmd-list').cmdList - var plumbing = require('./config/cmd-list').plumbing - var output = require('./utils/output.js') - var startMetrics = require('./utils/metrics.js').start - var perf = require('./utils/perf.js') - - perf.emit('time', 'npm') - perf.on('timing', function (name, finished) { - log.timing(name, 'Completed in', finished + 'ms') - }) - - npm.config = { - loaded: false, - get: function () { - throw new Error('npm.load() required') - }, - set: function () { - throw new Error('npm.load() required') - } - } - - npm.commands = {} - - // TUNING - npm.limit = { - fetch: 10, - action: 50 - } - // *** - - npm.lockfileVersion = 1 - - npm.rollbacks = [] - - try { - // startup, ok to do this synchronously - var j = parseJSON(fs.readFileSync( - path.join(__dirname, '../package.json')) + '') - npm.name = j.name - npm.version = j.version - } catch (ex) { - try { - log.info('error reading version', ex) - } catch (er) {} - npm.version = ex - } - - var commandCache = {} - var aliasNames = Object.keys(aliases) - - var littleGuys = [ 'isntall', 'verison' ] - var fullList = cmdList.concat(aliasNames).filter(function (c) { - return plumbing.indexOf(c) === -1 - }) - var abbrevs = abbrev(fullList) - - // we have our reasons - fullList = npm.fullList = fullList.filter(function (c) { - return littleGuys.indexOf(c) === -1 - }) - - var registryRefer - var registryLoaded - - Object.keys(abbrevs).concat(plumbing).forEach(function addCommand (c) { - Object.defineProperty(npm.commands, c, { get: function () { - if (!loaded) { - throw new Error( - 'Call npm.load(config, cb) before using this command.\n' + - 'See the README.md or bin/npm-cli.js for example usage.' - ) - } - var a = npm.deref(c) - if (c === 'la' || c === 'll') { - npm.config.set('long', true) - } - - npm.command = c - if (commandCache[a]) return commandCache[a] - - var cmd = require(path.join(__dirname, a + '.js')) - - commandCache[a] = function () { - var args = Array.prototype.slice.call(arguments, 0) - if (typeof args[args.length - 1] !== 'function') { - args.push(defaultCb) - } - if (args.length === 1) args.unshift([]) - - // Options are prefixed by a hyphen-minus (-, \u2d). - // Other dash-type chars look similar but are invalid. - Array(args[0]).forEach(function (arg) { - if (/^[\u2010-\u2015\u2212\uFE58\uFE63\uFF0D]/.test(arg)) { - log.error('arg', 'Argument starts with non-ascii dash, this is probably invalid:', arg) - } - }) - - if (!registryRefer) { - registryRefer = [a].concat(args[0]).map(function (arg) { - // exclude anything that might be a URL, path, or private module - // Those things will always have a slash in them somewhere - if (arg && arg.match && arg.match(/\/|\\/)) { - return '[REDACTED]' - } else { - return arg - } - }).filter(function (arg) { - return arg && arg.match - }).join(' ') - if (registryLoaded) npm.registry.refer = registryRefer - } - - cmd.apply(npm, args) - } - - Object.keys(cmd).forEach(function (k) { - commandCache[a][k] = cmd[k] - }) - - return commandCache[a] - }, 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) { - return b.toUpperCase() - })) - } - }) - - function defaultCb (er, data) { - log.disableProgress() - if (er) console.error(er.stack || er.message) - else output(data) - } - - npm.deref = function (c) { - if (!c) return '' - if (c.match(/[A-Z]/)) { - c = c.replace(/([A-Z])/g, function (m) { - return '-' + m.toLowerCase() - }) - } - if (plumbing.indexOf(c) !== -1) return c - var a = abbrevs[c] - if (aliases[a]) a = aliases[a] - return a - } - - var loaded = false - var loading = false - var loadErr = null - var loadListeners = [] - - function loadCb (er) { - loadListeners.forEach(function (cb) { - process.nextTick(cb.bind(npm, er, npm)) - }) - loadListeners.length = 0 - } - - npm.load = function (cli, cb_) { - if (!cb_ && typeof cli === 'function') { - cb_ = cli - cli = {} - } - if (!cb_) cb_ = function () {} - if (!cli) cli = {} - loadListeners.push(cb_) - if (loaded || loadErr) return cb(loadErr) - if (loading) return - loading = true - var onload = true - - function cb (er) { - if (loadErr) return - loadErr = er - if (er) return cb_(er) - if (npm.config.get('force')) { - log.warn('using --force', 'I sure hope you know what you are doing.') - } - npm.config.loaded = true - loaded = true - loadCb(loadErr = er) - onload = onload && npm.config.get('onload-script') - if (onload) { - try { - require(onload) - } catch (err) { - log.warn('onload-script', 'failed to require onload script', onload) - log.warn('onload-script', err) - } - onload = false - } - } - - log.pause() - - load(npm, cli, cb) - } - - function load (npm, cli, cb) { - which(process.argv[0], function (er, node) { - if (!er && node.toUpperCase() !== process.execPath.toUpperCase()) { - log.verbose('node symlink', node) - process.execPath = node - process.installPrefix = path.resolve(node, '..', '..') - } - - // look up configs - var builtin = path.resolve(__dirname, '..', 'npmrc') - npmconf.load(cli, builtin, function (er, config) { - if (er === config) er = null - - npm.config = config - if (er) return cb(er) - - // if the 'project' config is not a filename, and we're - // not in global mode, then that means that it collided - // with either the default or effective userland config - if (!config.get('global') && - config.sources.project && - config.sources.project.type !== 'ini') { - log.verbose( - 'config', - 'Skipping project config: %s. (matches userconfig)', - config.localPrefix + '/.npmrc' - ) - } - - // Include npm-version and node-version in user-agent - var ua = config.get('user-agent') || '' - ua = ua.replace(/\{node-version\}/gi, process.version) - ua = ua.replace(/\{npm-version\}/gi, npm.version) - ua = ua.replace(/\{platform\}/gi, process.platform) - ua = ua.replace(/\{arch\}/gi, process.arch) - config.set('user-agent', ua) - - if (config.get('metrics-registry') == null) { - config.set('metrics-registry', config.get('registry')) - } - - var color = config.get('color') - - log.level = config.get('loglevel') - log.heading = config.get('heading') || 'npm' - log.stream = config.get('logstream') - - switch (color) { - case 'always': - npm.color = true - break - case false: - npm.color = false - break - default: - npm.color = process.stdout.isTTY && process.env['TERM'] !== 'dumb' - break - } - if (npm.color) { - log.enableColor() - } else { - log.disableColor() - } - - if (config.get('unicode')) { - log.enableUnicode() - } else { - log.disableUnicode() - } - - if (config.get('progress') && process.stderr.isTTY && process.env['TERM'] !== 'dumb') { - log.enableProgress() - } else { - log.disableProgress() - } - - glob(path.resolve(npm.cache, '_logs', '*-debug.log'), function (er, files) { - if (er) return cb(er) - - while (files.length >= npm.config.get('logs-max')) { - rimraf.sync(files[0]) - files.splice(0, 1) - } - }) - - log.resume() - - var umask = npm.config.get('umask') - npm.modes = { - exec: parseInt('0777', 8) & (~umask), - file: parseInt('0666', 8) & (~umask), - umask: umask - } - - var gp = Object.getOwnPropertyDescriptor(config, 'globalPrefix') - Object.defineProperty(npm, 'globalPrefix', gp) - - var lp = Object.getOwnPropertyDescriptor(config, 'localPrefix') - Object.defineProperty(npm, 'localPrefix', lp) - - config.set('scope', scopeifyScope(config.get('scope'))) - npm.projectScope = config.get('scope') || - scopeifyScope(getProjectScope(npm.prefix)) - - // at this point the configs are all set. - // go ahead and spin up the registry client. - lazyProperty(npm, 'registry', function () { - registryLoaded = true - var RegClient = require('npm-registry-client') - var registry = new RegClient(clientConfig(npm, log, npm.config)) - registry.version = npm.version - registry.refer = registryRefer - return registry - }) - - startMetrics() - - return cb(null, npm) - }) - }) - } - - Object.defineProperty(npm, 'prefix', - { - get: function () { - return npm.config.get('global') ? npm.globalPrefix : npm.localPrefix - }, - set: function (r) { - var k = npm.config.get('global') ? 'globalPrefix' : 'localPrefix' - npm[k] = r - return r - }, - enumerable: true - }) - - Object.defineProperty(npm, 'bin', - { - get: function () { - if (npm.config.get('global')) return npm.globalBin - return path.resolve(npm.root, '.bin') - }, - enumerable: true - }) - - Object.defineProperty(npm, 'globalBin', - { - get: function () { - var b = npm.globalPrefix - if (process.platform !== 'win32') b = path.resolve(b, 'bin') - return b - } - }) - - Object.defineProperty(npm, 'dir', - { - get: function () { - if (npm.config.get('global')) return npm.globalDir - return path.resolve(npm.prefix, 'node_modules') - }, - enumerable: true - }) - - Object.defineProperty(npm, 'globalDir', - { - get: function () { - return (process.platform !== 'win32') - ? path.resolve(npm.globalPrefix, 'lib', 'node_modules') - : path.resolve(npm.globalPrefix, 'node_modules') - }, - enumerable: true - }) - - Object.defineProperty(npm, 'root', - { get: function () { return npm.dir } }) - - Object.defineProperty(npm, 'cache', - { get: function () { return npm.config.get('cache') }, - set: function (r) { return npm.config.set('cache', r) }, - enumerable: true - }) - - var tmpFolder - var rand = require('crypto').randomBytes(4).toString('hex') - Object.defineProperty(npm, 'tmp', - { - get: function () { - if (!tmpFolder) tmpFolder = 'npm-' + process.pid + '-' + rand - return path.resolve(npm.config.get('tmp'), tmpFolder) - }, - enumerable: true - }) - - // the better to repl you with - Object.getOwnPropertyNames(npm.commands).forEach(function (n) { - if (npm.hasOwnProperty(n) || n === 'config') return - - Object.defineProperty(npm, n, { get: function () { - return function () { - var args = Array.prototype.slice.call(arguments, 0) - var cb = defaultCb - - if (args.length === 1 && Array.isArray(args[0])) { - args = args[0] - } - - if (typeof args[args.length - 1] === 'function') { - cb = args.pop() - } - npm.commands[n](args, cb) - } - }, enumerable: false, configurable: true }) - }) - - if (require.main === module) { - require('../bin/npm-cli.js') - } - - function scopeifyScope (scope) { - return (!scope || scope[0] === '@') ? scope : ('@' + scope) - } - - function getProjectScope (prefix) { - try { - var pkg = JSON.parse(fs.readFileSync(path.join(prefix, 'package.json'))) - if (typeof pkg.name !== 'string') return '' - var sep = pkg.name.indexOf('/') - if (sep === -1) return '' - return pkg.name.slice(0, sep) - } catch (ex) { - return '' - } - } -})() diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js deleted file mode 100644 index a38137b66c8..00000000000 --- a/deps/npm/lib/outdated.js +++ /dev/null @@ -1,425 +0,0 @@ -/* - -npm outdated [pkg] - -Does the following: - -1. check for a new version of pkg - -If no packages are specified, then run for all installed -packages. - ---parseable creates output like this: -::: - -*/ - -module.exports = outdated - -outdated.usage = 'npm outdated [[<@scope>/] ...]' - -outdated.completion = require('./utils/completion/installed-deep.js') - -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 mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') -var npm = require('./npm.js') -var long = npm.config.get('long') -var mapToRegistry = require('./utils/map-to-registry.js') -var isExtraneous = require('./install/is-extraneous.js') -var computeMetadata = require('./install/deps.js').computeMetadata -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 - // value. - var uniqed = [] - var seen = new Set() - list.forEach(function (item) { - if (seen.has(item)) return - seen.add(item) - uniqed.push(item) - }) - return uniqed -} - -function andComputeMetadata (next) { - return function (er, tree) { - if (er) return next(er) - next(null, computeMetadata(tree)) - } -} - -function outdated (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var dir = path.resolve(npm.dir, '..') - - // default depth for `outdated` is 0 (cf. `ls`) - if (npm.config.get('depth') === Infinity) npm.config.set('depth', 0) - - readPackageTree(dir, andComputeMetadata(function (er, tree) { - if (!tree) return cb(er) - mutateIntoLogicalTree(tree) - outdated_(args, '', tree, {}, 0, function (er, list) { - list = uniq(list || []).sort(function (aa, bb) { - return aa[0].path.localeCompare(bb[0].path) || - aa[1].localeCompare(bb[1]) - }) - if (er || silent || list.length === 0) return cb(er, list) - if (npm.config.get('json')) { - output(makeJSON(list)) - } else if (npm.config.get('parseable')) { - output(makeParseable(list)) - } else { - var outList = list.map(makePretty) - var outHead = [ 'Package', - 'Current', - 'Wanted', - 'Latest', - 'Location' - ] - if (long) outHead.push('Package Type') - var outTable = [outHead].concat(outList) - - if (npm.color) { - outTable[0] = outTable[0].map(function (heading) { - return styles.underline(heading) - }) - } - - var tableOpts = { - align: ['l', 'r', 'r', 'r', 'l'], - stringLength: function (s) { return ansiTrim(s).length } - } - output(table(outTable, tableOpts)) - } - process.exitCode = 1 - cb(null, list.map(function (item) { return [item[0].parent.path].concat(item.slice(1, 7)) })) - }) - })) -} - -// [[ 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 - ] - if (long) columns[5] = type - - if (npm.color) { - columns[0] = color[has === want || want === 'linked' ? 'yellow' : 'red'](columns[0]) // dep - columns[2] = color.green(columns[2]) // want - columns[3] = color.magenta(columns[3]) // latest - } - - return columns -} - -function makeParseable (list) { - return list.map(function (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 out = [ - dir, - depname + '@' + want, - (has ? (depname + '@' + has) : 'MISSING'), - depname + '@' + latest - ] - if (long) out.push(type) - - return out.join(':') - }).join(os.EOL) -} - -function makeJSON (list) { - var out = {} - list.forEach(function (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] - if (!npm.config.get('global')) { - dir = path.relative(process.cwd(), dir) - } - out[depname] = { current: has, - wanted: want, - latest: latest, - location: dir - } - if (long) out[depname].type = type - }) - return JSON.stringify(out, null, 2) -} - -function outdated_ (args, path, tree, parentHas, depth, cb) { - if (!tree.package) tree.package = {} - if (path && tree.package.name) path += ' > ' + tree.package.name - if (!path && tree.package.name) path = tree.package.name - if (depth > npm.config.get('depth')) { - return cb(null, []) - } - var types = {} - var pkg = tree.package - - 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) { - deps.push({ - package: { name: name }, - path: tree.path, - parent: tree, - isMissing: true - }) - types[name] = 'dependencies' - }) - - // If we explicitly asked for dev deps OR we didn't ask for production deps - // AND we asked to save dev-deps OR we didn't ask to save anything that's NOT - // dev deps then… - // (All the save checking here is because this gets called from npm-update currently - // and that requires this logic around dev deps.) - // FIXME: Refactor npm update to not be in terms of outdated. - var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('also')) - var prod = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) - if ((dev || !prod) && - (npm.config.get('save-dev') || ( - !npm.config.get('save') && !npm.config.get('save-optional')))) { - Object.keys(tree.missingDevDeps).forEach(function (name) { - deps.push({ - package: { name: name }, - path: tree.path, - parent: tree, - isMissing: true - }) - if (!types[name]) { - types[name] = 'devDependencies' - } - }) - } - - if (npm.config.get('save-dev')) { - deps = deps.filter(function (dep) { return pkg.devDependencies[moduleName(dep)] }) - deps.forEach(function (dep) { - types[moduleName(dep)] = 'devDependencies' - }) - } else if (npm.config.get('save')) { - // remove optional dependencies from dependencies during --save. - deps = deps.filter(function (dep) { return !pkg.optionalDependencies[moduleName(dep)] }) - } else if (npm.config.get('save-optional')) { - deps = deps.filter(function (dep) { return pkg.optionalDependencies[moduleName(dep)] }) - deps.forEach(function (dep) { - types[moduleName(dep)] = 'optionalDependencies' - }) - } - var doUpdate = dev || ( - !prod && - !Object.keys(parentHas).length && - !npm.config.get('global') - ) - if (doUpdate) { - Object.keys(pkg.devDependencies).forEach(function (k) { - if (!(k in parentHas)) { - deps[k] = pkg.devDependencies[k] - types[k] = 'devDependencies' - } - }) - } - - var has = Object.create(parentHas) - tree.children.forEach(function (child) { - if (child.package.name && child.package.private) { - deps = deps.filter(function (dep) { return dep !== child }) - } - has[child.package.name] = { - version: child.package.version, - from: child.package._from - } - }) - - // now get what we should have, based on the dep. - // if has[dep] !== shouldHave[dep], then cb with the data - // 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) || - '*' - if (!long) return shouldUpdate(args, dep, name, has, required, depth, path, cb) - - shouldUpdate(args, dep, name, has, required, depth, path, cb, types[name]) - }, cb) -} - -function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, cb, type) { - // look up the most recent version. - // if that's what we already have, or if it's not on the args list, - // then dive into it. Otherwise, cb() with the data. - - // { version: , from: } - var curr = has[dep] - - function skip (er) { - // show user that no viable version can be found - if (er) return cb(er) - outdated_(args, - pkgpath, - tree, - has, - depth + 1, - cb) - } - - function doIt (wanted, latest) { - if (!long) { - return cb(null, [[tree, dep, curr && curr.version, wanted, latest, req, null, pkgpath]]) - } - cb(null, [[tree, dep, curr && curr.version, wanted, latest, req, type, pkgpath]]) - } - - if (args.length && args.indexOf(dep) === -1) return skip() - 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') { - return doIt('git', 'git') - } - - // 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) - }) - - function updateLocalDeps (latestRegistryVersion) { - readJson(path.resolve(parsed.fetchSpec, 'package.json'), function (er, localDependency) { - if (er) return cb() - - var wanted = localDependency.version - var latest = localDependency.version - - if (latestRegistryVersion) { - latest = latestRegistryVersion - if (semver.lt(wanted, latestRegistryVersion)) { - wanted = latestRegistryVersion - req = dep + '@' + latest - } - } - - if (!curr || curr.version !== wanted) { - doIt(wanted, latest) - } else { - skip() - } - }) - } - - 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]) - } - } - - // 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) - } - 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() - } - } - } -} diff --git a/deps/npm/lib/owner.js b/deps/npm/lib/owner.js deleted file mode 100644 index 64d086af78f..00000000000 --- a/deps/npm/lib/owner.js +++ /dev/null @@ -1,277 +0,0 @@ -module.exports = owner - -var npm = require('./npm.js') -var log = require('npmlog') -var mapToRegistry = require('./utils/map-to-registry.js') -var readLocalPkg = require('./utils/read-local-package.js') -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -owner.usage = usage( - 'owner', - 'npm owner add [<@scope>/]' + - '\nnpm owner rm [<@scope>/]' + - '\nnpm owner ls [<@scope>/]' -) -owner.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length > 4) return cb() - if (argv.length <= 2) { - var subs = ['add', 'rm'] - if (opts.partialWord === 'l') subs.push('ls') - else subs.push('ls', 'list') - return cb(null, subs) - } - - npm.commands.whoami([], true, function (er, username) { - if (er) return cb() - - var un = encodeURIComponent(username) - var byUser, theUser - switch (argv[2]) { - case 'ls': - // FIXME: there used to be registry completion here, but it stopped - // making sense somewhere around 50,000 packages on the registry - return cb() - - case 'rm': - if (argv.length > 3) { - theUser = encodeURIComponent(argv[3]) - byUser = '-/by-user/' + theUser + '|' + un - return mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - console.error(uri) - npm.registry.get(uri, { auth: auth }, function (er, d) { - if (er) return cb(er) - // return the intersection - return cb(null, d[theUser].filter(function (p) { - // kludge for server adminery. - return un === 'isaacs' || d[un].indexOf(p) === -1 - })) - }) - }) - } - // else fallthrough - /*eslint no-fallthrough:0*/ - case 'add': - if (argv.length > 3) { - theUser = encodeURIComponent(argv[3]) - byUser = '-/by-user/' + theUser + '|' + un - return mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - console.error(uri) - npm.registry.get(uri, { auth: auth }, function (er, d) { - console.error(uri, er || d) - // return mine that they're not already on. - if (er) return cb(er) - var mine = d[un] || [] - var theirs = d[theUser] || [] - return cb(null, mine.filter(function (p) { - return theirs.indexOf(p) === -1 - })) - }) - }) - } - // just list all users who aren't me. - return mapToRegistry('-/users', npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, list) { - if (er) return cb() - return cb(null, Object.keys(list).filter(function (n) { - return n !== un - })) - }) - }) - - default: - return cb() - } - }) -} - -function owner (args, cb) { - var action = args.shift() - switch (action) { - case 'ls': case 'list': return ls(args[0], cb) - case 'add': return add(args[0], args[1], cb) - case 'rm': case 'remove': return rm(args[0], args[1], cb) - default: return unknown(action, cb) - } -} - -function ls (pkg, cb) { - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(owner.usage) - ls(pkg, cb) - }) - } - - mapToRegistry(pkg, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, data) { - var msg = '' - if (er) { - log.error('owner ls', "Couldn't get owner data", pkg) - return cb(er) - } - var owners = data.maintainers - if (!owners || !owners.length) { - msg = 'admin party!' - } else { - msg = owners.map(function (o) { - return o.name + ' <' + o.email + '>' - }).join('\n') - } - output(msg) - cb(er, owners) - }) - }) -} - -function add (user, pkg, cb) { - if (!user) return cb(owner.usage) - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(new Error(owner.usage)) - add(user, pkg, cb) - }) - } - - log.verbose('owner add', '%s to %s', user, pkg) - mutate(pkg, user, function (u, owners) { - if (!owners) owners = [] - for (var i = 0, l = owners.length; i < l; i++) { - var o = owners[i] - if (o.name === u.name) { - log.info( - 'owner add', - 'Already a package owner: ' + o.name + ' <' + o.email + '>' - ) - return false - } - } - owners.push(u) - return owners - }, cb) -} - -function rm (user, pkg, cb) { - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(new Error(owner.usage)) - rm(user, pkg, cb) - }) - } - - log.verbose('owner rm', '%s from %s', user, pkg) - mutate(pkg, user, function (u, owners) { - var found = false - var m = owners.filter(function (o) { - var match = (o.name === user) - found = found || match - return !match - }) - - if (!found) { - log.info('owner rm', 'Not a package owner: ' + user) - return false - } - - if (!m.length) { - return new Error( - 'Cannot remove all owners of a package. Add someone else first.' - ) - } - - return m - }, cb) -} - -function mutate (pkg, user, mutation, cb) { - if (user) { - var byUser = '-/user/org.couchdb.user:' + user - mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, mutate_) - }) - } else { - mutate_(null, null) - } - - function mutate_ (er, u) { - if (!er && user && (!u || u.error)) { - er = new Error( - "Couldn't get user data for " + user + ': ' + JSON.stringify(u) - ) - } - - if (er) { - log.error('owner mutate', 'Error getting user data for %s', user) - return cb(er) - } - - if (u) u = { name: u.name, email: u.email } - mapToRegistry(pkg, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, data) { - if (er) { - log.error('owner mutate', 'Error getting package data for %s', pkg) - return cb(er) - } - - // save the number of maintainers before mutation so that we can figure - // out if maintainers were added or removed - var beforeMutation = data.maintainers.length - - var m = mutation(u, data.maintainers) - if (!m) return cb() // handled - if (m instanceof Error) return cb(m) // error - - data = { - _id: data._id, - _rev: data._rev, - maintainers: m - } - var dataPath = pkg.replace('/', '%2f') + '/-rev/' + data._rev - mapToRegistry(dataPath, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - method: 'PUT', - body: data, - auth: auth - } - npm.registry.request(uri, params, function (er, data) { - if (!er && data.error) { - er = new Error('Failed to update package metadata: ' + JSON.stringify(data)) - } - - if (er) { - log.error('owner mutate', 'Failed to update package metadata') - } else if (m.length > beforeMutation) { - output('+ %s (%s)', user, pkg) - } else if (m.length < beforeMutation) { - output('- %s (%s)', user, pkg) - } - - cb(er, data) - }) - }) - }) - }) - } -} - -function unknown (action, cb) { - cb('Usage: \n' + owner.usage) -} diff --git a/deps/npm/lib/pack.js b/deps/npm/lib/pack.js deleted file mode 100644 index f6a0eff805f..00000000000 --- a/deps/npm/lib/pack.js +++ /dev/null @@ -1,232 +0,0 @@ -'use strict' - -// npm pack -// Packs the specified package into a .tgz file, which can then -// be installed. - -const BB = require('bluebird') - -const cacache = require('cacache') -const cp = require('child_process') -const deprCheck = require('./utils/depr-check') -const fpm = require('./fetch-package-metadata') -const fs = require('graceful-fs') -const install = require('./install') -const lifecycle = BB.promisify(require('./utils/lifecycle')) -const log = require('npmlog') -const move = require('move-concurrently') -const npm = require('./npm') -const output = require('./utils/output') -const pacote = require('pacote') -const pacoteOpts = require('./config/pacote') -const path = require('path') -const PassThrough = require('stream').PassThrough -const pathIsInside = require('path-is-inside') -const pipe = BB.promisify(require('mississippi').pipe) -const prepublishWarning = require('./utils/warn-deprecated')('prepublish-on-install') -const pinflight = require('promise-inflight') -const readJson = BB.promisify(require('read-package-json')) -const tar = require('tar') -const packlist = require('npm-packlist') - -pack.usage = 'npm pack [[<@scope>/]...]' - -// if it can be installed, it can be packed. -pack.completion = install.completion - -module.exports = pack -function pack (args, silent, cb) { - const cwd = process.cwd() - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - if (args.length === 0) args = ['.'] - - BB.all( - args.map((arg) => pack_(arg, cwd)) - ).then((files) => { - if (!silent) { - output(files.map((f) => path.relative(cwd, f)).join('\n')) - } - cb(null, files) - }, 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 - 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) - }) - } else { - return pacote.tarball.toFile(pkg, target, pacoteOpts()) - .then(() => target) - } - }) - }) -} - -module.exports.prepareDirectory = prepareDirectory -function prepareDirectory (dir) { - return readJson(path.join(dir, 'package.json')).then((pkg) => { - if (!pkg.name) { - throw new Error('package.json requires a "name" field') - } - if (!pkg.version) { - throw new Error('package.json requires a valid "version" field') - } - if (!pathIsInside(dir, npm.tmp)) { - if (pkg.scripts && pkg.scripts.prepublish) { - prepublishWarning([ - 'As of npm@5, `prepublish` scripts are deprecated.', - 'Use `prepare` for build steps and `prepublishOnly` for upload-only.', - 'See the deprecation note in `npm help scripts` for more information.' - ]) - } - if (npm.config.get('ignore-prepublish')) { - return lifecycle(pkg, 'prepare', dir).then(() => pkg) - } else { - return lifecycle(pkg, 'prepublish', dir).then(() => { - return lifecycle(pkg, 'prepare', dir) - }).then(() => pkg) - } - } - return pkg - }) -} - -module.exports.packDirectory = packDirectory -function packDirectory (mani, dir, target) { - deprCheck(mani) - return readJson(path.join(dir, 'package.json')).then((pkg) => { - return lifecycle(pkg, 'prepack', dir) - }).then(() => { - return readJson(path.join(dir, 'package.json')) - }).then((pkg) => { - return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'packing'}, (tmp) => { - const tmpTarget = path.join(tmp, path.basename(target)) - - const tarOpt = { - file: tmpTarget, - cwd: dir, - prefix: 'package/', - portable: true, - noMtime: true, - gzip: true - } - - return 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) - }) - }) -} - -const PASSTHROUGH_OPTS = [ - 'always-auth', - 'auth-type', - 'ca', - 'cafile', - 'cert', - 'git', - 'local-address', - 'maxsockets', - 'offline', - 'prefer-offline', - 'prefer-online', - 'proxy', - 'https-proxy', - 'registry', - 'send-metrics', - 'sso-poll-frequency', - 'sso-type', - 'strict-ssl' -] - -module.exports.packGitDep = packGitDep -function packGitDep (manifest, dir) { - const stream = new PassThrough() - readJson(path.join(dir, 'package.json')).then((pkg) => { - if (pkg.scripts && pkg.scripts.prepare) { - log.verbose('prepareGitDep', `${manifest._spec}: installing devDeps and running prepare script.`) - const cliArgs = PASSTHROUGH_OPTS.reduce((acc, opt) => { - if (npm.config.get(opt, 'cli') != null) { - acc.push(`--${opt}=${npm.config.get(opt)}`) - } - return acc - }, []) - const child = cp.spawn(process.env.NODE || process.execPath, [ - require.main.filename, - 'install', - '--dev', - '--prod', - '--ignore-prepublish', - '--no-progress', - '--no-save' - ].concat(cliArgs), { - cwd: dir, - env: process.env - }) - let errData = [] - let errDataLen = 0 - let outData = [] - let outDataLen = 0 - child.stdout.on('data', (data) => { - outData.push(data) - outDataLen += data.length - log.gauge.pulse('preparing git package') - }) - child.stderr.on('data', (data) => { - errData.push(data) - errDataLen += data.length - log.gauge.pulse('preparing git package') - }) - return BB.fromNode((cb) => { - child.on('error', cb) - child.on('exit', (code, signal) => { - if (code > 0) { - const err = new Error(`${signal}: npm exited with code ${code} while attempting to build ${manifest._requested}. Clone the repository manually and run 'npm install' in it for more information.`) - err.code = code - err.signal = signal - cb(err) - } else { - cb() - } - }) - }).then(() => { - if (outDataLen > 0) log.silly('prepareGitDep', '1>', Buffer.concat(outData, outDataLen).toString()) - if (errDataLen > 0) log.silly('prepareGitDep', '2>', Buffer.concat(errData, errDataLen).toString()) - }, (err) => { - if (outDataLen > 0) log.error('prepareGitDep', '1>', Buffer.concat(outData, outDataLen).toString()) - if (errDataLen > 0) log.error('prepareGitDep', '2>', Buffer.concat(errData, errDataLen).toString()) - throw err - }) - } - }).then(() => { - return readJson(path.join(dir, 'package.json')) - }).then((pkg) => { - return cacache.tmp.withTmp(npm.tmp, { - tmpPrefix: 'pacote-packing' - }, (tmp) => { - const tmpTar = path.join(tmp, 'package.tgz') - return packDirectory(manifest, dir, tmpTar).then(() => { - return pipe(fs.createReadStream(tmpTar), stream) - }) - }) - }).catch((err) => stream.emit('error', err)) - return stream -} diff --git a/deps/npm/lib/ping.js b/deps/npm/lib/ping.js deleted file mode 100644 index 13f390397ce..00000000000 --- a/deps/npm/lib/ping.js +++ /dev/null @@ -1,27 +0,0 @@ -var npm = require('./npm.js') -var output = require('./utils/output.js') - -module.exports = ping - -ping.usage = 'npm ping\nping registry' - -function ping (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var registry = npm.config.get('registry') - if (!registry) return cb(new Error('no default registry set')) - var auth = npm.config.getCredentialsByURI(registry) - - npm.registry.ping(registry, {auth: auth}, function (er, pong, data, res) { - if (!silent) { - if (er) { - output('Ping error: ' + er) - } else { - output('Ping success: ' + JSON.stringify(pong)) - } - } - cb(er, er ? null : pong, data, res) - }) -} diff --git a/deps/npm/lib/prefix.js b/deps/npm/lib/prefix.js deleted file mode 100644 index fb20389c457..00000000000 --- a/deps/npm/lib/prefix.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = prefix - -var npm = require('./npm.js') -var output = require('./utils/output.js') - -prefix.usage = 'npm prefix [-g]' - -function prefix (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - if (!silent) output(npm.prefix) - process.nextTick(cb.bind(this, null, npm.prefix)) -} diff --git a/deps/npm/lib/profile.js b/deps/npm/lib/profile.js deleted file mode 100644 index 587a26ca8b5..00000000000 --- a/deps/npm/lib/profile.js +++ /dev/null @@ -1,314 +0,0 @@ -'use strict' -const profile = require('npm-profile') -const npm = require('./npm.js') -const log = require('npmlog') -const output = require('./utils/output.js') -const qw = require('qw') -const Table = require('cli-table2') -const ansistyles = require('ansistyles') -const Bluebird = require('bluebird') -const readUserInfo = require('./utils/read-user-info.js') -const qrcodeTerminal = require('qrcode-terminal') -const url = require('url') -const queryString = require('query-string') -const pulseTillDone = require('./utils/pulse-till-done.js') -const inspect = require('util').inspect - -module.exports = profileCmd - -profileCmd.usage = - 'npm profile enable-2fa [auth-only|auth-and-writes]\n' + - 'npm profile disable-2fa\n' + - 'npm profile get []\n' + - 'npm profile set ' - -profileCmd.subcommands = qw`enable-2fa disable-2fa get set` - -profileCmd.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - switch (argv[2]) { - case 'enable-2fa': - case 'enable-tfa': - if (argv.length === 3) { - return cb(null, qw`auth-and-writes auth-only`) - } else { - return cb(null, []) - } - case 'disable-2fa': - case 'disable-tfa': - case 'get': - case 'set': - return cb(null, []) - default: - return cb(new Error(argv[2] + ' not recognized')) - } -} - -function withCb (prom, cb) { - prom.then((value) => cb(null, value), cb) -} - -function profileCmd (args, cb) { - if (args.length === 0) return cb(new Error(profileCmd.usage)) - log.gauge.show('profile') - switch (args[0]) { - case 'enable-2fa': - case 'enable-tfa': - case 'enable2fa': - case 'enabletfa': - withCb(enable2fa(args.slice(1)), cb) - break - case 'disable-2fa': - case 'disable-tfa': - case 'disable2fa': - case 'disabletfa': - withCb(disable2fa(), cb) - break - case 'get': - withCb(get(args.slice(1)), cb) - break - case 'set': - withCb(set(args.slice(1)), cb) - break - default: - cb(new Error('Unknown profile command: ' + args[0])) - } -} - -function config () { - const conf = { - json: npm.config.get('json'), - parseable: npm.config.get('parseable'), - registry: npm.config.get('registry'), - otp: npm.config.get('otp') - } - conf.auth = npm.config.getCredentialsByURI(conf.registry) - if (conf.otp) conf.auth.otp = conf.otp - return conf -} - -const knownProfileKeys = qw` - name email ${'two-factor auth'} fullname homepage - freenode twitter github created updated` - -function get (args) { - const tfa = 'two-factor auth' - const conf = config() - return pulseTillDone.withPromise(profile.get(conf)).then((info) => { - if (!info.cidr_whitelist) delete info.cidr_whitelist - if (conf.json) { - output(JSON.stringify(info, null, 2)) - return - } - const cleaned = {} - knownProfileKeys.forEach((k) => { cleaned[k] = info[k] || '' }) - Object.keys(info).filter((k) => !(k in cleaned)).forEach((k) => { cleaned[k] = info[k] || '' }) - delete cleaned.tfa - delete cleaned.email_verified - cleaned['email'] += info.email_verified ? ' (verified)' : '(unverified)' - if (info.tfa && !info.tfa.pending) { - cleaned[tfa] = info.tfa.mode - } else { - cleaned[tfa] = 'disabled' - } - if (args.length) { - const values = args // comma or space separated ↓ - .join(',').split(/,/).map((arg) => arg.trim()).filter((arg) => arg !== '') - .map((arg) => cleaned[arg]) - .join('\t') - output(values) - } else { - if (conf.parseable) { - Object.keys(info).forEach((key) => { - if (key === 'tfa') { - output(`${key}\t${cleaned[tfa]}`) - } else { - output(`${key}\t${info[key]}`) - } - }) - return - } else { - const table = new Table() - Object.keys(cleaned).forEach((k) => table.push({[ansistyles.bright(k)]: cleaned[k]})) - output(table.toString()) - } - } - }) -} - -const writableProfileKeys = qw` - email password fullname homepage freenode twitter github` - -function set (args) { - const conf = config() - const prop = (args[0] || '').toLowerCase().trim() - let value = args.length > 1 ? args.slice(1).join(' ') : null - if (prop !== 'password' && value === null) { - return Promise.reject(Error('npm profile set ')) - } - if (prop === 'password' && value !== null) { - return Promise.reject(Error( - 'npm profile set password\n' + - 'Do not include your current or new passwords on the command line.')) - } - if (writableProfileKeys.indexOf(prop) === -1) { - 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} - }) - }) - function readPasswords () { - return readUserInfo.password('New password: ').then((password1) => { - return readUserInfo.password(' Again: ').then((password2) => { - if (password1 !== password2) { - log.warn('profile', 'Passwords do not match, please try again.') - return readPasswords() - } - return password1 - }) - }) - } - }).then(() => { - // FIXME: Work around to not clear everything other than what we're setting - return pulseTillDone.withPromise(profile.get(conf).then((user) => { - const newUser = {} - writableProfileKeys.forEach((k) => { newUser[k] = user[k] }) - newUser[prop] = value - return profile.set(newUser, conf).catch((err) => { - if (err.code !== 'EOTP') throw err - return readUserInfo.otp('Enter OTP: ').then((otp) => { - conf.auth.otp = otp - return profile.set(newUser, conf) - }) - }).then((result) => { - if (conf.json) { - output(JSON.stringify({[prop]: result[prop]}, null, 2)) - } else if (conf.parseable) { - output(prop + '\t' + result[prop]) - } else if (result[prop] != null) { - output('Set', prop, 'to', result[prop]) - } else { - output('Set', prop) - } - }) - })) - }) -} - -function enable2fa (args) { - if (args.length > 1) { - return Promise.reject(new Error('npm profile enable-2fa [auth-and-writes|auth-only]')) - } - const mode = args[0] || 'auth-and-writes' - if (mode !== 'auth-only' && mode !== 'auth-and-writes') { - return Promise.reject(new Error(`Invalid two-factor authentication mode "${mode}".\n` + - 'Valid modes are:\n' + - ' auth-only - Require two-factor authentication only when logging in\n' + - ' auth-and-writes - Require two-factor authentication when logging in AND when publishing')) - } - const conf = config() - if (conf.json || conf.parseable) { - return Promise.reject(new Error( - 'Enabling two-factor authentication is an interactive operation and ' + - (conf.json ? 'JSON' : 'parseable') + ' output mode is not available')) - } - - const info = { - tfa: { - mode: mode - } - } - - return Bluebird.try(() => { - // if they're using legacy auth currently then we have to update them to a - // bearer token before continuing. - if (conf.auth.basic) { - log.info('profile', 'Updating authentication to bearer token') - return profile.login(conf.auth.basic.username, conf.auth.basic.password, conf).then((result) => { - if (!result.token) throw new Error('Your registry ' + conf.registry + 'does not seem to support bearer tokens. Bearer tokens are required for two-factor authentication') - npm.config.setCredentialsByURI(conf.registry, {token: result.token}) - return Bluebird.fromNode((cb) => npm.config.save('user', cb)) - }) - } - }).then(() => { - log.notice('profile', 'Enabling two factor authentication for ' + mode) - return readUserInfo.password() - }).then((password) => { - info.tfa.password = password - log.info('profile', 'Determine if tfa is pending') - return pulseTillDone.withPromise(profile.get(conf)).then((info) => { - if (!info.tfa) return - if (info.tfa.pending) { - log.info('profile', 'Resetting two-factor authentication') - return pulseTillDone.withPromise(profile.set({tfa: {password, mode: 'disable'}}, conf)) - } else { - if (conf.auth.otp) return - return readUserInfo.otp('Enter OTP: ').then((otp) => { - conf.auth.otp = otp - }) - } - }) - }).then(() => { - log.info('profile', 'Setting two-factor authentication to ' + mode) - return pulseTillDone.withPromise(profile.set(info, conf)) - }).then((challenge) => { - if (challenge.tfa === null) { - output('Two factor authentication mode changed to: ' + mode) - return - } - if (typeof challenge.tfa !== 'string' || !/^otpauth:[/][/]/.test(challenge.tfa)) { - throw new Error('Unknown error enabling two-factor authentication. Expected otpauth URL, got: ' + inspect(challenge.tfa)) - } - const otpauth = url.parse(challenge.tfa) - const opts = queryString.parse(otpauth.query) - return qrcode(challenge.tfa).then((code) => { - output('Scan into your authenticator app:\n' + code + '\n Or enter code:', opts.secret) - }).then((code) => { - return readUserInfo.otp('And an OTP code from your authenticator: ') - }).then((otp1) => { - log.info('profile', 'Finalizing two-factor authentication') - return profile.set({tfa: [otp1]}, conf) - }).then((result) => { - output('2FA successfully enabled. Below are your recovery codes, please print these out.') - output('You will need these to recover access to your account if you lose your authentication device.') - result.tfa.forEach((c) => output('\t' + c)) - }) - }) -} - -function disable2fa (args) { - const conf = config() - return pulseTillDone.withPromise(profile.get(conf)).then((info) => { - if (!info.tfa || info.tfa.pending) { - output('Two factor authentication not enabled.') - return - } - return readUserInfo.password().then((password) => { - return Bluebird.try(() => { - if (conf.auth.otp) return - return readUserInfo.otp('Enter one-time password from your authenticator: ').then((otp) => { - conf.auth.otp = otp - }) - }).then(() => { - log.info('profile', 'disabling tfa') - return pulseTillDone.withPromise(profile.set({tfa: {password: password, mode: 'disable'}}, conf)).then(() => { - if (conf.json) { - output(JSON.stringify({tfa: false}, null, 2)) - } else if (conf.parseable) { - output('tfa\tfalse') - } else { - output('Two factor authentication disabled.') - } - }) - }) - }) - }) -} - -function qrcode (url) { - return new Promise((resolve) => qrcodeTerminal.generate(url, resolve)) -} diff --git a/deps/npm/lib/prune.js b/deps/npm/lib/prune.js deleted file mode 100644 index 4ac8139576b..00000000000 --- a/deps/npm/lib/prune.js +++ /dev/null @@ -1,66 +0,0 @@ -// prune extraneous packages. - -module.exports = prune -module.exports.Pruner = Pruner - -prune.usage = 'npm prune [[<@scope>/]...] [--production]' - -var npm = require('./npm.js') -var log = require('npmlog') -var util = require('util') -var moduleName = require('./utils/module-name.js') -var Installer = require('./install.js').Installer -var isExtraneous = require('./install/is-extraneous.js') -var isOnlyDev = require('./install/is-only-dev.js') -var removeDeps = require('./install/deps.js').removeDeps -var loadExtraneous = require('./install/deps.js').loadExtraneous -var chain = require('slide').chain -var computeMetadata = require('./install/deps.js').computeMetadata - -prune.completion = require('./utils/completion/installed-deep.js') - -function prune (args, cb) { - var dryrun = !!npm.config.get('dry-run') - new Pruner('.', dryrun, args).run(cb) -} - -function Pruner (where, dryrun, args) { - Installer.call(this, where, dryrun, args) -} -util.inherits(Pruner, Installer) - -Pruner.prototype.loadAllDepsIntoIdealTree = function (cb) { - log.silly('uninstall', 'loadAllDepsIntoIdealTree') - - var cg = this.progress['loadIdealTree:loadAllDepsIntoIdealTree'] - var steps = [] - - computeMetadata(this.idealTree) - var self = this - var excludeDev = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) - function shouldPrune (child) { - if (isExtraneous(child)) return true - if (!excludeDev) return false - return isOnlyDev(child) - } - function getModuleName (child) { - // wrapping because moduleName doesn't like extra args and we're called - // from map. - return moduleName(child) - } - function matchesArg (name) { - return self.args.length === 0 || self.args.indexOf(name) !== -1 - } - function nameObj (name) { - return {name: name} - } - var toPrune = this.idealTree.children.filter(shouldPrune).map(getModuleName).filter(matchesArg).map(nameObj) - - steps.push( - [removeDeps, toPrune, this.idealTree, null], - [loadExtraneous, this.idealTree, cg.newGroup('loadExtraneous')]) - chain(steps, cb) -} - -Pruner.prototype.runPreinstallTopLevelLifecycles = function (cb) { cb() } -Pruner.prototype.runPostinstallTopLevelLifecycles = function (cb) { cb() } diff --git a/deps/npm/lib/publish.js b/deps/npm/lib/publish.js deleted file mode 100644 index 20bd2603e6f..00000000000 --- a/deps/npm/lib/publish.js +++ /dev/null @@ -1,200 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const cacache = require('cacache') -const createReadStream = require('graceful-fs').createReadStream -const getPublishConfig = require('./utils/get-publish-config.js') -const lifecycle = BB.promisify(require('./utils/lifecycle.js')) -const log = require('npmlog') -const mapToRegistry = require('./utils/map-to-registry.js') -const npa = require('npm-package-arg') -const npm = require('./npm.js') -const output = require('./utils/output.js') -const pack = require('./pack') -const pacote = require('pacote') -const pacoteOpts = require('./config/pacote') -const path = require('path') -const readJson = BB.promisify(require('read-package-json')) -const semver = require('semver') -const statAsync = BB.promisify(require('graceful-fs').stat) -const readUserInfo = require('./utils/read-user-info.js') - -publish.usage = 'npm publish [|] [--tag ] [--access ]' + - "\n\nPublishes '.' if no argument supplied" + - '\n\nSets tag `latest` if no --tag specified' - -publish.completion = function (opts, cb) { - // publish can complete to a folder with a package.json - // or a tarball, or a tarball url. - // for now, not yet implemented. - return cb() -} - -module.exports = publish -function publish (args, isRetry, cb) { - if (typeof cb !== 'function') { - cb = isRetry - isRetry = false - } - if (args.length === 0) args = ['.'] - if (args.length !== 1) return cb(publish.usage) - - log.verbose('publish', args) - - const t = npm.config.get('tag').trim() - if (semver.validRange(t)) { - return cb(new Error('Tag name must not be a valid SemVer range: ' + t)) - } - - publish_(args[0]).then((pkg) => { - output(`+ ${pkg._id}`) - cb() - }, cb) -} - -function publish_ (arg) { - return statAsync(arg).then((stat) => { - if (stat.isDirectory()) { - return stat - } else { - const err = new Error('not a directory') - err.code = 'ENOTDIR' - throw err - } - }).then(() => { - return publishFromDirectory(arg) - }, (err) => { - if (err.code !== 'ENOENT' && err.code !== 'ENOTDIR') { - throw err - } else { - return publishFromPackage(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. - return pack.prepareDirectory(arg).then(() => { - return readJson(path.join(arg, 'package.json')) - }).then((pkg) => { - return lifecycle(pkg, 'prepublishOnly', arg) - }).then(() => { - return readJson(path.join(arg, 'package.json')) - }).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) - }) - }) - }).then(() => { - return readJson(path.join(arg, 'package.json')) - }).tap((pkg) => { - return lifecycle(pkg, 'publish', arg) - }).tap((pkg) => { - return lifecycle(pkg, 'postpublish', arg) - }) -} - -function publishFromPackage (arg) { - return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromPackage'}, (tmp) => { - const extracted = path.join(tmp, 'package') - 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)) - }) -} - -function upload (arg, pkg, isRetry, cached) { - if (!pkg) { - return BB.reject(new Error('no package.json file found')) - } - if (pkg.private) { - return BB.reject(new Error( - 'This package has been marked as private\n' + - "Remove the 'private' field from the package.json to publish it." - )) - } - - const mappedConfig = getPublishConfig( - pkg.publishConfig, - npm.config, - npm.registry - ) - const config = mappedConfig.config - const registry = mappedConfig.client - - pkg._npmVersion = npm.version - pkg._nodeVersion = process.versions.node - - delete pkg.modules - - return BB.fromNode((cb) => { - mapToRegistry(pkg.name, config, (err, registryURI, auth, registryBase) => { - if (err) { return cb(err) } - cb(null, [registryURI, auth, registryBase]) - }) - }).spread((registryURI, auth, registryBase) => { - // we just want the base registry URL in this case - log.verbose('publish', 'registryBase', registryBase) - log.silly('publish', 'uploading', cached) - - pkg._npmUser = { - name: auth.username, - email: auth.email - } - - const params = { - metadata: pkg, - body: createReadStream(cached), - auth: auth - } - - // registry-frontdoor cares about the access level, which is only - // configurable for scoped packages - if (config.get('access')) { - if (!npa(pkg.name).scope && config.get('access') === 'restricted') { - throw new Error("Can't restrict access to unscoped packages.") - } - - params.access = config.get('access') - } - - log.showProgress('publish:' + pkg._id) - return BB.fromNode((cb) => { - registry.publish(registryBase, params, cb) - }).catch((err) => { - if ( - err.code === 'EPUBLISHCONFLICT' && - npm.config.get('force') && - !isRetry - ) { - log.warn('publish', 'Forced publish over ' + pkg._id) - return BB.fromNode((cb) => { - npm.commands.unpublish([pkg._id], cb) - }).finally(() => { - // ignore errors. Use the force. Reach out with your feelings. - return upload(arg, pkg, true, cached).catch(() => { - // but if it fails again, then report the first error. - throw err - }) - }) - } else { - throw err - } - }) - }).catch((err) => { - 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) => { - npm.config.set('otp', otp) - return upload(arg, pkg, isRetry, cached) - }) - }) -} diff --git a/deps/npm/lib/rebuild.js b/deps/npm/lib/rebuild.js deleted file mode 100644 index bbc5e8f4811..00000000000 --- a/deps/npm/lib/rebuild.js +++ /dev/null @@ -1,78 +0,0 @@ - -module.exports = rebuild - -var readInstalled = require('read-installed') -var semver = require('semver') -var log = require('npmlog') -var npm = require('./npm.js') -var npa = require('npm-package-arg') -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -rebuild.usage = usage( - 'rebuild', - 'npm rebuild [[<@scope>/]...]' -) - -rebuild.completion = require('./utils/completion/installed-deep.js') - -function rebuild (args, cb) { - var opt = { depth: npm.config.get('depth'), dev: true } - readInstalled(npm.prefix, opt, function (er, data) { - log.info('readInstalled', typeof data) - if (er) return cb(er) - var set = filter(data, args) - var folders = Object.keys(set).filter(function (f) { - return f !== npm.prefix - }) - if (!folders.length) return cb() - log.silly('rebuild set', folders) - cleanBuild(folders, set, cb) - }) -} - -function cleanBuild (folders, set, cb) { - npm.commands.build(folders, function (er) { - if (er) return cb(er) - output(folders.map(function (f) { - return set[f] + ' ' + f - }).join('\n')) - cb() - }) -} - -function filter (data, args, set, seen) { - if (!set) set = {} - if (!seen) seen = new Set() - if (set.hasOwnProperty(data.path)) return set - if (seen.has(data)) return set - seen.add(data) - var pass - if (!args.length) pass = true // rebuild everything - else if (data.name && data._id) { - for (var i = 0, l = args.length; i < l; i++) { - var arg = args[i] - var nv = npa(arg) - var n = nv.name - var v = nv.rawSpec - if (n !== data.name) continue - if (!semver.satisfies(data.version, v, true)) continue - pass = true - break - } - } - if (pass && data._id) { - log.verbose('rebuild', 'path, id', [data.path, data._id]) - set[data.path] = data._id - } - // need to also dive through kids, always. - // since this isn't an install these won't get auto-built unless - // they're not dependencies. - Object.keys(data.dependencies || {}).forEach(function (d) { - // return - var dep = data.dependencies[d] - if (typeof dep === 'string') return - filter(dep, args, set, seen) - }) - return set -} diff --git a/deps/npm/lib/repo.js b/deps/npm/lib/repo.js deleted file mode 100644 index d7e79d76ab6..00000000000 --- a/deps/npm/lib/repo.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = repo - -repo.usage = 'npm repo []' - -var npm = require('./npm.js') -var opener = require('opener') -var hostedGitInfo = require('hosted-git-info') -var url_ = require('url') -var fetchPackageMetadata = require('./fetch-package-metadata.js') - -repo.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function repo (args, cb) { - var n = args.length ? args[0] : '.' - fetchPackageMetadata(n, '.', {fullMetadata: true}, function (er, d) { - if (er) return cb(er) - getUrlAndOpen(d, cb) - }) -} - -function getUrlAndOpen (d, cb) { - var r = d.repository - if (!r) return cb(new Error('no repository')) - // XXX remove this when npm@v1.3.10 from node 0.10 is deprecated - // from https://github.com/npm/npm-www/issues/418 - var info = hostedGitInfo.fromUrl(r.url) - var url = info ? info.browse() : unknownHostedUrl(r.url) - - if (!url) return cb(new Error('no repository: could not get url')) - - opener(url, { command: npm.config.get('browser') }, cb) -} - -function unknownHostedUrl (url) { - try { - var idx = url.indexOf('@') - if (idx !== -1) { - url = url.slice(idx + 1).replace(/:([^\d]+)/, '/$1') - } - url = url_.parse(url) - var protocol = url.protocol === 'https:' - ? 'https:' - : 'http:' - return protocol + '//' + (url.host || '') + - url.path.replace(/\.git$/, '') - } catch (e) {} -} diff --git a/deps/npm/lib/restart.js b/deps/npm/lib/restart.js deleted file mode 100644 index 41f9c3a7568..00000000000 --- a/deps/npm/lib/restart.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./utils/lifecycle-cmd.js')('restart') diff --git a/deps/npm/lib/root.js b/deps/npm/lib/root.js deleted file mode 100644 index 82a804aff53..00000000000 --- a/deps/npm/lib/root.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = root - -var npm = require('./npm.js') -var output = require('./utils/output.js') - -root.usage = 'npm root [-g]' - -function root (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - if (!silent) output(npm.dir) - process.nextTick(cb.bind(this, null, npm.dir)) -} diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js deleted file mode 100644 index fb7781f5517..00000000000 --- a/deps/npm/lib/run-script.js +++ /dev/null @@ -1,181 +0,0 @@ -module.exports = runScript - -var lifecycle = require('./utils/lifecycle.js') -var npm = require('./npm.js') -var path = require('path') -var readJson = require('read-package-json') -var log = require('npmlog') -var chain = require('slide').chain -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -runScript.usage = usage( - 'run-script', - 'npm run-script [-- ...]' -) - -runScript.completion = function (opts, cb) { - // see if there's already a package specified. - var argv = opts.conf.argv.remain - - if (argv.length >= 4) return cb() - - if (argv.length === 3) { - // either specified a script locally, in which case, done, - // or a package, in which case, complete against its scripts - var json = path.join(npm.localPrefix, 'package.json') - return readJson(json, function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) d = {} - var scripts = Object.keys(d.scripts || {}) - console.error('local scripts', scripts) - 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 - 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) - if (er) d = {} - var scripts = Object.keys(d.scripts || {}) - return cb(null, scripts) - }) - }) - } - - readJson(path.join(npm.localPrefix, 'package.json'), function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - d = d || {} - cb(null, Object.keys(d.scripts || {})) - }) -} - -function runScript (args, cb) { - if (!args.length) return list(cb) - - var pkgdir = npm.localPrefix - var cmd = args.shift() - - readJson(path.resolve(pkgdir, 'package.json'), function (er, d) { - if (er) return cb(er) - run(d, pkgdir, cmd, args, cb) - }) -} - -function list (cb) { - var json = path.join(npm.localPrefix, 'package.json') - var cmdList = [ - 'publish', - 'install', - 'uninstall', - 'test', - 'stop', - 'start', - 'restart', - 'version' - ].reduce(function (l, p) { - return l.concat(['pre' + p, p, 'post' + p]) - }, []) - return readJson(json, function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) d = {} - var allScripts = Object.keys(d.scripts || {}) - var scripts = [] - var runScripts = [] - allScripts.forEach(function (script) { - if (cmdList.indexOf(script) !== -1) scripts.push(script) - else runScripts.push(script) - }) - - if (log.level === 'silent') { - return cb(null, allScripts) - } - - if (npm.config.get('json')) { - output(JSON.stringify(d.scripts || {}, null, 2)) - return cb(null, allScripts) - } - - if (npm.config.get('parseable')) { - allScripts.forEach(function (script) { - output(script + ':' + d.scripts[script]) - }) - return cb(null, allScripts) - } - - var s = '\n ' - var prefix = ' ' - if (scripts.length) { - output('Lifecycle scripts included in %s:', d.name) - } - scripts.forEach(function (script) { - output(prefix + script + s + d.scripts[script]) - }) - if (!scripts.length && runScripts.length) { - output('Scripts available in %s via `npm run-script`:', d.name) - } else if (runScripts.length) { - output('\navailable via `npm run-script`:') - } - runScripts.forEach(function (script) { - output(prefix + script + s + d.scripts[script]) - }) - return cb(null, allScripts) - }) -} - -function run (pkg, wd, cmd, args, cb) { - if (!pkg.scripts) pkg.scripts = {} - - var cmds - if (cmd === 'restart' && !pkg.scripts.restart) { - cmds = [ - 'prestop', 'stop', 'poststop', - 'restart', - 'prestart', 'start', 'poststart' - ] - } else { - if (!pkg.scripts[cmd]) { - if (cmd === 'test') { - pkg.scripts.test = 'echo \'Error: no test specified\'' - } else if (cmd === 'env') { - if (process.platform === 'win32') { - log.verbose('run-script using default platform env: SET (Windows)') - pkg.scripts[cmd] = 'SET' - } else { - log.verbose('run-script using default platform env: env (Unix)') - pkg.scripts[cmd] = 'env' - } - } else if (npm.config.get('if-present')) { - return cb(null) - } else { - return cb(new Error('missing script: ' + cmd)) - } - } - cmds = [cmd] - } - - if (!cmd.match(/^(pre|post)/)) { - cmds = ['pre' + cmd].concat(cmds).concat('post' + cmd) - } - - log.verbose('run-script', cmds) - chain(cmds.map(function (c) { - // pass cli arguments after -- to script. - if (pkg.scripts[c] && c === cmd) { - pkg.scripts[c] = pkg.scripts[c] + joinArgs(args) - } - - // when running scripts explicitly, assume that they're trusted. - return [lifecycle, pkg, c, wd, { unsafePerm: true }] - }), cb) -} - -// join arguments after '--' and pass them to script, -// handle special characters such as ', ", ' '. -function joinArgs (args) { - var joinedArgs = '' - args.forEach(function (arg) { - joinedArgs += ' "' + arg.replace(/"/g, '\\"') + '"' - }) - return joinedArgs -} diff --git a/deps/npm/lib/search.js b/deps/npm/lib/search.js deleted file mode 100644 index 3987be135c9..00000000000 --- a/deps/npm/lib/search.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict' - -module.exports = exports = search - -var npm = require('./npm.js') -var allPackageSearch = require('./search/all-package-search') -var esearch = require('./search/esearch.js') -var formatPackageStream = require('./search/format-package-stream.js') -var usage = require('./utils/usage') -var output = require('./utils/output.js') -var log = require('npmlog') -var ms = require('mississippi') - -search.usage = usage( - 'search', - 'npm search [--long] [search terms ...]' -) - -search.completion = function (opts, cb) { - cb(null, []) -} - -function search (args, cb) { - var searchOpts = { - description: npm.config.get('description'), - exclude: prepareExcludes(npm.config.get('searchexclude')), - include: prepareIncludes(args, npm.config.get('searchopts')), - limit: npm.config.get('searchlimit'), - log: log, - staleness: npm.config.get('searchstaleness'), - unicode: npm.config.get('unicode') - } - - if (searchOpts.include.length === 0) { - return cb(new Error('search must be called with arguments')) - } - - // Used later to figure out whether we had any packages go out - var anyOutput = false - - var entriesStream = ms.through.obj() - - var esearchWritten = false - esearch(searchOpts).on('data', function (pkg) { - entriesStream.write(pkg) - !esearchWritten && (esearchWritten = true) - }).on('error', function (e) { - if (esearchWritten) { - // If esearch errored after already starting output, we can't fall back. - return entriesStream.emit('error', e) - } - log.warn('search', 'fast search endpoint errored. Using old search.') - allPackageSearch(searchOpts).on('data', function (pkg) { - entriesStream.write(pkg) - }).on('error', function (e) { - entriesStream.emit('error', e) - }).on('end', function () { - entriesStream.end() - }) - }).on('end', function () { - entriesStream.end() - }) - - // Grab a configured output stream that will spit out packages in the - // desired format. - var outputStream = formatPackageStream({ - args: args, // --searchinclude options are not highlighted - long: npm.config.get('long'), - description: npm.config.get('description'), - json: npm.config.get('json'), - parseable: npm.config.get('parseable'), - color: npm.color - }) - outputStream.on('data', function (chunk) { - if (!anyOutput) { anyOutput = true } - output(chunk.toString('utf8')) - }) - - log.silly('search', 'searching packages') - ms.pipe(entriesStream, outputStream, function (er) { - if (er) return cb(er) - if (!anyOutput && !npm.config.get('json') && !npm.config.get('parseable')) { - output('No matches found for ' + (args.map(JSON.stringify).join(' '))) - } - log.silly('search', 'search completed') - log.clearProgress() - cb(null, {}) - }) -} - -function prepareIncludes (args, searchopts) { - if (typeof searchopts !== 'string') searchopts = '' - return searchopts.split(/\s+/).concat(args).map(function (s) { - return s.toLowerCase() - }).filter(function (s) { return s }) -} - -function prepareExcludes (searchexclude) { - var exclude - if (typeof searchexclude === 'string') { - exclude = searchexclude.split(/\s+/) - } else { - exclude = [] - } - return exclude.map(function (s) { - return s.toLowerCase() - }) -} diff --git a/deps/npm/lib/search/all-package-metadata.js b/deps/npm/lib/search/all-package-metadata.js deleted file mode 100644 index 5a27bdbcee6..00000000000 --- a/deps/npm/lib/search/all-package-metadata.js +++ /dev/null @@ -1,313 +0,0 @@ -'use strict' - -var fs = require('graceful-fs') -var path = require('path') -var mkdir = require('mkdirp') -var chownr = require('chownr') -var npm = require('../npm.js') -var log = require('npmlog') -var cacheFile = require('npm-cache-filename') -var correctMkdir = require('../utils/correct-mkdir.js') -var mapToRegistry = require('../utils/map-to-registry.js') -var jsonstream = require('JSONStream') -var writeStreamAtomic = require('fs-write-stream-atomic') -var ms = require('mississippi') -var sortedUnionStream = require('sorted-union-stream') -var once = require('once') -var gunzip = require('../utils/gunzip-maybe') - -// Returns a sorted stream of all package metadata. Internally, takes care of -// maintaining its metadata cache and making partial or full remote requests, -// according to staleness, validity, etc. -// -// The local cache must hold certain invariants: -// 1. It must be a proper JSON object -// 2. It must have its keys lexically sorted -// 3. The first entry must be `_updated` with a millisecond timestamp as a val. -// 4. It must include all entries that exist in the metadata endpoint as of -// the value in `_updated` -module.exports = allPackageMetadata -function allPackageMetadata (staleness) { - var stream = ms.through.obj() - - mapToRegistry('-/all', npm.config, function (er, uri, auth) { - if (er) return stream.emit('error', er) - - var cacheBase = cacheFile(npm.config.get('cache'))(uri) - var cachePath = path.join(cacheBase, '.cache.json') - - createEntryStream(cachePath, uri, auth, staleness, function (err, entryStream, latest, newEntries) { - if (err) return stream.emit('error', err) - log.silly('all-package-metadata', 'entry stream created') - if (entryStream && newEntries) { - createCacheWriteStream(cachePath, latest, function (err, writeStream) { - if (err) return stream.emit('error', err) - log.silly('all-package-metadata', 'output stream created') - ms.pipeline.obj(entryStream, writeStream, stream) - }) - } else if (entryStream) { - ms.pipeline.obj(entryStream, stream) - } else { - stream.emit('error', new Error('No search sources available')) - } - }) - }) - return stream -} - -// Creates a stream of the latest available package metadata. -// Metadata will come from a combination of the local cache and remote data. -module.exports._createEntryStream = createEntryStream -function createEntryStream (cachePath, uri, auth, staleness, cb) { - createCacheEntryStream(cachePath, function (err, cacheStream, cacheLatest) { - cacheLatest = cacheLatest || 0 - if (err) { - log.warn('', 'Failed to read search cache. Rebuilding') - log.silly('all-package-metadata', 'cache read error: ', err) - } - createEntryUpdateStream(uri, auth, staleness, cacheLatest, function (err, updateStream, updatedLatest) { - updatedLatest = updatedLatest || 0 - var latest = updatedLatest || cacheLatest - if (!cacheStream && !updateStream) { - return cb(new Error('No search sources available')) - } - if (err) { - log.warn('', 'Search data request failed, search might be stale') - log.silly('all-package-metadata', 'update request error: ', err) - } - if (cacheStream && updateStream) { - // Deduped, unioned, sorted stream from the combination of both. - cb(null, - createMergedStream(cacheStream, updateStream), - latest, - !!updatedLatest) - } else { - // Either one works if one or the other failed - cb(null, cacheStream || updateStream, latest, !!updatedLatest) - } - }) - }) -} - -// Merges `a` and `b` into one stream, dropping duplicates in favor of entries -// in `b`. Both input streams should already be individually sorted, and the -// returned output stream will have semantics resembling the merge step of a -// plain old merge sort. -module.exports._createMergedStream = createMergedStream -function createMergedStream (a, b) { - linkStreams(a, b) - return sortedUnionStream(b, a, function (pkg) { return pkg.name }) -} - -// Reads the local index and returns a stream that spits out package data. -module.exports._createCacheEntryStream = createCacheEntryStream -function createCacheEntryStream (cacheFile, cb) { - log.verbose('all-package-metadata', 'creating entry stream from local cache') - log.verbose('all-package-metadata', cacheFile) - fs.stat(cacheFile, function (err, stat) { - if (err) return cb(err) - // TODO - This isn't very helpful if `cacheFile` is empty or just `{}` - var entryStream = ms.pipeline.obj( - fs.createReadStream(cacheFile), - jsonstream.parse('*'), - // I believe this passthrough is necessary cause `jsonstream` returns - // weird custom streams that behave funny sometimes. - ms.through.obj() - ) - extractUpdated(entryStream, 'cached-entry-stream', cb) - }) -} - -// Stream of entry updates from the server. If `latest` is `0`, streams the -// entire metadata object from the registry. -module.exports._createEntryUpdateStream = createEntryUpdateStream -function createEntryUpdateStream (all, auth, staleness, latest, cb) { - log.verbose('all-package-metadata', 'creating remote entry stream') - var params = { - timeout: 600, - follow: true, - staleOk: true, - auth: auth, - streaming: true - } - var partialUpdate = false - if (latest && (Date.now() - latest < (staleness * 1000))) { - // Skip the request altogether if our `latest` isn't stale. - log.verbose('all-package-metadata', 'Local data up to date, skipping update') - return cb(null) - } else if (latest === 0) { - log.warn('', 'Building the local index for the first time, please be patient') - log.verbose('all-package-metadata', 'No cached data: requesting full metadata db') - } else { - log.verbose('all-package-metadata', 'Cached data present with timestamp:', latest, 'requesting partial index update') - all += '/since?stale=update_after&startkey=' + latest - partialUpdate = true - } - npm.registry.request(all, params, function (er, res) { - if (er) return cb(er) - log.silly('all-package-metadata', 'request stream opened, code:', res.statusCode) - // NOTE - The stream returned by `request` seems to be very persnickety - // and this is almost a magic incantation to get it to work. - // Modify how `res` is used here at your own risk. - var entryStream = ms.pipeline.obj( - res, - ms.through(function (chunk, enc, cb) { - cb(null, chunk) - }), - gunzip(), - jsonstream.parse('*', function (pkg, key) { - if (key[0] === '_updated' || key[0][0] !== '_') { - return pkg - } - }) - ) - if (partialUpdate) { - // The `/all/since` endpoint doesn't return `_updated`, so we - // just use the request's own timestamp. - cb(null, entryStream, Date.parse(res.headers.date)) - } else { - extractUpdated(entryStream, 'entry-update-stream', cb) - } - }) -} - -// Both the (full) remote requests and the local index have `_updated` as their -// first returned entries. This is the "latest" unix timestamp for the metadata -// in question. This code does a bit of juggling with the data streams -// so that we can pretend that field doesn't exist, but still extract `latest` -function extractUpdated (entryStream, label, cb) { - cb = once(cb) - log.silly('all-package-metadata', 'extracting latest') - function nope (msg) { - return function () { - log.warn('all-package-metadata', label, msg) - entryStream.removeAllListeners() - entryStream.destroy() - cb(new Error(msg)) - } - } - var onErr = nope('Failed to read stream') - var onEnd = nope('Empty or invalid stream') - entryStream.on('error', onErr) - entryStream.on('end', onEnd) - entryStream.once('data', function (latest) { - log.silly('all-package-metadata', 'got first stream entry for', label, latest) - entryStream.removeListener('error', onErr) - entryStream.removeListener('end', onEnd) - // Because `.once()` unpauses the stream, we re-pause it after the first - // entry so we don't vomit entries into the void. - entryStream.pause() - if (typeof latest === 'number') { - // The extra pipeline is to return a stream that will implicitly unpause - // after having an `.on('data')` listener attached, since using this - // `data` event broke its initial state. - cb(null, ms.pipeline.obj(entryStream, ms.through.obj()), latest) - } else { - cb(new Error('expected first entry to be _updated')) - } - }) -} - -// Creates a stream that writes input metadata to the current cache. -// Cache updates are atomic, and the stream closes when *everything* is done. -// The stream is also passthrough, so entries going through it will also -// be output from it. -module.exports._createCacheWriteStream = createCacheWriteStream -function createCacheWriteStream (cacheFile, latest, cb) { - _ensureCacheDirExists(cacheFile, function (err) { - if (err) return cb(err) - log.silly('all-package-metadata', 'creating output stream') - var outStream = _createCacheOutStream() - var cacheFileStream = writeStreamAtomic(cacheFile) - var inputStream = _createCacheInStream(cacheFileStream, outStream, latest) - - // Glue together the various streams so they fail together. - // `cacheFileStream` errors are already handled by the `inputStream` - // pipeline - var errEmitted = false - linkStreams(inputStream, outStream, function () { errEmitted = true }) - - cacheFileStream.on('close', function () { !errEmitted && outStream.end() }) - - cb(null, ms.duplex.obj(inputStream, outStream)) - }) -} - -function _ensureCacheDirExists (cacheFile, cb) { - var cacheBase = path.dirname(cacheFile) - log.silly('all-package-metadata', 'making sure cache dir exists at', cacheBase) - correctMkdir(npm.cache, function (er, st) { - if (er) return cb(er) - mkdir(cacheBase, function (er, made) { - if (er) return cb(er) - chownr(made || cacheBase, st.uid, st.gid, cb) - }) - }) -} - -function _createCacheOutStream () { - return ms.pipeline.obj( - // These two passthrough `through` streams compensate for some - // odd behavior with `jsonstream`. - ms.through(), - jsonstream.parse('*', function (obj, key) { - // This stream happens to get _updated passed through it, for - // implementation reasons. We make sure to filter it out cause - // the fact that it comes t - if (typeof obj === 'object') { - return obj - } - }), - ms.through.obj() - ) -} - -function _createCacheInStream (writer, outStream, latest) { - var updatedWritten = false - var inStream = ms.pipeline.obj( - ms.through.obj(function (pkg, enc, cb) { - if (!updatedWritten && typeof pkg === 'number') { - // This is the `_updated` value getting sent through. - updatedWritten = true - return cb(null, ['_updated', pkg]) - } else if (typeof pkg !== 'object') { - this.emit('error', new Error('invalid value written to input stream')) - } else { - // The [key, val] format is expected by `jsonstream` for object writing - cb(null, [pkg.name, pkg]) - } - }), - jsonstream.stringifyObject('{', ',', '}'), - ms.through(function (chunk, enc, cb) { - // This tees off the buffer data to `outStream`, and then continues - // the pipeline as usual - outStream.write(chunk, enc, function () { - cb(null, chunk) - }) - }), - // And finally, we write to the cache file. - writer - ) - inStream.write(latest) - return inStream -} - -// Links errors between `a` and `b`, preventing cycles, and calls `cb` if -// an error happens, once per error. -function linkStreams (a, b, cb) { - var lastError = null - a.on('error', function (err) { - if (err !== lastError) { - lastError = err - b.emit('error', err) - cb(err) - } - }) - b.on('error', function (err) { - if (err !== lastError) { - lastError = err - a.emit('error', err) - cb(err) - } - }) -} diff --git a/deps/npm/lib/search/all-package-search.js b/deps/npm/lib/search/all-package-search.js deleted file mode 100644 index 7a893d517b8..00000000000 --- a/deps/npm/lib/search/all-package-search.js +++ /dev/null @@ -1,50 +0,0 @@ -var ms = require('mississippi') -var allPackageMetadata = require('./all-package-metadata') -var packageFilter = require('./package-filter.js') - -module.exports = allPackageSearch -function allPackageSearch (opts) { - var searchSection = (opts.unicode ? '🤔 ' : '') + 'search' - - // Get a stream with *all* the packages. This takes care of dealing - // with the local cache as well, but that's an internal detail. - var allEntriesStream = allPackageMetadata(opts.staleness) - - // Grab a stream that filters those packages according to given params. - var filterStream = streamFilter(function (pkg) { - opts.log.gauge.pulse('search') - opts.log.gauge.show({section: searchSection, logline: 'scanning ' + pkg.name}) - // Simply 'true' if the package matches search parameters. - var match = packageFilter(pkg, opts.include, opts.exclude, { - description: opts.description - }) - return match - }) - return ms.pipeline.obj(allEntriesStream, filterStream) -} - -function streamFilter (filter) { - return ms.through.obj(function (data, enc, cb) { - if (filter(data)) { - this.push(standardizePkg(data)) - } - cb() - }) -} - -function standardizePkg (data) { - return { - name: data.name, - description: data.description, - maintainers: (data.maintainers || []).map(function (m) { - return { username: m.name, email: m.email } - }), - keywords: data.keywords || [], - version: Object.keys(data.versions || {})[0] || [], - date: ( - data.time && - data.time.modified && - new Date(data.time.modified) - ) || null - } -} diff --git a/deps/npm/lib/search/esearch.js b/deps/npm/lib/search/esearch.js deleted file mode 100644 index f4beb7ade66..00000000000 --- a/deps/npm/lib/search/esearch.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict' - -var npm = require('../npm.js') -var log = require('npmlog') -var mapToRegistry = require('../utils/map-to-registry.js') -var jsonstream = require('JSONStream') -var ms = require('mississippi') -var gunzip = require('../utils/gunzip-maybe') - -module.exports = esearch - -function esearch (opts) { - var stream = ms.through.obj() - - mapToRegistry('-/v1/search', npm.config, function (er, uri, auth) { - if (er) return stream.emit('error', er) - createResultStream(uri, auth, opts, function (err, resultStream) { - if (err) return stream.emit('error', err) - ms.pipeline.obj(resultStream, stream) - }) - }) - return stream -} - -function createResultStream (uri, auth, opts, cb) { - log.verbose('esearch', 'creating remote entry stream') - var params = { - timeout: 600, - follow: true, - staleOk: true, - auth: auth, - streaming: true - } - var q = buildQuery(opts) - npm.registry.request(uri + '?text=' + encodeURIComponent(q) + '&size=' + opts.limit, params, function (err, res) { - if (err) return cb(err) - log.silly('esearch', 'request stream opened, code:', res.statusCode) - // NOTE - The stream returned by `request` seems to be very persnickety - // and this is almost a magic incantation to get it to work. - // Modify how `res` is used here at your own risk. - var entryStream = ms.pipeline.obj( - res, - ms.through(function (chunk, enc, cb) { - cb(null, chunk) - }), - gunzip(), - jsonstream.parse('objects.*.package', function (data) { - return { - name: data.name, - description: data.description, - maintainers: data.maintainers, - keywords: data.keywords, - version: data.version, - date: data.date ? new Date(data.date) : null - } - }) - ) - return cb(null, entryStream) - }) -} - -function buildQuery (opts) { - return opts.include.join(' ') -} diff --git a/deps/npm/lib/search/format-package-stream.js b/deps/npm/lib/search/format-package-stream.js deleted file mode 100644 index a312e3f4837..00000000000 --- a/deps/npm/lib/search/format-package-stream.js +++ /dev/null @@ -1,172 +0,0 @@ -'use strict' - -var ms = require('mississippi') -var jsonstream = require('JSONStream') -var columnify = require('columnify') - -// This module consumes package data in the following format: -// -// { -// name: String, -// description: String, -// maintainers: [{ username: String, email: String }], -// keywords: String | [String], -// version: String, -// date: Date // can be null, -// } -// -// The returned stream will format this package data -// into a byte stream of formatted, displayable output. - -module.exports = formatPackageStream -function formatPackageStream (opts) { - opts = opts || {} - if (opts.json) { - return jsonOutputStream() - } else { - return textOutputStream(opts) - } -} - -function jsonOutputStream () { - return ms.pipeline.obj( - ms.through.obj(), - jsonstream.stringify('[', ',', ']'), - ms.through() - ) -} - -function textOutputStream (opts) { - var line = 0 - return ms.through.obj(function (pkg, enc, cb) { - cb(null, prettify(pkg, ++line, opts)) - }) -} - -function prettify (data, num, opts) { - opts = opts || {} - var truncate = !opts.long - - var pkg = normalizePackage(data, opts) - - var columns = opts.description - ? ['name', 'description', 'author', 'date', 'version', 'keywords'] - : ['name', 'author', 'date', 'version', 'keywords'] - - if (opts.parseable) { - return columns.map(function (col) { - return pkg[col] && ('' + pkg[col]).replace(/\t/g, ' ') - }).join('\t') - } - - var output = columnify( - [pkg], - { - include: columns, - showHeaders: num <= 1, - columnSplitter: ' | ', - truncate: truncate, - config: { - name: { minWidth: 25, maxWidth: 25, truncate: false, truncateMarker: '' }, - description: { minWidth: 20, maxWidth: 20 }, - author: { minWidth: 15, maxWidth: 15 }, - date: { maxWidth: 11 }, - version: { minWidth: 8, maxWidth: 8 }, - keywords: { maxWidth: Infinity } - } - } - ) - output = trimToMaxWidth(output) - if (opts.color) { - output = highlightSearchTerms(output, opts.args) - } - return output -} - -var colors = [31, 33, 32, 36, 34, 35] -var cl = colors.length - -function addColorMarker (str, arg, i) { - var m = i % cl + 1 - var markStart = String.fromCharCode(m) - var markEnd = String.fromCharCode(0) - - if (arg.charAt(0) === '/') { - return str.replace( - new RegExp(arg.substr(1, arg.length - 2), 'gi'), - function (bit) { return markStart + bit + markEnd } - ) - } - - // just a normal string, do the split/map thing - var pieces = str.toLowerCase().split(arg.toLowerCase()) - var p = 0 - - return pieces.map(function (piece) { - piece = str.substr(p, piece.length) - var mark = markStart + - str.substr(p + piece.length, arg.length) + - markEnd - p += piece.length + arg.length - return piece + mark - }).join('') -} - -function colorize (line) { - for (var i = 0; i < cl; i++) { - var m = i + 1 - var color = '\u001B[' + colors[i] + 'm' - line = line.split(String.fromCharCode(m)).join(color) - } - var uncolor = '\u001B[0m' - return line.split('\u0000').join(uncolor) -} - -function getMaxWidth () { - var cols - try { - var tty = require('tty') - var stdout = process.stdout - cols = !tty.isatty(stdout.fd) ? Infinity : process.stdout.getWindowSize()[0] - cols = (cols === 0) ? Infinity : cols - } catch (ex) { cols = Infinity } - return cols -} - -function trimToMaxWidth (str) { - var maxWidth = getMaxWidth() - return str.split('\n').map(function (line) { - return line.slice(0, maxWidth) - }).join('\n') -} - -function highlightSearchTerms (str, terms) { - terms.forEach(function (arg, i) { - str = addColorMarker(str, arg, i) - }) - - return colorize(str).trim() -} - -function normalizePackage (data, opts) { - opts = opts || {} - return { - name: data.name, - description: opts.description ? data.description : '', - author: (data.maintainers || []).map(function (m) { - return '=' + m.username - }).join(' '), - keywords: Array.isArray(data.keywords) - ? data.keywords.join(' ') - : typeof data.keywords === 'string' - ? data.keywords.replace(/[,\s]+/, ' ') - : '', - version: data.version, - date: data.date && - (data.date.toISOString() // remove time - .split('T').join(' ') - .replace(/:[0-9]{2}\.[0-9]{3}Z$/, '')) - .slice(0, -5) || - 'prehistoric' - } -} diff --git a/deps/npm/lib/search/package-filter.js b/deps/npm/lib/search/package-filter.js deleted file mode 100644 index ac2950f46b7..00000000000 --- a/deps/npm/lib/search/package-filter.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict' - -module.exports = filter -function filter (data, include, exclude, opts) { - return typeof data === 'object' && - filterWords(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() -} - -function filterWords (data, include, exclude, opts) { - var words = getWords(data, opts) - for (var i = 0, l = include.length; i < l; i++) { - if (!match(words, include[i])) return false - } - for (i = 0, l = exclude.length; i < l; i++) { - if (match(words, exclude[i])) return false - } - return true -} - -function match (words, pattern) { - if (pattern.charAt(0) === '/') { - pattern = pattern.replace(/\/$/, '') - pattern = new RegExp(pattern.substr(1, pattern.length - 1)) - return words.match(pattern) - } - return words.indexOf(pattern) !== -1 -} diff --git a/deps/npm/lib/set.js b/deps/npm/lib/set.js deleted file mode 100644 index b5e7376fbd5..00000000000 --- a/deps/npm/lib/set.js +++ /dev/null @@ -1,13 +0,0 @@ - -module.exports = set - -set.usage = 'npm set (See `npm config`)' - -var npm = require('./npm.js') - -set.completion = npm.commands.config.completion - -function set (args, cb) { - if (!args.length) return cb(set.usage) - npm.commands.config(['set'].concat(args), cb) -} diff --git a/deps/npm/lib/shrinkwrap.js b/deps/npm/lib/shrinkwrap.js deleted file mode 100644 index ddfff2c6816..00000000000 --- a/deps/npm/lib/shrinkwrap.js +++ /dev/null @@ -1,252 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const chain = require('slide').chain -const detectIndent = require('detect-indent') -const readFile = BB.promisify(require('graceful-fs').readFile) -const getRequested = require('./install/get-requested.js') -const id = require('./install/deps.js') -const iferr = require('iferr') -const isOnlyOptional = require('./install/is-only-optional.js') -const isOnlyDev = require('./install/is-only-dev.js') -const lifecycle = require('./utils/lifecycle.js') -const log = require('npmlog') -const moduleName = require('./utils/module-name.js') -const move = require('move-concurrently') -const npm = require('./npm.js') -const path = require('path') -const readPackageTree = BB.promisify(require('read-package-tree')) -const ssri = require('ssri') -const validate = require('aproba') -const writeFileAtomic = require('write-file-atomic') -const unixFormatPath = require('./utils/unix-format-path.js') -const isRegistry = require('./utils/is-registry.js') - -const PKGLOCK = 'package-lock.json' -const SHRINKWRAP = 'npm-shrinkwrap.json' -const PKGLOCK_VERSION = npm.lockfileVersion - -// emit JSON describing versions of all packages currently installed (for later -// use with shrinkwrap install) -shrinkwrap.usage = 'npm shrinkwrap' - -module.exports = exports = shrinkwrap -function shrinkwrap (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - if (args.length) { - log.warn('shrinkwrap', "doesn't take positional args") - } - - move( - path.resolve(npm.prefix, PKGLOCK), - path.resolve(npm.prefix, SHRINKWRAP), - { Promise: BB } - ).then(() => { - log.notice('', `${PKGLOCK} has been renamed to ${SHRINKWRAP}. ${SHRINKWRAP} will be used for future installations.`) - return readFile(path.resolve(npm.prefix, SHRINKWRAP)).then((d) => { - return JSON.parse(d) - }) - }, (err) => { - if (err.code !== 'ENOENT') { - throw err - } else { - return readPackageTree(npm.localPrefix).then( - id.computeMetadata - ).then((tree) => { - return BB.fromNode((cb) => { - createShrinkwrap(tree, { - silent, - defaultFile: SHRINKWRAP - }, cb) - }) - }) - } - }).then((data) => cb(null, data), cb) -} - -module.exports.createShrinkwrap = createShrinkwrap - -function createShrinkwrap (tree, opts, cb) { - opts = opts || {} - lifecycle(tree.package, 'preshrinkwrap', tree.path, function () { - const pkginfo = treeToShrinkwrap(tree) - chain([ - [lifecycle, tree.package, 'shrinkwrap', tree.path], - [shrinkwrap_, tree.path, pkginfo, opts], - [lifecycle, tree.package, 'postshrinkwrap', tree.path] - ], iferr(cb, function (data) { - cb(null, pkginfo) - })) - }) -} - -function treeToShrinkwrap (tree) { - validate('O', arguments) - var pkginfo = {} - if (tree.package.name) pkginfo.name = tree.package.name - if (tree.package.version) pkginfo.version = tree.package.version - if (tree.children.length) { - pkginfo.requires = true - shrinkwrapDeps(pkginfo.dependencies = {}, tree, tree) - } - return pkginfo -} - -function shrinkwrapDeps (deps, top, tree, seen) { - validate('OOO', [deps, top, tree]) - if (!seen) seen = new Set() - 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) || {} - pkginfo.version = childVersion(top, child, requested) - if (child.fromBundle || child.isInLink) { - pkginfo.bundled = true - } else { - if (isRegistry(requested)) { - pkginfo.resolved = child.package._resolved - } - // no integrity for git deps as integirty hashes are based on the - // tarball and we can't (yet) create consistent tarballs from a stable - // source. - if (requested.type !== 'git') { - pkginfo.integrity = child.package._integrity - if (!pkginfo.integrity && child.package._shasum) { - pkginfo.integrity = ssri.fromHex(child.package._shasum, 'sha1') - } - } - } - if (childIsOnlyDev) pkginfo.dev = true - if (isOnlyOptional(child)) pkginfo.optional = true - 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) - }) - } - if (child.children.length) { - pkginfo.dependencies = {} - shrinkwrapDeps(pkginfo.dependencies, top, child, seen) - } - }) -} - -function sortModules (modules) { - // sort modules with the locale-agnostic Unicode sort - var sortedModuleNames = modules.map(moduleName).sort() - return modules.sort((a, b) => ( - sortedModuleNames.indexOf(moduleName(a)) - sortedModuleNames.indexOf(moduleName(b)) - )) -} - -function childVersion (top, child, req) { - if (req.type === 'directory' || req.type === 'file') { - return 'file:' + unixFormatPath(path.relative(top.path, child.package._resolved || req.fetchSpec)) - } else if (!isRegistry(req) && !child.fromBundle) { - return child.package._resolved || req.saveSpec || req.rawSpec - } else { - return child.package.version - } -} - -function shrinkwrap_ (dir, pkginfo, opts, cb) { - save(dir, pkginfo, opts, cb) -} - -function save (dir, pkginfo, opts, cb) { - // copy the keys over in a well defined order - // because javascript objects serialize arbitrarily - BB.join( - checkPackageFile(dir, SHRINKWRAP), - checkPackageFile(dir, PKGLOCK), - checkPackageFile(dir, 'package.json'), - (shrinkwrap, lockfile, pkg) => { - const info = ( - shrinkwrap || - lockfile || - { - path: path.resolve(dir, opts.defaultFile || PKGLOCK), - data: '{}', - indent: (pkg && pkg.indent) || 2 - } - ) - const updated = updateLockfileMetadata(pkginfo, pkg && pkg.data) - const swdata = JSON.stringify(updated, null, info.indent) + '\n' - 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.`) - cb(null, pkginfo) - } else { - writeFileAtomic(info.path, swdata, (err) => { - if (err) return cb(err) - if (opts.silent) return cb(null, pkginfo) - if (!shrinkwrap && !lockfile) { - log.notice('', `created a lockfile as ${path.basename(info.path)}. You should commit this file.`) - } - cb(null, pkginfo) - }) - } - } - ).then((file) => { - }, cb) -} - -function updateLockfileMetadata (pkginfo, pkgJson) { - // This is a lot of work just to make sure the extra metadata fields are - // between version and dependencies fields, without affecting any other stuff - const newPkg = {} - let metainfoWritten = false - const metainfo = new Set([ - 'lockfileVersion', - 'preserveSymlinks' - ]) - Object.keys(pkginfo).forEach((k) => { - if (k === 'dependencies') { - writeMetainfo(newPkg) - } - if (!metainfo.has(k)) { - newPkg[k] = pkginfo[k] - } - if (k === 'version') { - writeMetainfo(newPkg) - } - }) - if (!metainfoWritten) { - writeMetainfo(newPkg) - } - function writeMetainfo (pkginfo) { - pkginfo.lockfileVersion = PKGLOCK_VERSION - if (process.env.NODE_PRESERVE_SYMLINKS) { - pkginfo.preserveSymlinks = process.env.NODE_PRESERVE_SYMLINKS - } - metainfoWritten = true - } - return newPkg -} - -function checkPackageFile (dir, name) { - const file = path.resolve(dir, name) - return readFile( - file, 'utf8' - ).then((data) => { - return { - path: file, - raw: data, - data: JSON.parse(data), - indent: detectIndent(data).indent || 2 - } - }).catch({code: 'ENOENT'}, () => {}) -} - diff --git a/deps/npm/lib/star.js b/deps/npm/lib/star.js deleted file mode 100644 index f19cb4b07be..00000000000 --- a/deps/npm/lib/star.js +++ /dev/null @@ -1,45 +0,0 @@ -module.exports = star - -var npm = require('./npm.js') -var log = require('npmlog') -var asyncMap = require('slide').asyncMap -var mapToRegistry = require('./utils/map-to-registry.js') -var usage = require('./utils/usage') -var output = require('./utils/output.js') - -star.usage = usage( - 'star', - 'npm star [...]\n' + - 'npm unstar [...]' -) - -star.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function star (args, cb) { - if (!args.length) return cb(star.usage) - var s = npm.config.get('unicode') ? '\u2605 ' : '(*)' - var u = npm.config.get('unicode') ? '\u2606 ' : '( )' - var using = !(npm.command.match(/^un/)) - if (!using) s = u - asyncMap(args, function (pkg, cb) { - mapToRegistry(pkg, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - starred: using, - auth: auth - } - npm.registry.star(uri, params, function (er, data, raw, req) { - if (!er) { - output(s + ' ' + pkg) - log.verbose('star', data) - } - cb(er, data, raw, req) - }) - }) - }, cb) -} diff --git a/deps/npm/lib/stars.js b/deps/npm/lib/stars.js deleted file mode 100644 index 4771079356a..00000000000 --- a/deps/npm/lib/stars.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = stars - -stars.usage = 'npm stars []' - -var npm = require('./npm.js') -var log = require('npmlog') -var mapToRegistry = require('./utils/map-to-registry.js') -var output = require('./utils/output.js') - -function stars (args, cb) { - npm.commands.whoami([], true, function (er, username) { - var name = args.length === 1 ? args[0] : username - - if (er) { - if (er.code === 'ENEEDAUTH' && !name) { - var needAuth = new Error("'npm stars' on your own user account requires auth") - needAuth.code = 'ENEEDAUTH' - return cb(needAuth) - } - - if (er.code !== 'ENEEDAUTH') return cb(er) - } - - mapToRegistry('', npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - username: name, - auth: auth - } - npm.registry.stars(uri, params, showstars) - }) - }) - - function showstars (er, data) { - if (er) return cb(er) - - if (data.rows.length === 0) { - log.warn('stars', 'user has not starred any packages.') - } else { - data.rows.forEach(function (a) { - output(a.value) - }) - } - cb() - } -} diff --git a/deps/npm/lib/start.js b/deps/npm/lib/start.js deleted file mode 100644 index e9785365007..00000000000 --- a/deps/npm/lib/start.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./utils/lifecycle-cmd.js')('start') diff --git a/deps/npm/lib/stop.js b/deps/npm/lib/stop.js deleted file mode 100644 index fd43d08fc12..00000000000 --- a/deps/npm/lib/stop.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./utils/lifecycle-cmd.js')('stop') diff --git a/deps/npm/lib/substack.js b/deps/npm/lib/substack.js deleted file mode 100644 index 428e0a5898b..00000000000 --- a/deps/npm/lib/substack.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = substack -var npm = require('./npm.js') -var output = require('./utils/output.js') - -var isms = [ - '\u001b[32mbeep \u001b[35mboop\u001b[m', - 'Replace your configs with services', - 'SEPARATE ALL THE CONCERNS!', - 'MODULE ALL THE THINGS!', - '\\o/', - 'but first, burritos', - 'full time mad scientist here', - 'c/,,\\' -] - -function substack (args, cb) { - var i = Math.floor(Math.random() * isms.length) - output(isms[i]) - var c = args.shift() - if (c) npm.commands[c](args, cb) - else cb() -} diff --git a/deps/npm/lib/team.js b/deps/npm/lib/team.js deleted file mode 100644 index f99063b2787..00000000000 --- a/deps/npm/lib/team.js +++ /dev/null @@ -1,55 +0,0 @@ -var mapToRegistry = require('./utils/map-to-registry.js') -var npm = require('./npm') -var output = require('./utils/output.js') - -module.exports = team - -team.subcommands = ['create', 'destroy', 'add', 'rm', 'ls', 'edit'] - -team.usage = - 'npm team create \n' + - 'npm team destroy \n' + - 'npm team add \n' + - 'npm team rm \n' + - 'npm team ls |\n' + - 'npm team edit ' - -team.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, team.subcommands) - } - switch (argv[2]) { - case 'ls': - case 'create': - case 'destroy': - case 'add': - case 'rm': - case 'edit': - return cb(null, []) - default: - return cb(new Error(argv[2] + ' not recognized')) - } -} - -function team (args, cb) { - // Entities are in the format : - var cmd = args.shift() - var entity = (args.shift() || '').split(':') - return mapToRegistry('/', npm.config, function (err, uri, auth) { - if (err) { return cb(err) } - try { - return npm.registry.team(cmd, uri, { - auth: auth, - scope: entity[0], - team: entity[1], - user: args.shift() - }, function (err, data) { - !err && data && output(JSON.stringify(data, undefined, 2)) - cb(err, data) - }) - } catch (e) { - cb(e.message + '\n\nUsage:\n' + team.usage) - } - }) -} diff --git a/deps/npm/lib/test.js b/deps/npm/lib/test.js deleted file mode 100644 index 06138ac00a3..00000000000 --- a/deps/npm/lib/test.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = test - -const testCmd = require('./utils/lifecycle-cmd.js')('test') - -test.usage = testCmd.usage - -function test (args, cb) { - testCmd(args, function (er) { - if (!er) return cb() - if (er.code === 'ELIFECYCLE') { - return cb('Test failed. See above for more details.') - } - return cb(er) - }) -} diff --git a/deps/npm/lib/token.js b/deps/npm/lib/token.js deleted file mode 100644 index 2a3b65e6ad7..00000000000 --- a/deps/npm/lib/token.js +++ /dev/null @@ -1,211 +0,0 @@ -'use strict' -const profile = require('npm-profile') -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 readUserInfo = require('./utils/read-user-info.js') -const ansistyles = require('ansistyles') -const log = require('npmlog') -const pulseTillDone = require('./utils/pulse-till-done.js') - -module.exports = token - -token.usage = - 'npm token list\n' + - 'npm token revoke \n' + - 'npm token create [--read-only] [--cidr=list]\n' - -token.subcommands = ['list', 'revoke', 'create'] - -token.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - - switch (argv[2]) { - case 'list': - case 'revoke': - case 'create': - return cb(null, []) - default: - return cb(new Error(argv[2] + ' not recognized')) - } -} - -function withCb (prom, cb) { - prom.then((value) => cb(null, value), cb) -} - -function token (args, cb) { - log.gauge.show('token') - if (args.length === 0) return withCb(list([]), cb) - switch (args[0]) { - case 'list': - case 'ls': - withCb(list(), cb) - break - case 'delete': - case 'revoke': - case 'remove': - case 'rm': - withCb(rm(args.slice(1)), cb) - break - case 'create': - withCb(create(args.slice(1)), cb) - break - default: - cb(new Error('Unknown profile command: ' + args[0])) - } -} - -function generateTokenIds (tokens, minLength) { - const byId = {} - tokens.forEach((token) => { - token.id = token.key - for (let ii = minLength; ii < token.key.length; ++ii) { - if (!tokens.some((ot) => ot !== token && ot.key.slice(0, ii) === token.key.slice(0, ii))) { - token.id = token.key.slice(0, ii) - break - } - } - byId[token.id] = token - }) - return byId -} - -function config () { - const conf = { - json: npm.config.get('json'), - parseable: npm.config.get('parseable'), - registry: npm.config.get('registry'), - otp: npm.config.get('otp') - } - conf.auth = npm.config.getCredentialsByURI(conf.registry) - if (conf.otp) conf.auth.otp = conf.otp - return conf -} - -function list (args) { - const conf = config() - log.info('token', 'getting list') - return pulseTillDone.withPromise(profile.listTokens(conf)).then((tokens) => { - if (conf.json) { - output(JSON.stringify(tokens, null, 2)) - return - } else if (conf.parseable) { - output(['key', 'token', 'created', 'readonly', 'CIDR whitelist'].join('\t')) - tokens.forEach((token) => { - output([ - token.key, - token.token, - token.created, - token.readonly ? 'true' : 'false', - token.cidr_whitelist ? token.cidr_whitelist.join(',') : '' - ].join('\t')) - }) - return - } - generateTokenIds(tokens, 6) - const idWidth = tokens.reduce((acc, token) => Math.max(acc, token.id.length), 0) - const table = new Table({ - head: ['id', 'token', 'created', 'readonly', 'CIDR whitelist'], - colWidths: [Math.max(idWidth, 2) + 2, 9, 12, 10] - }) - tokens.forEach((token) => { - table.push([ - token.id, - token.token + '…', - String(token.created).slice(0, 10), - token.readonly ? 'yes' : 'no', - token.cidr_whitelist ? token.cidr_whitelist.join(', ') : '' - ]) - }) - output(table.toString()) - }) -} - -function rm (args) { - if (args.length === 0) { - throw new Error('npm token revoke ') - } - const conf = config() - const toRemove = [] - const progress = log.newItem('removing tokens', toRemove.length) - progress.info('token', 'getting existing list') - return pulseTillDone.withPromise(profile.listTokens(conf).then((tokens) => { - args.forEach((id) => { - const matches = tokens.filter((token) => token.key.indexOf(id) === 0) - if (matches.length === 1) { - toRemove.push(matches[0].key) - } else if (matches.length > 1) { - throw new Error(`Token ID "${id}" was ambiguous, a new token may have been created since you last ran \`npm-profile token list\`.`) - } else { - const tokenMatches = tokens.filter((token) => id.indexOf(token.token) === 0) - if (tokenMatches === 0) { - throw new Error(`Unknown token id or value "${id}".`) - } - toRemove.push(id) - } - }) - return Bluebird.map(toRemove, (key) => { - progress.info('token', 'removing', key) - profile.removeToken(key, conf).then(() => profile.completeWork(1)) - }) - })).then(() => { - if (conf.json) { - output(JSON.stringify(toRemove)) - } else if (conf.parseable) { - output(toRemove.join('\t')) - } else { - output('Removed ' + toRemove.length + ' token' + (toRemove.length !== 1 ? 's' : '')) - } - }) -} - -function create (args) { - const conf = config() - const cidr = npm.config.get('cidr') - const readonly = npm.config.get('read-only') - - const validCIDR = validateCIDRList(cidr) - return readUserInfo.password().then((password) => { - log.info('token', 'creating') - return profile.createToken(password, readonly, validCIDR, conf).catch((ex) => { - if (ex.code !== 'EOTP') throw ex - log.info('token', 'failed because it requires OTP') - return readUserInfo.otp('Authenticator provided OTP:').then((otp) => { - conf.auth.otp = otp - log.info('token', 'creating with OTP') - return pulseTillDone.withPromise(profile.createToken(password, readonly, validCIDR, conf)) - }) - }) - }).then((result) => { - delete result.key - delete result.updated - if (conf.json) { - output(JSON.stringify(result)) - } else if (conf.parseable) { - Object.keys(result).forEach((k) => output(k + '\t' + result[k])) - } else { - const table = new Table() - Object.keys(result).forEach((k) => table.push({[ansistyles.bright(k)]: String(result[k])})) - output(table.toString()) - } - }) -} - -function validateCIDR (cidr) { - if (isCidrV6(cidr)) { - throw new Error('CIDR whitelist can only contain IPv4 addresses, ' + cidr + ' is IPv6') - } - if (!isCidrV4(cidr)) { - throw new Error('CIDR whitelist contains invalid CIDR entry: ' + cidr) - } -} - -function validateCIDRList (cidrs) { - const list = Array.isArray(cidrs) ? cidrs : cidrs ? cidrs.split(/,\s*/) : [] - list.forEach(validateCIDR) - return list -} diff --git a/deps/npm/lib/unbuild.js b/deps/npm/lib/unbuild.js deleted file mode 100644 index 78293c9ca26..00000000000 --- a/deps/npm/lib/unbuild.js +++ /dev/null @@ -1,132 +0,0 @@ -module.exports = unbuild -module.exports.rmStuff = rmStuff -unbuild.usage = 'npm unbuild \n(this is plumbing)' - -var readJson = require('read-package-json') -var gentlyRm = require('./utils/gently-rm.js') -var npm = require('./npm.js') -var path = require('path') -var isInside = require('path-is-inside') -var lifecycle = require('./utils/lifecycle.js') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var log = require('npmlog') -var build = require('./build.js') -var output = require('./utils/output.js') - -// args is a list of folders. -// remove any bins/etc, and then delete the folder. -function unbuild (args, silent, cb) { - if (typeof silent === 'function') { - cb = silent - silent = false - } - asyncMap(args, unbuild_(silent), cb) -} - -function unbuild_ (silent) { - return function (folder, cb_) { - function cb (er) { - cb_(er, path.relative(npm.root, folder)) - } - folder = path.resolve(folder) - var base = isInside(folder, npm.prefix) ? npm.prefix : folder - delete build._didBuild[folder] - log.verbose('unbuild', folder.substr(npm.prefix.length + 1)) - readJson(path.resolve(folder, 'package.json'), function (er, pkg) { - // if no json, then just trash it, but no scripts or whatever. - if (er) return gentlyRm(folder, false, base, cb) - chain( - [ - [lifecycle, pkg, 'preuninstall', folder, { failOk: true }], - [lifecycle, pkg, 'uninstall', folder, { failOk: true }], - !silent && function (cb) { - output('unbuild ' + pkg._id) - cb() - }, - [rmStuff, pkg, folder], - [lifecycle, pkg, 'postuninstall', folder, { failOk: true }], - [gentlyRm, folder, false, base] - ], - cb - ) - }) - } -} - -function rmStuff (pkg, folder, cb) { - // if it's global, and folder is in {prefix}/node_modules, - // then bins are in {prefix}/bin - // otherwise, then bins are in folder/../.bin - var parent = pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder) - var gnm = npm.dir - // gnm might be an absolute path, parent might be relative - // this checks they're the same directory regardless - var top = path.relative(gnm, parent) === '' - - log.verbose('unbuild rmStuff', pkg._id, 'from', gnm) - if (!top) log.verbose('unbuild rmStuff', 'in', parent) - asyncMap([rmBins, rmMans], function (fn, cb) { - fn(pkg, folder, parent, top, cb) - }, cb) -} - -function rmBins (pkg, folder, parent, top, cb) { - if (!pkg.bin) return cb() - var binRoot = top ? npm.bin : path.resolve(parent, '.bin') - 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) - } else { - gentlyRm(path.resolve(binRoot, b), true, folder, cb) - } - }, gentlyRmBinRoot) - - function gentlyRmBinRoot (err) { - if (err || top) return cb(err) - return gentlyRm(binRoot, true, parent, cb) - } -} - -function rmMans (pkg, folder, parent, top, cb) { - if (!pkg.man || - !top || - process.platform === 'win32' || - !npm.config.get('global')) { - return cb() - } - var manRoot = path.resolve(npm.config.get('prefix'), 'share', 'man') - log.verbose('rmMans', 'man files are', pkg.man, 'in', manRoot) - asyncMap(pkg.man, function (man, cb) { - if (Array.isArray(man)) { - man.forEach(rmMan) - } else { - rmMan(man) - } - - function rmMan (man) { - log.silly('rmMan', 'preparing to remove', man) - var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) - if (!parseMan) { - log.error( - 'rmMan', 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.' - ) - return cb() - } - - var stem = parseMan[1] - var sxn = parseMan[2] - var gz = parseMan[3] || '' - var bn = path.basename(stem) - var manDest = path.join( - manRoot, - 'man' + sxn, - (bn.indexOf(pkg.name) === 0 ? bn : pkg.name + '-' + bn) + '.' + sxn + gz - ) - gentlyRm(manDest, true, cb) - } - }, cb) -} diff --git a/deps/npm/lib/uninstall.js b/deps/npm/lib/uninstall.js deleted file mode 100644 index 333d3e9d69c..00000000000 --- a/deps/npm/lib/uninstall.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict' -// remove a package. - -module.exports = uninstall - -const path = require('path') -const validate = require('aproba') -const readJson = require('read-package-json') -const iferr = require('iferr') -const npm = require('./npm.js') -const Installer = require('./install.js').Installer -const getSaveType = require('./install/save.js').getSaveType -const removeDeps = require('./install/deps.js').removeDeps -const log = require('npmlog') -const usage = require('./utils/usage') - -uninstall.usage = usage( - 'uninstall', - 'npm uninstall [<@scope>/][@]... [--save-prod|--save-dev|--save-optional] [--no-save]' -) - -uninstall.completion = require('./utils/completion/installed-shallow.js') - -function uninstall (args, cb) { - validate('AF', arguments) - // the /path/to/node_modules/.. - const dryrun = !!npm.config.get('dry-run') - - if (args.length === 1 && args[0] === '.') args = [] - - const where = npm.config.get('global') || !args.length - ? path.resolve(npm.globalDir, '..') - : npm.prefix - - args = args.filter(function (a) { - return path.resolve(a) !== where - }) - - if (args.length) { - new Uninstaller(where, dryrun, args).run(cb) - } else { - // remove this package from the global space, if it's installed there - readJson(path.resolve(npm.localPrefix, 'package.json'), function (er, pkg) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) return cb(uninstall.usage) - new Uninstaller(where, dryrun, [pkg.name]).run(cb) - }) - } -} - -class Uninstaller extends Installer { - constructor (where, dryrun, args) { - super(where, dryrun, args) - this.remove = [] - } - - loadArgMetadata (next) { - this.args = this.args.map(function (arg) { return {name: arg} }) - next() - } - - loadAllDepsIntoIdealTree (cb) { - validate('F', arguments) - this.remove = this.args - this.args = [] - log.silly('uninstall', 'loadAllDepsIntoIdealTree') - const saveDeps = getSaveType() - - super.loadAllDepsIntoIdealTree(iferr(cb, () => { - removeDeps(this.remove, this.idealTree, saveDeps, cb) - })) - } - - // no top level lifecycles on rm - runPreinstallTopLevelLifecycles (cb) { cb() } - runPostinstallTopLevelLifecycles (cb) { cb() } -} - -module.exports.Uninstaller = Uninstaller diff --git a/deps/npm/lib/unpublish.js b/deps/npm/lib/unpublish.js deleted file mode 100644 index 4ea8187025f..00000000000 --- a/deps/npm/lib/unpublish.js +++ /dev/null @@ -1,118 +0,0 @@ - -module.exports = unpublish - -var log = require('npmlog') -var npm = require('./npm.js') -var readJson = require('read-package-json') -var path = require('path') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') -var getPublishConfig = require('./utils/get-publish-config.js') -var output = require('./utils/output.js') - -unpublish.usage = 'npm unpublish [<@scope>/][@]' - -unpublish.completion = function (opts, cb) { - if (opts.conf.argv.remain.length >= 3) return cb() - npm.commands.whoami([], true, function (er, username) { - if (er) return cb() - - var un = encodeURIComponent(username) - if (!un) return cb() - var byUser = '-/by-user/' + un - mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, pkgs) { - // do a bit of filtering at this point, so that we don't need - // to fetch versions for more than one thing, but also don't - // accidentally a whole project. - pkgs = pkgs[un] - if (!pkgs || !pkgs.length) return cb() - var pp = npa(opts.partialWord).name - pkgs = pkgs.filter(function (p) { - return p.indexOf(pp) === 0 - }) - if (pkgs.length > 1) return cb(null, pkgs) - mapToRegistry(pkgs[0], npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, d) { - if (er) return cb(er) - var vers = Object.keys(d.versions) - if (!vers.length) return cb(null, pkgs) - return cb(null, vers.map(function (v) { - return pkgs[0] + '@' + v - })) - }) - }) - }) - }) - }) -} - -function unpublish (args, cb) { - if (args.length > 1) return cb(unpublish.usage) - - var thing = args.length ? npa(args[0]) : {} - var project = thing.name - var version = thing.rawSpec - - log.silly('unpublish', 'args[0]', args[0]) - log.silly('unpublish', 'thing', thing) - if (!version && !npm.config.get('force')) { - return cb( - 'Refusing to delete entire project.\n' + - 'Run with --force to do this.\n' + - unpublish.usage - ) - } - - if (!project || path.resolve(project) === npm.localPrefix) { - // if there's a package.json in the current folder, then - // read the package name and version out of that. - var cwdJson = path.join(npm.localPrefix, 'package.json') - return readJson(cwdJson, function (er, data) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) return cb('Usage:\n' + unpublish.usage) - log.verbose('unpublish', data) - gotProject(data.name, data.version, data.publishConfig, cb) - }) - } - return gotProject(project, version, cb) -} - -function gotProject (project, version, publishConfig, cb_) { - if (typeof cb_ !== 'function') { - cb_ = publishConfig - publishConfig = null - } - - function cb (er) { - if (er) return cb_(er) - output('- ' + project + (version ? '@' + version : '')) - cb_() - } - - var mappedConfig = getPublishConfig(publishConfig, npm.config, npm.registry) - var config = mappedConfig.config - var registry = mappedConfig.client - - // 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) - // } - - mapToRegistry(project, config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - version: version, - auth: auth - } - registry.unpublish(uri, params, cb) - }) - // }) -} diff --git a/deps/npm/lib/update.js b/deps/npm/lib/update.js deleted file mode 100644 index efb56f5e415..00000000000 --- a/deps/npm/lib/update.js +++ /dev/null @@ -1,72 +0,0 @@ -'use strict' -module.exports = update - -const url = require('url') -const log = require('npmlog') -const Bluebird = require('bluebird') -const npm = require('./npm.js') -const Installer = require('./install.js').Installer -const usage = require('./utils/usage') -const outdated = Bluebird.promisify(npm.commands.outdated) - -update.usage = usage( - 'update', - 'npm update [-g] [...]' -) - -update.completion = npm.commands.outdated.completion - -function update (args, cb) { - return update_(args).asCallback(cb) -} - -function update_ (args) { - let dryrun = false - if (npm.config.get('dry-run')) dryrun = true - - log.verbose('update', 'computing outdated modules to update') - return outdated(args, true).then((rawOutdated) => { - const outdated = rawOutdated.map(function (ww) { - return { - dep: ww[0], - depname: ww[1], - current: ww[2], - wanted: ww[3], - latest: ww[4], - req: ww[5], - what: ww[1] + '@' + ww[3] - } - }) - - const wanted = outdated.filter(function (ww) { - if (ww.current === ww.wanted && ww.wanted !== ww.latest) { - log.verbose( - 'outdated', - 'not updating', ww.depname, - "because it's currently at the maximum version that matches its specified semver range" - ) - } - return ww.current !== ww.wanted && ww.latest !== 'linked' - }) - if (wanted.length === 0) return - - log.info('outdated', 'updating', wanted) - const toInstall = {} - - wanted.forEach(function (ww) { - // 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 isTransitive = !(ww.dep.requiredBy || []).some((p) => p.isTop) - const key = where + ':' + String(isTransitive) - if (!toInstall[key]) toInstall[key] = {where: where, opts: {saveOnlyLock: isTransitive}, what: []} - if (toInstall[key].what.indexOf(ww.what) === -1) toInstall[key].what.push(ww.what) - }) - return Bluebird.each(Object.keys(toInstall), (key) => { - const deps = toInstall[key] - const inst = new Installer(deps.where, dryrun, deps.what, deps.opts) - return inst.run() - }) - }) -} diff --git a/deps/npm/lib/utils/ansi-trim.js b/deps/npm/lib/utils/ansi-trim.js deleted file mode 100644 index 7f9a6c30ec9..00000000000 --- a/deps/npm/lib/utils/ansi-trim.js +++ /dev/null @@ -1,7 +0,0 @@ -function ansiTrim (str) { - var r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + - '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g') - return str.replace(r, '') -} - -module.exports = ansiTrim diff --git a/deps/npm/lib/utils/child-path.js b/deps/npm/lib/utils/child-path.js deleted file mode 100644 index 4594f43221f..00000000000 --- a/deps/npm/lib/utils/child-path.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var moduleName = require('../utils/module-name.js') - -module.exports = childPath -function childPath (parentPath, child) { - validate('SO', arguments) - return path.join(parentPath, 'node_modules', moduleName(child)) -} diff --git a/deps/npm/lib/utils/completion.sh b/deps/npm/lib/utils/completion.sh deleted file mode 100755 index c549b31c964..00000000000 --- a/deps/npm/lib/utils/completion.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -###-begin-npm-completion-### -# -# npm command completion script -# -# Installation: npm completion >> ~/.bashrc (or ~/.zshrc) -# Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm -# - -if type complete &>/dev/null; then - _npm_completion () { - local words cword - if type _get_comp_words_by_ref &>/dev/null; then - _get_comp_words_by_ref -n = -n @ -n : -w words -i cword - else - cword="$COMP_CWORD" - words=("${COMP_WORDS[@]}") - fi - - local si="$IFS" - IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \ - COMP_LINE="$COMP_LINE" \ - COMP_POINT="$COMP_POINT" \ - npm completion -- "${words[@]}" \ - 2>/dev/null)) || return $? - IFS="$si" - if type __ltrim_colon_completions &>/dev/null; then - __ltrim_colon_completions "${words[cword]}" - fi - } - complete -o default -F _npm_completion npm -elif type compdef &>/dev/null; then - _npm_completion() { - local si=$IFS - compadd -- $(COMP_CWORD=$((CURRENT-1)) \ - COMP_LINE=$BUFFER \ - COMP_POINT=0 \ - npm completion -- "${words[@]}" \ - 2>/dev/null) - IFS=$si - } - compdef _npm_completion npm -elif type compctl &>/dev/null; then - _npm_completion () { - local cword line point words si - read -Ac words - read -cn cword - let cword-=1 - read -l line - read -ln point - si="$IFS" - IFS=$'\n' reply=($(COMP_CWORD="$cword" \ - COMP_LINE="$line" \ - COMP_POINT="$point" \ - npm completion -- "${words[@]}" \ - 2>/dev/null)) || return $? - IFS="$si" - } - compctl -K _npm_completion npm -fi -###-end-npm-completion-### diff --git a/deps/npm/lib/utils/completion/file-completion.js b/deps/npm/lib/utils/completion/file-completion.js deleted file mode 100644 index e16b636a684..00000000000 --- a/deps/npm/lib/utils/completion/file-completion.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = fileCompletion - -var mkdir = require('mkdirp') -var glob = require('glob') - -function fileCompletion (root, req, depth, cb) { - if (typeof cb !== 'function') { - cb = depth - depth = Infinity - } - mkdir(root, function (er) { - if (er) return cb(er) - - // can be either exactly the req, or a descendent - var pattern = root + '/{' + req + ',' + req + '/**/*}' - var opts = { mark: true, dot: true, maxDepth: depth } - glob(pattern, opts, function (er, files) { - if (er) return cb(er) - return cb(null, (files || []).map(function (f) { - return f.substr(root.length + 1).replace(/^\/|\/$/g, '') - })) - }) - }) -} diff --git a/deps/npm/lib/utils/completion/installed-deep.js b/deps/npm/lib/utils/completion/installed-deep.js deleted file mode 100644 index dc9bfbee8a2..00000000000 --- a/deps/npm/lib/utils/completion/installed-deep.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = installedDeep - -var npm = require('../../npm.js') -var readInstalled = require('read-installed') - -function installedDeep (opts, cb) { - var local - var global - var depth = npm.config.get('depth') - var opt = { depth: depth, dev: true } - - if (npm.config.get('global')) { - local = [] - next() - } else { - readInstalled(npm.prefix, opt, function (er, data) { - local = getNames(data || {}) - next() - }) - } - - readInstalled(npm.config.get('prefix'), opt, function (er, data) { - global = getNames(data || {}) - next() - }) - - function getNames_ (d, n) { - if (d.realName && n) { - if (n[d.realName]) return n - n[d.realName] = true - } - if (!n) n = {} - Object.keys(d.dependencies || {}).forEach(function (dep) { - getNames_(d.dependencies[dep], n) - }) - return n - } - function getNames (d) { - return Object.keys(getNames_(d)) - } - - function next () { - if (!local || !global) return - if (!npm.config.get('global')) { - global = global.map(function (g) { - return [g, '-g'] - }) - } - var names = local.concat(global) - return cb(null, names) - } -} diff --git a/deps/npm/lib/utils/completion/installed-shallow.js b/deps/npm/lib/utils/completion/installed-shallow.js deleted file mode 100644 index bf692fedea3..00000000000 --- a/deps/npm/lib/utils/completion/installed-shallow.js +++ /dev/null @@ -1,87 +0,0 @@ - -module.exports = installedShallow - -var npm = require('../../npm.js') -var fs = require('graceful-fs') -var path = require('path') -var readJson = require('read-package-json') -var asyncMap = require('slide').asyncMap - -function installedShallow (opts, filter, cb) { - if (typeof cb !== 'function') { - cb = filter - filter = null - } - var conf = opts.conf - var args = conf.argv.remain - if (args.length > 3) return cb() - var local - var global - var localDir = npm.dir - var globalDir = npm.globalDir - if (npm.config.get('global')) { - local = [] - next() - } else { - fs.readdir(localDir, function (er, pkgs) { - local = (pkgs || []).filter(function (p) { - return p.charAt(0) !== '.' - }) - next() - }) - } - - fs.readdir(globalDir, function (er, pkgs) { - global = (pkgs || []).filter(function (p) { - return p.charAt(0) !== '.' - }) - next() - }) - function next () { - if (!local || !global) return - filterInstalled(local, global, filter, cb) - } -} - -function filterInstalled (local, global, filter, cb) { - var fl - var fg - - if (!filter) { - fl = local - fg = global - return next() - } - - asyncMap(local, function (p, cb) { - readJson(path.join(npm.dir, p, 'package.json'), function (er, d) { - if (!d || !filter(d)) return cb(null, []) - return cb(null, d.name) - }) - }, function (er, local) { - fl = local || [] - next() - }) - - var globalDir = npm.globalDir - asyncMap(global, function (p, cb) { - readJson(path.join(globalDir, p, 'package.json'), function (er, d) { - if (!d || !filter(d)) return cb(null, []) - return cb(null, d.name) - }) - }, function (er, global) { - fg = global || [] - next() - }) - - function next () { - if (!fg || !fl) return - if (!npm.config.get('global')) { - fg = fg.map(function (g) { - return [g, '-g'] - }) - } - console.error('filtered', fl, fg) - return cb(null, fl.concat(fg)) - } -} diff --git a/deps/npm/lib/utils/correct-mkdir.js b/deps/npm/lib/utils/correct-mkdir.js deleted file mode 100644 index 68c4a4ad79a..00000000000 --- a/deps/npm/lib/utils/correct-mkdir.js +++ /dev/null @@ -1,123 +0,0 @@ -var chownr = require('chownr') -var dezalgo = require('dezalgo') -var fs = require('graceful-fs') -var inflight = require('inflight') -var log = require('npmlog') -var mkdirp = require('mkdirp') - -// memoize the directories created by this step -var stats = {} -var effectiveOwner -module.exports = function correctMkdir (path, cb) { - cb = dezalgo(cb) - cb = inflight('correctMkdir:' + path, cb) - if (!cb) { - return log.verbose('correctMkdir', path, 'correctMkdir already in flight; waiting') - } else { - log.verbose('correctMkdir', path, 'correctMkdir not in flight; initializing') - } - - if (stats[path]) return cb(null, stats[path]) - - fs.stat(path, function (er, st) { - if (er) return makeDirectory(path, cb) - - if (!st.isDirectory()) { - log.error('correctMkdir', 'invalid dir %s', path) - return cb(er) - } - - var ownerStats = calculateOwner() - // there's always a chance the permissions could have been frobbed, so fix - if (st.uid !== ownerStats.uid) { - stats[path] = ownerStats - setPermissions(path, ownerStats, cb) - } else { - stats[path] = st - cb(null, stats[path]) - } - }) -} - -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 makeDirectory (path, cb) { - cb = inflight('makeDirectory:' + path, cb) - if (!cb) { - return log.verbose('makeDirectory', path, 'creation already in flight; waiting') - } else { - log.verbose('makeDirectory', path, 'creation not in flight; initializing') - } - - var owner = calculateOwner() - - if (!process.getuid) { - return mkdirp(path, function (er) { - log.verbose('makeCacheDir', 'UID & GID are irrelevant on', process.platform) - - stats[path] = owner - return cb(er, stats[path]) - }) - } - - if (owner.uid !== 0 || !process.env.HOME) { - log.silly( - 'makeDirectory', path, - 'uid:', owner.uid, - 'gid:', owner.gid - ) - stats[path] = owner - mkdirp(path, afterMkdir) - } else { - fs.stat(process.env.HOME, function (er, st) { - if (er) { - log.error('makeDirectory', 'homeless?') - return cb(er) - } - - log.silly( - 'makeDirectory', path, - 'uid:', st.uid, - 'gid:', st.gid - ) - stats[path] = st - mkdirp(path, afterMkdir) - }) - } - - function afterMkdir (er, made) { - if (er || !stats[path] || isNaN(stats[path].uid) || isNaN(stats[path].gid)) { - return cb(er, stats[path]) - } - - if (!made) return cb(er, stats[path]) - - setPermissions(made, stats[path], cb) - } -} - -function setPermissions (path, st, cb) { - chownr(path, st.uid, st.gid, function (er) { - if (er && er.code === 'ENOENT') return cb(null, st) - return cb(er, st) - }) -} diff --git a/deps/npm/lib/utils/deep-sort-object.js b/deps/npm/lib/utils/deep-sort-object.js deleted file mode 100644 index 7499efc4bef..00000000000 --- a/deps/npm/lib/utils/deep-sort-object.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' -var sortedObject = require('sorted-object') - -module.exports = function deepSortObject (obj) { - if (obj == null || typeof obj !== 'object') return obj - if (obj instanceof Array) { - return obj.map(deepSortObject) - } - obj = sortedObject(obj) - Object.keys(obj).forEach(function (key) { - obj[key] = deepSortObject(obj[key]) - }) - return obj -} diff --git a/deps/npm/lib/utils/depr-check.js b/deps/npm/lib/utils/depr-check.js deleted file mode 100644 index 97023ddda1d..00000000000 --- a/deps/npm/lib/utils/depr-check.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict' - -const log = require('npmlog') - -const deprecated = {} -const deprWarned = {} - -module.exports = deprCheck -function deprCheck (data) { - if (deprecated[data._id]) { - data.deprecated = deprecated[data._id] - } - - if (data.deprecated) { - deprecated[data._id] = data.deprecated - if (!deprWarned[data._id]) { - deprWarned[data._id] = true - log.warn('deprecated', '%s: %s', data._id, data.deprecated) - } - } - - return data -} diff --git a/deps/npm/lib/utils/did-you-mean.js b/deps/npm/lib/utils/did-you-mean.js deleted file mode 100644 index 8e72dde5fa0..00000000000 --- a/deps/npm/lib/utils/did-you-mean.js +++ /dev/null @@ -1,20 +0,0 @@ -var meant = require('meant') -var output = require('./output.js') - -function didYouMean (scmd, commands) { - var bestSimilarity = meant(scmd, commands).map(function (str) { - return ' ' + str - }) - - if (bestSimilarity.length === 0) return - if (bestSimilarity.length === 1) { - output('\nDid you mean this?\n' + bestSimilarity[0]) - } else { - output( - ['\nDid you mean one of these?'] - .concat(bestSimilarity.slice(0, 3)).join('\n') - ) - } -} - -module.exports = didYouMean diff --git a/deps/npm/lib/utils/error-handler.js b/deps/npm/lib/utils/error-handler.js deleted file mode 100644 index b2fd45a5f3e..00000000000 --- a/deps/npm/lib/utils/error-handler.js +++ /dev/null @@ -1,252 +0,0 @@ - -module.exports = errorHandler -module.exports.exit = exit - -var cbCalled = false -var log = require('npmlog') -var npm = require('../npm.js') -var itWorked = false -var path = require('path') -var wroteLogFile = false -var exitCode = 0 -var rollbacks = npm.rollbacks -var chain = require('slide').chain -var writeFileAtomic = require('write-file-atomic') -var errorMessage = require('./error-message.js') -var stopMetrics = require('./metrics.js').stop -var mkdirp = require('mkdirp') -var fs = require('graceful-fs') - -var logFileName -function getLogFile () { - if (!logFileName) { - logFileName = path.resolve(npm.config.get('cache'), '_logs', (new Date()).toISOString().replace(/[.:]/g, '_') + '-debug.log') - } - return logFileName -} - -var timings = { - version: npm.version, - command: process.argv.slice(2), - logfile: null -} -process.on('timing', function (name, value) { - if (timings[name]) { timings[name] += value } else { timings[name] = value } -}) - -process.on('exit', function (code) { - process.emit('timeEnd', 'npm') - log.disableProgress() - if (npm.config.loaded && npm.config.get('timing')) { - try { - timings.logfile = getLogFile() - fs.appendFileSync(path.join(npm.config.get('cache'), '_timing.json'), JSON.stringify(timings) + '\n') - } catch (_) { - // ignore - } - } - - // kill any outstanding stats reporter if it hasn't finished yet - stopMetrics() - - if (code) itWorked = false - if (itWorked) { - log.info('ok') - } else { - if (!cbCalled) { - log.error('', 'cb() never called!') - console.error('') - log.error('', 'This is an error with npm itself. Please report this error at:') - log.error('', ' ') - writeLogFile() - } - - if (code) { - log.verbose('code', code) - } - } - if (npm.config.loaded && npm.config.get('timing') && !wroteLogFile) writeLogFile() - if (wroteLogFile) { - // just a line break - if (log.levels[log.level] <= log.levels.error) console.error('') - - log.error( - '', - [ - 'A complete log of this run can be found in:', - ' ' + getLogFile() - ].join('\n') - ) - wroteLogFile = false - } - - var doExit = npm.config.loaded && npm.config.get('_exit') - if (doExit) { - // actually exit. - if (exitCode === 0 && !itWorked) { - exitCode = 1 - } - if (exitCode !== 0) process.exit(exitCode) - } else { - itWorked = false // ready for next exit - } -}) - -function exit (code, noLog) { - exitCode = exitCode || process.exitCode || code - - var doExit = npm.config.loaded ? npm.config.get('_exit') : true - log.verbose('exit', [code, doExit]) - if (log.level === 'silent') noLog = true - - if (rollbacks.length) { - chain(rollbacks.map(function (f) { - return function (cb) { - npm.commands.unbuild([f], true, cb) - } - }), function (er) { - if (er) { - log.error('error rolling back', er) - if (!code) { - errorHandler(er) - } else { - if (!noLog) writeLogFile() - reallyExit(er) - } - } else { - if (!noLog && code) writeLogFile() - reallyExit() - } - }) - rollbacks.length = 0 - } else if (code && !noLog) { - writeLogFile() - } else { - reallyExit() - } - - function reallyExit (er) { - if (er && !code) code = typeof er.errno === 'number' ? er.errno : 1 - - itWorked = !code - - // Exit directly -- nothing in the CLI should still be running in the - // background at this point, and this makes sure anything left dangling - // for whatever reason gets thrown away, instead of leaving the CLI open - // - // Commands that expect long-running actions should just delay `cb()` - process.stdout.write('', () => { - process.exit(code) - }) - } -} - -function errorHandler (er) { - log.disableProgress() - if (!npm.config || !npm.config.loaded) { - // logging won't work unless we pretend that it's ready - er = er || new Error('Exit prior to config file resolving.') - console.error(er.stack || er.message) - } - - if (cbCalled) { - er = er || new Error('Callback called more than once.') - } - - cbCalled = true - if (!er) return exit(0) - if (typeof er === 'string') { - log.error('', er) - return exit(1, true) - } else if (!(er instanceof Error)) { - log.error('weird error', er) - return exit(1, true) - } - - var m = er.code || er.message.match(/^(?:Error: )?(E[A-Z]+)/) - if (m && !er.code) { - er.code = m - } - - ;[ - 'type', - 'stack', - 'statusCode', - 'pkgid' - ].forEach(function (k) { - var v = er[k] - if (!v) return - log.verbose(k, v) - }) - - log.verbose('cwd', process.cwd()) - - var os = require('os') - log.verbose('', os.type() + ' ' + os.release()) - log.verbose('argv', process.argv.map(JSON.stringify).join(' ')) - log.verbose('node', process.version) - log.verbose('npm ', 'v' + npm.version) - - ;[ - 'file', - 'path', - 'code', - 'errno', - 'syscall' - ].forEach(function (k) { - var v = er[k] - if (v) log.error(k, v) - }) - - var msg = errorMessage(er) - msg.summary.concat(msg.detail).forEach(function (errline) { - log.error.apply(log, errline) - }) - if (npm.config.get('json')) { - var error = { - error: { - code: er.code, - summary: messageText(msg.summary), - detail: messageText(msg.detail) - } - } - console.log(JSON.stringify(error, null, 2)) - } - - exit(typeof er.errno === 'number' ? er.errno : 1) -} - -function messageText (msg) { - return msg.map(function (line) { - return line.slice(1).join(' ') - }).join('\n') -} - -function writeLogFile () { - if (wroteLogFile) return - - var os = require('os') - - try { - mkdirp.sync(path.resolve(npm.config.get('cache'), '_logs')) - var logOutput = '' - log.record.forEach(function (m) { - var pref = [m.id, m.level] - if (m.prefix) pref.push(m.prefix) - pref = pref.join(' ') - - m.message.trim().split(/\r?\n/).map(function (line) { - return (pref + ' ' + line).trim() - }).forEach(function (line) { - logOutput += line + os.EOL - }) - }) - writeFileAtomic.sync(getLogFile(), logOutput) - - // truncate once it's been written. - 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 deleted file mode 100644 index 85504f5edc5..00000000000 --- a/deps/npm/lib/utils/error-message.js +++ /dev/null @@ -1,335 +0,0 @@ -'use strict' -var npm = require('../npm.js') -var util = require('util') -var nameValidator = require('validate-npm-package-name') - -module.exports = errorMessage - -function errorMessage (er) { - var short = [] - var detail = [] - switch (er.code) { - case 'ECONNREFUSED': - short.push(['', er]) - detail.push([ - '', - [ - '\nIf you are behind a proxy, please make sure that the', - "'proxy' config is set properly. See: 'npm help config'" - ].join('\n') - ]) - break - - case 'EACCES': - case 'EPERM': - short.push(['', er]) - detail.push(['', ['\nPlease try running this command again as root/Administrator.' - ].join('\n')]) - break - - case 'ELIFECYCLE': - short.push(['', er.message]) - detail.push([ - '', - [ - '', - 'Failed at the ' + er.pkgid + ' ' + er.stage + ' script.', - 'This is probably not a problem with npm. There is likely additional logging output above.' - ].join('\n')] - ) - break - - case 'ENOGIT': - short.push(['', er.message]) - detail.push([ - '', - [ - '', - 'Failed using git.', - 'Please check if you have git installed and in your PATH.' - ].join('\n') - ]) - break - - case 'EJSONPARSE': - short.push(['', er.message]) - short.push(['', 'File: ' + er.file]) - detail.push([ - '', - [ - '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' - ]) - break - - case 'EOTP': - 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))) { - short.push(['', 'This operation requires a one-time password from your authenticator.']) - detail.push([ - '', - [ - 'You can provide a one-time password by passing --otp= to the command you ran.', - 'If you already provided a one-time password then it is likely that you either typoed', - '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([ - '', - [ - '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 - } - } - } - - case 'E404': - // There's no need to have 404 in the message as well. - var msg = er.message.replace(/^404\s+/, '') - short.push(['404', msg]) - if (er.pkgid && er.pkgid !== '-') { - detail.push(['404', '']) - detail.push(['404', '', "'" + er.pkgid + "' is not in the npm registry."]) - - var valResult = nameValidator(er.pkgid) - - if (valResult.validForNewPackages) { - detail.push(['404', 'You should bug the author to publish it (or use the name yourself!)']) - } else { - detail.push(['404', 'Your package name is not valid, because', '']) - - var errorsArray = (valResult.errors || []).concat(valResult.warnings || []) - errorsArray.forEach(function (item, idx) { - detail.push(['404', ' ' + (idx + 1) + '. ' + item]) - }) - } - - if (er.parent) { - detail.push(['404', "It was specified as a dependency of '" + er.parent + "'"]) - } - detail.push(['404', '\nNote that you can also install from a']) - detail.push(['404', 'tarball, folder, http url, or git url.']) - } - break - - case 'EPUBLISHCONFLICT': - short.push(['publish fail', 'Cannot publish over existing version.']) - detail.push(['publish fail', "Update the 'version' field in package.json and try again."]) - detail.push(['publish fail', '']) - detail.push(['publish fail', 'To automatically increment version numbers, see:']) - detail.push(['publish fail', ' npm help version']) - break - - case 'EISGIT': - short.push(['git', er.message]) - short.push(['git', ' ' + er.path]) - detail.push([ - 'git', - [ - 'Refusing to remove it. Update manually,', - 'or move it out of the way first.' - ].join('\n') - ]) - break - - case 'ECYCLE': - short.push([ - 'cycle', - [ - er.message, - 'While installing: ' + er.pkgid - ].join('\n') - ]) - detail.push([ - 'cycle', - [ - 'Found a pathological dependency case that npm cannot solve.', - 'Please report this to the package author.' - ].join('\n') - ]) - break - - case 'EBADPLATFORM': - var validOs = er.os.join ? er.os.join(',') : er.os - var validArch = er.cpu.join ? er.cpu.join(',') : er.cpu - var expected = {os: validOs, arch: validArch} - var actual = {os: process.platform, arch: process.arch} - short.push([ - 'notsup', - [ - util.format('Unsupported platform for %s: wanted %j (current: %j)', er.pkgid, expected, actual) - ].join('\n') - ]) - detail.push([ - 'notsup', - [ - 'Valid OS: ' + validOs, - 'Valid Arch: ' + validArch, - 'Actual OS: ' + process.platform, - 'Actual Arch: ' + process.arch - ].join('\n') - ]) - break - - case 'EEXIST': - short.push(['', er.message]) - short.push(['', 'File exists: ' + er.path]) - detail.push(['', 'Move it away, and try again.']) - break - - case 'ENEEDAUTH': - short.push(['need auth', er.message]) - detail.push(['need auth', 'You need to authorize this machine using `npm adduser`']) - break - - case 'ECONNRESET': - case 'ENOTFOUND': - case 'ETIMEDOUT': - case 'EAI_FAIL': - short.push(['network', er.message]) - detail.push([ - 'network', - [ - 'This is a problem related to network connectivity.', - 'In most cases you are behind a proxy or have bad network settings.', - '\nIf you are behind a proxy, please make sure that the', - "'proxy' config is set properly. See: 'npm help config'" - ].join('\n') - ]) - break - - case 'ENOPACKAGEJSON': - short.push(['package.json', er.message]) - detail.push([ - 'package.json', - [ - "npm can't find a package.json file in your current directory." - ].join('\n') - ]) - break - - case 'ETARGET': - short.push(['notarget', er.message]) - msg = [ - 'In most cases you or one of your dependencies are requesting', - "a package version that doesn't exist." - ] - if (er.parent) { - msg.push("\nIt was specified as a dependency of '" + er.parent + "'\n") - } - detail.push(['notarget', msg.join('\n')]) - break - - case 'ENOTSUP': - if (er.required) { - short.push(['notsup', er.message]) - short.push(['notsup', 'Not compatible with your version of node/npm: ' + er.pkgid]) - detail.push([ - 'notsup', - [ - 'Not compatible with your version of node/npm: ' + er.pkgid, - 'Required: ' + JSON.stringify(er.required), - 'Actual: ' + JSON.stringify({ - npm: npm.version, - node: npm.config.get('node-version') - }) - ].join('\n') - ]) - break - } // else passthrough - /*eslint no-fallthrough:0*/ - - case 'ENOSPC': - short.push(['nospc', er.message]) - detail.push([ - 'nospc', - [ - 'There appears to be insufficient space on your system to finish.', - 'Clear up some disk space and try again.' - ].join('\n') - ]) - break - - case 'EROFS': - short.push(['rofs', er.message]) - detail.push([ - 'rofs', - [ - 'Often virtualized file systems, or other file systems', - "that don't support symlinks, give this error." - ].join('\n') - ]) - break - - case 'ENOENT': - short.push(['enoent', er.message]) - detail.push([ - 'enoent', - [ - 'This is related to npm not being able to find a file.', - er.file ? "\nCheck if the file '" + er.file + "' is present." : '' - ].join('\n') - ]) - break - - case 'EMISSINGARG': - case 'EUNKNOWNTYPE': - case 'EINVALIDTYPE': - case 'ETOOMANYARGS': - short.push(['typeerror', er.stack]) - detail.push([ - 'typeerror', - [ - 'This is an error with npm itself. Please report this error at:', - ' ' - ].join('\n') - ]) - break - - default: - short.push(['', er.message || er]) - break - } - if (er.optional) { - short.unshift(['optional', er.optional + ' (' + er.location + '):']) - short.concat(detail).forEach(function (msg) { - if (!msg[0]) msg[0] = 'optional' - if (msg[1]) msg[1] = msg[1].toString().replace(/(^|\n)/g, '$1SKIPPING OPTIONAL DEPENDENCY: ') - }) - } - return {summary: short, detail: detail} -} diff --git a/deps/npm/lib/utils/escape-arg.js b/deps/npm/lib/utils/escape-arg.js deleted file mode 100644 index d12ee5edf58..00000000000 --- a/deps/npm/lib/utils/escape-arg.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var path = require('path') -var isWindowsShell = require('./is-windows-shell.js') - -/* -Escape the name of an executable suitable for passing to the system shell. - -Windows is easy, wrap in double quotes and you're done, as there's no -facility to create files with quotes in their names. - -Unix-likes are a little more complicated, wrap in single quotes and escape -any single quotes in the filename. -*/ - -module.exports = escapify - -function escapify (str) { - if (isWindowsShell) { - return '"' + path.normalize(str) + '"' - } else { - if (/[^-_.~/\w]/.test(str)) { - return "'" + str.replace(/'/g, "'\"'\"'") + "'" - } else { - return str - } - } -} diff --git a/deps/npm/lib/utils/escape-exec-path.js b/deps/npm/lib/utils/escape-exec-path.js deleted file mode 100644 index bf94886efa3..00000000000 --- a/deps/npm/lib/utils/escape-exec-path.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var path = require('path') -var isWindowsShell = require('./is-windows-shell.js') - -/* -Escape the name of an executable suitable for passing to the system shell. - -Windows is easy, wrap in double quotes and you're done, as there's no -facility to create files with quotes in their names. - -Unix-likes are a little more complicated, wrap in single quotes and escape -any single quotes in the filename. -*/ - -module.exports = escapify - -function windowsQuotes (str) { - if (!/ /.test(str)) return str - return '"' + str + '"' -} - -function escapify (str) { - if (isWindowsShell) { - return path.normalize(str).split(/\\/).map(windowsQuotes).join('\\') - } else if (/[^-_.~/\w]/.test(str)) { - return "'" + str.replace(/'/g, "'\"'\"'") + "'" - } else { - return str - } -} diff --git a/deps/npm/lib/utils/gently-rm.js b/deps/npm/lib/utils/gently-rm.js deleted file mode 100644 index 16d0aa9bd7f..00000000000 --- a/deps/npm/lib/utils/gently-rm.js +++ /dev/null @@ -1,21 +0,0 @@ -// only remove the thing if it's a symlink into a specific folder. This is -// a very common use-case of npm's, but not so common elsewhere. - -exports = module.exports = gentlyRm - -var gentleFS = require('gentle-fs') -var gentleFSOpts = require('../config/gentle-fs.js') - -function gentlyRm (target, gently, base, cb) { - if (!cb) { - cb = base - base = undefined - } - - if (!cb) { - cb = gently - gently = false - } - - return gentleFS.rm(target, gentleFSOpts(gently, base), cb) -} diff --git a/deps/npm/lib/utils/get-publish-config.js b/deps/npm/lib/utils/get-publish-config.js deleted file mode 100644 index ac0ef093420..00000000000 --- a/deps/npm/lib/utils/get-publish-config.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict' - -const clientConfig = require('../config/reg-client.js') -const Conf = require('../config/core.js').Conf -const log = require('npmlog') -const npm = require('../npm.js') -const RegClient = require('npm-registry-client') - -module.exports = getPublishConfig - -function getPublishConfig (publishConfig, defaultConfig, defaultClient) { - let config = defaultConfig - let client = defaultClient - log.verbose('getPublishConfig', publishConfig) - if (publishConfig) { - config = new Conf(defaultConfig) - config.save = defaultConfig.save.bind(defaultConfig) - - // don't modify the actual publishConfig object, in case we have - // to set a login token or some other data. - config.unshift(Object.keys(publishConfig).reduce(function (s, k) { - s[k] = publishConfig[k] - return s - }, {})) - client = new RegClient(clientConfig(npm, log, config)) - } - - return { config: config, client: client } -} diff --git a/deps/npm/lib/utils/git.js b/deps/npm/lib/utils/git.js deleted file mode 100644 index 6770853dd96..00000000000 --- a/deps/npm/lib/utils/git.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const exec = require('child_process').execFile -const spawn = require('./spawn') -const npm = require('../npm.js') -const which = require('which') -const git = npm.config.get('git') -const assert = require('assert') -const log = require('npmlog') -const noProgressTillDone = require('./no-progress-while-running.js').tillDone - -exports.spawn = spawnGit -exports.exec = BB.promisify(execGit) -exports.chainableExec = chainableExec -exports.whichAndExec = whichAndExec - -function prefixGitArgs () { - return process.platform === 'win32' ? ['-c', 'core.longpaths=true'] : [] -} - -function execGit (args, options, cb) { - log.info('git', args) - const fullArgs = prefixGitArgs().concat(args || []) - return exec(git, fullArgs, options, noProgressTillDone(cb)) -} - -function spawnGit (args, options) { - log.info('git', args) - return spawn(git, prefixGitArgs().concat(args || []), options) -} - -function chainableExec () { - var args = Array.prototype.slice.call(arguments) - return [execGit].concat(args) -} - -function whichAndExec (args, options, cb) { - assert.equal(typeof cb, 'function', 'no callback provided') - // check for git - which(git, function (err) { - if (err) { - err.code = 'ENOGIT' - return cb(err) - } - - execGit(args, options, cb) - }) -} diff --git a/deps/npm/lib/utils/gunzip-maybe.js b/deps/npm/lib/utils/gunzip-maybe.js deleted file mode 100644 index db75f060171..00000000000 --- a/deps/npm/lib/utils/gunzip-maybe.js +++ /dev/null @@ -1,22 +0,0 @@ -var duplex = require('mississippi').duplex -var through = require('mississippi').through -var zlib = require('zlib') - -function hasGzipHeader (c) { - return c[0] === 0x1F && c[1] === 0x8B && c[2] === 0x08 -} - -module.exports = gunzip -function gunzip () { - var stream = duplex() - var peeker = through(function (chunk, enc, cb) { - var 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/lib/utils/is-registry.js b/deps/npm/lib/utils/is-registry.js deleted file mode 100644 index e5f08e16a0b..00000000000 --- a/deps/npm/lib/utils/is-registry.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -module.exports = isRegistry - -function isRegistry (req) { - if (req == null) return false - // modern metadata - if ('registry' in req) return req.registry - // legacy metadata - if (req.type === 'range' || req.type === 'version' || req.type === 'tag') return true - return false -} diff --git a/deps/npm/lib/utils/is-windows-bash.js b/deps/npm/lib/utils/is-windows-bash.js deleted file mode 100644 index bc4ac7db493..00000000000 --- a/deps/npm/lib/utils/is-windows-bash.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' -var isWindows = require('./is-windows.js') -module.exports = isWindows && /^MINGW(32|64)$/.test(process.env.MSYSTEM) diff --git a/deps/npm/lib/utils/is-windows-shell.js b/deps/npm/lib/utils/is-windows-shell.js deleted file mode 100644 index 803bbaa49cc..00000000000 --- a/deps/npm/lib/utils/is-windows-shell.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict' -var isWindows = require('./is-windows.js') -var isWindowsBash = require('./is-windows-bash.js') -module.exports = isWindows && !isWindowsBash diff --git a/deps/npm/lib/utils/is-windows.js b/deps/npm/lib/utils/is-windows.js deleted file mode 100644 index 8a991d54f5d..00000000000 --- a/deps/npm/lib/utils/is-windows.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict' -module.exports = process.platform === 'win32' diff --git a/deps/npm/lib/utils/lifecycle-cmd.js b/deps/npm/lib/utils/lifecycle-cmd.js deleted file mode 100644 index bb802f45ee0..00000000000 --- a/deps/npm/lib/utils/lifecycle-cmd.js +++ /dev/null @@ -1,18 +0,0 @@ -exports = module.exports = cmd - -var npm = require('../npm.js') -var usage = require('./usage.js') - -function cmd (stage) { - function CMD (args, cb) { - npm.commands['run-script']([stage].concat(args), cb) - } - CMD.usage = usage(stage, 'npm ' + stage + ' [-- ]') - var installedShallow = require('./completion/installed-shallow.js') - CMD.completion = function (opts, cb) { - installedShallow(opts, function (d) { - return d.scripts && d.scripts[stage] - }, cb) - } - return CMD -} diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js deleted file mode 100644 index 2d3265e0eb2..00000000000 --- a/deps/npm/lib/utils/lifecycle.js +++ /dev/null @@ -1,14 +0,0 @@ -exports = module.exports = runLifecycle - -const lifecycleOpts = require('../config/lifecycle') -const lifecycle = require('npm-lifecycle') - -function runLifecycle (pkg, stage, wd, moreOpts, cb) { - if (typeof moreOpts === 'function') { - cb = moreOpts - moreOpts = null - } - - const opts = lifecycleOpts(moreOpts) - lifecycle(pkg, stage, wd, opts).then(cb, cb) -} diff --git a/deps/npm/lib/utils/link.js b/deps/npm/lib/utils/link.js deleted file mode 100644 index c2642481444..00000000000 --- a/deps/npm/lib/utils/link.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = link - -var gentleFS = require('gentle-fs') -var gentleFSOpts = require('../config/gentle-fs.js') - -function link (from, to, gently, abs, cb) { - return gentleFS.link(from, to, gentleFSOpts(gently, undefined, abs), cb) -} diff --git a/deps/npm/lib/utils/locker.js b/deps/npm/lib/utils/locker.js deleted file mode 100644 index 9cd8b2c4fda..00000000000 --- a/deps/npm/lib/utils/locker.js +++ /dev/null @@ -1,73 +0,0 @@ -var crypto = require('crypto') -var resolve = require('path').resolve - -var lockfile = require('lockfile') -var log = require('npmlog') - -var npm = require('../npm.js') -var correctMkdir = require('../utils/correct-mkdir.js') - -var installLocks = {} - -function lockFileName (base, name) { - var c = name.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') - var p = resolve(base, name) - var h = crypto.createHash('sha1').update(p).digest('hex') - var l = resolve(npm.cache, '_locks') - - return resolve(l, c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock') -} - -function lock (base, name, cb) { - var lockDir = resolve(npm.cache, '_locks') - correctMkdir(lockDir, function (er) { - if (er) return cb(er) - - var opts = { - stale: npm.config.get('cache-lock-stale'), - retries: npm.config.get('cache-lock-retries'), - wait: npm.config.get('cache-lock-wait') - } - var lf = lockFileName(base, name) - lockfile.lock(lf, opts, function (er) { - if (er) log.warn('locking', lf, 'failed', er) - - if (!er) { - log.verbose('lock', 'using', lf, 'for', resolve(base, name)) - installLocks[lf] = true - } - - cb(er) - }) - }) -} - -function unlock (base, name, cb) { - var lf = lockFileName(base, name) - var locked = installLocks[lf] - if (locked === false) { - return process.nextTick(cb) - } else if (locked === true) { - lockfile.unlock(lf, function (er) { - if (er) { - log.warn('unlocking', lf, 'failed', er) - } else { - installLocks[lf] = false - log.verbose('unlock', 'done using', lf, 'for', resolve(base, name)) - } - - cb(er) - }) - } else { - var notLocked = new Error( - 'Attempt to unlock ' + resolve(base, name) + ", which hasn't been locked" - ) - notLocked.code = 'ENOTLOCKED' - throw notLocked - } -} - -module.exports = { - lock: lock, - unlock: unlock -} diff --git a/deps/npm/lib/utils/map-to-registry.js b/deps/npm/lib/utils/map-to-registry.js deleted file mode 100644 index d6e0a5b01f4..00000000000 --- a/deps/npm/lib/utils/map-to-registry.js +++ /dev/null @@ -1,103 +0,0 @@ -var url = require('url') - -var log = require('npmlog') -var npa = require('npm-package-arg') -var config - -module.exports = mapToRegistry - -function mapToRegistry (name, config, cb) { - log.silly('mapToRegistry', 'name', name) - var registry - - // the name itself takes precedence - var data = npa(name) - if (data.scope) { - // the name is definitely scoped, so escape now - name = name.replace('/', '%2f') - - log.silly('mapToRegistry', 'scope (from package name)', data.scope) - - registry = config.get(data.scope + ':registry') - if (!registry) { - log.verbose('mapToRegistry', 'no registry URL found in name for scope', data.scope) - } - } - - // ...then --scope=@scope or --scope=scope - var scope = config.get('scope') - if (!registry && scope) { - // I'm an enabler, sorry - if (scope.charAt(0) !== '@') scope = '@' + scope - - log.silly('mapToRegistry', 'scope (from config)', scope) - - registry = config.get(scope + ':registry') - if (!registry) { - log.verbose('mapToRegistry', 'no registry URL found in config for scope', scope) - } - } - - // ...and finally use the default registry - if (!registry) { - log.silly('mapToRegistry', 'using default registry') - registry = config.get('registry') - } - - log.silly('mapToRegistry', 'registry', registry) - - var auth = config.getCredentialsByURI(registry) - - // normalize registry URL so resolution doesn't drop a piece of registry URL - var normalized = registry.slice(-1) !== '/' ? registry + '/' : registry - var uri - log.silly('mapToRegistry', 'data', data) - if (data.type === 'remote') { - uri = data.fetchSpec - } else { - uri = url.resolve(normalized, name) - } - - log.silly('mapToRegistry', 'uri', uri) - - cb(null, uri, scopeAuth(uri, registry, auth), normalized) -} - -function scopeAuth (uri, registry, auth) { - var cleaned = { - scope: auth.scope, - email: auth.email, - alwaysAuth: auth.alwaysAuth, - token: undefined, - username: undefined, - password: undefined, - auth: undefined - } - - var requestHost - var registryHost - - if (auth.token || auth.auth || (auth.username && auth.password)) { - requestHost = url.parse(uri).hostname - registryHost = url.parse(registry).hostname - - if (requestHost === registryHost) { - cleaned.token = auth.token - cleaned.auth = auth.auth - cleaned.username = auth.username - cleaned.password = auth.password - } else if (auth.alwaysAuth) { - log.verbose('scopeAuth', 'alwaysAuth set for', registry) - cleaned.token = auth.token - cleaned.auth = auth.auth - cleaned.username = auth.username - cleaned.password = auth.password - } else { - log.silly('scopeAuth', uri, "doesn't share host with registry", registry) - } - if (!config) config = require('../npm').config - if (config.get('otp')) cleaned.otp = config.get('otp') - } - - return cleaned -} diff --git a/deps/npm/lib/utils/metrics-launch.js b/deps/npm/lib/utils/metrics-launch.js deleted file mode 100644 index 821f8bc7e4f..00000000000 --- a/deps/npm/lib/utils/metrics-launch.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict' -module.exports = launchSendMetrics -var fs = require('graceful-fs') -var child_process = require('child_process') - -if (require.main === module) main() - -function launchSendMetrics () { - var path = require('path') - var npm = require('../npm.js') - try { - if (!npm.config.get('send-metrics')) return - var cliMetrics = path.join(npm.config.get('cache'), 'anonymous-cli-metrics.json') - var targetRegistry = npm.config.get('metrics-registry') - fs.statSync(cliMetrics) - return runInBackground(__filename, [cliMetrics, targetRegistry]) - } catch (ex) { - // if the metrics file doesn't exist, don't run - } -} - -function runInBackground (js, args, opts) { - if (!args) args = [] - args.unshift(js) - if (!opts) opts = {} - opts.stdio = 'ignore' - opts.detached = true - var child = child_process.spawn(process.execPath, args, opts) - child.unref() - return child -} - -function main () { - var sendMetrics = require('./metrics.js').send - var metricsFile = process.argv[2] - var metricsRegistry = process.argv[3] - - sendMetrics(metricsFile, metricsRegistry) -} diff --git a/deps/npm/lib/utils/metrics.js b/deps/npm/lib/utils/metrics.js deleted file mode 100644 index c51136e78cd..00000000000 --- a/deps/npm/lib/utils/metrics.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict' -exports.start = startMetrics -exports.stop = stopMetrics -exports.save = saveMetrics -exports.send = sendMetrics - -var fs = require('fs') -var path = require('path') -var npm = require('../npm.js') -var uuid = require('uuid') - -var inMetrics = false - -function startMetrics () { - if (inMetrics) return - // loaded on demand to avoid any recursive deps when `./metrics-launch` requires us. - var metricsLaunch = require('./metrics-launch.js') - npm.metricsProcess = metricsLaunch() -} - -function stopMetrics () { - if (inMetrics) return - if (npm.metricsProcess) npm.metricsProcess.kill('SIGKILL') -} - -function saveMetrics (itWorked) { - if (inMetrics) return - // If the metrics reporter hasn't managed to PUT yet then kill it so that it doesn't - // step on our updating the anonymous-cli-metrics json - stopMetrics() - var metricsFile = path.join(npm.config.get('cache'), 'anonymous-cli-metrics.json') - var metrics - try { - metrics = JSON.parse(fs.readFileSync(metricsFile)) - metrics.metrics.to = new Date().toISOString() - if (itWorked) { - ++metrics.metrics.successfulInstalls - } else { - ++metrics.metrics.failedInstalls - } - } catch (ex) { - metrics = { - metricId: uuid.v4(), - metrics: { - from: new Date().toISOString(), - to: new Date().toISOString(), - successfulInstalls: itWorked ? 1 : 0, - failedInstalls: itWorked ? 0 : 1 - } - } - } - try { - fs.writeFileSync(metricsFile, JSON.stringify(metrics)) - } catch (ex) { - // we couldn't write the error metrics file, um, well, oh well. - } -} - -function sendMetrics (metricsFile, metricsRegistry) { - inMetrics = true - var cliMetrics = JSON.parse(fs.readFileSync(metricsFile)) - npm.load({}, function (err) { - if (err) return - npm.registry.config.retry.retries = 0 - npm.registry.sendAnonymousCLIMetrics(metricsRegistry, cliMetrics, function (err) { - if (err) { - fs.writeFileSync(path.join(path.dirname(metricsFile), 'last-send-metrics-error.txt'), err.stack) - } else { - fs.unlinkSync(metricsFile) - } - }) - }) -} diff --git a/deps/npm/lib/utils/module-name.js b/deps/npm/lib/utils/module-name.js deleted file mode 100644 index 89957b181fd..00000000000 --- a/deps/npm/lib/utils/module-name.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' -var path = require('path') - -module.exports = moduleName -module.exports.test = {} - -module.exports.test.pathToPackageName = pathToPackageName -function pathToPackageName (dir) { - if (dir == null) return '' - if (dir === '') return '' - var name = path.relative(path.resolve(dir, '..'), dir) - var scoped = path.relative(path.resolve(dir, '../..'), dir) - if (scoped[0] === '@') return scoped.replace(/\\/g, '/') - return name.trim() -} - -module.exports.test.isNotEmpty = isNotEmpty -function isNotEmpty (str) { - return str != null && str !== '' -} - -var unknown = 0 -function moduleName (tree) { - var pkg = tree.package || tree - if (isNotEmpty(pkg.name) && typeof pkg.name === 'string') return pkg.name.trim() - var pkgName = pathToPackageName(tree.path) - if (pkgName !== '') return pkgName - if (tree._invalidName != null) return tree._invalidName - tree._invalidName = '!invalid#' + (++unknown) - return tree._invalidName -} diff --git a/deps/npm/lib/utils/move.js b/deps/npm/lib/utils/move.js deleted file mode 100644 index d564962c219..00000000000 --- a/deps/npm/lib/utils/move.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' -module.exports = wrappedMove - -const fs = require('graceful-fs') -const move = require('move-concurrently') -const Bluebird = require('bluebird') - -const options = {fs: fs, Promise: Bluebird, maxConcurrency: 4} - -function wrappedMove (from, to) { - return move(from, to, options) -} diff --git a/deps/npm/lib/utils/no-progress-while-running.js b/deps/npm/lib/utils/no-progress-while-running.js deleted file mode 100644 index 961fa8b5556..00000000000 --- a/deps/npm/lib/utils/no-progress-while-running.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict' -var log = require('npmlog') -var progressEnabled -var running = 0 - -var startRunning = exports.startRunning = function () { - if (progressEnabled == null) progressEnabled = log.progressEnabled - if (progressEnabled) log.disableProgress() - ++running -} - -var stopRunning = exports.stopRunning = function () { - --running - if (progressEnabled && running === 0) log.enableProgress() -} - -exports.tillDone = function noProgressTillDone (cb) { - startRunning() - return function () { - stopRunning() - cb.apply(this, arguments) - } -} diff --git a/deps/npm/lib/utils/output.js b/deps/npm/lib/utils/output.js deleted file mode 100644 index 3dd66cbdd2a..00000000000 --- a/deps/npm/lib/utils/output.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var log = require('npmlog') -// output to stdout in a progress bar compatible way -module.exports = function () { - log.clearProgress() - console.log.apply(console, arguments) - log.showProgress() -} diff --git a/deps/npm/lib/utils/package-id.js b/deps/npm/lib/utils/package-id.js deleted file mode 100644 index 2c5e3314694..00000000000 --- a/deps/npm/lib/utils/package-id.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict' -var moduleName = require('./module-name.js') - -module.exports = function (tree) { - var pkg = tree.package || tree - // FIXME: Excluding the '@' here is cleaning up after the mess that - // read-package-json makes. =( - if (pkg._id && pkg._id !== '@') return pkg._id - var name = moduleName(tree) - if (pkg.version) { - return name + '@' + pkg.version - } else { - return name - } -} diff --git a/deps/npm/lib/utils/parse-json.js b/deps/npm/lib/utils/parse-json.js deleted file mode 100644 index 5c0b959a0d3..00000000000 --- a/deps/npm/lib/utils/parse-json.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict' -var parseJSON = module.exports = function (content) { - return JSON.parse(stripBOM(content)) -} - -parseJSON.noExceptions = function (content) { - try { - return parseJSON(content) - } catch (ex) { - return - } -} - -// from read-package-json -function stripBOM (content) { - content = content.toString() - // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - // because the buffer-to-string conversion in `fs.readFileSync()` - // translates it to FEFF, the UTF-16 BOM. - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1) - } - return content -} diff --git a/deps/npm/lib/utils/perf.js b/deps/npm/lib/utils/perf.js deleted file mode 100644 index 04232632254..00000000000 --- a/deps/npm/lib/utils/perf.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var log = require('npmlog') -var EventEmitter = require('events').EventEmitter -var perf = new EventEmitter() -module.exports = perf - -var timings = {} - -process.on('time', time) -process.on('timeEnd', timeEnd) - -perf.on('time', time) -perf.on('timeEnd', timeEnd) - -function time (name) { - timings[name] = Date.now() -} - -function timeEnd (name) { - if (name in timings) { - process.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 deleted file mode 100644 index e2c0d2e5aa4..00000000000 --- a/deps/npm/lib/utils/pick-manifest-from-registry-metadata.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' -module.exports = pickManifestFromRegistryMetadata - -var log = require('npmlog') -var semver = require('semver') - -function pickManifestFromRegistryMetadata (spec, tag, versions, metadata) { - log.silly('pickManifestFromRegistryMetadata', 'spec', spec, 'tag', tag, 'versions', versions) - - // if the tagged version satisfies, then use that. - var tagged = metadata['dist-tags'][tag] - if (tagged && - metadata.versions[tagged] && - semver.satisfies(tagged, spec, true)) { - return {resolvedTo: tag, manifest: metadata.versions[tagged]} - } - // find the max satisfying version. - var ms = semver.maxSatisfying(versions, spec, true) - if (ms) { - return {resolvedTo: ms, manifest: metadata.versions[ms]} - } 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/pulse-till-done.js b/deps/npm/lib/utils/pulse-till-done.js deleted file mode 100644 index b292c2fa56f..00000000000 --- a/deps/npm/lib/utils/pulse-till-done.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict' -const validate = require('aproba') -const log = require('npmlog') -const Bluebird = require('bluebird') - -let pulsers = 0 -let pulse - -function pulseStart (prefix) { - if (++pulsers > 1) return - pulse = setInterval(function () { - log.gauge.pulse(prefix) - }, 150) -} -function pulseStop () { - if (--pulsers > 0) return - clearInterval(pulse) -} - -module.exports = function (prefix, cb) { - validate('SF', [prefix, cb]) - if (!prefix) prefix = 'network' - pulseStart(prefix) - return function () { - pulseStop() - cb.apply(null, arguments) - } -} -module.exports.withPromise = pulseWhile - -function pulseWhile (prefix, promise) { - if (!promise) { - promise = prefix - prefix = '' - } - pulseStart(prefix) - return Bluebird.resolve(promise).finally(() => pulseStop()) -} diff --git a/deps/npm/lib/utils/read-local-package.js b/deps/npm/lib/utils/read-local-package.js deleted file mode 100644 index 27ca7b4e395..00000000000 --- a/deps/npm/lib/utils/read-local-package.js +++ /dev/null @@ -1,12 +0,0 @@ -exports = module.exports = readLocalPkg - -var npm = require('../npm.js') -var readJson = require('read-package-json') - -function readLocalPkg (cb) { - if (npm.config.get('global')) return cb() - var path = require('path') - readJson(path.resolve(npm.prefix, 'package.json'), function (er, d) { - return cb(er, d && d.name) - }) -} diff --git a/deps/npm/lib/utils/read-user-info.js b/deps/npm/lib/utils/read-user-info.js deleted file mode 100644 index 81bb44c98f0..00000000000 --- a/deps/npm/lib/utils/read-user-info.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' -const Bluebird = require('bluebird') -const readAsync = Bluebird.promisify(require('read')) -const userValidate = require('npm-user-validate') -const log = require('npmlog') - -exports.otp = readOTP -exports.password = readPassword -exports.username = readUsername -exports.email = readEmail - -function read (opts) { - return Bluebird.try(() => { - log.clearProgress() - return readAsync(opts) - }).finally(() => { - log.showProgress() - }) -} - -function readOTP (msg, otp, isRetry) { - if (!msg) msg = 'Enter OTP: ' - if (isRetry && otp && /^[\d ]+$|^[A-Fa-f0-9]{64,64}$/.test(otp)) return otp.replace(/\s+/g, '') - - return read({prompt: msg, default: otp || ''}) - .then((otp) => readOTP(msg, otp, true)) -} - -function readPassword (msg, password, isRetry) { - if (!msg) msg = 'npm password: ' - if (isRetry && password) return password - - return read({prompt: msg, silent: true, default: password || ''}) - .then((password) => readPassword(msg, password, true)) -} - -function readUsername (msg, username, opts, isRetry) { - if (!msg) msg = 'npm username: ' - if (isRetry && username) { - const error = userValidate.username(username) - if (error) { - opts.log && opts.log.warn(error.message) - } else { - return Promise.resolve(username.trim()) - } - } - - return read({prompt: msg, default: username || ''}) - .then((username) => readUsername(msg, username, opts, true)) -} - -function readEmail (msg, email, opts, isRetry) { - if (!msg) msg = 'email (this IS public): ' - if (isRetry && email) { - const error = userValidate.email(email) - if (error) { - opts.log && opts.log.warn(error.message) - } else { - return email.trim() - } - } - - return read({prompt: msg, default: email || ''}) - .then((username) => readEmail(msg, username, opts, true)) -} diff --git a/deps/npm/lib/utils/save-stack.js b/deps/npm/lib/utils/save-stack.js deleted file mode 100644 index 42c4aab5f94..00000000000 --- a/deps/npm/lib/utils/save-stack.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var inherits = require('inherits') - -module.exports = SaveStack - -function SaveStack (fn) { - Error.call(this) - Error.captureStackTrace(this, fn || SaveStack) -} -inherits(SaveStack, Error) - -SaveStack.prototype.completeWith = function (er) { - this['__' + 'proto' + '__'] = er - this.stack = this.stack + '\n\n' + er.stack - return this -} diff --git a/deps/npm/lib/utils/spawn.js b/deps/npm/lib/utils/spawn.js deleted file mode 100644 index b164a6acba0..00000000000 --- a/deps/npm/lib/utils/spawn.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = spawn - -var _spawn = require('child_process').spawn -var EventEmitter = require('events').EventEmitter -var npwr = require('./no-progress-while-running.js') - -function willCmdOutput (stdio) { - if (stdio === 'inherit') return true - if (!Array.isArray(stdio)) return false - for (var fh = 1; fh <= 2; ++fh) { - if (stdio[fh] === 'inherit') return true - if (stdio[fh] === 1 || stdio[fh] === 2) return true - } - return false -} - -function spawn (cmd, args, options) { - var cmdWillOutput = willCmdOutput(options && options.stdio) - - if (cmdWillOutput) npwr.startRunning() - var raw = _spawn(cmd, args, options) - var cooked = new EventEmitter() - - raw.on('error', function (er) { - if (cmdWillOutput) npwr.stopRunning() - er.file = cmd - cooked.emit('error', er) - }).on('close', function (code, signal) { - if (cmdWillOutput) npwr.stopRunning() - // Create ENOENT error because Node.js v0.8 will not emit - // an `error` event if the command could not be found. - if (code === 127) { - var er = new Error('spawn ENOENT') - er.code = 'ENOENT' - er.errno = 'ENOENT' - er.syscall = 'spawn' - er.file = cmd - cooked.emit('error', er) - } else { - cooked.emit('close', code, signal) - } - }) - - cooked.stdin = raw.stdin - cooked.stdout = raw.stdout - cooked.stderr = raw.stderr - cooked.kill = function (sig) { return raw.kill(sig) } - - return cooked -} diff --git a/deps/npm/lib/utils/temp-filename.js b/deps/npm/lib/utils/temp-filename.js deleted file mode 100644 index 6b8245e8b79..00000000000 --- a/deps/npm/lib/utils/temp-filename.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' -var uniqueFilename = require('unique-filename') -var npm = require('../npm.js') - -module.exports = function (prefix) { - return uniqueFilename(npm.tmp, prefix) -} diff --git a/deps/npm/lib/utils/umask.js b/deps/npm/lib/utils/umask.js deleted file mode 100644 index 2dde1befa69..00000000000 --- a/deps/npm/lib/utils/umask.js +++ /dev/null @@ -1,17 +0,0 @@ -var umask = require('umask') -var npmlog = require('npmlog') -var _fromString = umask.fromString - -module.exports = umask - -// fromString with logging callback -umask.fromString = function (val) { - _fromString(val, function (err, result) { - if (err) { - npmlog.warn('invalid umask', err.message) - } - val = result - }) - - return val -} diff --git a/deps/npm/lib/utils/unix-format-path.js b/deps/npm/lib/utils/unix-format-path.js deleted file mode 100644 index a82cd7135cc..00000000000 --- a/deps/npm/lib/utils/unix-format-path.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict' - -module.exports = function (path) { - return path.replace(/\\/g, '/') -} diff --git a/deps/npm/lib/utils/unsupported.js b/deps/npm/lib/utils/unsupported.js deleted file mode 100644 index b3a8a9b33ae..00000000000 --- a/deps/npm/lib/utils/unsupported.js +++ /dev/null @@ -1,52 +0,0 @@ -'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'} -] -var knownBroken = '<4.7.0' - -var checkVersion = exports.checkVersion = function (version) { - var versionNoPrerelease = version.replace(/-.*$/, '') - return { - version: versionNoPrerelease, - broken: semver.satisfies(versionNoPrerelease, knownBroken), - unsupported: !semver.satisfies(versionNoPrerelease, supportedNode.map(function (n) { return '^' + n.min }).join('||')) - } -} - -exports.checkForBrokenNode = function () { - var nodejs = checkVersion(process.version) - if (nodejs.broken) { - console.error('ERROR: npm is known not to run on Node.js ' + process.version) - 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('version of npm. You can find the latest release of Node.js at https://nodejs.org/') - process.exit(1) - } - }) - var supportedMajors = supportedNode.map(function (n) { return n.ver }).join(', ') - console.error("You'll need to upgrade to a newer version in order to use this") - console.error('version of npm. Supported versions are ' + supportedMajors + '. You can find the') - console.error('latest version at https://nodejs.org/') - process.exit(1) - } -} - -exports.checkForUnsupportedNode = function () { - var nodejs = checkVersion(process.version) - if (nodejs.unsupported) { - var log = require('npmlog') - var supportedMajors = supportedNode.map(function (n) { return n.ver }).join(', ') - log.warn('npm', 'npm does not support Node.js ' + process.version) - log.warn('npm', 'You should probably upgrade to a newer version of node as we') - log.warn('npm', "can't make any promises that npm will work with this version.") - log.warn('npm', 'Supported releases of Node.js are the latest release of ' + supportedMajors + '.') - log.warn('npm', 'You can find the latest version at https://nodejs.org/') - } -} diff --git a/deps/npm/lib/utils/usage.js b/deps/npm/lib/utils/usage.js deleted file mode 100644 index ba069e645e1..00000000000 --- a/deps/npm/lib/utils/usage.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var aliases = require('../config/cmd-list').aliases - -module.exports = function usage (cmd, txt, opt) { - var post = Object.keys(aliases).reduce(function (p, c) { - var val = aliases[c] - if (val !== cmd) return p - return p.concat(c) - }, []) - - if (opt || post.length > 0) txt += '\n\n' - - if (post.length === 1) { - txt += 'alias: ' - txt += post.join(', ') - } else if (post.length > 1) { - txt += 'aliases: ' - txt += post.join(', ') - } - - if (opt) { - if (post.length > 0) txt += '\n' - txt += 'common options: ' + opt - } - - return txt -} diff --git a/deps/npm/lib/utils/warn-deprecated.js b/deps/npm/lib/utils/warn-deprecated.js deleted file mode 100644 index fe5c5ec82a3..00000000000 --- a/deps/npm/lib/utils/warn-deprecated.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = warnDeprecated - -var log = require('npmlog') - -var deprecations = {} - -function warnDeprecated (type) { - return function warn (messages, instance) { - if (!instance) { - if (!deprecations[type]) { - deprecations[type] = {} - messages.forEach(function (m) { log.warn(type, m) }) - } - } else { - if (!deprecations[type]) deprecations[type] = {} - - if (!deprecations[type][instance]) { - deprecations[type][instance] = true - messages.forEach(function (m) { log.warn(type, m) }) - } - } - } -} diff --git a/deps/npm/lib/version.js b/deps/npm/lib/version.js deleted file mode 100644 index edcd664f2a7..00000000000 --- a/deps/npm/lib/version.js +++ /dev/null @@ -1,334 +0,0 @@ -'use strict' -const BB = require('bluebird') - -const assert = require('assert') -const chain = require('slide').chain -const detectIndent = require('detect-indent') -const fs = require('graceful-fs') -const readFile = BB.promisify(require('graceful-fs').readFile) -const git = require('./utils/git.js') -const lifecycle = require('./utils/lifecycle.js') -const log = require('npmlog') -const npm = require('./npm.js') -const output = require('./utils/output.js') -const parseJSON = require('./utils/parse-json.js') -const path = require('path') -const semver = require('semver') -const writeFileAtomic = require('write-file-atomic') - -version.usage = 'npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]' + - '\n(run in package dir)\n' + - "'npm -v' or 'npm --version' to print npm version " + - '(' + npm.version + ')\n' + - "'npm view version' to view a package's " + - 'published version\n' + - "'npm ls' to inspect current package/dependency versions" - -// npm version -module.exports = version -function version (args, silent, cb_) { - if (typeof cb_ !== 'function') { - cb_ = silent - silent = false - } - if (args.length > 1) return cb_(version.usage) - - readPackage(function (er, data, indent) { - if (!args.length) return dump(data, cb_) - - if (er) { - log.error('version', 'No valid package.json found') - return cb_(er) - } - - if (args[0] === 'from-git') { - retrieveTagVersion(silent, data, cb_) - } else { - var newVersion = semver.valid(args[0]) - if (!newVersion) newVersion = semver.inc(data.version, args[0]) - if (!newVersion) return cb_(version.usage) - persistVersion(newVersion, silent, data, cb_) - } - }) -} - -function retrieveTagVersion (silent, data, cb_) { - chain([ - verifyGit, - parseLastGitTag - ], function (er, results) { - if (er) return cb_(er) - var localData = { - hasGit: true, - existingTag: true - } - - var version = results[results.length - 1] - persistVersion(version, silent, data, localData, cb_) - }) -} - -function parseLastGitTag (cb) { - var options = { env: process.env } - git.whichAndExec(['describe', '--abbrev=0'], options, function (er, stdout) { - if (er) { - if (er.message.indexOf('No names found') !== -1) return cb(new Error('No tags found')) - return cb(er) - } - - var tag = stdout.trim() - var prefix = npm.config.get('tag-version-prefix') - // Strip the prefix from the start of the tag: - if (tag.indexOf(prefix) === 0) tag = tag.slice(prefix.length) - var version = semver.valid(tag) - if (!version) return cb(new Error(tag + ' is not a valid version')) - cb(null, version) - }) -} - -function persistVersion (newVersion, silent, data, localData, cb_) { - if (typeof localData === 'function') { - cb_ = localData - localData = {} - } - - if (!npm.config.get('allow-same-version') && data.version === newVersion) { - return cb_(new Error('Version not changed, might want --allow-same-version')) - } - data.version = newVersion - var lifecycleData = Object.create(data) - lifecycleData._id = data.name + '@' + newVersion - - var where = npm.prefix - chain([ - !localData.hasGit && [checkGit, localData], - [lifecycle, lifecycleData, 'preversion', where], - [updatePackage, newVersion, silent], - [lifecycle, lifecycleData, 'version', where], - [commit, localData, newVersion], - [lifecycle, lifecycleData, 'postversion', where] - ], cb_) -} - -function readPackage (cb) { - var packagePath = path.join(npm.localPrefix, 'package.json') - fs.readFile(packagePath, 'utf8', function (er, data) { - if (er) return cb(new Error(er)) - var indent - try { - indent = detectIndent(data).indent || ' ' - data = JSON.parse(data) - } catch (e) { - er = e - data = null - } - cb(er, data, indent) - }) -} - -function updatePackage (newVersion, silent, cb_) { - function cb (er) { - if (!er && !silent) output('v' + newVersion) - cb_(er) - } - - readPackage(function (er, data, indent) { - if (er) return cb(new Error(er)) - data.version = newVersion - write(data, 'package.json', indent, cb) - }) -} - -function commit (localData, newVersion, cb) { - updateShrinkwrap(newVersion, function (er, hasShrinkwrap, hasLock) { - if (er || !localData.hasGit) return cb(er) - localData.hasShrinkwrap = hasShrinkwrap - localData.hasPackageLock = hasLock - _commit(newVersion, localData, cb) - }) -} - -const SHRINKWRAP = 'npm-shrinkwrap.json' -const PKGLOCK = 'package-lock.json' - -function readLockfile (name) { - return readFile( - path.join(npm.localPrefix, name), 'utf8' - ).catch({code: 'ENOENT'}, () => null) -} - -function updateShrinkwrap (newVersion, cb) { - BB.join( - readLockfile(SHRINKWRAP), - readLockfile(PKGLOCK), - (shrinkwrap, lockfile) => { - if (!shrinkwrap && !lockfile) { - return cb(null, false, false) - } - const file = shrinkwrap ? SHRINKWRAP : PKGLOCK - let data - let indent - try { - data = parseJSON(shrinkwrap || lockfile) - indent = detectIndent(shrinkwrap || lockfile).indent || ' ' - } catch (err) { - log.error('version', `Bad ${file} data.`) - return cb(err) - } - data.version = newVersion - write(data, file, indent, (err) => { - if (err) { - log.error('version', `Failed to update version in ${file}`) - return cb(err) - } else { - return cb(null, !!shrinkwrap, !!lockfile) - } - }) - } - ) -} - -function dump (data, cb) { - var v = {} - - if (data && data.name && data.version) v[data.name] = data.version - v.npm = npm.version - Object.keys(process.versions).sort().forEach(function (k) { - v[k] = process.versions[k] - }) - - if (npm.config.get('json')) v = JSON.stringify(v, null, 2) - - output(v) - cb() -} - -function statGitFolder (cb) { - fs.stat(path.join(npm.localPrefix, '.git'), cb) -} - -function callGitStatus (cb) { - git.whichAndExec( - [ 'status', '--porcelain' ], - { env: process.env }, - cb - ) -} - -function cleanStatusLines (stdout) { - var lines = stdout.trim().split('\n').filter(function (line) { - return line.trim() && !line.match(/^\?\? /) - }).map(function (line) { - return line.trim() - }) - - return lines -} - -function verifyGit (cb) { - function checkStatus (er) { - if (er) return cb(er) - callGitStatus(checkStdout) - } - - function checkStdout (er, stdout) { - if (er) return cb(er) - var lines = cleanStatusLines(stdout) - if (lines.length > 0) { - return cb(new Error( - 'Git working directory not clean.\n' + lines.join('\n') - )) - } - - cb() - } - - statGitFolder(checkStatus) -} - -function checkGit (localData, cb) { - statGitFolder(function (er) { - var doGit = !er && npm.config.get('git-tag-version') - if (!doGit) { - if (er) log.verbose('version', 'error checking for .git', er) - log.verbose('version', 'not tagging in git') - return cb(null, false) - } - - // check for git - callGitStatus(function (er, stdout) { - if (er && er.code === 'ENOGIT') { - log.warn( - 'version', - 'This is a Git checkout, but the git command was not found.', - 'npm could not create a Git tag for this release!' - ) - return cb(null, false) - } - - var lines = cleanStatusLines(stdout) - if (lines.length && !npm.config.get('force')) { - return cb(new Error( - 'Git working directory not clean.\n' + lines.join('\n') - )) - } - localData.hasGit = true - cb(null, true) - }) - }) -} - -module.exports.buildCommitArgs = buildCommitArgs -function buildCommitArgs (args) { - args = args || [ 'commit' ] - if (!npm.config.get('commit-hooks')) args.push('-n') - return args -} - -function _commit (version, localData, cb) { - const options = { env: process.env } - const message = npm.config.get('message').replace(/%s/g, version) - const sign = npm.config.get('sign-git-tag') - const commitArgs = buildCommitArgs([ 'commit', '-m', message ]) - const flagForTag = sign ? '-sm' : '-am' - - stagePackageFiles(localData, options).then(() => { - return git.exec(commitArgs, options) - }).then(() => { - if (!localData.existingTag) { - return git.exec([ - 'tag', npm.config.get('tag-version-prefix') + version, - flagForTag, message - ], options) - } - }).nodeify(cb) -} - -function stagePackageFiles (localData, options) { - return addLocalFile('package.json', options, false).then(() => { - if (localData.hasShrinkwrap) { - return addLocalFile('npm-shrinkwrap.json', options, false) - } else if (localData.hasPackageLock) { - return addLocalFile('package-lock.json', options, false) - } - }) -} - -function addLocalFile (file, options, ignoreFailure) { - const p = git.exec(['add', path.join(npm.localPrefix, file)], options) - return ignoreFailure - ? p.catch(() => {}) - : p -} - -function write (data, file, indent, 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'), - cb - ) -} diff --git a/deps/npm/lib/view.js b/deps/npm/lib/view.js deleted file mode 100644 index e0904048df8..00000000000 --- a/deps/npm/lib/view.js +++ /dev/null @@ -1,337 +0,0 @@ -// npm view [pkg [pkg ...]] -module.exports = view - -var npm = require('./npm.js') -var readJson = require('read-package-json') -var log = require('npmlog') -var util = require('util') -var semver = require('semver') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') -var path = require('path') -var usage = require('./utils/usage') - -view.usage = usage( - 'view', - 'npm view [<@scope>/][@] [[.subfield]...]' -) - -view.completion = function (opts, cb) { - if (opts.conf.argv.remain.length <= 2) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - return cb() - } - // have the package, get the fields. - var tag = npm.config.get('tag') - mapToRegistry(opts.conf.argv.remain[2], npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, d) { - if (er) return cb(er) - var dv = d.versions[d['dist-tags'][tag]] - var fields = [] - d.versions = Object.keys(d.versions).sort(semver.compareLoose) - fields = getFields(d).concat(getFields(dv)) - cb(null, fields) - }) - }) - - function getFields (d, f, pref) { - f = f || [] - if (!d) return f - pref = pref || [] - Object.keys(d).forEach(function (k) { - if (k.charAt(0) === '_' || k.indexOf('.') !== -1) return - var p = pref.concat(k).join('.') - f.push(p) - if (Array.isArray(d[k])) { - d[k].forEach(function (val, i) { - var pi = p + '[' + i + ']' - if (val && typeof val === 'object') getFields(val, f, [p]) - else f.push(pi) - }) - return - } - if (typeof d[k] === 'object') getFields(d[k], f, [p]) - }) - return f - } -} - -function view (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - if (!args.length) args = ['.'] - - var pkg = args.shift() - var nv - if (/^[.]@/.test(pkg)) { - nv = npa.resolve(null, pkg.slice(2)) - } else { - nv = npa(pkg) - } - var name = nv.name - var local = (name === '.' || !name) - - if (npm.config.get('global') && local) { - return cb(new Error('Cannot use view command in global mode.')) - } - - if (local) { - var dir = npm.prefix - readJson(path.resolve(dir, 'package.json'), function (er, d) { - d = d || {} - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (!d.name) return cb(new Error('Invalid package.json')) - - var p = d.name - nv = npa(p) - if (pkg && ~pkg.indexOf('@')) { - nv.rawSpec = pkg.split('@')[pkg.indexOf('@')] - } - - fetchAndRead(nv, args, silent, cb) - }) - } else { - fetchAndRead(nv, args, silent, cb) - } -} - -function fetchAndRead (nv, args, silent, cb) { - // get the data about this package - var name = nv.name - var version = nv.rawSpec || npm.config.get('tag') - - mapToRegistry(name, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, data) { - if (er) return cb(er) - if (data['dist-tags'] && data['dist-tags'].hasOwnProperty(version)) { - version = data['dist-tags'][version] - } - - if (data.time && data.time.unpublished) { - var u = data.time.unpublished - er = new Error('Unpublished by ' + u.name + ' on ' + u.time) - er.statusCode = 404 - er.code = 'E404' - er.pkgid = data._id - return cb(er, data) - } - - var results = [] - var error = null - var versions = data.versions || {} - data.versions = Object.keys(versions).sort(semver.compareLoose) - if (!args.length) args = [''] - - // remove readme unless we asked for it - if (args.indexOf('readme') === -1) { - delete data.readme - } - - Object.keys(versions).forEach(function (v) { - if (semver.satisfies(v, version, true)) { - args.forEach(function (args) { - // remove readme unless we asked for it - if (args.indexOf('readme') !== -1) { - delete versions[v].readme - } - results.push(showFields(data, versions[v], args)) - }) - } - }) - results = results.reduce(reducer, {}) - var retval = results - - 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)) - }) - }) -} - -function cleanBlanks (obj) { - var clean = {} - Object.keys(obj).forEach(function (version) { - clean[version] = obj[version][''] - }) - return clean -} - -function reducer (l, r) { - if (r) { - Object.keys(r).forEach(function (v) { - l[v] = l[v] || {} - Object.keys(r[v]).forEach(function (t) { - l[v][t] = r[v][t] - }) - }) - } - - return l -} - -// return whatever was printed -function showFields (data, version, fields) { - var o = {} - ;[data, version].forEach(function (s) { - Object.keys(s).forEach(function (k) { - o[k] = s[k] - }) - }) - return search(o, fields.split('.'), version.version, fields) -} - -function search (data, fields, version, title) { - var field - var tail = fields - while (!field && fields.length) field = tail.shift() - fields = [field].concat(tail) - var o - if (!field && !tail.length) { - o = {} - o[version] = {} - o[version][title] = data - return o - } - var index = field.match(/(.+)\[([^\]]+)\]$/) - if (index) { - field = index[1] - index = index[2] - if (data.field && data.field.hasOwnProperty(index)) { - return search(data[field][index], tail, version, title) - } else { - field = field + '[' + index + ']' - } - } - if (Array.isArray(data)) { - if (data.length === 1) { - return search(data[0], fields, version, title) - } - var results = [] - data.forEach(function (data, i) { - var tl = title.length - var newt = title.substr(0, tl - fields.join('.').length - 1) + - '[' + i + ']' + [''].concat(fields).join('.') - results.push(search(data, fields.slice(), version, newt)) - }) - results = results.reduce(reducer, {}) - return results - } - if (!data.hasOwnProperty(field)) return undefined - data = data[field] - if (tail.length) { - if (typeof data === 'object') { - // there are more fields to deal with. - return search(data, tail, version, title) - } else { - return new Error('Not an object: ' + data) - } - } - o = {} - o[version] = {} - o[version][title] = data - return o -} - -function printData (data, name, cb) { - var versions = Object.keys(data) - var msg = '' - var msgJson = [] - var includeVersions = versions.length > 1 - var includeFields - - versions.forEach(function (v) { - var fields = Object.keys(data[v]) - includeFields = includeFields || (fields.length > 1) - if (npm.config.get('json')) msgJson.push({}) - fields.forEach(function (f) { - var d = cleanup(data[v][f]) - if (fields.length === 1 && npm.config.get('json')) { - msgJson[msgJson.length - 1][f] = d - } - if (includeVersions || includeFields || typeof d !== 'string') { - if (npm.config.get('json')) { - msgJson[msgJson.length - 1][f] = d - } else { - d = util.inspect(d, { showHidden: false, depth: 5, colors: npm.color, maxArrayLength: null }) - } - } else if (typeof d === 'string' && npm.config.get('json')) { - d = JSON.stringify(d) - } - if (!npm.config.get('json')) { - if (f && includeFields) f += ' = ' - if (d.indexOf('\n') !== -1) d = ' \n' + d - msg += (includeVersions ? name + '@' + v + ' ' : '') + - (includeFields ? f : '') + d + '\n' - } - }) - }) - - if (npm.config.get('json')) { - if (msgJson.length && Object.keys(msgJson[0]).length === 1) { - var k = Object.keys(msgJson[0])[0] - msgJson = msgJson.map(function (m) { return m[k] }) - } - - if (msgJson.length === 1) { - msg = JSON.stringify(msgJson[0], null, 2) + '\n' - } else if (msgJson.length > 1) { - msg = JSON.stringify(msgJson, null, 2) + '\n' - } - } - - // preserve output symmetry by adding a whitespace-only line at the end if - // there's one at the beginning - if (/^\s*\n/.test(msg)) msg += '\n' - - // disable the progress bar entirely, as we can't meaningfully update it if - // we may have partial lines printed. - log.disableProgress() - - // print directly to stdout to not unnecessarily add blank lines - process.stdout.write(msg, () => cb(null, data)) -} -function cleanup (data) { - if (Array.isArray(data)) { - return data.map(cleanup) - } - if (!data || typeof data !== 'object') return data - - if (typeof data.versions === 'object' && - data.versions && - !Array.isArray(data.versions)) { - data.versions = Object.keys(data.versions || {}) - } - - var keys = Object.keys(data) - keys.forEach(function (d) { - if (d.charAt(0) === '_') delete data[d] - else if (typeof data[d] === 'object') data[d] = cleanup(data[d]) - }) - keys = Object.keys(data) - if (keys.length <= 3 && - data.name && - (keys.length === 1 || - keys.length === 3 && data.email && data.url || - keys.length === 2 && (data.email || data.url))) { - data = unparsePerson(data) - } - return data -} -function unparsePerson (d) { - if (typeof d === 'string') return d - return d.name + - (d.email ? ' <' + d.email + '>' : '') + - (d.url ? ' (' + d.url + ')' : '') -} diff --git a/deps/npm/lib/visnup.js b/deps/npm/lib/visnup.js deleted file mode 100644 index a61bacb73bf..00000000000 --- a/deps/npm/lib/visnup.js +++ /dev/null @@ -1,43 +0,0 @@ -module.exports = visnup -var npm = require('./npm.js') -var output = require('./utils/output.js') - -var handsomeFace = [ - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 237, 236, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 235, 233, 237, 235, 233, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 235, 233, 232, 235, 235, 234, 233, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 237, 235, 232, 232, 234, 233, 233, 232, 232, 233, 232, 232, 235, 232, 233, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 232, 232, 232, 239, 238, 235, 233, 232, 232, 232, 232, 232, 232, 232, 233, 235, 232, 233, 233, 232, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 234, 234, 232, 233, 234, 233, 234, 235, 233, 235, 60, 238, 238, 234, 234, 233, 234, 233, 238, 251, 246, 233, 233, 232, 0, 0, 0, 0, 0, 0], - [0, 0, 233, 233, 233, 232, 232, 239, 249, 251, 252, 231, 231, 188, 250, 254, 59, 60, 255, 231, 231, 231, 252, 235, 239, 235, 232, 233, 0, 0, 0, 0, 0, 0], - [0, 0, 232, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 254, 238, 254, 231, 231, 231, 231, 231, 252, 233, 235, 237, 233, 234, 0, 0, 0, 0, 0], - [0, 0, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 251, 233, 233, 233, 236, 233, 0, 0, 0, 0], - [232, 233, 233, 232, 232, 246, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 249, 233, 234, 234, 0, 0, 0, 0], - [232, 232, 232, 232, 233, 249, 231, 255, 255, 255, 255, 254, 109, 60, 239, 237, 238, 237, 235, 235, 235, 235, 236, 235, 235, 235, 234, 232, 232, 232, 232, 232, 233, 0], - [0, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 235, 236, 238, 238, 235, 188, 254, 254, 145, 236, 252, 254, 254, 254, 254, 249, 236, 235, 232, 232, 233, 0], - [0, 0, 233, 237, 249, 239, 233, 252, 231, 231, 231, 231, 231, 231, 254, 235, 235, 254, 231, 231, 251, 235, 237, 231, 231, 231, 231, 7, 237, 235, 232, 233, 233, 0], - [0, 0, 0, 0, 233, 248, 239, 233, 231, 231, 231, 231, 254, 233, 233, 235, 254, 255, 231, 254, 237, 236, 254, 239, 235, 235, 233, 233, 232, 232, 233, 232, 0, 0], - [0, 0, 0, 232, 233, 246, 255, 255, 236, 236, 236, 236, 236, 255, 231, 231, 231, 231, 231, 231, 252, 234, 248, 231, 231, 231, 231, 248, 232, 232, 232, 0, 0, 0], - [0, 0, 0, 0, 235, 237, 7, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 255, 238, 235, 7, 231, 231, 231, 246, 232, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 235, 103, 188, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 252, 232, 238, 231, 231, 255, 244, 232, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 235, 236, 103, 146, 253, 255, 231, 231, 231, 231, 231, 253, 251, 250, 250, 250, 246, 232, 235, 152, 255, 146, 66, 233, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 233, 103, 146, 146, 146, 146, 254, 231, 231, 231, 109, 103, 146, 255, 188, 239, 240, 103, 255, 253, 103, 238, 234, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 232, 235, 109, 146, 146, 146, 146, 146, 252, 152, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 103, 235, 233, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 235, 235, 103, 146, 146, 146, 146, 146, 146, 188, 188, 188, 188, 188, 188, 152, 146, 146, 146, 66, 235, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 233, 235, 66, 146, 146, 146, 146, 152, 255, 146, 240, 239, 241, 109, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 237, 109, 146, 146, 146, 146, 146, 254, 231, 231, 188, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 237, 60, 103, 146, 146, 146, 146, 146, 103, 66, 60, 235, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 233, 236, 235, 237, 235, 237, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] -] - -function visnup (args, cb) { - handsomeFace.forEach(function (line) { - output(line.map(function (ch) { - return '\u001b[' + (ch ? '48;5;' + ch : ch) + 'm' - }).join(' ')) - }) - - var c = args.shift() - if (c) npm.commands[c](args, cb) - else cb() -} diff --git a/deps/npm/lib/whoami.js b/deps/npm/lib/whoami.js deleted file mode 100644 index e8af6595d15..00000000000 --- a/deps/npm/lib/whoami.js +++ /dev/null @@ -1,47 +0,0 @@ -var npm = require('./npm.js') -var output = require('./utils/output.js') - -module.exports = whoami - -whoami.usage = 'npm whoami [--registry ]\n(just prints username according to given registry)' - -function whoami (args, silent, cb) { - // FIXME: need tighter checking on this, but is a breaking change - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - var registry = npm.config.get('registry') - if (!registry) return cb(new Error('no default registry set')) - - var auth = npm.config.getCredentialsByURI(registry) - if (auth) { - if (auth.username) { - if (!silent) output(auth.username) - return process.nextTick(cb.bind(this, null, auth.username)) - } else if (auth.token) { - return npm.registry.whoami(registry, { auth: auth }, function (er, username) { - if (er) return cb(er) - if (!username) { - var needNewSession = new Error( - 'Your auth token is no longer valid. Please log in again.' - ) - needNewSession.code = 'ENEEDAUTH' - return cb(needNewSession) - } - - if (!silent) output(username) - cb(null, username) - }) - } - } - - // At this point, if they have a credentials object, it doesn't have a token - // or auth in it. Probably just the default registry. - var needAuth = new Error( - 'this command requires you to be logged in.' - ) - needAuth.code = 'ENEEDAUTH' - process.nextTick(cb.bind(this, needAuth)) -} diff --git a/deps/npm/lib/xmas.js b/deps/npm/lib/xmas.js deleted file mode 100644 index 25535533e10..00000000000 --- a/deps/npm/lib/xmas.js +++ /dev/null @@ -1,59 +0,0 @@ -// happy xmas -var log = require('npmlog') - -module.exports = function (args, cb) { - var s = process.platform === 'win32' ? ' *' : ' \u2605' - var f = '\uFF0F' - var b = '\uFF3C' - var x = process.platform === 'win32' ? ' ' : '' - var o = [ - '\u0069', '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', - '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', - '\u0020', '\u2E1B', '\u2042', '\u2E2E', '&', '@', '\uFF61' - ] - var oc = [21, 33, 34, 35, 36, 37] - var l = '\u005e' - - function w (s) { process.stderr.write(s) } - - w('\n') - ;(function T (H) { - for (var i = 0; i < H; i++) w(' ') - w(x + '\u001b[33m' + s + '\n') - var M = H * 2 - 1 - for (var L = 1; L <= H; L++) { - var O = L * 2 - 2 - var S = (M - O) / 2 - for (i = 0; i < S; i++) w(' ') - w(x + '\u001b[32m' + f) - for (i = 0; i < O; i++) { - w( - '\u001b[' + oc[Math.floor(Math.random() * oc.length)] + 'm' + - o[Math.floor(Math.random() * o.length)] - ) - } - w(x + '\u001b[32m' + b + '\n') - } - w(' ') - for (i = 1; i < H; i++) w('\u001b[32m' + l) - w('| ' + x + ' |') - for (i = 1; i < H; i++) w('\u001b[32m' + l) - if (H > 10) { - w('\n ') - for (i = 1; i < H; i++) w(' ') - w('| ' + x + ' |') - for (i = 1; i < H; i++) w(' ') - } - })(20) - w('\n\n') - log.heading = '' - log.addLevel('npm', 100000, log.headingStyle) - log.npm('loves you', 'Happy Xmas, Noders!') - cb() -} -var dg = false -Object.defineProperty(module.exports, 'usage', {get: function () { - if (dg) module.exports([], function () {}) - dg = true - return ' ' -}}) diff --git a/deps/npm/make.bat b/deps/npm/make.bat deleted file mode 100644 index 7d71f0f925f..00000000000 --- a/deps/npm/make.bat +++ /dev/null @@ -1,3 +0,0 @@ -:: The tests run "make doc" in the prepublish script, -:: so this file gives windows something that'll exit -:: successfully, without having to install make. diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 deleted file mode 100644 index a878813f91a..00000000000 --- a/deps/npm/man/man1/npm-README.1 +++ /dev/null @@ -1,178 +0,0 @@ -.TH "NPM" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm\fR \- a JavaScript package manager -.P -Build Status \fIhttps://img\.shields\.io/travis/npm/npm/latest\.svg\fR \fIhttps://travis\-ci\.org/npm/npm\fR -.SH SYNOPSIS -.P -This is just enough info to get you up and running\. -.P -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 -.P -To install an old \fBand unsupported\fR version of npm that works on node v0\.12 -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 -https://registry\.npmjs\.org by default\.\fR -.P -You can configure npm to use any compatible registry you -like, and even run your own registry\. Check out the doc on -registries \fIhttps://docs\.npmjs\.com/misc/registry\fR\|\. -.P -Use of someone else's registry may be governed by terms of use\. The -terms of use for the default public registry are available at -https://www\.npmjs\.com\|\. -.SH Super Easy Install -.P -npm is bundled with node \fIhttps://nodejs\.org/en/download/\fR\|\. -.SS Windows Computers -.P -Get the MSI \fIhttps://nodejs\.org/en/download/\fR\|\. npm is in it\. -.SS Apple Macintosh Computers -.P -Get the pkg \fIhttps://nodejs\.org/en/download/\fR\|\. npm is in it\. -.SS Other Sorts of Unices -.P -Run \fBmake install\fP\|\. npm will be installed with node\. -.P -If you want a more fancy pants install (a different version, customized -paths, etc\.) then read on\. -.SH Fancy Install (Unix) -.P -There's a pretty robust install script at -https://www\.npmjs\.com/install\.sh\|\. You can download that and run it\. -.P -Here's an example using curl: -.P -.RS 2 -.nf -curl \-L https://www\.npmjs\.com/install\.sh | sh -.fi -.RE -.SS Slightly Fancier -.P -You can set any npm configuration params with that script: -.P -.RS 2 -.nf -npm_config_prefix=/some/path sh install\.sh -.fi -.RE -.P -Or, you can run it in uber\-debuggery mode: -.P -.RS 2 -.nf -npm_debug=1 sh install\.sh -.fi -.RE -.SS Even Fancier -.P -Get the code with git\. Use \fBmake\fP to build the docs and do other stuff\. -If you plan on hacking on npm, \fBmake link\fP is your friend\. -.P -If you've got the npm source code, you can also semi\-permanently set -arbitrary config keys using the \fB\|\./configure \-\-key=val \.\.\.\fP, and then -run npm commands by doing \fBnode bin/npm\-cli\.js \fP\|\. (This is helpful -for testing, or running stuff without actually installing npm itself\.) -.SH Windows Install or Upgrade -.P -Many improvements for Windows users have been made in npm 3 \- you will have a better -experience if you run a recent version of npm\. To upgrade, either use Microsoft's -upgrade tool \fIhttps://github\.com/felixrieseberg/npm\-windows\-upgrade\fR, -download a new version of Node \fIhttps://nodejs\.org/en/download/\fR, -or follow the Windows upgrade instructions in the -npm Troubleshooting Guide \fI\|\./TROUBLESHOOTING\.md\fR\|\. -.P -If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly\. -.SH Installing on Cygwin -.P -No\. -.SH Uninstalling -.P -So sad to see you go\. -.P -.RS 2 -.nf -sudo npm uninstall npm \-g -.fi -.RE -.P -Or, if that fails, -.P -.RS 2 -.nf -sudo make uninstall -.fi -.RE -.SH More Severe Uninstalling -.P -Usually, the above instructions are sufficient\. That will remove -npm, but leave behind anything you've installed\. -.P -If you would like to remove all the packages that you have installed, -then you can use the \fBnpm ls\fP command to find them, and then \fBnpm rm\fP to -remove them\. -.P -To remove cruft left behind by npm 0\.x, you can use the included -\fBclean\-old\.sh\fP script file\. You can run it conveniently like this: -.P -.RS 2 -.nf -npm explore npm \-g \-\- sh scripts/clean\-old\.sh -.fi -.RE -.P -npm uses two configuration files, one for per\-user configs, and another -for global (every\-user) configs\. You can view them by doing: -.P -.RS 2 -.nf -npm config get userconfig # defaults to ~/\.npmrc -npm config get globalconfig # defaults to /usr/local/etc/npmrc -.fi -.RE -.P -Uninstalling npm does not remove configuration files by default\. You -must remove them yourself manually if you want them gone\. Note that -this means that future npm installs will not remember the settings that -you have chosen\. -.SH More Docs -.P -Check out the docs \fIhttps://docs\.npmjs\.com/\fR\|\. -.P -You can use the \fBnpm help\fP command to read any of them\. -.P -If you're a developer, and you want to use npm to publish your program, -you should read this \fIhttps://docs\.npmjs\.com/misc/developers\fR\|\. -.SH BUGS -.P -When you find issues, please report them: -.RS 0 -.IP \(bu 2 -web: -https://github\.com/npm/npm/issues - -.RE -.P -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 -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 -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help 7 index - -.RE - diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1 deleted file mode 100644 index 124fb542efd..00000000000 --- a/deps/npm/man/man1/npm-access.1 +++ /dev/null @@ -1,92 +0,0 @@ -.TH "NPM\-ACCESS" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-access\fR \- Set access level on published packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm access public [] -npm access restricted [] - -npm access grant [] -npm access revoke [] - -npm access ls\-packages [||] -npm access ls\-collaborators [ []] -npm access edit [] -.fi -.RE -.SH DESCRIPTION -.P -Used to set access controls on private packages\. -.P -For all of the subcommands, \fBnpm access\fP will perform actions on the packages -in the current working directory if no package name is passed to the -subcommand\. -.RS 0 -.IP \(bu 2 -public / restricted: -Set a package to be either publicly accessible or restricted\. -.IP \(bu 2 -grant / revoke: -Add or remove the ability of users and teams to have read\-only or read\-write -access to a package\. -.IP \(bu 2 -ls\-packages: -Show all of the packages a user or a team is able to access, along with the -access level, except for read\-only public packages (it won't print the whole -registry listing) -.IP \(bu 2 -ls\-collaborators: -Show all of the access privileges for a package\. Will only show permissions -for packages to which you have at least read access\. If \fB\fP is passed in, -the list is filtered only to teams \fIthat\fR user happens to belong to\. -.IP \(bu 2 -edit: -Set the access privileges for a package at once using \fB$EDITOR\fP\|\. - -.RE -.SH DETAILS -.P -\fBnpm access\fP always operates directly on the current registry, configurable -from the command line using \fB\-\-registry=\fP\|\. -.P -Unscoped packages are \fIalways public\fR\|\. -.P -Scoped packages \fIdefault to restricted\fR, but you can either publish them as -public using \fBnpm publish \-\-access=public\fP, or set their access as public using -\fBnpm access public\fP after the initial publish\. -.P -You must have privileges to set the access of a package: -.RS 0 -.IP \(bu 2 -You are an owner of an unscoped or scoped package\. -.IP \(bu 2 -You are a member of the team that owns a scope\. -.IP \(bu 2 -You have been given read\-write privileges for a package, either as a member -of a team or directly as an owner\. - -.RE -.P -If you have two\-factor authentication enabled then you'll have to pass in an -otp with \fB\-\-otp\fP when making access changes\. -.P -If your account is not paid, then attempts to publish scoped packages will fail -with an HTTP 402 status code (logically enough), unless you use -\fB\-\-access=public\fP\|\. -.P -Management of teams and team memberships is done with the \fBnpm team\fP command\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help team -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 deleted file mode 100644 index 1d0dc7d63f2..00000000000 --- a/deps/npm/man/man1/npm-adduser.1 +++ /dev/null @@ -1,103 +0,0 @@ -.TH "NPM\-ADDUSER" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-adduser\fR \- Add a registry user account -.SH SYNOPSIS -.P -.RS 2 -.nf -npm adduser [\-\-registry=url] [\-\-scope=@orgname] [\-\-always\-auth] [\-\-auth\-type=legacy] - -aliases: login, add\-user -.fi -.RE -.SH DESCRIPTION -.P -Create or verify a user named \fB\fP in the specified registry, and -save the credentials to the \fB\|\.npmrc\fP file\. If no registry is specified, -the default registry will be used (see npm help 7 \fBnpm\-config\fP)\. -.P -The username, password, and email are read in from prompts\. -.P -To reset your password, go to https://www\.npmjs\.com/forgot -.P -To change your email address, go to https://www\.npmjs\.com/email\-edit -.P -You may use this command multiple times with the same user account to -authorize on a new machine\. When authenticating on a new machine, -the username, password and email address must all match with -your existing record\. -.P -\fBnpm login\fP is an alias to \fBadduser\fP and behaves exactly the same way\. -.SH CONFIGURATION -.SS registry -.P -Default: https://registry\.npmjs\.org/ -.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 -to the scope of the project directory you're currently in, if any\. See npm help 7 \fBnpm\-scope\fP\|\. -.SS scope -.P -Default: none -.P -If specified, the user and login credentials given will be associated -with the specified scope\. See npm help 7 \fBnpm\-scope\fP\|\. You can use both at the same time, -e\.g\. -.P -.RS 2 -.nf -npm adduser \-\-registry=http://myregistry\.example\.com \-\-scope=@myco -.fi -.RE -.P -This will set a registry for the given scope and login or create a user for -that registry at the same time\. -.SS always\-auth -.P -Default: false -.P -If specified, save configuration indicating that all requests to the given -registry should include authorization information\. Useful for private -registries\. Can be used with \fB\-\-registry\fP and / or \fB\-\-scope\fP, e\.g\. -.P -.RS 2 -.nf -npm adduser \-\-registry=http://private\-registry\.example\.com \-\-always\-auth -.fi -.RE -.P -This will ensure that all requests to that registry (including for tarballs) -include an authorization header\. This setting may be necessary for use with -private registries where metadata and package tarballs are stored on hosts with -different hostnames\. See \fBalways\-auth\fP in npm help 7 \fBnpm\-config\fP for more details on -always\-auth\. Registry\-specific configuration of \fBalways\-auth\fP takes precedence -over any global configuration\. -.SS auth\-type -.RS 0 -.IP \(bu 2 -Default: \fB\|'legacy'\fP -.IP \(bu 2 -Type: \fB\|'legacy'\fP, \fB\|'sso'\fP, \fB\|'saml'\fP, \fB\|'oauth'\fP - -.RE -.P -What authentication strategy to use with \fBadduser\fP/\fBlogin\fP\|\. Some npm registries -(for example, npmE) might support alternative auth strategies besides classic -username/password entry in legacy npm\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help owner -.IP \(bu 2 -npm help whoami - -.RE - diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 deleted file mode 100644 index a146ed8ce2e..00000000000 --- a/deps/npm/man/man1/npm-bin.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-BIN" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-bin\fR \- Display npm bin folder -.SH SYNOPSIS -.P -.RS 2 -.nf -npm bin [\-g|\-\-global] -.fi -.RE -.SH DESCRIPTION -.P -Print the folder where npm will install executables\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prefix -.IP \(bu 2 -npm help root -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 deleted file mode 100644 index e4a74891780..00000000000 --- a/deps/npm/man/man1/npm-bugs.1 +++ /dev/null @@ -1,60 +0,0 @@ -.TH "NPM\-BUGS" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe -.SH SYNOPSIS -.P -.RS 2 -.nf -npm bugs [] - -aliases: issues -.fi -.RE -.SH DESCRIPTION -.P -This command tries to guess at the likely location of a package's -bug tracker URL, and then tries to open it using the \fB\-\-browser\fP -config param\. If no package name is provided, it will search for -a \fBpackage\.json\fP in the current folder and use the \fBname\fP property\. -.SH CONFIGURATION -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -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/ -.IP \(bu 2 -Type: url - -.RE -.P -The base URL of the npm package registry\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help docs -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 deleted file mode 100644 index 6ea78934f15..00000000000 --- a/deps/npm/man/man1/npm-build.1 +++ /dev/null @@ -1,41 +0,0 @@ -.TH "NPM\-BUILD" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-build\fR \- Build a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm build [] -.fi -.RE -.RS 0 -.IP \(bu 2 -\fB\fP: -A folder containing a \fBpackage\.json\fP file in its root\. - -.RE -.SH DESCRIPTION -.P -This is the plumbing command called by \fBnpm link\fP and \fBnpm install\fP\|\. -.P -It should generally be called during installation, but if you need to run it -directly, run: -.P -.RS 2 -.nf -npm run\-script build -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help link -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1 deleted file mode 100644 index 6eb57d7c102..00000000000 --- a/deps/npm/man/man1/npm-bundle.1 +++ /dev/null @@ -1,17 +0,0 @@ -.TH "NPM\-BUNDLE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-bundle\fR \- REMOVED -.SH DESCRIPTION -.P -The \fBnpm bundle\fP command has been removed in 1\.0, for the simple reason -that it is no longer necessary, as the default behavior is now to -install packages into the local space\. -.P -Just use \fBnpm install\fP now to do what \fBnpm bundle\fP used to do\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install - -.RE - diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 deleted file mode 100644 index 133b61730f7..00000000000 --- a/deps/npm/man/man1/npm-cache.1 +++ /dev/null @@ -1,96 +0,0 @@ -.TH "NPM\-CACHE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-cache\fR \- Manipulates packages cache -.SH SYNOPSIS -.P -.RS 2 -.nf -npm cache add -npm cache add -npm cache add -npm cache add @ - -npm cache clean [] -aliases: npm cache clear, npm cache rm - -npm cache verify -.fi -.RE -.SH DESCRIPTION -.P -Used to add, list, or clean the npm cache folder\. -.RS 0 -.IP \(bu 2 -add: -Add the specified package to the local cache\. This command is primarily -intended to be used internally by npm, but it can provide a way to -add data to the local installation cache explicitly\. -.IP \(bu 2 -clean: -Delete all data out of the cache folder\. -.IP \(bu 2 -verify: -Verify the contents of the cache folder, garbage collecting any unneeded data, -and verifying the integrity of the cache index and all cached data\. - -.RE -.SH DETAILS -.P -npm stores cache data in an opaque directory within the configured \fBcache\fP, -named \fB_cacache\fP\|\. This directory is a \fBcacache\fP\-based content\-addressable cache -that stores all http request data as well as other package\-related data\. This -directory is primarily accessed through \fBpacote\fP, the library responsible for -all package fetching as of npm@5\. -.P -All data that passes through the cache is fully verified for integrity on both -insertion and extraction\. Cache corruption will either trigger an error, or -signal to \fBpacote\fP that the data must be refetched, which it will do -automatically\. For this reason, it should never be necessary to clear the cache -for any reason other than reclaiming disk space, thus why \fBclean\fP now requires -\fB\-\-force\fP to run\. -.P -There is currently no method exposed through npm to inspect or directly manage -the contents of this cache\. In order to access it, \fBcacache\fP must be used -directly\. -.P -npm will not remove data by itself: the cache will grow as new packages are -installed\. -.SH A NOTE ABOUT THE CACHE'S DESIGN -.P -The npm cache is strictly a cache: it should not be relied upon as a persistent -and reliable data store for package data\. npm makes no guarantee that a -previously\-cached piece of data will be available later, and will automatically -delete corrupted contents\. The primary guarantee that the cache makes is that, -if it does return data, that data will be exactly the data that was inserted\. -.P -To run an offline verification of existing cache contents, use \fBnpm cache -verify\fP\|\. -.SH CONFIGURATION -.SS cache -.P -Default: \fB~/\.npm\fP on Posix, or \fB%AppData%/npm\-cache\fP on Windows\. -.P -The root cache folder\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help pack -.IP \(bu 2 -https://npm\.im/cacache -.IP \(bu 2 -https://npm\.im/pacote - -.RE - diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 deleted file mode 100644 index 131cd3f0d60..00000000000 --- a/deps/npm/man/man1/npm-completion.1 +++ /dev/null @@ -1,42 +0,0 @@ -.TH "NPM\-COMPLETION" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-completion\fR \- Tab Completion for npm -.SH SYNOPSIS -.P -.RS 2 -.nf -source <(npm completion) -.fi -.RE -.SH DESCRIPTION -.P -Enables tab\-completion in all npm commands\. -.P -The synopsis above -loads the completions into your current shell\. Adding it to -your ~/\.bashrc or ~/\.zshrc will make the completions available -everywhere: -.P -.RS 2 -.nf -npm completion >> ~/\.bashrc -npm completion >> ~/\.zshrc -.fi -.RE -.P -You may of course also pipe the output of npm completion to a file -such as \fB/usr/local/etc/bash_completion\.d/npm\fP if you have a system -that will read that file for you\. -.P -When \fBCOMP_CWORD\fP, \fBCOMP_LINE\fP, and \fBCOMP_POINT\fP are defined in the -environment, \fBnpm completion\fP acts in "plumbing mode", and outputs -completions based on the arguments\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help npm - -.RE - diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 deleted file mode 100644 index c284370d3f0..00000000000 --- a/deps/npm/man/man1/npm-config.1 +++ /dev/null @@ -1,97 +0,0 @@ -.TH "NPM\-CONFIG" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-config\fR \- Manage the npm configuration files -.SH SYNOPSIS -.P -.RS 2 -.nf -npm config set [\-g|\-\-global] -npm config get -npm config delete -npm config list [\-l] [\-\-json] -npm config edit -npm get -npm set [\-g|\-\-global] - -aliases: c -.fi -.RE -.SH DESCRIPTION -.P -npm gets its config settings from the command line, environment -variables, \fBnpmrc\fP files, and in some cases, the \fBpackage\.json\fP file\. -.P -See npm help 5 npmrc for more information about the npmrc files\. -.P -See npm help 7 \fBnpm\-config\fP for a more thorough discussion of the mechanisms -involved\. -.P -The \fBnpm config\fP command can be used to update and edit the contents -of the user and global npmrc files\. -.SH Sub\-commands -.P -Config supports the following sub\-commands: -.SS set -.P -.RS 2 -.nf -npm config set key value -.fi -.RE -.P -Sets the config key to the value\. -.P -If value is omitted, then it sets it to "true"\. -.SS get -.P -.RS 2 -.nf -npm config get key -.fi -.RE -.P -Echo the config value to stdout\. -.SS list -.P -.RS 2 -.nf -npm config list -.fi -.RE -.P -Show all the config settings\. Use \fB\-l\fP to also show defaults\. Use \fB\-\-json\fP -to show the settings in json format\. -.SS delete -.P -.RS 2 -.nf -npm config delete key -.fi -.RE -.P -Deletes the key from all configuration files\. -.SS edit -.P -.RS 2 -.nf -npm config edit -.fi -.RE -.P -Opens the config file in an editor\. Use the \fB\-\-global\fP flag to edit the -global config\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help npm - -.RE - diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 deleted file mode 100644 index c1ccfc6bf2d..00000000000 --- a/deps/npm/man/man1/npm-dedupe.1 +++ /dev/null @@ -1,71 +0,0 @@ -.TH "NPM\-DEDUPE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-dedupe\fR \- Reduce duplication -.SH SYNOPSIS -.P -.RS 2 -.nf -npm dedupe -npm ddp - -aliases: find\-dupes, ddp -.fi -.RE -.SH DESCRIPTION -.P -Searches the local package tree and attempts to simplify the overall -structure by moving dependencies further up the tree, where they can -be more effectively shared by multiple dependent packages\. -.P -For example, consider this dependency graph: -.P -.RS 2 -.nf -a -+\-\- b <\-\- depends on c@1\.0\.x -| `\-\- c@1\.0\.3 -`\-\- d <\-\- depends on c@~1\.0\.9 - `\-\- c@1\.0\.10 -.fi -.RE -.P -In this case, npm help \fBnpm\-dedupe\fP will transform the tree to: -.P -.RS 2 -.nf -a -+\-\- b -+\-\- d -`\-\- c@1\.0\.10 -.fi -.RE -.P -Because of the hierarchical nature of node's module lookup, b and d -will both get their dependency met by the single c package at the root -level of the tree\. -.P -The deduplication algorithm walks the tree, moving each dependency as far -up in the tree as possible, even if duplicates are not found\. This will -result in both a flat and deduplicated tree\. -.P -If a suitable version exists at the target location in the tree -already, then it will be left untouched, but the other duplicates will -be deleted\. -.P -Arguments are ignored\. Dedupe always acts on the entire tree\. -.P -Modules -.P -Note that this operation transforms the dependency tree, but will never -result in new modules being installed\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help ls -.IP \(bu 2 -npm help update -.IP \(bu 2 -npm help install - -.RE - diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 deleted file mode 100644 index d50b3eb39a8..00000000000 --- a/deps/npm/man/man1/npm-deprecate.1 +++ /dev/null @@ -1,37 +0,0 @@ -.TH "NPM\-DEPRECATE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-deprecate\fR \- Deprecate a version of a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm deprecate [@] -.fi -.RE -.SH DESCRIPTION -.P -This command will update the npm registry entry for a package, providing -a deprecation warning to all who attempt to install it\. -.P -It works on version ranges as well as specific versions, so you can do -something like this: -.P -.RS 2 -.nf -npm deprecate my\-thing@"< 0\.2\.3" "critical bug fixed in v0\.2\.3" -.fi -.RE -.P -Note that you must be the package owner to deprecate something\. See the -\fBowner\fP and \fBadduser\fP help topics\. -.P -To un\-deprecate a package, specify an empty string (\fB""\fP) for the \fBmessage\fP argument\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 deleted file mode 100644 index ba49d77fa83..00000000000 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ /dev/null @@ -1,109 +0,0 @@ -.TH "NPM\-DIST\-TAG" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-dist-tag\fR \- Modify package distribution tags -.SH SYNOPSIS -.P -.RS 2 -.nf -npm dist\-tag add @ [] -npm dist\-tag rm -npm dist\-tag ls [] - -aliases: dist\-tags -.fi -.RE -.SH DESCRIPTION -.P -Add, remove, and enumerate distribution tags on a package: -.RS 0 -.IP \(bu 2 -add: -Tags the specified version of the package with the specified tag, or the -\fB\-\-tag\fP config if not specified\. The tag you're adding is \fBlatest\fP and you -have two\-factor authentication on auth\-and\-writes then you'll need to include -an otp on the command line with \fB\-\-otp\fP\|\. -.IP \(bu 2 -rm: -Clear a tag that is no longer in use from the package\. -.IP \(bu 2 -ls: -Show all of the dist\-tags for a package, defaulting to the package in -the current prefix\. - -.RE -.P -A tag can be used when installing packages as a reference to a version instead -of using a specific version number: -.P -.RS 2 -.nf -npm install @ -.fi -.RE -.P -When installing dependencies, a preferred tagged version may be specified: -.P -.RS 2 -.nf -npm install \-\-tag -.fi -.RE -.P -This also applies to \fBnpm dedupe\fP\|\. -.P -Publishing a package sets the \fBlatest\fP tag to the published version unless the -\fB\-\-tag\fP option is used\. For example, \fBnpm publish \-\-tag=beta\fP\|\. -.P -By default, \fBnpm install \fP (without any \fB@\fP or \fB@\fP -specifier) installs the \fBlatest\fP tag\. -.SH PURPOSE -.P -Tags can be used to provide an alias instead of version numbers\. -.P -For example, a project might choose to have multiple streams of development -and use a different tag for each stream, -e\.g\., \fBstable\fP, \fBbeta\fP, \fBdev\fP, \fBcanary\fP\|\. -.P -By default, the \fBlatest\fP tag is used by npm to identify the current version of -a package, and \fBnpm install \fP (without any \fB@\fP or \fB@\fP -specifier) installs the \fBlatest\fP tag\. Typically, projects only use the \fBlatest\fP -tag for stable release versions, and use other tags for unstable versions such -as prereleases\. -.P -The \fBnext\fP tag is used by some projects to identify the upcoming version\. -.P -By default, other than \fBlatest\fP, no tag has any special significance to npm -itself\. -.SH CAVEATS -.P -This command used to be known as \fBnpm tag\fP, which only created new tags, and so -had a different syntax\. -.P -Tags must share a namespace with version numbers, because they are specified in -the same slot: \fBnpm install @\fP vs \fBnpm install @\fP\|\. -.P -Tags that can be interpreted as valid semver ranges will be rejected\. For -example, \fBv1\.4\fP cannot be used as a tag, because it is interpreted by semver as -\fB>=1\.4\.0 <1\.5\.0\fP\|\. See https://github\.com/npm/npm/issues/6082\|\. -.P -The simplest way to avoid semver problems with tags is to use tags that do not -begin with a number or the letter \fBv\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help dedupe -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 deleted file mode 100644 index f913d4ee51e..00000000000 --- a/deps/npm/man/man1/npm-docs.1 +++ /dev/null @@ -1,60 +0,0 @@ -.TH "NPM\-DOCS" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-docs\fR \- Docs for a package in a web browser maybe -.SH SYNOPSIS -.P -.RS 2 -.nf -npm docs [ [ \.\.\.]] -npm docs \. -npm home [ [ \.\.\.]] -npm home \. -.fi -.RE -.SH DESCRIPTION -.P -This command tries to guess at the likely location of a package's -documentation URL, and then tries to open it using the \fB\-\-browser\fP -config param\. You can pass multiple package names at once\. If no -package name is provided, it will search for a \fBpackage\.json\fP in -the current folder and use the \fBname\fP property\. -.SH CONFIGURATION -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -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/ -.IP \(bu 2 -Type: url - -.RE -.P -The base URL of the npm package registry\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1 deleted file mode 100644 index 649b81f2e7f..00000000000 --- a/deps/npm/man/man1/npm-doctor.1 +++ /dev/null @@ -1,113 +0,0 @@ -.TH "NPM\-DOCTOR" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-doctor\fR \- Check your environments -.SH SYNOPSIS -.P -.RS 2 -.nf -npm doctor -.fi -.RE -.SH DESCRIPTION -.P -\fBnpm doctor\fP runs a set of checks to ensure that your npm installation has -what it needs to manage your JavaScript packages\. npm is mostly a standalone tool, but it does -have some basic requirements that must be met: -.RS 0 -.IP \(bu 2 -Node\.js and git must be executable by npm\. -.IP \(bu 2 -The primary npm registry, \fBregistry\.npmjs\.com\fP, or another service that uses -the registry API, is available\. -.IP \(bu 2 -The directories that npm uses, \fBnode_modules\fP (both locally and globally), -exist and can be written by the current user\. -.IP \(bu 2 -The npm cache exists, and the package tarballs within it aren't corrupt\. - -.RE -.P -Without all of these working properly, npm may not work properly\. Many issues -are often attributable to things that are outside npm's code base, so \fBnpm -doctor\fP confirms that the npm installation is in a good state\. -.P -Also, in addition to this, there are also very many issue reports due to using -old versions of npm\. Since npm is constantly improving, running \fBnpm@latest\fP is -better than an old version\. -.P -\fBnpm doctor\fP verifies the following items in your environment, and if there are -any recommended changes, it will display them\. -.SS \fBnpm ping\fP -.P -By default, npm installs from the primary npm registry, \fBregistry\.npmjs\.org\fP\|\. -\fBnpm doctor\fP hits a special ping endpoint within the registry\. This can also be -checked with \fBnpm ping\fP\|\. If this check fails, you may be using a proxy that -needs to be configured, or may need to talk to your IT staff to get access over -HTTPS to \fBregistry\.npmjs\.org\fP\|\. -.P -This check is done against whichever registry you've configured (you can see -what that is by running \fBnpm config get registry\fP), and if you're using a -private registry that doesn't support the \fB/whoami\fP endpoint supported by the -primary registry, this check may fail\. -.SS \fBnpm \-v\fP -.P -While Node\.js may come bundled with a particular version of npm, it's the -policy of the CLI team that we recommend all users run \fBnpm@latest\fP if they -can\. As the CLI is maintained by a small team of contributors, there are only -resources for a single line of development, so npm's own long\-term support -releases typically only receive critical security and regression fixes\. The -team believes that the latest tested version of npm is almost always likely to -be the most functional and defect\-free version of npm\. -.SS \fBnode \-v\fP -.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's standard library may be -running a newer version, and some of you may be required to run an older -version of Node because of enterprise change control policies\. That's OK! But -in general, the npm team recommends that most users run Node\.js LTS\. -.SS \fBnpm config get registry\fP -.P -Some of you may be installing from private package registries for your project -or company\. That's great! Others of you may be following tutorials or -StackOverflow questions in an effort to troubleshoot problems you may be -having\. Sometimes, this may entail changing the registry you're pointing at\. -This part of \fBnpm doctor\fP just lets you, and maybe whoever's helping you with -support, know that you're not using the default registry\. -.SS \fBwhich git\fP -.P -While it's documented in the README, it may not be obvious that npm needs Git -installed to do many of the things that it does\. Also, in some cases -– especially on Windows – you may have Git set up in such a way that it's not -accessible via your \fBPATH\fP so that npm can find it\. This check ensures that Git -is available\. -.SS Permissions checks -.RS 0 -.IP \(bu 2 -Your cache must be readable and writable by the user running npm\. -.IP \(bu 2 -Global package binaries must be writable by the user running npm\. -.IP \(bu 2 -Your local \fBnode_modules\fP path, if you're running \fBnpm doctor\fP with a project -directory, must be readable and writable by the user running npm\. - -.RE -.SS Validate the checksums of cached packages -.P -When an npm package is published, the publishing process generates a checksum -that npm uses at install time to verify that the package didn't get corrupted -in transit\. \fBnpm doctor\fP uses these checksums to validate the package tarballs -in your local cache (you can see where that cache is located with \fBnpm config -get cache\fP, and see what's in that cache with \fBnpm cache ls\fP – probably more -than you were expecting!)\. In the event that there are corrupt packages in your -cache, you should probably run \fBnpm cache clean\fP and reset the cache\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help bugs -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help ping - -.RE diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 deleted file mode 100644 index 96275a8d9a1..00000000000 --- a/deps/npm/man/man1/npm-edit.1 +++ /dev/null @@ -1,50 +0,0 @@ -.TH "NPM\-EDIT" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-edit\fR \- Edit an installed package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm edit [@] -.fi -.RE -.SH DESCRIPTION -.P -Opens the package folder in the default editor (or whatever you've -configured as the npm \fBeditor\fP config \-\- see npm help 7 \fBnpm\-config\fP\|\.) -.P -After it has been edited, the package is rebuilt so as to pick up any -changes in compiled packages\. -.P -For instance, you can do \fBnpm install connect\fP to install connect -into your package, and then \fBnpm edit connect\fP to make a few -changes to your locally installed copy\. -.SH CONFIGURATION -.SS editor -.RS 0 -.IP \(bu 2 -Default: \fBEDITOR\fP environment variable if set, or \fB"vi"\fP on Posix, -or \fB"notepad"\fP on Windows\. -.IP \(bu 2 -Type: path - -.RE -.P -The command to run for \fBnpm edit\fP or \fBnpm config edit\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help explore -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 deleted file mode 100644 index 9ed823aeef3..00000000000 --- a/deps/npm/man/man1/npm-explore.1 +++ /dev/null @@ -1,55 +0,0 @@ -.TH "NPM\-EXPLORE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-explore\fR \- Browse an installed package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm explore [ \-\- ] -.fi -.RE -.SH DESCRIPTION -.P -Spawn a subshell in the directory of the installed package specified\. -.P -If a command is specified, then it is run in the subshell, which then -immediately terminates\. -.P -This is particularly handy in the case of git submodules in the -\fBnode_modules\fP folder: -.P -.RS 2 -.nf -npm explore some\-dependency \-\- git pull origin master -.fi -.RE -.P -Note that the package is \fInot\fR automatically rebuilt afterwards, so be -sure to use \fBnpm rebuild \fP if you make any changes\. -.SH CONFIGURATION -.SS shell -.RS 0 -.IP \(bu 2 -Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows -.IP \(bu 2 -Type: path - -.RE -.P -The shell to run for the \fBnpm explore\fP command\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help edit -.IP \(bu 2 -npm help rebuild -.IP \(bu 2 -npm help build -.IP \(bu 2 -npm help install - -.RE - diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 deleted file mode 100644 index 4252dff6987..00000000000 --- a/deps/npm/man/man1/npm-help-search.1 +++ /dev/null @@ -1,43 +0,0 @@ -.TH "NPM\-HELP\-SEARCH" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-help-search\fR \- Search npm help documentation -.SH SYNOPSIS -.P -.RS 2 -.nf -npm help\-search -.fi -.RE -.SH DESCRIPTION -.P -This command will search the npm markdown documentation files for the -terms provided, and then list the results, sorted by relevance\. -.P -If only one result is found, then it will show that help topic\. -.P -If the argument to \fBnpm help\fP is not a known help topic, then it will -call \fBhelp\-search\fP\|\. It is rarely if ever necessary to call this -command directly\. -.SH CONFIGURATION -.SS long -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -If true, the "long" flag will cause help\-search to output context around -where the terms were found in the documentation\. -.P -If false, then help\-search will just list out the help topics found\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -npm help help - -.RE - diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 deleted file mode 100644 index dea51fb5dc8..00000000000 --- a/deps/npm/man/man1/npm-help.1 +++ /dev/null @@ -1,54 +0,0 @@ -.TH "NPM\-HELP" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-help\fR \- Get help on npm -.SH SYNOPSIS -.P -.RS 2 -.nf -npm help [] -.fi -.RE -.SH DESCRIPTION -.P -If supplied a topic, then show the appropriate documentation page\. -.P -If the topic does not exist, or if multiple terms are provided, then run -the \fBhelp\-search\fP command to find a match\. Note that, if \fBhelp\-search\fP -finds a single subject, then it will run \fBhelp\fP on that topic, so unique -matches are equivalent to specifying a topic name\. -.SH CONFIGURATION -.SS viewer -.RS 0 -.IP \(bu 2 -Default: "man" on Posix, "browser" on Windows -.IP \(bu 2 -Type: path - -.RE -.P -The program to use to view help content\. -.P -Set to \fB"browser"\fP to view html help content in the default web browser\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -README -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help help\-search -.IP \(bu 2 -npm help 7 index - -.RE - diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 deleted file mode 100644 index 3395281ac75..00000000000 --- a/deps/npm/man/man1/npm-init.1 +++ /dev/null @@ -1,49 +0,0 @@ -.TH "NPM\-INIT" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-init\fR \- Interactively create a package\.json file -.SH SYNOPSIS -.P -.RS 2 -.nf -npm init [\-f|\-\-force|\-y|\-\-yes] -.fi -.RE -.SH DESCRIPTION -.P -This will ask you a bunch of questions, and then write a package\.json for you\. -.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\. -.P -If you already have a package\.json file, it'll read that first, and default to -the options in there\. -.P -It is strictly additive, so it does not delete options from your package\.json -without a really good reason to do so\. -.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 -.RS 0 -.IP \(bu 2 -Default: none -.IP \(bu 2 -Type: String - -.RE -.P -The scope under which the new module should be created\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -https://github\.com/isaacs/init\-package\-json -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help version -.IP \(bu 2 -npm help 7 scope - -.RE - diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1 deleted file mode 100644 index 34a306b520b..00000000000 --- a/deps/npm/man/man1/npm-install-test.1 +++ /dev/null @@ -1,33 +0,0 @@ -.TH "NPM" "" "December 2017" "" "" -.SH "NAME" -\fBnpm\fR -.SH SYNOPSIS -.P -.RS 2 -.nf -npm install\-test (with no args, in package dir) -npm install\-test [<@scope>/] -npm install\-test [<@scope>/]@ -npm install\-test [<@scope>/]@ -npm install\-test [<@scope>/]@ -npm install\-test -npm install\-test -npm install\-test - -alias: npm it -common options: [\-\-save|\-\-save\-dev|\-\-save\-optional] [\-\-save\-exact] [\-\-dry\-run] -.fi -.RE -.SH DESCRIPTION -.P -This command runs an \fBnpm install\fP followed immediately by an \fBnpm test\fP\|\. It -takes exactly the same arguments as \fBnpm install\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help test - -.RE - diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 deleted file mode 100644 index bdbc6794c9b..00000000000 --- a/deps/npm/man/man1/npm-install.1 +++ /dev/null @@ -1,524 +0,0 @@ -.TH "NPM\-INSTALL" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-install\fR \- Install a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm install (with no args, in package dir) -npm install [<@scope>/] -npm install [<@scope>/]@ -npm install [<@scope>/]@ -npm install [<@scope>/]@ -npm install :/ -npm install -npm install -npm install -npm install - -alias: npm i -common options: [\-P|\-\-save\-prod|\-D|\-\-save\-dev|\-O|\-\-save\-optional] [\-E|\-\-save\-exact] [\-B|\-\-save\-bundle] [\-\-no\-save] [\-\-dry\-run] -.fi -.RE -.SH DESCRIPTION -.P -This command installs a package, and any packages that it depends on\. If the -package has a package\-lock or shrinkwrap file, the installation of dependencies -will be driven by that, with an \fBnpm\-shrinkwrap\.json\fP taking precedence if both -files exist\. See npm help 5 package\-lock\.json and npm help shrinkwrap\. -.P -A \fBpackage\fP is: -.RS 0 -.IP \(bu 2 -a) a folder containing a program described by a npm help 5 \fBpackage\.json\fP file -.IP \(bu 2 -b) a gzipped tarball containing (a) -.IP \(bu 2 -c) a url that resolves to (b) -.IP \(bu 2 -d) a \fB@\fP that is published on the registry (see npm help 7 \fBnpm\-registry\fP) with (c) -.IP \(bu 2 -e) a \fB@\fP (see npm help \fBnpm\-dist\-tag\fP) that points to (d) -.IP \(bu 2 -f) a \fB\fP that has a "latest" tag satisfying (e) -.IP \(bu 2 -g) a \fB\fP that resolves to (a) - -.RE -.P -Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b)\. -.RS 0 -.IP \(bu 2 -\fBnpm install\fP (in package directory, no arguments): - Install the dependencies in the local node_modules folder\. - In global mode (ie, with \fB\-g\fP or \fB\-\-global\fP appended to the command), - it installs the current package context (ie, the current working - directory) as a global package\. - By default, \fBnpm install\fP will install all modules listed as dependencies - in npm help 5 \fBpackage\.json\fP\|\. - 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\|\. -.IP \(bu 2 -\fBnpm install \fP: - Install the package in the directory as a symlink in the current project\. - Its dependencies will be installed before it's linked\. If \fB\fP sits - inside the root of your project, its dependencies may be hoisted to the - toplevel \fBnode_modules\fP as they would for other types of dependencies\. -.IP \(bu 2 -\fBnpm install \fP: - Install a package that is sitting on the filesystem\. Note: if you just want - to link a dev directory into your npm root, you can do this more easily by - using \fBnpm link\fP\|\. The filename \fImust\fR use \fB\|\.tar\fP, \fB\|\.tar\.gz\fP, or \fB\|\.tgz\fP as - the extension\. - Example: -.P -.RS 2 -.nf - npm install \./package\.tgz -.fi -.RE -.IP \(bu 2 -\fBnpm install \fP: - Fetch the tarball url, and then install it\. In order to distinguish between - this and other options, the argument must start with "http://" or "https://" - Example: -.P -.RS 2 -.nf - npm install https://github\.com/indexzero/forever/tarball/v0\.5\.6 -.fi -.RE -.IP \(bu 2 -\fBnpm install [<@scope>/]\fP: - Do a \fB@\fP install, where \fB\fP is the "tag" config\. (See - npm help 7 \fBnpm\-config\fP\|\. The config's default value is \fBlatest\fP\|\.) - In most cases, this will install the version of the modules tagged as - \fBlatest\fP on the npm registry\. - Example: -.P -.RS 2 -.nf - npm install sax -.fi -.RE - \fBnpm install\fP saves any specified packages into \fBdependencies\fP by default\. - Additionally, you can control where and how they get saved with some - additional flags: -.RS 0 -.IP \(bu 2 -\fB\-P, \-\-save\-prod\fP: Package will appear in your \fBdependencies\fP\|\. This is the -.P -.RS 2 -.nf - default unless `\-D` or `\-O` are present\. -.fi -.RE -.IP \(bu 2 -\fB\-D, \-\-save\-dev\fP: Package will appear in your \fBdevDependencies\fP\|\. -.IP \(bu 2 -\fB\-O, \-\-save\-optional\fP: Package will appear in your \fBoptionalDependencies\fP\|\. -.IP \(bu 2 -\fB\-\-no\-save\fP: Prevents saving to \fBdependencies\fP\|\. -When using any of the above options to save dependencies to your -package\.json, there are two additional, optional flags: -.IP \(bu 2 -\fB\-E, \-\-save\-exact\fP: Saved dependencies will be configured with an -exact version rather than using npm's default semver range -operator\. -.IP \(bu 2 -\fB\-B, \-\-save\-bundle\fP: Saved dependencies will also be added to your \fBbundleDependencies\fP list\. -Further, if you have an \fBnpm\-shrinkwrap\.json\fP or \fBpackage\-lock\.json\fP then it -will be updated as well\. -\fB\fP is optional\. The package will be downloaded from the registry -associated with the specified scope\. If no registry is associated with -the given scope the default registry is assumed\. See npm help 7 \fBnpm\-scope\fP\|\. -Note: if you do not include the @\-symbol on your scope name, npm will -interpret this as a GitHub repository instead, see below\. Scopes names -must also be followed by a slash\. -Examples: -.P -.RS 2 -.nf -npm install sax -npm install githubname/reponame -npm install @myorg/privatepackage -npm install node\-tap \-\-save\-dev -npm install dtrace\-provider \-\-save\-optional -npm install readable\-stream \-\-save\-exact -npm install ansi\-regex \-\-save\-bundle -.fi -.RE - -.RE - -.RE -.P -.RS 2 -.nf -**Note**: If there is a file or folder named `` in the current -working directory, then it will try to install that, and only try to -fetch the package by name if it is not valid\. -.fi -.RE -.RS 0 -.IP \(bu 2 -\fBnpm install [<@scope>/]@\fP: - Install the version of the package that is referenced by the specified tag\. - If the tag does not exist in the registry data for that package, then this - will fail\. - Example: -.P -.RS 2 -.nf - npm install sax@latest - npm install @myorg/mypackage@latest -.fi -.RE -.IP \(bu 2 -\fBnpm install [<@scope>/]@\fP: - Install the specified version of the package\. This will fail if the - version has not been published to the registry\. - Example: -.P -.RS 2 -.nf - npm install sax@0\.1\.1 - npm install @myorg/privatepackage@1\.5\.0 -.fi -.RE -.IP \(bu 2 -\fBnpm install [<@scope>/]@\fP: - Install a version of the package matching the specified version range\. This - will follow the same rules for resolving dependencies described in npm help 5 \fBpackage\.json\fP\|\. - Note that most version ranges must be put in quotes so that your shell will - treat it as a single argument\. - Example: -.P -.RS 2 -.nf - npm install sax@">=0\.1\.0 <0\.2\.0" - npm install @myorg/privatepackage@">=0\.1\.0 <0\.2\.0" -.fi -.RE -.IP \(bu 2 -\fBnpm install \fP: - Installs the package from the hosted git provider, cloning it with \fBgit\fP\|\. - For a full git remote url, only that URL will be attempted\. -.P -.RS 2 -.nf - ://[[:]@][:][:][/][# | #semver:] -.fi -.RE - \fB\fP is one of \fBgit\fP, \fBgit+ssh\fP, \fBgit+http\fP, \fBgit+https\fP, or - \fBgit+file\fP\|\. - If \fB#\fP is provided, it will be used to clone exactly that - commit\. If the commit\-ish has the format \fB#semver:\fP, \fB\fP can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency\. If neither \fB#\fP or \fB#semver:\fP is - specified, then \fBmaster\fP is used\. - If the repository makes use of submodules, those submodules will be cloned - as well\. - If the package being installed contains a \fBprepare\fP script, its - \fBdependencies\fP and \fBdevDependencies\fP will be installed, and the prepare - script will be run, before the package is packaged and installed\. - The following git environment variables are recognized by npm and will be - added to the environment when running git: -.RS 0 -.IP \(bu 2 -\fBGIT_ASKPASS\fP -.IP \(bu 2 -\fBGIT_EXEC_PATH\fP -.IP \(bu 2 -\fBGIT_PROXY_COMMAND\fP -.IP \(bu 2 -\fBGIT_SSH\fP -.IP \(bu 2 -\fBGIT_SSH_COMMAND\fP -.IP \(bu 2 -\fBGIT_SSL_CAINFO\fP -.IP \(bu 2 -\fBGIT_SSL_NO_VERIFY\fP -See the git man page for details\. -Examples: -.P -.RS 2 -.nf -npm install git+ssh://git@github\.com:npm/npm\.git#v1\.0\.27 -npm install git+ssh://git@github\.com:npm/npm#semver:^5\.0 -npm install git+https://isaacs@github\.com/npm/npm\.git -npm install git://github\.com/npm/npm\.git#v1\.0\.27 -GIT_SSH_COMMAND='ssh \-i ~/\.ssh/custom_ident' npm install git+ssh://git@github\.com:npm/npm\.git -.fi -.RE - -.RE -.IP \(bu 2 -\fBnpm install /[#]\fP: -.IP \(bu 2 -\fBnpm install github:/[#]\fP: - Install the package at \fBhttps://github\.com/githubname/githubrepo\fP by - attempting to clone it using \fBgit\fP\|\. - If \fB#\fP is provided, it will be used to clone exactly that - commit\. If the commit\-ish has the format \fB#semver:\fP, \fB\fP can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency\. If neither \fB#\fP or \fB#semver:\fP is - specified, then \fBmaster\fP is used\. - As with regular git dependencies, \fBdependencies\fP and \fBdevDependencies\fP will - be installed if the package has a \fBprepare\fP script, before the package is - done installing\. - Examples: -.P -.RS 2 -.nf - npm install mygithubuser/myproject - npm install github:mygithubuser/myproject -.fi -.RE -.IP \(bu 2 -\fBnpm install gist:[/][#|#semver:]\fP: - Install the package at \fBhttps://gist\.github\.com/gistID\fP by attempting to - clone it using \fBgit\fP\|\. The GitHub username associated with the gist is - optional and will not be saved in \fBpackage\.json\fP\|\. - As with regular git dependencies, \fBdependencies\fP and \fBdevDependencies\fP will - be installed if the package has a \fBprepare\fP script, before the package is - done installing\. - Example: -.P -.RS 2 -.nf - npm install gist:101a11beef -.fi -.RE -.IP \(bu 2 -\fBnpm install bitbucket:/[#]\fP: - Install the package at \fBhttps://bitbucket\.org/bitbucketname/bitbucketrepo\fP - by attempting to clone it using \fBgit\fP\|\. - If \fB#\fP is provided, it will be used to clone exactly that - commit\. If the commit\-ish has the format \fB#semver:\fP, \fB\fP can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency\. If neither \fB#\fP or \fB#semver:\fP is - specified, then \fBmaster\fP is used\. - As with regular git dependencies, \fBdependencies\fP and \fBdevDependencies\fP will - be installed if the package has a \fBprepare\fP script, before the package is - done installing\. - Example: -.P -.RS 2 -.nf - npm install bitbucket:mybitbucketuser/myproject -.fi -.RE -.IP \(bu 2 -\fBnpm install gitlab:/[#]\fP: - Install the package at \fBhttps://gitlab\.com/gitlabname/gitlabrepo\fP - by attempting to clone it using \fBgit\fP\|\. - If \fB#\fP is provided, it will be used to clone exactly that - commit\. If the commit\-ish has the format \fB#semver:\fP, \fB\fP can - be any valid semver range or exact version, and npm will look for any tags - or refs matching that range in the remote repository, much as it would for a - registry dependency\. If neither \fB#\fP or \fB#semver:\fP is - specified, then \fBmaster\fP is used\. - As with regular git dependencies, \fBdependencies\fP and \fBdevDependencies\fP will - be installed if the package has a \fBprepare\fP script, before the package is - done installing\. - Example: -.P -.RS 2 -.nf - npm install gitlab:mygitlabuser/myproject - npm install gitlab:myusr/myproj#semver:^5\.0 -.fi -.RE - -.RE -.P -You may combine multiple arguments, and even multiple types of arguments\. -For example: -.P -.RS 2 -.nf -npm install sax@">=0\.1\.0 <0\.2\.0" bench supervisor -.fi -.RE -.P -The \fB\-\-tag\fP argument will apply to all of the specified install targets\. If a -tag with the given name exists, the tagged version is preferred over newer -versions\. -.P -The \fB\-\-dry\-run\fP argument will report in the usual way what the install would -have done without actually installing anything\. -.P -The \fB\-\-package\-lock\-only\fP argument will only update the \fBpackage\-lock\.json\fP, -instead of checking \fBnode_modules\fP and downloading dependencies\. -.P -The \fB\-f\fP or \fB\-\-force\fP argument will force npm to fetch remote resources even if a -local copy exists on disk\. -.P -.RS 2 -.nf -npm install sax \-\-force -.fi -.RE -.P -The \fB\-g\fP or \fB\-\-global\fP argument will cause npm to install the package globally -rather than locally\. See npm help 5 \fBnpm\-folders\fP\|\. -.P -The \fB\-\-global\-style\fP argument will cause npm to install the package into -your local \fBnode_modules\fP folder with the same layout it uses with the -global \fBnode_modules\fP folder\. Only your direct dependencies will show in -\fBnode_modules\fP and everything they depend on will be flattened in their -\fBnode_modules\fP folders\. This obviously will eliminate some deduping\. -.P -The \fB\-\-ignore\-scripts\fP argument will cause npm to not execute any -scripts defined in the package\.json\. See npm help 7 \fBnpm\-scripts\fP\|\. -.P -The \fB\-\-legacy\-bundling\fP argument will cause npm to install the package such -that versions of npm prior to 1\.4, such as the one included with node 0\.8, -can install the package\. This eliminates all automatic deduping\. -.P -The \fB\-\-link\fP argument will cause npm to link global installs into the -local space in some cases\. -.P -The \fB\-\-no\-bin\-links\fP argument will prevent npm from creating symlinks for -any binaries the package might contain\. -.P -The \fB\-\-no\-optional\fP argument will prevent optional dependencies from -being installed\. -.P -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\. -.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\. -.P -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 -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 -.P -To install a package, npm uses the following algorithm: -.P -.RS 2 -.nf -load the existing node_modules tree from disk -clone the tree -fetch the package\.json and assorted metadata and add it to the clone -walk the clone and add any missing dependencies - dependencies will be added as close to the top as is possible - without breaking any other modules -compare the original tree with the cloned tree and make a list of -actions to take to convert one to the other -execute all of the actions, deepest first - kinds of actions are install, update, remove and move -.fi -.RE -.P -For this \fBpackage{dep}\fP structure: \fBA{B,C}, B{C}, C{D}\fP, -this algorithm produces: -.P -.RS 2 -.nf -A -+\-\- B -+\-\- C -+\-\- D -.fi -.RE -.P -That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level\. D is still installed -at the top level because nothing conflicts with it\. -.P -For \fBA{B,C}, B{C,D@1}, C{D@2}\fP, this algorithm produces: -.P -.RS 2 -.nf -A -+\-\- B -+\-\- C - `\-\- D@2 -+\-\- D@1 -.fi -.RE -.P -Because B's D@1 will be installed in the top level, C now has to install D@2 -privately for itself\. This algorithm is deterministic, but different trees may -be produced if two dependencies are requested for installation in a different -order\. -.P -See npm help 5 folders for a more detailed description of the specific -folder structures that npm creates\. -.SS Limitations of npm's Install Algorithm -.P -npm will refuse to install any package with an identical name to the -current package\. This can be overridden with the \fB\-\-force\fP flag, but in -most cases can simply be addressed by changing the local package name\. -.P -There are some very rare and pathological edge\-cases where a cycle can -cause npm to try to install a never\-ending tree of packages\. Here is -the simplest case: -.P -.RS 2 -.nf -A \-> B \-> A' \-> B' \-> A \-> B \-> A' \-> B' \-> A \-> \.\.\. -.fi -.RE -.P -where \fBA\fP is some version of a package, and \fBA'\fP is a different version -of the same package\. Because \fBB\fP depends on a different version of \fBA\fP -than the one that is already in the tree, it must install a separate -copy\. The same is true of \fBA'\fP, which must install \fBB'\fP\|\. Because \fBB'\fP -depends on the original version of \fBA\fP, which has been overridden, the -cycle falls into infinite regress\. -.P -To avoid this situation, npm flat\-out refuses to install any -\fBname@version\fP that is already present anywhere in the tree of package -folder ancestors\. A more correct, but more complex, solution would be -to symlink the existing version into the new location\. If this ever -affects a real use\-case, it will be investigated\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help update -.IP \(bu 2 -npm help link -.IP \(bu 2 -npm help rebuild -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help build -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help dist\-tag -.IP \(bu 2 -npm help uninstall -.IP \(bu 2 -npm help shrinkwrap -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 deleted file mode 100644 index 471db86d33e..00000000000 --- a/deps/npm/man/man1/npm-link.1 +++ /dev/null @@ -1,102 +0,0 @@ -.TH "NPM\-LINK" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-link\fR \- Symlink a package folder -.SH SYNOPSIS -.P -.RS 2 -.nf -npm link (in package dir) -npm link [<@scope>/][@] - -alias: npm ln -.fi -.RE -.SH DESCRIPTION -.P -Package linking is a two\-step process\. -.P -First, \fBnpm link\fP in a package folder will create a symlink in the global folder -\fB{prefix}/lib/node_modules/\fP that links to the package where the \fBnpm -link\fP command was executed\. (see npm help 7 \fBnpm\-config\fP for the value of \fBprefix\fP)\. It -will also link any bins in the package to \fB{prefix}/bin/{name}\fP\|\. -.P -Next, in some other location, \fBnpm link package\-name\fP will create a -symbolic link from globally\-installed \fBpackage\-name\fP to \fBnode_modules/\fP -of the current folder\. -.P -Note that \fBpackage\-name\fP is taken from \fBpackage\.json\fP, -not from directory name\. -.P -The package name can be optionally prefixed with a scope\. See npm help 7 \fBnpm\-scope\fP\|\. -The scope must be preceded by an @\-symbol and followed by a slash\. -.P -When creating tarballs for \fBnpm publish\fP, the linked packages are -"snapshotted" to their current state by resolving the symbolic links\. -.P -This is handy for installing your own stuff, so that you can work on it and -test it iteratively without having to continually rebuild\. -.P -For example: -.P -.RS 2 -.nf -cd ~/projects/node\-redis # go into the package directory -npm link # creates global link -cd ~/projects/node\-bloggy # go into some other package directory\. -npm link redis # link\-install the package -.fi -.RE -.P -Now, any changes to ~/projects/node\-redis will be reflected in -~/projects/node\-bloggy/node_modules/node\-redis/\. Note that the link should -be to the package name, not the directory name for that package\. -.P -You may also shortcut the two steps in one\. For example, to do the -above use\-case in a shorter way: -.P -.RS 2 -.nf -cd ~/projects/node\-bloggy # go into the dir of your main project -npm link \.\./node\-redis # link the dir of your dependency -.fi -.RE -.P -The second line is the equivalent of doing: -.P -.RS 2 -.nf -(cd \.\./node\-redis; npm link) -npm link node\-redis -.fi -.RE -.P -That is, it first creates a global link, and then links the global -installation target into your project's \fBnode_modules\fP folder\. -.P -If your linked package is scoped (see npm help 7 \fBnpm\-scope\fP) your link command must -include that scope, e\.g\. -.P -.RS 2 -.nf -npm link @myorg/privatepackage -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 deleted file mode 100644 index fab4c6c1357..00000000000 --- a/deps/npm/man/man1/npm-logout.1 +++ /dev/null @@ -1,57 +0,0 @@ -.TH "NPM\-LOGOUT" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-logout\fR \- Log out of the registry -.SH SYNOPSIS -.P -.RS 2 -.nf -npm logout [\-\-registry=] [\-\-scope=<@scope>] -.fi -.RE -.SH DESCRIPTION -.P -When logged into a registry that supports token\-based authentication, tell the -server to end this token's session\. This will invalidate the token everywhere -you're using it, not just for the current environment\. -.P -When logged into a legacy registry that uses username and password authentication, this will -clear the credentials in your user configuration\. In this case, it will \fIonly\fR affect -the current environment\. -.P -If \fB\-\-scope\fP is provided, this will find the credentials for the registry -connected to that scope, if set\. -.SH CONFIGURATION -.SS registry -.P -Default: https://registry\.npmjs\.org/ -.P -The base URL of the npm package registry\. If \fBscope\fP is also specified, -it takes precedence\. -.SS scope -.P -Default: The scope of your current project, if any, otherwise none\. -.P -If specified, you will be logged out of the specified scope\. See npm help 7 \fBnpm\-scope\fP\|\. -.P -.RS 2 -.nf -npm logout \-\-scope=@myco -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help whoami - -.RE - diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 deleted file mode 100644 index c28056f2d07..00000000000 --- a/deps/npm/man/man1/npm-ls.1 +++ /dev/null @@ -1,153 +0,0 @@ -.TH "NPM\-LS" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-ls\fR \- List installed packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm ls [[<@scope>/] \.\.\.] - -aliases: list, la, ll -.fi -.RE -.SH DESCRIPTION -.P -This command will print to stdout all the versions of packages that are -installed, as well as their dependencies, in a tree\-structure\. -.P -Positional arguments are \fBname@version\-range\fP identifiers, which will -limit the results to only the paths to the packages named\. Note that -nested packages will \fIalso\fR show the paths to the specified packages\. -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 -└─┬ init\-package\-json@0\.0\.4 - └── promzard@0\.1\.5 -.fi -.RE -.P -It will print out extraneous, missing, and invalid packages\. -.P -If a project specifies git urls for dependencies these are shown -in parentheses after the name@version to make it easier for users to -recognize potential forks of a project\. -.P -The tree shown is the logical dependency tree, based on package -dependencies, not the physical layout of your node_modules folder\. -.P -When run as \fBll\fP or \fBla\fP, it shows extended information by default\. -.SH CONFIGURATION -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show information in JSON format\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show extended information\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show parseable output instead of tree view\. -.SS global -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -List packages in the global install prefix instead of in the current -project\. -.SS depth -.RS 0 -.IP \(bu 2 -Type: Int - -.RE -.P -Max display depth of the dependency tree\. -.SS prod / production -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -Display only the dependency tree for packages in \fBdependencies\fP\|\. -.SS dev -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -Display only the dependency tree for packages in \fBdevDependencies\fP\|\. -.SS only -.RS 0 -.IP \(bu 2 -Type: String - -.RE -.P -When "dev" or "development", is an alias to \fBdev\fP\|\. -.P -When "prod" or "production", is an alias to \fBproduction\fP\|\. -.SS link -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -Display only dependencies which are linked -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help link -.IP \(bu 2 -npm help prune -.IP \(bu 2 -npm help outdated -.IP \(bu 2 -npm help update - -.RE - diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 deleted file mode 100644 index e301f08e44b..00000000000 --- a/deps/npm/man/man1/npm-outdated.1 +++ /dev/null @@ -1,151 +0,0 @@ -.TH "NPM\-OUTDATED" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-outdated\fR \- Check for outdated packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm outdated [[<@scope>/] \.\.\.] -.fi -.RE -.SH DESCRIPTION -.P -This command will check the registry to see if any (or, specific) installed -packages are currently outdated\. -.P -In the output: -.RS 0 -.IP \(bu 2 -\fBwanted\fP is the maximum version of the package that satisfies the semver -range specified in \fBpackage\.json\fP\|\. If there's no available semver range (i\.e\. -you're running \fBnpm outdated \-\-global\fP, or the package isn't included in -\fBpackage\.json\fP), then \fBwanted\fP shows the currently\-installed version\. -.IP \(bu 2 -\fBlatest\fP is the version of the package tagged as latest in the registry\. -Running \fBnpm publish\fP with no special configuration will publish the package -with a dist\-tag of \fBlatest\fP\|\. This may or may not be the maximum version of -the package, or the most\-recently published version of the package, depending -on how the package's developer manages the latest npm help dist\-tag\. -.IP \(bu 2 -\fBlocation\fP is where in the dependency tree the package is located\. Note that -\fBnpm outdated\fP defaults to a depth of 0, so unless you override that, you'll -always be seeing only top\-level dependencies that are outdated\. -.IP \(bu 2 -\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\|\. - -.RE -.SS An example -.P -.RS 2 -.nf -$ npm outdated -Package Current Wanted Latest Location -glob 5\.0\.15 5\.0\.15 6\.0\.1 test\-outdated\-output -nothingness 0\.0\.3 git git test\-outdated\-output -npm 3\.5\.1 3\.5\.2 3\.5\.1 test\-outdated\-output -local\-dev 0\.0\.3 linked linked test\-outdated\-output -once 1\.3\.2 1\.3\.3 1\.3\.3 test\-outdated\-output -.fi -.RE -.P -With these \fBdependencies\fP: -.P -.RS 2 -.nf -{ - "glob": "^5\.0\.15", - "nothingness": "github:othiym23/nothingness#master", - "npm": "^3\.5\.1", - "once": "^1\.3\.1" -} -.fi -.RE -.P -A few things to note: -.RS 0 -.IP \(bu 2 -\fBglob\fP requires \fB^5\fP, which prevents npm from installing \fBglob@6\fP, which is -outside the semver range\. -.IP \(bu 2 -Git dependencies will always be reinstalled, because of how they're specified\. -The installed committish might satisfy the dependency specifier (if it's -something immutable, like a commit SHA), or it might not, so \fBnpm outdated\fP and -\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\|\. -.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\. - -.RE -.SH CONFIGURATION -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show information in JSON format\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show extended information\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show parseable output instead of tree view\. -.SS global -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Check packages in the global install prefix instead of in the current -project\. -.SS depth -.RS 0 -.IP \(bu 2 -Default: 0 -.IP \(bu 2 -Type: Int - -.RE -.P -Max depth for checking dependency tree\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help update -.IP \(bu 2 -npm help dist\-tag -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help 5 folders - -.RE - diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 deleted file mode 100644 index 8e0617d6e79..00000000000 --- a/deps/npm/man/man1/npm-owner.1 +++ /dev/null @@ -1,53 +0,0 @@ -.TH "NPM\-OWNER" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-owner\fR \- Manage package owners -.SH SYNOPSIS -.P -.RS 2 -.nf -npm owner add [<@scope>/] -npm owner rm [<@scope>/] -npm owner ls [<@scope>/] - -aliases: author -.fi -.RE -.SH DESCRIPTION -.P -Manage ownership of published packages\. -.RS 0 -.IP \(bu 2 -ls: -List all the users who have access to modify a package and push new versions\. -Handy when you need to know who to bug for help\. -.IP \(bu 2 -add: -Add a new user as a maintainer of a package\. This user is enabled to modify -metadata, publish new versions, and add other owners\. -.IP \(bu 2 -rm: -Remove a user from the package owner list\. This immediately revokes their -privileges\. - -.RE -.P -Note that there is only one level of access\. Either you can modify a package, -or you can't\. Future versions may contain more fine\-grained access levels, but -that is not implemented at this time\. -.P -If you have two\-factor authentication enabled with \fBauth\-and\-writes\fP then -you'll need to include an otp on the command line when changing ownership -with \fB\-\-otp\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help 7 disputes - -.RE - diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 deleted file mode 100644 index 633ceac020d..00000000000 --- a/deps/npm/man/man1/npm-pack.1 +++ /dev/null @@ -1,37 +0,0 @@ -.TH "NPM\-PACK" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-pack\fR \- Create a tarball from a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm pack [[<@scope>/]\.\.\.] -.fi -.RE -.SH DESCRIPTION -.P -For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, name, or scoped name), this -command will fetch it to the cache, and then copy the tarball to the -current working directory as \fB\-\.tgz\fP, and then write -the filenames out to stdout\. -.P -If the same package is specified multiple times, then the file will be -overwritten the second time\. -.P -If no arguments are supplied, then npm packs the current package folder\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help cache -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1 deleted file mode 100644 index 3c5a3ed9997..00000000000 --- a/deps/npm/man/man1/npm-ping.1 +++ /dev/null @@ -1,39 +0,0 @@ -.TH "NPM\-PING" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-ping\fR \- Ping npm registry -.SH SYNOPSIS -.P -.RS 2 -.nf -npm ping [\-\-registry ] -.fi -.RE -.SH DESCRIPTION -.P -Ping the configured or given npm registry and verify authentication\. -If it works it will output something like: -.P -.RS 2 -.nf -Ping success: {*Details about registry*} -.fi -.RE -.P -otherwise you will get: -.P -.RS 2 -.nf -Ping error: {*Detail about error} -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 deleted file mode 100644 index f69b65b9cac..00000000000 --- a/deps/npm/man/man1/npm-prefix.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-PREFIX" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-prefix\fR \- Display prefix -.SH SYNOPSIS -.P -.RS 2 -.nf -npm prefix [\-g] -.fi -.RE -.SH DESCRIPTION -.P -Print the local prefix to standard out\. This is the closest parent directory -to contain a package\.json file unless \fB\-g\fP is also specified\. -.P -If \fB\-g\fP is specified, this will be the value of the global prefix\. See -npm help 7 \fBnpm\-config\fP for more detail\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help root -.IP \(bu 2 -npm help bin -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1 deleted file mode 100644 index 37252a530e1..00000000000 --- a/deps/npm/man/man1/npm-profile.1 +++ /dev/null @@ -1,91 +0,0 @@ -.TH "NPM\-PROFILE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-profile\fR \- Change settings on your registry profile -.SH SYNOPSIS -.P -.RS 2 -.nf -npm profile get [\-\-json|\-\-parseable] [] -npm profile set [\-\-json|\-\-parseable] -npm profile set password -npm profile enable\-2fa [auth\-and\-writes|auth\-only] -npm profile disable\-2fa -.fi -.RE -.SH DESCRIPTION -.P -Change your profile information on the registry\. This not be available if -you're using a non\-npmjs registry\. -.RS 0 -.IP \(bu 2 -\fBnpm profile get []\fP: -Display all of the properties of your profile, or one or more specific -properties\. It looks like: - -.RE -.P -.RS 2 -.nf -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| name | example | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| email | me@example\.com (verified) | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| two factor auth | auth\-and\-writes | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| fullname | Example User | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| homepage | | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| freenode | | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| twitter | | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| github | | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| created | 2015\-02\-26T01:38:35\.892Z | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| updated | 2017\-10\-02T21:29:45\.922Z | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -.fi -.RE -.RS 0 -.IP \(bu 2 -\fBnpm profile set \fP: -Set the value of a profile property\. You can set the following properties this way: - email, fullname, homepage, freenode, twitter, github -.IP \(bu 2 -\fBnpm profile set password\fP: -Change your password\. This is interactive, you'll be prompted for your -current password and a new password\. You'll also be prompted for an OTP -if you have two\-factor authentication enabled\. -.IP \(bu 2 -\fBnpm profile enable\-2fa [auth\-and\-writes|auth\-only]\fP: -Enables two\-factor authentication\. Defaults to \fBauth\-and\-writes\fP mode\. Modes are: -.RS 0 -.IP \(bu 2 -\fBauth\-only\fP: Require an OTP when logging in or making changes to your -account's authentication\. The OTP will be required on both the website -and the command line\. -.IP \(bu 2 -\fBauth\-and\-writes\fP: Requires an OTP at all the times \fBauth\-only\fP does, and also requires one when -publishing a module, setting the \fBlatest\fP dist\-tag, or changing access -via \fBnpm access\fP and \fBnpm owner\fP\|\. - -.RE -.IP \(bu 2 -\fBnpm profile disable\-2fa\fP: -Disables two\-factor authentication\. - -.RE -.SH DETAILS -.P -All of the \fBnpm profile\fP subcommands accept \fB\-\-json\fP and \fB\-\-parseable\fP and -will tailor their output based on those\. Some of these commands may not be -available on non npmjs\.com registries\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 config - -.RE diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 deleted file mode 100644 index f84d2e41ec7..00000000000 --- a/deps/npm/man/man1/npm-prune.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-PRUNE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-prune\fR \- Remove extraneous packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm prune [[<@scope>/]\.\.\.] [\-\-production] -.fi -.RE -.SH DESCRIPTION -.P -This command removes "extraneous" packages\. If a package name is -provided, then only packages matching one of the supplied names are -removed\. -.P -Extraneous packages are packages that are not listed on the parent -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 -negate \fBNODE_ENV\fP being set to \fBproduction\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help uninstall -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help ls - -.RE - diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 deleted file mode 100644 index 2764e9e4c49..00000000000 --- a/deps/npm/man/man1/npm-publish.1 +++ /dev/null @@ -1,88 +0,0 @@ -.TH "NPM\-PUBLISH" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-publish\fR \- Publish a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm publish [|] [\-\-tag ] [\-\-access ] [\-\-otp otpcode] - -Publishes '\.' if no argument supplied -Sets tag 'latest' if no \-\-tag specified -.fi -.RE -.SH DESCRIPTION -.P -Publishes a package to the registry so that it can be installed by name\. All -files in the package directory are included if no local \fB\|\.gitignore\fP or -\fB\|\.npmignore\fP file exists\. If both files exist and a file is ignored by -\fB\|\.gitignore\fP but not by \fB\|\.npmignore\fP then it will be included\. See -npm help 7 \fBnpm\-developers\fP for full details on what's included in the published -package, as well as details on how the package is built\. -.P -By default npm will publish to the public registry\. This can be overridden by -specifying a different default registry or using a npm help 7 \fBnpm\-scope\fP in the name -(see npm help 5 \fBpackage\.json\fP)\. -.RS 0 -.IP \(bu 2 -\fB\fP: -A folder containing a package\.json file -.IP \(bu 2 -\fB\fP: -A url or file path to a gzipped tar archive containing a single folder -with a package\.json file inside\. -.IP \(bu 2 -\fB[\-\-tag ]\fP -Registers the published package with the given tag, such that \fBnpm install -@\fP will install this version\. By default, \fBnpm publish\fP updates -and \fBnpm install\fP installs the \fBlatest\fP tag\. See npm help \fBnpm\-dist\-tag\fP for -details about tags\. -.IP \(bu 2 -\fB[\-\-access ]\fP -Tells the registry whether this package should be published as public or -restricted\. Only applies to scoped packages, which default to \fBrestricted\fP\|\. -If you don't have a paid account, you must publish with \fB\-\-access public\fP -to publish scoped packages\. -.IP \(bu 2 -\fB[\-\-otp ]\fP -If you have two\-factor authentication enabled in \fBauth\-and\-writes\fP mode -then you can provide a code from your authenticator with this\. If you -don't include this and you're running from a TTY then you'll be prompted\. - -.RE -.P -Fails if the package name and version combination already exists in -the specified registry\. -.P -Once a package is published with a given name and version, that -specific name and version combination can never be used again, even if -it is removed with npm help unpublish\. -.P -As of \fBnpm@5\fP, both a sha1sum and an integrity field with a sha512sum of the -tarball will be submitted to the registry during publication\. Subsequent -installs will use the strongest supported algorithm to verify downloads\. -.P -For a "dry run" that does everything except actually publishing to the -registry, see npm help \fBnpm\-pack\fP, which figures out the files to be included and -packs them into a tarball to be uploaded to the registry\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help 7 scope -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help owner -.IP \(bu 2 -npm help deprecate -.IP \(bu 2 -npm help dist\-tag -.IP \(bu 2 -npm help pack -.IP \(bu 2 -npm help profile - -.RE - diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 deleted file mode 100644 index ab2b80391a8..00000000000 --- a/deps/npm/man/man1/npm-rebuild.1 +++ /dev/null @@ -1,26 +0,0 @@ -.TH "NPM\-REBUILD" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-rebuild\fR \- Rebuild a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm rebuild [[<@scope>/]\.\.\.] - -alias: npm rb -.fi -.RE -.SH DESCRIPTION -.P -This command runs the \fBnpm build\fP command on the matched folders\. This is useful -when you install a new version of node, and must recompile all your C++ addons with -the new binary\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help build -.IP \(bu 2 -npm help install - -.RE - diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 deleted file mode 100644 index 85b22ead2d0..00000000000 --- a/deps/npm/man/man1/npm-repo.1 +++ /dev/null @@ -1,36 +0,0 @@ -.TH "NPM\-REPO" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-repo\fR \- Open package repository page in the browser -.SH SYNOPSIS -.P -.RS 2 -.nf -npm repo [] -.fi -.RE -.SH DESCRIPTION -.P -This command tries to guess at the likely location of a package's -repository URL, and then tries to open it using the \fB\-\-browser\fP -config param\. If no package name is provided, it will search for -a \fBpackage\.json\fP in the current folder and use the \fBname\fP property\. -.SH CONFIGURATION -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The browser that is called by the \fBnpm repo\fP command to open websites\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help docs -.IP \(bu 2 -npm help config - -.RE - diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 deleted file mode 100644 index b269a5fb75b..00000000000 --- a/deps/npm/man/man1/npm-restart.1 +++ /dev/null @@ -1,61 +0,0 @@ -.TH "NPM\-RESTART" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-restart\fR \- Restart a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm restart [\-\- ] -.fi -.RE -.SH DESCRIPTION -.P -This restarts a package\. -.P -This runs a package's "stop", "restart", and "start" scripts, and associated -pre\- and post\- scripts, in the order given below: -.RS 0 -.IP 1. 3 -prerestart -.IP 2. 3 -prestop -.IP 3. 3 -stop -.IP 4. 3 -poststop -.IP 5. 3 -restart -.IP 6. 3 -prestart -.IP 7. 3 -start -.IP 8. 3 -poststart -.IP 9. 3 -postrestart - -.RE -.SH NOTE -.P -Note that the "restart" script is run \fBin addition to\fR the "stop" -and "start" scripts, not instead of them\. -.P -This is the behavior as of \fBnpm\fP major version 2\. A change in this -behavior will be accompanied by an increase in major version number -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help stop -.IP \(bu 2 -npm apihelp restart - -.RE - diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 deleted file mode 100644 index 63901eef3c5..00000000000 --- a/deps/npm/man/man1/npm-root.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-ROOT" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-root\fR \- Display npm root -.SH SYNOPSIS -.P -.RS 2 -.nf -npm root [\-g] -.fi -.RE -.SH DESCRIPTION -.P -Print the effective \fBnode_modules\fP folder to standard out\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prefix -.IP \(bu 2 -npm help bin -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 deleted file mode 100644 index 2cdde2a46cd..00000000000 --- a/deps/npm/man/man1/npm-run-script.1 +++ /dev/null @@ -1,101 +0,0 @@ -.TH "NPM\-RUN\-SCRIPT" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-run-script\fR \- Run arbitrary package scripts -.SH SYNOPSIS -.P -.RS 2 -.nf -npm run\-script [\-\-silent] [\-\- \.\.\.] - -alias: npm run -.fi -.RE -.SH DESCRIPTION -.P -This runs an arbitrary command from a package's \fB"scripts"\fP object\. If no -\fB"command"\fP is provided, it will list the available scripts\. \fBrun[\-script]\fP is -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 -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: -.P -.RS 2 -.nf -npm run test \-\- \-\-grep="pattern" -.fi -.RE -.P -The arguments will only be passed to the script specified after \fBnpm run\fP -and not to any pre or post script\. -.P -The \fBenv\fP script is a special built\-in command that can be used to list -environment variables that will be available to the script at runtime\. If an -"env" command is defined in your package, it will take precedence over the -built\-in\. -.P -In addition to the shell's pre\-existing \fBPATH\fP, \fBnpm run\fP adds -\fBnode_modules/\.bin\fP to the \fBPATH\fP provided to scripts\. Any binaries provided by -locally\-installed dependencies can be used without the \fBnode_modules/\.bin\fP -prefix\. For example, if there is a \fBdevDependency\fP on \fBtap\fP in your package, -you should write: -.P -.RS 2 -.nf -"scripts": {"test": "tap test/\\*\.js"} -.fi -.RE -.P -instead of -.P -.RS 2 -.nf -"scripts": {"test": "node_modules/\.bin/tap test/\\*\.js"} -.fi -.RE -.P -to run your tests\. -.P -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 -customize the shell with the \fBscript\-shell\fP configuration\. -.P -Scripts are run from the root of the module, regardless of what your current -working directory is when you call \fBnpm run\fP\|\. If you want your script to -use different behavior based on what subdirectory you're in, you can use the -\fBINIT_CWD\fP environment variable, which holds the full path you were in when -you ran \fBnpm run\fP\|\. -.P -\fBnpm run\fP sets the \fBNODE\fP environment variable to the \fBnode\fP executable with -which \fBnpm\fP is executed\. Also, if the \fB\-\-scripts\-prepend\-node\-path\fP is passed, -the directory within which \fBnode\fP resides is added to the -\fBPATH\fP\|\. If \fB\-\-scripts\-prepend\-node\-path=auto\fP is passed (which has been the -default in \fBnpm\fP v3), this is only performed when that \fBnode\fP executable is -not found in the \fBPATH\fP\|\. -.P -If you try to run a script without having a \fBnode_modules\fP directory and it fails, -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\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help restart -.IP \(bu 2 -npm help stop -.IP \(bu 2 -npm help 7 config - -.RE - diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 deleted file mode 100644 index f175c8628cb..00000000000 --- a/deps/npm/man/man1/npm-search.1 +++ /dev/null @@ -1,138 +0,0 @@ -.TH "NPM\-SEARCH" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-search\fR \- Search for packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm search [\-l|\-\-long] [\-\-json] [\-\-parseable] [\-\-no\-description] [search terms \.\.\.] - -aliases: s, se, find -.fi -.RE -.SH DESCRIPTION -.P -Search the registry for packages matching the search terms\. \fBnpm search\fP -performs a linear, incremental, lexically\-ordered search through package -metadata for all files in the registry\. If color is enabled, it will further -highlight the matches in the results\. -.P -Additionally, using the \fB\-\-searchopts\fP and \fB\-\-searchexclude\fP options paired with -more search terms will respectively include and exclude further patterns\. The -main difference between \fB\-\-searchopts\fP and the standard search terms is that the -former does not highlight results in the output and can be used for more -fine\-grained filtering\. Additionally, both of these can be added to \fB\|\.npmrc\fP for -default search filtering behavior\. -.P -Search also allows targeting of maintainers in search results, by prefixing -their npm username with \fB=\fP\|\. -.P -If a term starts with \fB/\fP, then it's interpreted as a regular expression and -supports standard JavaScript RegExp syntax\. A trailing \fB/\fP will be ignored in -this case\. (Note that many regular expression characters must be escaped or -quoted in most shells\.) -.SS A Note on caching -.SH CONFIGURATION -.SS description -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Used as \fB\-\-no\-description\fP, disables search matching in package descriptions and -suppresses display of that field in results\. -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Output search results as a JSON array\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Output search results as lines with tab\-separated columns\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Display full package descriptions and other long text across multiple -lines\. When disabled (default) search results are truncated to fit -neatly on a single line\. Modules with extremely long names will -fall on multiple lines\. -.SS searchopts -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Space\-separated options that are always passed to search\. -.SS searchexclude -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Space\-separated options that limit the results from search\. -.SS searchstaleness -.RS 0 -.IP \(bu 2 -Default: 900 (15 minutes) -.IP \(bu 2 -Type: Number - -.RE -.P -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/ -.IP \(bu 2 -Type: url - -.RE -.P -Search the specified registry for modules\. If you have configured npm to point -to a different default registry, such as your internal private module -repository, \fBnpm search\fP will default to that registry when searching\. Pass a -different registry url such as the default above in order to override this -setting\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help view - -.RE - diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 deleted file mode 100644 index 00347defa6d..00000000000 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ /dev/null @@ -1,38 +0,0 @@ -.TH "NPM\-SHRINKWRAP" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-shrinkwrap\fR \- Lock down dependency versions for publication -.SH SYNOPSIS -.P -.RS 2 -.nf -npm shrinkwrap -.fi -.RE -.SH DESCRIPTION -.P -This command repurposes \fBpackage\-lock\.json\fP into a publishable -\fBnpm\-shrinkwrap\.json\fP or simply creates a new one\. The file created and updated -by this command will then take precedence over any other existing or future -\fBpackage\-lock\.json\fP files\. For a detailed explanation of the design and purpose -of package locks in npm, see npm help 5 package\-locks\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 5 package\-locks -.IP \(bu 2 -npm help 5 package\-lock\.json -.IP \(bu 2 -npm help 5 shrinkwrap\.json -.IP \(bu 2 -npm help ls - -.RE - diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 deleted file mode 100644 index 44e51472051..00000000000 --- a/deps/npm/man/man1/npm-star.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-STAR" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-star\fR \- Mark your favorite packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm star [\.\.\.] -npm unstar [\.\.\.] -.fi -.RE -.SH DESCRIPTION -.P -"Starring" a package means that you have some interest in it\. It's -a vaguely positive way to show that you care\. -.P -"Unstarring" is the same thing, but in reverse\. -.P -It's a boolean thing\. Starring repeatedly has no additional effect\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help whoami -.IP \(bu 2 -npm help adduser - -.RE - diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 deleted file mode 100644 index c5a7de3cc3e..00000000000 --- a/deps/npm/man/man1/npm-stars.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-STARS" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-stars\fR \- View packages marked as favorites -.SH SYNOPSIS -.P -.RS 2 -.nf -npm stars [] -.fi -.RE -.SH DESCRIPTION -.P -If you have starred a lot of neat things and want to find them again -quickly this command lets you do just that\. -.P -You may also want to see your friend's favorite packages, in this case -you will most certainly enjoy this command\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help star -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help whoami -.IP \(bu 2 -npm help adduser - -.RE - diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 deleted file mode 100644 index 57b75de5b8e..00000000000 --- a/deps/npm/man/man1/npm-start.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-START" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-start\fR \- Start a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm start [\-\- ] -.fi -.RE -.SH DESCRIPTION -.P -This runs an arbitrary command specified in the package's \fB"start"\fP property of -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 -use custom arguments when executing scripts\. Refer to npm help run\-script for -more details\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help restart -.IP \(bu 2 -npm help stop - -.RE - diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 deleted file mode 100644 index 674ed9a530d..00000000000 --- a/deps/npm/man/man1/npm-stop.1 +++ /dev/null @@ -1,28 +0,0 @@ -.TH "NPM\-STOP" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-stop\fR \- Stop a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm stop [\-\- ] -.fi -.RE -.SH DESCRIPTION -.P -This runs a package's "stop" script, if one was provided\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help restart - -.RE - diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1 deleted file mode 100644 index cb75eeeec92..00000000000 --- a/deps/npm/man/man1/npm-team.1 +++ /dev/null @@ -1,64 +0,0 @@ -.TH "NPM\-TEAM" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-team\fR \- Manage organization teams and team memberships -.SH SYNOPSIS -.P -.RS 2 -.nf -npm team create -npm team destroy - -npm team add -npm team rm - -npm team ls | - -npm team edit -.fi -.RE -.SH DESCRIPTION -.P -Used to manage teams in organizations, and change team memberships\. Does not -handle permissions for packages\. -.P -Teams must always be fully qualified with the organization/scope they belong to -when operating on them, separated by a colon (\fB:\fP)\. That is, if you have a -\fBdevelopers\fP team on a \fBfoo\fP organization, you must always refer to that team as -\fBfoo:developers\fP in these commands\. -.RS 0 -.IP \(bu 2 -create / destroy: -Create a new team, or destroy an existing one\. -.IP \(bu 2 -add / rm: -Add a user to an existing team, or remove a user from a team they belong to\. -.IP \(bu 2 -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\. - -.RE -.SH DETAILS -.P -\fBnpm team\fP always operates directly on the current registry, configurable from -the command line using \fB\-\-registry=\fP\|\. -.P -In order to create teams and manage team membership, you must be a \fIteam admin\fR -under the given organization\. Listing teams and team memberships may be done by -any member of the organizations\. -.P -Organization creation and management of team admins and \fIorganization\fR members -is done through the website, not the npm CLI\. -.P -To use teams to manage permissions on packages belonging to your organization, -use the \fBnpm access\fP command to grant or revoke the appropriate permissions\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help access -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 deleted file mode 100644 index 2b03620434d..00000000000 --- a/deps/npm/man/man1/npm-test.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-TEST" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-test\fR \- Test a package -.SH SYNOPSIS -.P -.RS 2 -.nf - npm test [\-\- ] - - aliases: t, tst -.fi -.RE -.SH DESCRIPTION -.P -This runs a package's "test" script, if one was provided\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help restart -.IP \(bu 2 -npm help stop - -.RE - diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1 deleted file mode 100644 index 8eb645e9fa4..00000000000 --- a/deps/npm/man/man1/npm-token.1 +++ /dev/null @@ -1,73 +0,0 @@ -.TH "NPM\-TOKEN" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-token\fR \- Manage your authentication tokens -.SH SYNOPSIS -.P -.RS 2 -.nf -npm token list [\-\-json|\-\-parseable] -npm token create [\-\-read\-only] [\-\-cidr=1\.1\.1\.1/24,2\.2\.2\.2/16] -npm token revoke -.fi -.RE -.SH DESCRIPTION -.P -This list you list, create and revoke authentication tokens\. -.RS 0 -.IP \(bu 2 -\fBnpm token list\fP: -Shows a table of all active authentication tokens\. You can request this as -JSON with \fB\-\-json\fP or tab\-separated values with \fB\-\-parseable\fP\|\. -.P -.RS 2 -.nf -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| id | token | created | read\-only | CIDR whitelist | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| 7f3134 | 1fa9ba… | 2017\-10\-02 | yes | | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| c03241 | af7aef… | 2017\-10\-02 | no | 192\.168\.0\.1/24 | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| e0cf92 | 3a436a… | 2017\-10\-02 | no | | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| 63eb9d | 74ef35… | 2017\-09\-28 | no | | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| 2daaa8 | cbad5f… | 2017\-09\-26 | no | | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| 68c2fe | 127e51… | 2017\-09\-23 | no | | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| 6334e1 | 1dadd1… | 2017\-09\-23 | no | | -+\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -.fi -.RE -.IP \(bu 2 -\fBnpm token create [\-\-read\-only] [\-\-cidr=]\fP: -Create a new authentication token\. It can be \fB\-\-read\-only\fP or accept a list of -CIDR \fIhttps://en\.wikipedia\.org/wiki/Classless_Inter\-Domain_Routing\fR ranges to -limit use of this token to\. This will prompt you for your password, and, if you have -two\-factor authentication enabled, an otp\. - -.RE -.P -.RS 2 -.nf -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| token | a73c9572\-f1b9\-8983\-983d\-ba3ac3cc913d | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| cidr_whitelist | | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| readonly | false | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -| created | 2017\-10\-02T07:52:24\.838Z | -+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ -.fi -.RE -.RS 0 -.IP \(bu 2 -\fBnpm token revoke \fP: -This removes an authentication token, making it immediately unusable\. This can accept -both complete tokens (as you get back from \fBnpm token create\fP and will -find in your \fB\|\.npmrc\fP) and ids as seen in the \fBnpm token list\fP output\. -This will NOT accept the truncated token found in \fBnpm token list\fP output\. - -.RE diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 deleted file mode 100644 index be83b3f7a8d..00000000000 --- a/deps/npm/man/man1/npm-uninstall.1 +++ /dev/null @@ -1,75 +0,0 @@ -.TH "NPM\-UNINSTALL" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-uninstall\fR \- Remove a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm uninstall [<@scope>/][@]\.\.\. [\-S|\-\-save|\-D|\-\-save\-dev|\-O|\-\-save\-optional|\-\-no\-save] - -aliases: remove, rm, r, un, unlink -.fi -.RE -.SH DESCRIPTION -.P -This uninstalls a package, completely removing everything npm installed -on its behalf\. -.P -Example: -.P -.RS 2 -.nf -npm uninstall sax -.fi -.RE -.P -In global mode (ie, with \fB\-g\fP or \fB\-\-global\fP appended to the command), -it uninstalls the current package context as a global package\. -.P -\fBnpm uninstall\fP takes 3 exclusive, optional flags which save or update -the package version in your main package\.json: -.RS 0 -.IP \(bu 2 -\fB\-S, \-\-save\fP: Package will be removed from your \fBdependencies\fP\|\. -.IP \(bu 2 -\fB\-D, \-\-save\-dev\fP: Package will be removed from your \fBdevDependencies\fP\|\. -.IP \(bu 2 -\fB\-O, \-\-save\-optional\fP: Package will be removed from your \fBoptionalDependencies\fP\|\. -.IP \(bu 2 -\fB\-\-no\-save\fP: Package will not be removed from your \fBpackage\.json\fP file\. - -.RE -.P -Further, if you have an \fBnpm\-shrinkwrap\.json\fP then it will be updated as -well\. -.P -Scope is optional and follows the usual rules for npm help 7 \fBnpm\-scope\fP\|\. -.P -Examples: -.P -.RS 2 -.nf -npm uninstall sax \-\-save -npm uninstall @myorg/privatepackage \-\-save -npm uninstall node\-tap \-\-save\-dev -npm uninstall dtrace\-provider \-\-save\-optional -npm uninstall lodash \-\-no\-save -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prune -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 deleted file mode 100644 index 224e04f1bb2..00000000000 --- a/deps/npm/man/man1/npm-unpublish.1 +++ /dev/null @@ -1,52 +0,0 @@ -.TH "NPM\-UNPUBLISH" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-unpublish\fR \- Remove a package from the registry -.SH SYNOPSIS -.P -.RS 2 -.nf -npm unpublish [<@scope>/][@] -.fi -.RE -.SH WARNING -.P -\fBIt is generally considered bad behavior to remove versions of a library -that others are depending on!\fR -.P -Consider using the \fBdeprecate\fP command -instead, if your intent is to encourage users to upgrade\. -.P -There is plenty of room on the registry\. -.SH DESCRIPTION -.P -This removes a package version from the registry, deleting its -entry and removing the tarball\. -.P -If no version is specified, or if all versions are removed then -the root package entry is removed from the registry entirely\. -.P -Even if a package version is unpublished, that specific name and -version combination can never be reused\. In order to publish the -package again, a new version number must be used\. -.P -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\. -.P -The scope is optional and follows the usual rules for npm help 7 \fBnpm\-scope\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help deprecate -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help owner - -.RE - diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 deleted file mode 100644 index d8ae500df08..00000000000 --- a/deps/npm/man/man1/npm-update.1 +++ /dev/null @@ -1,167 +0,0 @@ -.TH "NPM\-UPDATE" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-update\fR \- Update a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm update [\-g] [\.\.\.] - -aliases: up, upgrade -.fi -.RE -.SH DESCRIPTION -.P -This command will update all the packages listed to the latest version -(specified by the \fBtag\fP config), respecting semver\. -.P -It will also install missing packages\. As with all commands that install -packages, the \fB\-\-dev\fP flag will cause \fBdevDependencies\fP to be processed -as well\. -.P -If the \fB\-g\fP flag is specified, this command will update globally installed -packages\. -.P -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\|\. -.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 -described below\. -.P -For the examples below, assume that the current package is \fBapp\fP and it depends -on dependencies, \fBdep1\fP (\fBdep2\fP, \.\. etc\.)\. The published versions of \fBdep1\fP are: -.P -.RS 2 -.nf -{ - "dist\-tags": { "latest": "1\.2\.2" }, - "versions": [ - "1\.2\.2", - "1\.2\.1", - "1\.2\.0", - "1\.1\.2", - "1\.1\.1", - "1\.0\.0", - "0\.4\.1", - "0\.4\.0", - "0\.2\.0" - ] -} -.fi -.RE -.SS Caret Dependencies -.P -If \fBapp\fP\|'s \fBpackage\.json\fP contains: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^1\.1\.1" -} -.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\|\. -.SS Tilde Dependencies -.P -However, if \fBapp\fP\|'s \fBpackage\.json\fP contains: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "~1\.1\.1" -} -.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\|\. -.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: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^0\.2\.0" -} -.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\|\. -.P -If the dependence were on \fB^0\.4\.0\fP: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^0\.4\.0" -} -.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\. -.SS Updating Globally\-Installed Packages -.P -\fBnpm update \-g\fP will apply the \fBupdate\fP action to each globally installed -package that is \fBoutdated\fP \-\- that is, has a version that is different from -\fBlatest\fP\|\. -.P -NOTE: If a package has been upgraded to a version newer than \fBlatest\fP, it will -be \fIdowngraded\fR\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help outdated -.IP \(bu 2 -npm help shrinkwrap -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help ls - -.RE - diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 deleted file mode 100644 index 9601e4f1883..00000000000 --- a/deps/npm/man/man1/npm-version.1 +++ /dev/null @@ -1,162 +0,0 @@ -.TH "NPM\-VERSION" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-version\fR \- Bump a package version -.SH SYNOPSIS -.P -.RS 2 -.nf -npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease | from\-git] - -\|'npm [\-v | \-\-version]' to print npm version -\|'npm view version' to view a package's published version -\|'npm ls' to inspect current package/dependency versions -.fi -.RE -.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\|\. -.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, -\fBprepatch\fP, \fBpreminor\fP, \fBpremajor\fP, \fBprerelease\fP), or \fBfrom\-git\fP\|\. In the second case, -the existing version will be incremented by 1 in the specified field\. -\fBfrom\-git\fP will try to read the latest git tag, and use that as the new npm version\. -.P -If run in a git repo, it will also create a version commit and tag\. -This behavior is controlled by \fBgit\-tag\-version\fP (see below), and can -be disabled on the command line by running \fBnpm \-\-no\-git\-tag\-version version\fP\|\. -It will fail if the working directory is not clean, unless the \fB\-f\fP or -\fB\-\-force\fP flag is set\. -.P -If supplied with \fB\-m\fP or \fB\-\-message\fP config option, npm will -use it as a commit message when creating a version commit\. If the -\fBmessage\fP config contains \fB%s\fP then that will be replaced with the -resulting version number\. For example: -.P -.RS 2 -.nf -npm version patch \-m "Upgrade to %s for reasons" -.fi -.RE -.P -If the \fBsign\-git\-tag\fP config is set, then the tag will be signed using -the \fB\-s\fP flag to git\. Note that you must have a default GPG key set up -in your git config for this to work properly\. For example: -.P -.RS 2 -.nf -$ npm config set sign\-git\-tag true -$ npm version patch - -You need a passphrase to unlock the secret key for -user: "isaacs (http://blog\.izs\.me/) " -2048\-bit RSA key, ID 6C481CF6, created 2010\-08\-31 - -Enter passphrase: -.fi -.RE -.P -If \fBpreversion\fP, \fBversion\fP, or \fBpostversion\fP are in the \fBscripts\fP property of -the package\.json, they will be executed as part of running \fBnpm version\fP\|\. -.P -The exact order of execution is as follows: -.RS 0 -.IP 1. 3 -Check to make sure the git working directory is clean before we get started\. -Your scripts may add files to the commit in future steps\. -This step is skipped if the \fB\-\-force\fP flag is set\. -.IP 2. 3 -Run the \fBpreversion\fP script\. These scripts have access to the old \fBversion\fP in package\.json\. -A typical use would be running your full test suite before deploying\. -Any files you want added to the commit should be explicitly added using \fBgit add\fP\|\. -.IP 3. 3 -Bump \fBversion\fP in \fBpackage\.json\fP as requested (\fBpatch\fP, \fBminor\fP, \fBmajor\fP, etc)\. -.IP 4. 3 -Run the \fBversion\fP script\. These scripts have access to the new \fBversion\fP in package\.json -(so they can incorporate it into file headers in generated files for example)\. -Again, scripts should explicitly add generated files to the commit using \fBgit add\fP\|\. -.IP 5. 3 -Commit and tag\. -.IP 6. 3 -Run the \fBpostversion\fP script\. Use it to clean up the file system or automatically push -the commit and/or tag\. - -.RE -.P -Take the following example: -.P -.RS 2 -.nf -"scripts": { - "preversion": "npm test", - "version": "npm run build && git add \-A dist", - "postversion": "git push && git push \-\-tags && rm \-rf build/temp" -} -.fi -.RE -.P -This runs all your tests, and proceeds only if they pass\. Then runs your \fBbuild\fP script, and -adds everything in the \fBdist\fP directory to the commit\. After the commit, it pushes the new commit -and tag up to the server, and deletes the \fBbuild/temp\fP directory\. -.SH CONFIGURATION -.SS allow\-same\-version -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Prevents throwing an error when \fBnpm version\fP is used to set the new version -to the same value as the current version\. -.SS git\-tag\-version -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Commit and tag the version change\. -.SS commit\-hooks -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Run git commit hooks when committing the version change\. -.SS sign\-git\-tag -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Pass the \fB\-s\fP flag to git to sign the tag\. -.P -Note that you must have a default GPG key set up in your git config for this to work properly\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 7 semver -.IP \(bu 2 -npm help 7 config - -.RE - diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 deleted file mode 100644 index 2c18268271a..00000000000 --- a/deps/npm/man/man1/npm-view.1 +++ /dev/null @@ -1,146 +0,0 @@ -.TH "NPM\-VIEW" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-view\fR \- View registry info -.SH SYNOPSIS -.P -.RS 2 -.nf -npm view [<@scope>/][@] [[\.]\.\.\.] - -aliases: info, show, v -.fi -.RE -.SH DESCRIPTION -.P -This command shows data about a package and prints it to the stream -referenced by the \fBoutfd\fP config, which defaults to stdout\. -.P -To show the package registry entry for the \fBconnect\fP package, you can do -this: -.P -.RS 2 -.nf -npm view connect -.fi -.RE -.P -The default version is "latest" if unspecified\. -.P -Field names can be specified after the package descriptor\. -For example, to show the dependencies of the \fBronn\fP package at version -0\.3\.5, you could do the following: -.P -.RS 2 -.nf -npm view ronn@0\.3\.5 dependencies -.fi -.RE -.P -You can view child fields by separating them with a period\. -To view the git repository URL for the latest version of npm, you could -do this: -.P -.RS 2 -.nf -npm view npm repository\.url -.fi -.RE -.P -This makes it easy to view information about a dependency with a bit of -shell scripting\. For example, to view all the data about the version of -opts that ronn depends on, you can do this: -.P -.RS 2 -.nf -npm view opts@$(npm view ronn dependencies\.opts) -.fi -.RE -.P -For fields that are arrays, requesting a non\-numeric field will return -all of the values from the objects in the list\. For example, to get all -the contributor names for the "express" project, you can do this: -.P -.RS 2 -.nf -npm view express contributors\.email -.fi -.RE -.P -You may also use numeric indices in square braces to specifically select -an item in an array field\. To just get the email address of the first -contributor in the list, you can do this: -.P -.RS 2 -.nf -npm view express contributors[0]\.email -.fi -.RE -.P -Multiple fields may be specified, and will be printed one after another\. -For example, to get all the contributor names and email addresses, you -can do this: -.P -.RS 2 -.nf -npm view express contributors\.name contributors\.email -.fi -.RE -.P -"Person" fields are shown as a string if they would be shown as an -object\. So, for example, this will show the list of npm contributors in -the shortened string format\. (See npm help 5 \fBpackage\.json\fP for more on this\.) -.P -.RS 2 -.nf -npm view npm contributors -.fi -.RE -.P -If a version range is provided, then data will be printed for every -matching version of the package\. This will show which version of jsdom -was required by each matching version of yui3: -.P -.RS 2 -.nf -npm view yui3@'>0\.5\.4' dependencies\.jsdom -.fi -.RE -.P -To show the \fBconnect\fP package version history, you can do -this: -.P -.RS 2 -.nf -npm view connect versions -.fi -.RE -.SH OUTPUT -.P -If only a single string field for a single version is output, then it -will not be colorized or quoted, so as to enable piping the output to -another command\. If the field is an object, it will be output as a JavaScript object literal\. -.P -If the \-\-json flag is given, the outputted fields will be JSON\. -.P -If the version range matches multiple versions, than each printed value -will be prefixed with the version it applies to\. -.P -If multiple fields are requested, than each of them are prefixed with -the field name\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help search -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help docs - -.RE - diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 deleted file mode 100644 index 2f096ac2a0c..00000000000 --- a/deps/npm/man/man1/npm-whoami.1 +++ /dev/null @@ -1,26 +0,0 @@ -.TH "NPM\-WHOAMI" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-whoami\fR \- Display npm username -.SH SYNOPSIS -.P -.RS 2 -.nf -npm whoami [\-\-registry ] -.fi -.RE -.SH DESCRIPTION -.P -Print the \fBusername\fP config to standard output\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help adduser - -.RE - diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 deleted file mode 100644 index 42eb2962500..00000000000 --- a/deps/npm/man/man1/npm.1 +++ /dev/null @@ -1,205 +0,0 @@ -.TH "NPM" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm\fR \- javascript package manager -.SH SYNOPSIS -.P -.RS 2 -.nf -npm [args] -.fi -.RE -.SH VERSION -.P -5.6.0 -.SH DESCRIPTION -.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 -conflicts intelligently\. -.P -It is extremely configurable to support a wide variety of use cases\. -Most commonly, it is used to publish, discover, install, and develop node -programs\. -.P -Run \fBnpm help\fP to get a list of available commands\. -.SH INTRODUCTION -.P -You probably got npm because you want to install stuff\. -.P -Use \fBnpm install blerg\fP to install the latest version of "blerg"\. Check out -npm help \fBnpm\-install\fP for more info\. It can do a lot of stuff\. -.P -Use the \fBnpm search\fP command to show everything that's available\. -Use \fBnpm ls\fP to show everything you've installed\. -.SH DEPENDENCIES -.P -If a package references to another package with a git URL, npm depends -on a preinstalled git\. -.P -If one of the packages npm tries to install is a native node module and -requires compiling of C++ Code, npm will use -node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR for that task\. -For a Unix system, node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR -needs Python, make and a buildchain like GCC\. On Windows, -Python and Microsoft Visual Studio C++ are needed\. Python 3 is -not supported by node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR\|\. -For more information visit -the node\-gyp repository \fIhttps://github\.com/TooTallNate/node\-gyp\fR and -the node\-gyp Wiki \fIhttps://github\.com/TooTallNate/node\-gyp/wiki\fR\|\. -.SH DIRECTORIES -.P -See npm help 5 \fBnpm\-folders\fP to learn about where npm puts stuff\. -.P -In particular, npm has two modes of operation: -.RS 0 -.IP \(bu 2 -global mode: -.br -npm installs packages into the install prefix at -\fBprefix/lib/node_modules\fP and bins are installed in \fBprefix/bin\fP\|\. -.IP \(bu 2 -local mode: -.br -npm installs packages into the current project directory, which -defaults to the current working directory\. Packages are installed to -\fB\|\./node_modules\fP, and bins are installed to \fB\|\./node_modules/\.bin\fP\|\. - -.RE -.P -Local mode is the default\. Use \fB\-g\fP or \fB\-\-global\fP on any command to -operate in global mode instead\. -.SH DEVELOPER USAGE -.P -If you're using npm to develop and publish your code, check out the -following help topics: -.RS 0 -.IP \(bu 2 -json: -Make a package\.json file\. See npm help 5 \fBpackage\.json\fP\|\. -.IP \(bu 2 -link: -For linking your current working code into Node's path, so that you -don't have to reinstall every time you make a change\. Use -\fBnpm link\fP to do this\. -.IP \(bu 2 -install: -It's a good idea to install things if you don't need the symbolic link\. -Especially, installing other peoples code from the registry is done via -\fBnpm install\fP -.IP \(bu 2 -adduser: -Create an account or log in\. Credentials are stored in the -user config file\. -.IP \(bu 2 -publish: -Use the \fBnpm publish\fP command to upload your code to the registry\. - -.RE -.SH CONFIGURATION -.P -npm is extremely configurable\. It reads its configuration options from -5 places\. -.RS 0 -.IP \(bu 2 -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 -to boolean \fBtrue\fP\|\. -.IP \(bu 2 -Environment Variables: -.br -Set any config by prefixing the name in an environment variable with -\fBnpm_config_\fP\|\. For example, \fBexport npm_config_key=val\fP\|\. -.IP \(bu 2 -User Configs: -.br -The file at $HOME/\.npmrc is an ini\-formatted list of configs\. If -present, it is parsed\. If the \fBuserconfig\fP option is set in the cli -or env, then that will be used instead\. -.IP \(bu 2 -Global Configs: -.br -The file found at \.\./etc/npmrc (from the node executable, by default -this resolves to /usr/local/etc/npmrc) will be parsed if it is found\. -If the \fBglobalconfig\fP option is set in the cli, env, or user config, -then that file is parsed instead\. -.IP \(bu 2 -Defaults: -.br -npm's default configuration options are defined in -lib/utils/config\-defs\.js\. These must not be changed\. - -.RE -.P -See npm help 7 \fBnpm\-config\fP for much much more information\. -.SH CONTRIBUTIONS -.P -Patches welcome! -.RS 0 -.IP \(bu 2 -code: -Read through npm help 7 \fBnpm\-coding\-style\fP if you plan to submit code\. -You don't have to agree with it, but you do have to follow it\. -.IP \(bu 2 -docs: -If you find an error in the documentation, edit the appropriate markdown -file in the "doc" folder\. (Don't worry about generating the man page\.) - -.RE -.P -Contributors are listed in npm's \fBpackage\.json\fP file\. You can view them -easily by doing \fBnpm view npm contributors\fP\|\. -.P -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 -.IP \(bu 2 -https://github\.com/npm/npm/issues - -.RE -.SH BUGS -.P -When you find issues, please report them: -.RS 0 -.IP \(bu 2 -web: -https://github\.com/npm/npm/issues - -.RE -.P -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 look for isaacs in #node\.js on irc://irc\.freenode\.net\. He -will no doubt tell you to put the output in a gist or email\. -.SH AUTHOR -.P -Isaac Z\. Schlueter \fIhttp://blog\.izs\.me/\fR :: -isaacs \fIhttps://github\.com/isaacs/\fR :: -@izs \fIhttp://twitter\.com/izs\fR :: -i@izs\.me -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help help -.IP \(bu 2 -README -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 index - -.RE - diff --git a/deps/npm/man/man1/npx.1 b/deps/npm/man/man1/npx.1 deleted file mode 100644 index 912effdc3bd..00000000000 --- a/deps/npm/man/man1/npx.1 +++ /dev/null @@ -1,167 +0,0 @@ -.TH "NPX" "1" "October 2017" "npx@9.7.0" "User Commands" -.SH "NAME" -\fBnpx\fR \- execute npm package binaries -.SH SYNOPSIS -.P -\fBnpx [options] [@version] [command\-arg]\.\.\.\fP -.P -\fBnpx [options] [\-p|\-\-package ]\.\.\. [command\-arg]\.\.\.\fP -.P -\fBnpx [options] \-c ''\fP -.P -\fBnpx \-\-shell\-auto\-fallback [shell]\fP -.SH INSTALL -.P -\fBnpm install \-g npx\fP -.SH DESCRIPTION -.P -Executes \fB\fP either from a local \fBnode_modules/\.bin\fP, or from a central cache, installing any packages needed in order for \fB\fP to run\. -.P -By default, \fBnpx\fP will check whether \fB\fP exists in \fB$PATH\fP, or in the local project binaries, and execute that\. If \fB\fP is not found, it will be installed prior to execution\. -.P -Unless a \fB\-\-package\fP option is specified, \fBnpx\fP will try to guess the name of the binary to invoke depending on the specifier provided\. All package specifiers understood by \fBnpm\fP may be used with \fBnpx\fP, including git specifiers, remote tarballs, local directories, or scoped packages\. -.P -If a full specifier is included, or if \fB\-\-package\fP is used, npx will always use a freshly\-installed, temporary version of the package\. This can also be forced with the \fB\-\-ignore\-existing\fP flag\. -.RS 0 -.IP \(bu 2 -\fB\-p, \-\-package \fP \- define the package to be installed\. This defaults to the value of \fB\fP\|\. This is only needed for packages with multiple binaries if you want to call one of the other executables, or where the binary name does not match the package name\. If this option is provided \fB\fP will be executed as\-is, without interpreting \fB@version\fP if it's there\. Multiple \fB\-\-package\fP options may be provided, and all the packages specified will be installed\. -.IP \(bu 2 -\fB\-\-no\-install\fP \- If passed to \fBnpx\fP, it will only try to run \fB\fP if it already exists in the current path or in \fB$prefix/node_modules/\.bin\fP\|\. It won't try to install missing commands\. -.IP \(bu 2 -\fB\-\-cache \fP \- set the location of the npm cache\. Defaults to npm's own cache settings\. -.IP \(bu 2 -\fB\-\-userconfig \fP \- path to the user configuration file to pass to npm\. Defaults to whatever npm's current default is\. -.IP \(bu 2 -\fB\-c \fP \- Execute \fB\fP inside an \fBnpm run\-script\fP\-like shell environment, with all the usual environment variables available\. Only the first item in \fB\fP will be automatically used as \fB\fP\|\. Any others \fImust\fR use \fB\-p\fP\|\. -.IP \(bu 2 -\fB\-\-shell \fP \- The shell to invoke the command with, if any\. -.IP \(bu 2 -\fB\-\-shell\-auto\-fallback []\fP \- Generates shell code to override your shell's "command not found" handler with one that calls \fBnpx\fP\|\. Tries to figure out your shell, or you can pass its name (either \fBbash\fP, \fBfish\fP, or \fBzsh\fP) as an option\. See below for how to install\. -.IP \(bu 2 -\fB\-\-ignore\-existing\fP \- If this flag is set, npx will not look in \fB$PATH\fP, or in the current package's \fBnode_modules/\.bin\fP for an existing version before deciding whether to install\. Binaries in those paths will still be available for execution, but will be shadowed by any packages requested by this install\. -.IP \(bu 2 -\fB\-q, \-\-quiet\fP \- Suppressed any output from npx itself (progress bars, error messages, install reports)\. Subcommand output itself will not be silenced\. -.IP \(bu 2 -\fB\-n, \-\-node\-arg\fP \- Extra node argument to supply to node when binary is a node script\. You can supply this option multiple times to add more arguments\. -.IP \(bu 2 -\fB\-v, \-\-version\fP \- Show the current npx version\. - -.RE -.SH EXAMPLES -.SS Running a project\-local bin -.P -.RS 2 -.nf -$ npm i \-D webpack -$ npx webpack \.\.\. -.fi -.RE -.SS One\-off invocation without local installation -.P -.RS 2 -.nf -$ npm rm webpack -$ npx webpack \-\- \.\.\. -$ cat package\.json -\|\.\.\.webpack not in "devDependencies"\.\.\. -.fi -.RE -.SS Invoking a command from a github repository -.P -.RS 2 -.nf -$ npx github:piuccio/cowsay -\|\.\.\.or\.\.\. -$ npx git+ssh://my\.hosted\.git:cowsay\.git#semver:^1 -\|\.\.\.etc\.\.\. -.fi -.RE -.SS Execute a full shell command using one npx call w/ multiple packages -.P -.RS 2 -.nf -$ npx \-p lolcatjs \-p cowsay \-c \\ - 'echo "$npm_package_name@$npm_package_version" | cowsay | lolcatjs' -\|\.\.\. - _____ -< your\-cool\-package@1\.2\.3 > - \-\-\-\-\- - \\ ^__^ - \\ (oo)\\_______ - (__)\\ )\\/\\ - ||\-\-\-\-w | - || || -.fi -.RE -.SS Run node binary with \-\-inspect -.P -.RS 2 -.nf -$ npx \-\-node\-arg=\-\-inspect cowsay -Debugger listening on ws://127\.0\.0\.1:9229/\.\.\.\. -.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\. -.P -For example: -.P -.RS 2 -.nf -$ npm@4 \-\-version -(stderr) npm@4 not found\. Trying with npx\.\.\. -4\.6\.1 -$ asdfasdfasf -zsh: command not found: asfdasdfasdf -.fi -.RE -.P -Currently, \fBzsh\fP, \fBbash\fP (>= 4), and \fBfish\fP are supported\. You can access these completion scripts using \fBnpx \-\-shell\-auto\-fallback \fP\|\. -.P -To install permanently, add the relevant line below to your \fB~/\.bashrc\fP, \fB~/\.zshrc\fP, \fB~/\.config/fish/config\.fish\fP, or as needed\. To install just for the shell session, simply run the line\. -.P -You can optionally pass through \fB\-\-no\-install\fP when generating the fallback to prevent it from installing packages if the command is missing\. -.SS For bash@>=4: -.P -.RS 2 -.nf -$ source <(npx \-\-shell\-auto\-fallback bash) -.fi -.RE -.SS For zsh: -.P -.RS 2 -.nf -$ source <(npx \-\-shell\-auto\-fallback zsh) -.fi -.RE -.SS For fish: -.P -.RS 2 -.nf -$ source (npx \-\-shell\-auto\-fallback fish | psub) -.fi -.RE -.SH ACKNOWLEDGEMENTS -.P -Huge thanks to Kwyn Meagher \fIhttps://blog\.kwyn\.io\fR for generously donating the package name in the main npm registry\. Previously \fBnpx\fP was used for a Tessel board Neopixels library, which can now be found under \fBnpx\-tessel\fP \fIhttps://npm\.im/npx\-tessel\fR\|\. -.SH AUTHOR -.P -Written by Kat Marchan \fIhttps://github\.com/zkat\fR\|\. -.SH REPORTING BUGS -.P -Please file any relevant issues on Github\. \fIhttps://github\.com/zkat/npx\fR -.SH LICENSE -.P -This work is released by its authors into the public domain under CC0\-1\.0\. See \fBLICENSE\.md\fP for details\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -\fBnpm(1)\fP -.IP \(bu 2 -\fBnpm\-run\-script(1)\fP -.IP \(bu 2 -\fBnpm\-config(7)\fP - -.RE diff --git a/deps/npm/man/man5/npm-folders.5 b/deps/npm/man/man5/npm-folders.5 deleted file mode 100644 index a252685bd0e..00000000000 --- a/deps/npm/man/man5/npm-folders.5 +++ /dev/null @@ -1,226 +0,0 @@ -.TH "NPM\-FOLDERS" "5" "December 2017" "" "" -.SH "NAME" -\fBnpm-folders\fR \- Folder Structures Used by npm -.SH DESCRIPTION -.P -npm puts various things on your computer\. That's its job\. -.P -This document will tell you what it puts where\. -.SS tl;dr -.RS 0 -.IP \(bu 2 -Local install (default): puts stuff in \fB\|\./node_modules\fP of the current -package root\. -.IP \(bu 2 -Global install (with \fB\-g\fP): puts stuff in /usr/local or wherever node -is installed\. -.IP \(bu 2 -Install it \fBlocally\fR if you're going to \fBrequire()\fP it\. -.IP \(bu 2 -Install it \fBglobally\fR if you're going to run it on the command line\. -.IP \(bu 2 -If you need both, then install it in both places, or use \fBnpm link\fP\|\. - -.RE -.SS prefix Configuration -.P -The \fBprefix\fP config defaults to the location where node is installed\. -On most systems, this is \fB/usr/local\fP\|\. On Windows, it's \fB%AppData%\\npm\fP\|\. -On Unix systems, it's one level up, since node is typically installed at -\fB{prefix}/bin/node\fP rather than \fB{prefix}/node\.exe\fP\|\. -.P -When the \fBglobal\fP flag is set, npm installs things into this prefix\. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already\. -.SS Node Modules -.P -Packages are dropped into the \fBnode_modules\fP folder under the \fBprefix\fP\|\. -When installing locally, this means that you can -\fBrequire("packagename")\fP to load its main module, or -\fBrequire("packagename/lib/path/to/sub/module")\fP to load other modules\. -.P -Global installs on Unix systems go to \fB{prefix}/lib/node_modules\fP\|\. -Global installs on Windows go to \fB{prefix}/node_modules\fP (that is, no -\fBlib\fP folder\.) -.P -Scoped packages are installed the same way, except they are grouped together -in a sub\-folder of the relevant \fBnode_modules\fP folder with the name of that -scope prefix by the @ symbol, e\.g\. \fBnpm install @myorg/package\fP would place -the package in \fB{prefix}/node_modules/@myorg/package\fP\|\. See npm help 7 \fBscope\fP for -more details\. -.P -If you wish to \fBrequire()\fP a package, then install it locally\. -.SS Executables -.P -When in global mode, executables are linked into \fB{prefix}/bin\fP on Unix, -or directly into \fB{prefix}\fP on Windows\. -.P -When in local mode, executables are linked into -\fB\|\./node_modules/\.bin\fP so that they can be made available to scripts run -through npm\. (For example, so that a test runner will be in the path -when you run \fBnpm test\fP\|\.) -.SS Man Pages -.P -When in global mode, man pages are linked into \fB{prefix}/share/man\fP\|\. -.P -When in local mode, man pages are not installed\. -.P -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\. -.P -This is controlled by the \fBcache\fP configuration param\. -.SS Temp Files -.P -Temporary files are stored by default in the folder specified by the -\fBtmp\fP config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or \fB/tmp\fP on Unix and \fBc:\\windows\\temp\fP on Windows\. -.P -Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit\. -.SH More Information -.P -When installing locally, npm first tries to find an appropriate -\fBprefix\fP folder\. This is so that \fBnpm install foo@1\.2\.3\fP will install -to the sensible root of your package, even if you happen to have \fBcd\fPed -into some other folder\. -.P -Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a \fBpackage\.json\fP file, or a \fBnode_modules\fP -folder\. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands\. (This -behavior is inspired by and similar to git's \.git\-folder seeking -logic when running git commands in a working dir\.) -.P -If no package root is found, then the current folder is used\. -.P -When you run \fBnpm install foo@1\.2\.3\fP, then the package is loaded into -the cache, and then unpacked into \fB\|\./node_modules/foo\fP\|\. Then, any of -foo's dependencies are similarly unpacked into -\fB\|\./node_modules/foo/node_modules/\.\.\.\fP\|\. -.P -Any bin files are symlinked to \fB\|\./node_modules/\.bin/\fP, so that they may -be found by npm scripts when necessary\. -.SS Global Installation -.P -If the \fBglobal\fP configuration is set to true, then npm will -install packages "globally"\. -.P -For global installation, packages are installed roughly the same way, -but using the folders described above\. -.SS Cycles, Conflicts, and Folder Parsimony -.P -Cycles are handled using the property of node's module system that it -walks up the directories looking for \fBnode_modules\fP folders\. So, at every -stage, if a package is already installed in an ancestor \fBnode_modules\fP -folder, then it is not installed at the current location\. -.P -Consider the case above, where \fBfoo \-> bar \-> baz\fP\|\. Imagine if, in -addition to that, baz depended on bar, so you'd have: -\fBfoo \-> bar \-> baz \-> bar \-> baz \.\.\.\fP\|\. However, since the folder -structure is: \fBfoo/node_modules/bar/node_modules/baz\fP, there's no need to -put another copy of bar into \fB\|\.\.\./baz/node_modules\fP, since when it calls -require("bar"), it will get the copy that is installed in -\fBfoo/node_modules/bar\fP\|\. -.P -This shortcut is only used if the exact same -version would be installed in multiple nested \fBnode_modules\fP folders\. It -is still possible to have \fBa/node_modules/b/node_modules/a\fP if the two -"a" packages are different versions\. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented\. -.P -Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder\. -.SS Example -.P -Consider this dependency graph: -.P -.RS 2 -.nf -foo -+\-\- blerg@1\.2\.5 -+\-\- bar@1\.2\.3 -| +\-\- blerg@1\.x (latest=1\.3\.7) -| +\-\- baz@2\.x -| | `\-\- quux@3\.x -| | `\-\- bar@1\.2\.3 (cycle) -| `\-\- asdf@* -`\-\- baz@1\.2\.3 - `\-\- quux@3\.x - `\-\- bar -.fi -.RE -.P -In this case, we might expect a folder structure like this: -.P -.RS 2 -.nf -foo -+\-\- node_modules - +\-\- blerg (1\.2\.5) <\-\-\-[A] - +\-\- bar (1\.2\.3) <\-\-\-[B] - | `\-\- node_modules - | +\-\- baz (2\.0\.2) <\-\-\-[C] - | | `\-\- node_modules - | | `\-\- quux (3\.2\.0) - | `\-\- asdf (2\.3\.4) - `\-\- baz (1\.2\.3) <\-\-\-[D] - `\-\- node_modules - `\-\- quux (3\.2\.0) <\-\-\-[E] -.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\. -.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, -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], -and must install its own copy [C]\. -.P -Underneath bar, the \fBbaz \-> quux \-> bar\fP dependency creates a cycle\. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder\. -.P -Underneath \fBfoo \-> baz\fP [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B]\. -.P -For a graphical breakdown of what is installed where, use \fBnpm ls\fP\|\. -.SS Publishing -.P -Upon publishing, npm will look in the \fBnode_modules\fP folder\. If any of -the items there are not in the \fBbundledDependencies\fP array, then they will -not be included in the package tarball\. -.P -This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re\-publish those items that -cannot be found elsewhere\. See npm help 5 \fBpackage\.json\fP for more information\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help pack -.IP \(bu 2 -npm help cache -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help publish - -.RE - diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5 deleted file mode 100644 index a252685bd0e..00000000000 --- a/deps/npm/man/man5/npm-global.5 +++ /dev/null @@ -1,226 +0,0 @@ -.TH "NPM\-FOLDERS" "5" "December 2017" "" "" -.SH "NAME" -\fBnpm-folders\fR \- Folder Structures Used by npm -.SH DESCRIPTION -.P -npm puts various things on your computer\. That's its job\. -.P -This document will tell you what it puts where\. -.SS tl;dr -.RS 0 -.IP \(bu 2 -Local install (default): puts stuff in \fB\|\./node_modules\fP of the current -package root\. -.IP \(bu 2 -Global install (with \fB\-g\fP): puts stuff in /usr/local or wherever node -is installed\. -.IP \(bu 2 -Install it \fBlocally\fR if you're going to \fBrequire()\fP it\. -.IP \(bu 2 -Install it \fBglobally\fR if you're going to run it on the command line\. -.IP \(bu 2 -If you need both, then install it in both places, or use \fBnpm link\fP\|\. - -.RE -.SS prefix Configuration -.P -The \fBprefix\fP config defaults to the location where node is installed\. -On most systems, this is \fB/usr/local\fP\|\. On Windows, it's \fB%AppData%\\npm\fP\|\. -On Unix systems, it's one level up, since node is typically installed at -\fB{prefix}/bin/node\fP rather than \fB{prefix}/node\.exe\fP\|\. -.P -When the \fBglobal\fP flag is set, npm installs things into this prefix\. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already\. -.SS Node Modules -.P -Packages are dropped into the \fBnode_modules\fP folder under the \fBprefix\fP\|\. -When installing locally, this means that you can -\fBrequire("packagename")\fP to load its main module, or -\fBrequire("packagename/lib/path/to/sub/module")\fP to load other modules\. -.P -Global installs on Unix systems go to \fB{prefix}/lib/node_modules\fP\|\. -Global installs on Windows go to \fB{prefix}/node_modules\fP (that is, no -\fBlib\fP folder\.) -.P -Scoped packages are installed the same way, except they are grouped together -in a sub\-folder of the relevant \fBnode_modules\fP folder with the name of that -scope prefix by the @ symbol, e\.g\. \fBnpm install @myorg/package\fP would place -the package in \fB{prefix}/node_modules/@myorg/package\fP\|\. See npm help 7 \fBscope\fP for -more details\. -.P -If you wish to \fBrequire()\fP a package, then install it locally\. -.SS Executables -.P -When in global mode, executables are linked into \fB{prefix}/bin\fP on Unix, -or directly into \fB{prefix}\fP on Windows\. -.P -When in local mode, executables are linked into -\fB\|\./node_modules/\.bin\fP so that they can be made available to scripts run -through npm\. (For example, so that a test runner will be in the path -when you run \fBnpm test\fP\|\.) -.SS Man Pages -.P -When in global mode, man pages are linked into \fB{prefix}/share/man\fP\|\. -.P -When in local mode, man pages are not installed\. -.P -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\. -.P -This is controlled by the \fBcache\fP configuration param\. -.SS Temp Files -.P -Temporary files are stored by default in the folder specified by the -\fBtmp\fP config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or \fB/tmp\fP on Unix and \fBc:\\windows\\temp\fP on Windows\. -.P -Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit\. -.SH More Information -.P -When installing locally, npm first tries to find an appropriate -\fBprefix\fP folder\. This is so that \fBnpm install foo@1\.2\.3\fP will install -to the sensible root of your package, even if you happen to have \fBcd\fPed -into some other folder\. -.P -Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a \fBpackage\.json\fP file, or a \fBnode_modules\fP -folder\. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands\. (This -behavior is inspired by and similar to git's \.git\-folder seeking -logic when running git commands in a working dir\.) -.P -If no package root is found, then the current folder is used\. -.P -When you run \fBnpm install foo@1\.2\.3\fP, then the package is loaded into -the cache, and then unpacked into \fB\|\./node_modules/foo\fP\|\. Then, any of -foo's dependencies are similarly unpacked into -\fB\|\./node_modules/foo/node_modules/\.\.\.\fP\|\. -.P -Any bin files are symlinked to \fB\|\./node_modules/\.bin/\fP, so that they may -be found by npm scripts when necessary\. -.SS Global Installation -.P -If the \fBglobal\fP configuration is set to true, then npm will -install packages "globally"\. -.P -For global installation, packages are installed roughly the same way, -but using the folders described above\. -.SS Cycles, Conflicts, and Folder Parsimony -.P -Cycles are handled using the property of node's module system that it -walks up the directories looking for \fBnode_modules\fP folders\. So, at every -stage, if a package is already installed in an ancestor \fBnode_modules\fP -folder, then it is not installed at the current location\. -.P -Consider the case above, where \fBfoo \-> bar \-> baz\fP\|\. Imagine if, in -addition to that, baz depended on bar, so you'd have: -\fBfoo \-> bar \-> baz \-> bar \-> baz \.\.\.\fP\|\. However, since the folder -structure is: \fBfoo/node_modules/bar/node_modules/baz\fP, there's no need to -put another copy of bar into \fB\|\.\.\./baz/node_modules\fP, since when it calls -require("bar"), it will get the copy that is installed in -\fBfoo/node_modules/bar\fP\|\. -.P -This shortcut is only used if the exact same -version would be installed in multiple nested \fBnode_modules\fP folders\. It -is still possible to have \fBa/node_modules/b/node_modules/a\fP if the two -"a" packages are different versions\. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented\. -.P -Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder\. -.SS Example -.P -Consider this dependency graph: -.P -.RS 2 -.nf -foo -+\-\- blerg@1\.2\.5 -+\-\- bar@1\.2\.3 -| +\-\- blerg@1\.x (latest=1\.3\.7) -| +\-\- baz@2\.x -| | `\-\- quux@3\.x -| | `\-\- bar@1\.2\.3 (cycle) -| `\-\- asdf@* -`\-\- baz@1\.2\.3 - `\-\- quux@3\.x - `\-\- bar -.fi -.RE -.P -In this case, we might expect a folder structure like this: -.P -.RS 2 -.nf -foo -+\-\- node_modules - +\-\- blerg (1\.2\.5) <\-\-\-[A] - +\-\- bar (1\.2\.3) <\-\-\-[B] - | `\-\- node_modules - | +\-\- baz (2\.0\.2) <\-\-\-[C] - | | `\-\- node_modules - | | `\-\- quux (3\.2\.0) - | `\-\- asdf (2\.3\.4) - `\-\- baz (1\.2\.3) <\-\-\-[D] - `\-\- node_modules - `\-\- quux (3\.2\.0) <\-\-\-[E] -.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\. -.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, -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], -and must install its own copy [C]\. -.P -Underneath bar, the \fBbaz \-> quux \-> bar\fP dependency creates a cycle\. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder\. -.P -Underneath \fBfoo \-> baz\fP [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B]\. -.P -For a graphical breakdown of what is installed where, use \fBnpm ls\fP\|\. -.SS Publishing -.P -Upon publishing, npm will look in the \fBnode_modules\fP folder\. If any of -the items there are not in the \fBbundledDependencies\fP array, then they will -not be included in the package tarball\. -.P -This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re\-publish those items that -cannot be found elsewhere\. See npm help 5 \fBpackage\.json\fP for more information\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help pack -.IP \(bu 2 -npm help cache -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help publish - -.RE - diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 deleted file mode 100644 index 0a4328f73fd..00000000000 --- a/deps/npm/man/man5/npm-json.5 +++ /dev/null @@ -1,951 +0,0 @@ -.TH "PACKAGE\.JSON" "5" "December 2017" "" "" -.SH "NAME" -\fBpackage.json\fR \- Specifics of npm's package\.json handling -.SH DESCRIPTION -.P -This document is all you need to know about what's required in your package\.json -file\. It must be actual JSON, not just a JavaScript object literal\. -.P -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\. -.P -The name is what your thing is called\. -.P -Some rules: -.RS 0 -.IP \(bu 2 -The name must be less than or equal to 214 characters\. This includes the scope for -scoped packages\. -.IP \(bu 2 -The name can't start with a dot or an underscore\. -.IP \(bu 2 -New packages must not have uppercase letters in the name\. -.IP \(bu 2 -The name ends up being part of a URL, an argument on the command line, and a -folder name\. Therefore, the name can't contain any non\-URL\-safe characters\. - -.RE -.P -Some tips: -.RS 0 -.IP \(bu 2 -Don't use the same name as a core Node module\. -.IP \(bu 2 -Don't put "js" or "node" in the name\. It's assumed that it's js, since you're -writing a package\.json file, and you can specify the engine using the "engines" -field\. (See below\.) -.IP \(bu 2 -The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive\. -.IP \(bu 2 -You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it\. https://www\.npmjs\.com/ - -.RE -.P -A name can be optionally prefixed by a scope, e\.g\. \fB@myorg/mypackage\fP\|\. See -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\. -.P -Version must be parseable by -node\-semver \fIhttps://github\.com/isaacs/node\-semver\fR, which is bundled -with npm as a dependency\. (\fBnpm install semver\fP to use it yourself\.) -.P -More on version numbers and ranges at npm help 7 semver\. -.SH description -.P -Put a description in it\. It's a string\. This helps people discover your -package, as it's listed in \fBnpm search\fP\|\. -.SH keywords -.P -Put keywords in it\. It's an array of strings\. This helps people -discover your package as it's listed in \fBnpm search\fP\|\. -.SH homepage -.P -The url to the project homepage\. -.SH bugs -.P -The url to your project's issue tracker and / or the email address to which -issues should be reported\. These are helpful for people who encounter issues -with your package\. -.P -It should look like this: -.P -.RS 2 -.nf -{ "url" : "https://github\.com/owner/project/issues" -, "email" : "project@hostname\.com" -} -.fi -.RE -.P -You can specify either one or both values\. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object\. -.P -If a url is provided, it will be used by the \fBnpm bugs\fP command\. -.SH license -.P -You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it\. -.P -If you're using a common license such as BSD\-2\-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this: -.P -.RS 2 -.nf -{ "license" : "BSD\-3\-Clause" } -.fi -.RE -.P -You can check the full list of SPDX license IDs \fIhttps://spdx\.org/licenses/\fR\|\. -Ideally you should pick one that is -OSI \fIhttps://opensource\.org/licenses/alphabetical\fR approved\. -.P -If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2\.0 string \fIhttps://npmjs\.com/package/spdx\fR, like this: -.P -.RS 2 -.nf -{ "license" : "(ISC OR GPL\-3\.0)" } -.fi -.RE -.P -If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one: -.P -.RS 2 -.nf -{ "license" : "SEE LICENSE IN " } -.fi -.RE -.P -Then include a file named \fB\fP at the top level of the package\. -.P -Some old packages used license objects or a "licenses" property containing an -array of license objects: -.P -.RS 2 -.nf -// Not valid metadata -{ "license" : - { "type" : "ISC" - , "url" : "https://opensource\.org/licenses/ISC" - } -} - -// Not valid metadata -{ "licenses" : - [ - { "type": "MIT" - , "url": "https://www\.opensource\.org/licenses/mit\-license\.php" - } - , { "type": "Apache\-2\.0" - , "url": "https://opensource\.org/licenses/apache2\.0\.php" - } - ] -} -.fi -.RE -.P -Those styles are now deprecated\. Instead, use SPDX expressions, like this: -.P -.RS 2 -.nf -{ "license": "ISC" } - -{ "license": "(MIT OR Apache\-2\.0)" } -.fi -.RE -.P -Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms: -.P -.RS 2 -.nf -{ "license": "UNLICENSED" } -.fi -.RE -.P -Consider also setting \fB"private": true\fP to prevent accidental publication\. -.SH people fields: author, contributors -.P -The "author" is one person\. "contributors" is an array of people\. A "person" -is an object with a "name" field and optionally "url" and "email", like this: -.P -.RS 2 -.nf -{ "name" : "Barney Rubble" -, "email" : "b@rubble\.com" -, "url" : "http://barnyrubble\.tumblr\.com/" -} -.fi -.RE -.P -Or you can shorten that all into a single string, and npm will parse it for you: -.P -.RS 2 -.nf -"Barney Rubble (http://barnyrubble\.tumblr\.com/)" -.fi -.RE -.P -Both email and url are optional either way\. -.P -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 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 -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 -root of your package it will not override the "files" field, but in -subdirectories it will\. The \fB\|\.npmignore\fP file works just like a -\fB\|\.gitignore\fP\|\. If there is a \fB\|\.gitignore\fP file, and \fB\|\.npmignore\fP is -missing, \fB\|\.gitignore\fP\|'s contents will be used instead\. -.P -Files included with the "package\.json#files" field \fIcannot\fR be excluded -through \fB\|\.npmignore\fP or \fB\|\.gitignore\fP\|\. -.P -Certain files are always included, regardless of settings: -.RS 0 -.IP \(bu 2 -\fBpackage\.json\fP -.IP \(bu 2 -\fBREADME\fP -.IP \(bu 2 -\fBCHANGES\fP / \fBCHANGELOG\fP / \fBHISTORY\fP -.IP \(bu 2 -\fBLICENSE\fP / \fBLICENCE\fP -.IP \(bu 2 -\fBNOTICE\fP -.IP \(bu 2 -The file in the "main" field - -.RE -.P -\fBREADME\fP, \fBCHANGES\fP, \fBLICENSE\fP & \fBNOTICE\fP can have any case and extension\. -.P -Conversely, some files are always ignored: -.RS 0 -.IP \(bu 2 -\fB\|\.git\fP -.IP \(bu 2 -\fBCVS\fP -.IP \(bu 2 -\fB\|\.svn\fP -.IP \(bu 2 -\fB\|\.hg\fP -.IP \(bu 2 -\fB\|\.lock\-wscript\fP -.IP \(bu 2 -\fB\|\.wafpickle\-N\fP -.IP \(bu 2 -\fB\|\.*\.swp\fP -.IP \(bu 2 -\fB\|\.DS_Store\fP -.IP \(bu 2 -\fB\|\._*\fP -.IP \(bu 2 -\fBnpm\-debug\.log\fP -.IP \(bu 2 -\fB\|\.npmrc\fP -.IP \(bu 2 -\fBnode_modules\fP -.IP \(bu 2 -\fBconfig\.gypi\fP -.IP \(bu 2 -\fB*\.orig\fP -.IP \(bu 2 -\fBpackage\-lock\.json\fP (use shrinkwrap instead) - -.RE -.SH main -.P -The main field is a module ID that is the primary entry point to your program\. -That is, if your package is named \fBfoo\fP, and a user installs it, and then does -\fBrequire("foo")\fP, then your main module's exports object will be returned\. -.P -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 bin -.P -A lot of packages have one or more executable files that they'd like to -install into the PATH\. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable\.) -.P -To use this, supply a \fBbin\fP field in your package\.json which is a map of -command name to local file name\. On install, npm will symlink that file into -\fBprefix/bin\fP for global installs, or \fB\|\./node_modules/\.bin/\fP for local -installs\. -.P -For example, myapp could have this: -.P -.RS 2 -.nf -{ "bin" : { "myapp" : "\./cli\.js" } } -.fi -.RE -.P -So, when you install myapp, it'll create a symlink from the \fBcli\.js\fP script to -\fB/usr/local/bin/myapp\fP\|\. -.P -If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string\. For example: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin": "\./path/to/program" } -.fi -.RE -.P -would be the same as this: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin" : { "my\-program" : "\./path/to/program" } } -.fi -.RE -.P -Please make sure that your file(s) referenced in \fBbin\fP starts with -\fB#!/usr/bin/env node\fP, otherwise the scripts are started without the node -executable! -.SH man -.P -Specify either a single file or an array of filenames to put in place for the -\fBman\fP program to find\. -.P -If only a single file is provided, then it's installed such that it is the -result from \fBman \fP, regardless of its actual filename\. For example: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : "\./man/doc\.1" -} -.fi -.RE -.P -would link the \fB\|\./man/doc\.1\fP file in such that it is the target for \fBman foo\fP -.P -If the filename doesn't start with the package name, then it's prefixed\. -So, this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/bar\.1" ] -} -.fi -.RE -.P -will create files to do \fBman foo\fP and \fBman foo\-bar\fP\|\. -.P -Man files must end with a number, and optionally a \fB\|\.gz\fP suffix if they are -compressed\. The number dictates which man section the file is installed into\. -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/foo\.2" ] -} -.fi -.RE -.P -will create entries for \fBman foo\fP and \fBman 2 foo\fP -.SH directories -.P -The CommonJS Packages \fIhttp://wiki\.commonjs\.org/wiki/Packages/1\.0\fR spec details a -few ways that you can indicate the structure of your package using a \fBdirectories\fP -object\. If you look at npm's package\.json \fIhttps://registry\.npmjs\.org/npm/latest\fR, -you'll see that it has directories for doc, lib, and man\. -.P -In the future, this information may be used in other creative ways\. -.SS directories\.lib -.P -Tell people where the bulk of your library is\. Nothing special is done -with the lib folder in any way, but it's useful meta info\. -.SS directories\.bin -.P -If you specify a \fBbin\fP directory in \fBdirectories\.bin\fP, all the files in -that folder will be added\. -.P -Because of the way the \fBbin\fP directive works, specifying both a -\fBbin\fP path and setting \fBdirectories\.bin\fP is an error\. If you want to -specify individual files, use \fBbin\fP, and for all the files in an -existing \fBbin\fP directory, use \fBdirectories\.bin\fP\|\. -.SS directories\.man -.P -A folder that is full of man pages\. Sugar to generate a "man" array by -walking the folder\. -.SS directories\.doc -.P -Put markdown files in here\. Eventually, these will be displayed nicely, -maybe, someday\. -.SS directories\.example -.P -Put example scripts in here\. Someday, it might be exposed in some clever way\. -.SS directories\.test -.P -Put your tests in here\. It is currently not exposed, but it might be in the -future\. -.SH repository -.P -Specify the place where your code lives\. This is helpful for people who -want to contribute\. If the git repo is on GitHub, then the \fBnpm docs\fP -command will be able to find you\. -.P -Do it like this: -.P -.RS 2 -.nf -"repository" : - { "type" : "git" - , "url" : "https://github\.com/npm/npm\.git" - } - -"repository" : - { "type" : "svn" - , "url" : "https://v8\.googlecode\.com/svn/trunk/" - } -.fi -.RE -.P -The URL should be a publicly available (perhaps read\-only) url that can be handed -directly to a VCS program without any modification\. It should not be a url to an -html project page that you put in your browser\. It's for computers\. -.P -For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for \fBnpm install\fP: -.P -.RS 2 -.nf -"repository": "npm/npm" - -"repository": "github:user/repo" - -"repository": "gist:11081aaa281" - -"repository": "bitbucket:user/repo" - -"repository": "gitlab:user/repo" -.fi -.RE -.SH scripts -.P -The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package\. The key is the lifecycle -event, and the value is the command to run at that point\. -.P -See npm help 7 \fBnpm\-scripts\fP to find out more about writing package scripts\. -.SH config -.P -A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades\. For instance, if a package had the -following: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } } -.fi -.RE -.P -and then had a "start" command that then referenced the -\fBnpm_package_config_port\fP environment variable, then the user could -override that by doing \fBnpm config set foo:port 8001\fP\|\. -.P -See npm help 7 \fBnpm\-config\fP and npm help 7 \fBnpm\-scripts\fP for more on package -configs\. -.SH dependencies -.P -Dependencies are specified in a simple object that maps a package name to a -version range\. The version range is a string which has one or more -space\-separated descriptors\. Dependencies can also be identified with a -tarball or git URL\. -.P -\fBPlease do not put test harnesses or transpilers in your -\fBdependencies\fP object\.\fR See \fBdevDependencies\fP, below\. -.P -See npm help 7 semver for more details about specifying version ranges\. -.RS 0 -.IP \(bu 2 -\fBversion\fP Must match \fBversion\fP exactly -.IP \(bu 2 -\fB>version\fP Must be greater than \fBversion\fP -.IP \(bu 2 -\fB>=version\fP etc -.IP \(bu 2 -\fB=version1 <=version2\fP\|\. -.IP \(bu 2 -\fBrange1 || range2\fP Passes if either range1 or range2 are satisfied\. -.IP \(bu 2 -\fBgit\.\.\.\fP See 'Git URLs as Dependencies' below -.IP \(bu 2 -\fBuser/repo\fP See 'GitHub URLs' below -.IP \(bu 2 -\fBtag\fP A specific version tagged and published as \fBtag\fP See npm help \fBnpm\-dist\-tag\fP -.IP \(bu 2 -\fBpath/path/path\fP See Local Paths \fI#local\-paths\fR below - -.RE -.P -For example, these are all valid: -.P -.RS 2 -.nf -{ "dependencies" : - { "foo" : "1\.0\.0 \- 2\.9999\.9999" - , "bar" : ">=1\.0\.2 <2\.1\.2" - , "baz" : ">1\.0\.2 <=2\.3\.4" - , "boo" : "2\.0\.1" - , "qux" : "<1\.0\.0 || >=2\.3\.1 <2\.4\.5 || >=2\.5\.2 <3\.0\.0" - , "asd" : "http://asdf\.com/asdf\.tar\.gz" - , "til" : "~1\.2" - , "elf" : "~1\.2\.3" - , "two" : "2\.x" - , "thr" : "3\.3\.x" - , "lat" : "latest" - , "dyl" : "file:\.\./dyl" - } -} -.fi -.RE -.SS URLs as Dependencies -.P -You may specify a tarball URL in place of a version range\. -.P -This tarball will be downloaded and installed locally to your package at -install time\. -.SS Git URLs as Dependencies -.P -Git urls are of the form: -.P -.RS 2 -.nf -://[[:]@][:][:][/][# | #semver:] -.fi -.RE -.P -\fB\fP is one of \fBgit\fP, \fBgit+ssh\fP, \fBgit+http\fP, \fBgit+https\fP, or -\fBgit+file\fP\|\. -.P -If \fB#\fP is provided, it will be used to clone exactly that -commit\. If the commit\-ish has the format \fB#semver:\fP, \fB\fP can -be any valid semver range or exact version, and npm will look for any tags -or refs matching that range in the remote repository, much as it would for a -registry dependency\. If neither \fB#\fP or \fB#semver:\fP is -specified, then \fBmaster\fP is used\. -.P -Examples: -.P -.RS 2 -.nf -git+ssh://git@github\.com:npm/npm\.git#v1\.0\.27 -git+ssh://git@github\.com:npm/npm#semver:^5\.0 -git+https://isaacs@github\.com/npm/npm\.git -git://github\.com/npm/npm\.git#v1\.0\.27 -.fi -.RE -.SS GitHub URLs -.P -As of version 1\.1\.65, you can refer to GitHub urls as just "foo": -"user/foo\-project"\. Just as with git URLs, a \fBcommit\-ish\fP suffix can be -included\. For example: -.P -.RS 2 -.nf -{ - "name": "foo", - "version": "0\.0\.0", - "dependencies": { - "express": "expressjs/express", - "mocha": "mochajs/mocha#4727d357ea", - "module": "user/repo#feature\\/branch" - } -} -.fi -.RE -.SS Local Paths -.P -As of version 2\.0\.0 you can provide a path to a local directory that contains a -package\. Local paths can be saved using \fBnpm install \-S\fP or -\fBnpm install \-\-save\fP, using any of these forms: -.P -.RS 2 -.nf -\|\.\./foo/bar -~/foo/bar -\|\./foo/bar -/foo/bar -.fi -.RE -.P -in which case they will be normalized to a relative path and added to your -\fBpackage\.json\fP\|\. For example: -.P -.RS 2 -.nf -{ - "name": "baz", - "dependencies": { - "bar": "file:\.\./foo/bar" - } -} -.fi -.RE -.P -This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry\. -.SH devDependencies -.P -If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use\. -.P -In this case, it's best to map these additional items in a \fBdevDependencies\fP -object\. -.P -These things will be installed when doing \fBnpm link\fP or \fBnpm install\fP -from the root of a package, and can be managed like any other npm -configuration param\. See npm help 7 \fBnpm\-config\fP for more on the topic\. -.P -For build steps that are not platform\-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the \fBprepare\fP -script to do this, and make the required package a devDependency\. -.P -For example: -.P -.RS 2 -.nf -{ "name": "ethopia\-waza", - "description": "a delightfully fruity coffee varietal", - "version": "1\.2\.3", - "devDependencies": { - "coffee\-script": "~1\.6\.3" - }, - "scripts": { - "prepare": "coffee \-o lib/ \-c src/waza\.coffee" - }, - "main": "lib/waza\.js" -} -.fi -.RE -.P -The \fBprepare\fP script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves\. In dev mode (ie, locally running \fBnpm install\fP), it'll -run this script as well, so that you can test it easily\. -.SH peerDependencies -.P -In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a \fBrequire\fP of this host\. -This is usually referred to as a \fIplugin\fR\|\. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation\. -.P -For example: -.P -.RS 2 -.nf -{ - "name": "tea\-latte", - "version": "1\.3\.5", - "peerDependencies": { - "tea": "2\.x" - } -} -.fi -.RE -.P -This ensures your package \fBtea\-latte\fP can be installed \fIalong\fR with the second -major version of the host package \fBtea\fP only\. \fBnpm install tea\-latte\fP could -possibly yield the following dependency graph: -.P -.RS 2 -.nf -├── tea\-latte@1\.3\.5 -└── tea@2\.2\.0 -.fi -.RE -.P -\fBNOTE: npm versions 1 and 2 will automatically install \fBpeerDependencies\fP if -they are not explicitly depended upon higher in the dependency tree\. In the -next major version of npm (npm@3), this will no longer be the case\. You will -receive a warning that the peerDependency is not installed instead\.\fR The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible\. -.P -Trying to install another plugin with a conflicting requirement will cause an -error\. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions\. -.P -Assuming the host complies with semver \fIhttp://semver\.org/\fR, only changes in -the host package's major version will break your plugin\. Thus, if you've worked -with every 1\.x version of the host package, use \fB"^1\.0"\fP or \fB"1\.x"\fP to express -this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fP\|\. -.SH bundledDependencies -.P -This defines an array of package names that will be bundled when publishing -the package\. -.P -In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the \fBbundledDependencies\fP -array and executing \fBnpm pack\fP\|\. -.P -For example: -.P -If we define a package\.json like this: -.P -.RS 2 -.nf -{ - "name": "awesome\-web\-framework", - "version": "1\.0\.0", - "bundledDependencies": [ - "renderized", "super\-streams" - ] -} -.fi -.RE -.P -we can obtain \fBawesome\-web\-framework\-1\.0\.0\.tgz\fP file by running \fBnpm pack\fP\|\. -This file contains the dependencies \fBrenderized\fP and \fBsuper\-streams\fP which -can be installed in a new project by executing \fBnpm install -awesome\-web\-framework\-1\.0\.0\.tgz\fP\|\. -.P -If this is spelled \fB"bundleDependencies"\fP, then that is also honored\. -.SH optionalDependencies -.P -If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the \fBoptionalDependencies\fP -object\. This is a map of package name to version or url, just like the -\fBdependencies\fP object\. The difference is that build failures do not cause -installation to fail\. -.P -It is still your program's responsibility to handle the lack of the -dependency\. For example, something like this: -.P -.RS 2 -.nf -try { - var foo = require('foo') - var fooVersion = require('foo/package\.json')\.version -} catch (er) { - foo = null -} -if ( notGoodFooVersion(fooVersion) ) { - foo = null -} - -// \.\. then later in your program \.\. - -if (foo) { - foo\.doFooThings() -} -.fi -.RE -.P -Entries in \fBoptionalDependencies\fP will override entries of the same name in -\fBdependencies\fP, so it's usually best to only put in one place\. -.SH engines -.P -You can specify the version of node that your stuff works on: -.P -.RS 2 -.nf -{ "engines" : { "node" : ">=0\.10\.3 <0\.12" } } -.fi -.RE -.P -And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do\. -.P -If you specify an "engines" field, then npm will require that "node" be -somewhere on that list\. If "engines" is omitted, then npm will just assume -that it works on node\. -.P -You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program\. For example: -.P -.RS 2 -.nf -{ "engines" : { "npm" : "~1\.0\.20" } } -.fi -.RE -.P -Unless the user has set the \fBengine\-strict\fP config flag, this -field is advisory only and will only produce warnings when your package is installed as a dependency\. -.SH engineStrict -.P -\fBThis feature was removed in npm 3\.0\.0\fR -.P -Prior to npm 3\.0\.0, this feature was used to treat this package as if the -user had set \fBengine\-strict\fP\|\. It is no longer used\. -.SH os -.P -You can specify which operating systems your -module will run on: -.P -.RS 2 -.nf -"os" : [ "darwin", "linux" ] -.fi -.RE -.P -You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!': -.P -.RS 2 -.nf -"os" : [ "!win32" ] -.fi -.RE -.P -The host operating system is determined by \fBprocess\.platform\fP -.P -It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this\. -.SH cpu -.P -If your code only runs on certain cpu architectures, -you can specify which ones\. -.P -.RS 2 -.nf -"cpu" : [ "x64", "ia32" ] -.fi -.RE -.P -Like the \fBos\fP option, you can also blacklist architectures: -.P -.RS 2 -.nf -"cpu" : [ "!arm", "!mips" ] -.fi -.RE -.P -The host architecture is determined by \fBprocess\.arch\fP -.SH preferGlobal -.P -\fBDEPRECATED\fR -.P -This option used to trigger an npm warning, but it will no longer warn\. It is -purely there for informational purposes\. It is now recommended that you install -any binaries as local devDependencies wherever possible\. -.SH private -.P -If you set \fB"private": true\fP in your package\.json, then npm will refuse -to publish it\. -.P -This is a way to prevent accidental publication of private repositories\. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -\fBpublishConfig\fP dictionary described below to override the \fBregistry\fP config -param at publish\-time\. -.SH publishConfig -.P -This is a set of config values that will be used at publish\-time\. It's -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\. -.P -See npm help 7 \fBnpm\-config\fP to see the list of config options that can be -overridden\. -.SH DEFAULT VALUES -.P -npm will default some values based on package contents\. -.RS 0 -.IP \(bu 2 -\fB"scripts": {"start": "node server\.js"}\fP -If there is a \fBserver\.js\fP file in the root of your package, then npm -will default the \fBstart\fP command to \fBnode server\.js\fP\|\. -.IP \(bu 2 -\fB"scripts":{"install": "node\-gyp rebuild"}\fP -If there is a \fBbinding\.gyp\fP file in the root of your package and you have not defined an \fBinstall\fP or \fBpreinstall\fP script, npm will -default the \fBinstall\fP command to compile using node\-gyp\. -.IP \(bu 2 -\fB"contributors": [\.\.\.]\fP -If there is an \fBAUTHORS\fP file in the root of your package, npm will -treat each line as a \fBName (url)\fP format, where email and url -are optional\. Lines which start with a \fB#\fP or are blank, will be -ignored\. - -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 semver -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help version -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help uninstall - -.RE - diff --git a/deps/npm/man/man5/npm-package-locks.5 b/deps/npm/man/man5/npm-package-locks.5 deleted file mode 100644 index 241a45d9bb9..00000000000 --- a/deps/npm/man/man5/npm-package-locks.5 +++ /dev/null @@ -1,183 +0,0 @@ -.TH "NPM\-PACKAGE\-LOCKS" "5" "December 2017" "" "" -.SH "NAME" -\fBnpm-package-locks\fR \- An explanation of npm lockfiles -.SH DESCRIPTION -.P -Conceptually, the "input" to npm help install is a npm help 5 package\.json, while its -"output" is a fully\-formed \fBnode_modules\fP tree: a representation of the -dependencies you declared\. In an ideal world, npm would work like a pure -function: the same \fBpackage\.json\fP should produce the exact same \fBnode_modules\fP -tree, any time\. In some cases, this is indeed true\. But in many others, npm is -unable to do this\. There are multiple reasons for this: -.RS 0 -.IP \(bu 2 -different versions of npm (or other package managers) may have been used to install a package, each using slightly different installation algorithms\. -.IP \(bu 2 -a new version of a direct semver\-range package may have been published since the last time your packages were installed, and thus a newer version will be used\. -.IP \(bu 2 -A dependency of one of your dependencies may have published a new version, which will update even if you used pinned dependency specifiers (\fB1\.2\.3\fP instead of \fB^1\.2\.3\fP) -.IP \(bu 2 -The registry you installed from is no longer available, or allows mutation of versions (unlike the primary npm registry), and a different version of a package exists under the same version number now\. - -.RE -.P -As an example, consider package A: -.P -.RS 2 -.nf -{ - "name": "A", - "version": "0\.1\.0", - "dependencies": { - "B": "<0\.1\.0" - } -} -.fi -.RE -.P -package B: -.P -.RS 2 -.nf -{ - "name": "B", - "version": "0\.0\.1", - "dependencies": { - "C": "<0\.1\.0" - } -} -.fi -.RE -.P -and package C: -.P -.RS 2 -.nf -{ - "name": "C", - "version": "0\.0\.1" -} -.fi -.RE -.P -If these are the only versions of A, B, and C available in the -registry, then a normal \fBnpm install A\fP will install: -.P -.RS 2 -.nf -A@0\.1\.0 -`\-\- B@0\.0\.1 - `\-\- C@0\.0\.1 -.fi -.RE -.P -However, if B@0\.0\.2 is published, then a fresh \fBnpm install A\fP will -install: -.P -.RS 2 -.nf -A@0\.1\.0 -`\-\- B@0\.0\.2 - `\-\- C@0\.0\.1 -.fi -.RE -.P -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 -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\. -.P -To prevent this potential issue, npm uses npm help 5 package\-lock\.json or, if present, -npm help 5 shrinkwrap\.json\. These files are called package locks, or lockfiles\. -.P -Whenever you run \fBnpm install\fP, npm generates or updates your package lock, -which will look something like this: -.P -.RS 2 -.nf -{ - "name": "A", - "version": "0\.1\.0", - \.\.\.metadata fields\.\.\. - "dependencies": { - "B": { - "version": "0\.0\.1", - "resolved": "https://registry\.npmjs\.org/B/\-/B\-0\.0\.1\.tgz", - "integrity": "sha512\-DeAdb33F+" - "dependencies": { - "C": { - "version": "git://github\.com/org/C\.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4" - } - } - } - } -} -.fi -.RE -.P -This file describes an \fIexact\fR, and more importantly \fIreproducible\fR -\fBnode_modules\fP tree\. Once it's present, any future installation will base its -work off this file, instead of recalculating dependency versions off -npm help 5 package\.json\. -.P -The presence of a package lock changes the installation behavior such that: -.RS 0 -.IP 1. 3 -The module tree described by the package lock is reproduced\. This means -reproducing the structure described in the file, using the specific files -referenced in "resolved" if available, falling back to normal package resolution -using "version" if one isn't\. -.IP 2. 3 -The tree is walked and any missing dependencies are installed in the usual -fashion\. - -.RE -.P -If \fBpreshrinkwrap\fP, \fBshrinkwrap\fP or \fBpostshrinkwrap\fP are in the \fBscripts\fP -property of the \fBpackage\.json\fP, they will be executed in order\. \fBpreshrinkwrap\fP -and \fBshrinkwrap\fP are executed before the shrinkwrap, \fBpostshrinkwrap\fP is -executed afterwards\. These scripts run for both \fBpackage\-lock\.json\fP and -\fBnpm\-shrinkwrap\.json\fP\|\. For example to run some postprocessing on the generated -file: -.P -.RS 2 -.nf -"scripts": { - "postshrinkwrap": "json \-I \-e \\"this\.myMetadata = $MY_APP_METADATA\\"" -} -.fi -.RE -.SS Using locked packages -.P -Using a locked package is no different than using any package without a package -lock: any commands that update \fBnode_modules\fP and/or \fBpackage\.json\fP\|'s -dependencies will automatically sync the existing lockfile\. This includes \fBnpm -install\fP, \fBnpm rm\fP, \fBnpm update\fP, etc\. To prevent this update from happening, -you can use the \fB\-\-no\-save\fP option to prevent saving altogether, or -\fB\-\-no\-shrinkwrap\fP to allow \fBpackage\.json\fP to be updated while leaving -\fBpackage\-lock\.json\fP or \fBnpm\-shrinkwrap\.json\fP intact\. -.P -It is highly recommended you commit the generated package lock to source -control: this will allow anyone else on your team, your deployments, your -CI/continuous integration, and anyone else who runs \fBnpm install\fP in your -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\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -https://medium\.com/@sdboyer/so\-you\-want\-to\-write\-a\-package\-manager\-4ae9c17d9527 -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 5 package\-lock\.json -.IP \(bu 2 -npm help 5 shrinkwrap\.json -.IP \(bu 2 -npm help shrinkwrap - -.RE diff --git a/deps/npm/man/man5/npm-shrinkwrap.json.5 b/deps/npm/man/man5/npm-shrinkwrap.json.5 deleted file mode 100644 index a832963dc63..00000000000 --- a/deps/npm/man/man5/npm-shrinkwrap.json.5 +++ /dev/null @@ -1,32 +0,0 @@ -.TH "NPM\-SHRINKWRAP\.JSON" "5" "December 2017" "" "" -.SH "NAME" -\fBnpm-shrinkwrap.json\fR \- A publishable lockfile -.SH DESCRIPTION -.P -\fBnpm\-shrinkwrap\.json\fP is a file created by npm help shrinkwrap\. It is identical to -\fBpackage\-lock\.json\fP, with one major caveat: Unlike \fBpackage\-lock\.json\fP, -\fBnpm\-shrinkwrap\.json\fP may be included when publishing a package\. -.P -The recommended use\-case for \fBnpm\-shrinkwrap\.json\fP is applications deployed -through the publishing process on the registry: for example, daemons and -command\-line tools intended as global installs or \fBdevDependencies\fP\|\. It's -strongly discouraged for library authors to publish this file, since that would -prevent end users from having control over transitive dependency updates\. -.P -Additionally, if both \fBpackage\-lock\.json\fP and \fBnpm\-shrinkwrap\.json\fP are present -in a package root, \fBpackage\-lock\.json\fP will be ignored in favor of this file\. -.P -For full details and description of the \fBnpm\-shrinkwrap\.json\fP file format, refer -to the manual page for npm help 5 package\-lock\.json\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help shrinkwrap -.IP \(bu 2 -npm help 5 package\-lock\.json -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install - -.RE diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 deleted file mode 100644 index 26d65c2598d..00000000000 --- a/deps/npm/man/man5/npmrc.5 +++ /dev/null @@ -1,109 +0,0 @@ -.TH "NPMRC" "5" "December 2017" "" "" -.SH "NAME" -\fBnpmrc\fR \- The npm config files -.SH DESCRIPTION -.P -npm gets its config settings from the command line, environment -variables, and \fBnpmrc\fP files\. -.P -The \fBnpm config\fP command can be used to update and edit the contents -of the user and global npmrc files\. -.P -For a list of available configuration options, see npm help 7 config\. -.SH FILES -.P -The four relevant files are: -.RS 0 -.IP \(bu 2 -per\-project config file (/path/to/my/project/\.npmrc) -.IP \(bu 2 -per\-user config file (~/\.npmrc) -.IP \(bu 2 -global config file ($PREFIX/etc/npmrc) -.IP \(bu 2 -npm builtin config file (/path/to/npm/npmrc) - -.RE -.P -All npm config files are an ini\-formatted list of \fBkey = value\fP -parameters\. Environment variables can be replaced using -\fB${VARIABLE_NAME}\fP\|\. For example: -.P -.RS 2 -.nf -prefix = ${HOME}/\.npm\-packages -.fi -.RE -.P -Each of these files is loaded, and config options are resolved in -priority order\. For example, a setting in the userconfig file would -override the setting in the globalconfig file\. -.P -Array values are specified by adding "[]" after the key name\. For -example: -.P -.RS 2 -.nf -key[] = "first value" -key[] = "second value" -.fi -.RE -.SS Comments -.P -Lines in \fB\|\.npmrc\fP files are interpreted as comments when they begin with a \fB;\fP or \fB#\fP character\. \fB\|\.npmrc\fP files are parsed by npm/ini \fIhttps://github\.com/npm/ini\fR, which specifies this comment syntax\. -.P -For example: -.P -.RS 2 -.nf -# last modified: 01 Jan 2016 -; Set a new registry for a scoped package -@myscope:registry=https://mycustomregistry\.example\.org -.fi -.RE -.SS Per\-project config file -.P -When working locally in a project, a \fB\|\.npmrc\fP file in the root of the -project (ie, a sibling of \fBnode_modules\fP and \fBpackage\.json\fP) will set -config values specific to this project\. -.P -Note that this only applies to the root of the project that you're -running npm in\. It has no effect when your module is published\. For -example, you can't publish a module that forces itself to install -globally, or in a different location\. -.P -Additionally, this file is not read in global mode, such as when running -\fBnpm install \-g\fP\|\. -.SS Per\-user config file -.P -\fB$HOME/\.npmrc\fP (or the \fBuserconfig\fP param, if set in the environment -or on the command line) -.SS Global config file -.P -\fB$PREFIX/etc/npmrc\fP (or the \fBglobalconfig\fP param, if set above): -This file is an ini\-file formatted list of \fBkey = value\fP parameters\. -Environment variables can be replaced as above\. -.SS Built\-in config file -.P -\fBpath/to/npm/itself/npmrc\fP -.P -This is an unchangeable "builtin" configuration file that npm keeps -consistent across updates\. Set fields in here using the \fB\|\./configure\fP -script that comes with npm\. This is primarily for distribution -maintainers to override default configs in a standard and consistent -manner\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help npm - -.RE - diff --git a/deps/npm/man/man5/package-lock.json.5 b/deps/npm/man/man5/package-lock.json.5 deleted file mode 100644 index 0196cc87e6f..00000000000 --- a/deps/npm/man/man5/package-lock.json.5 +++ /dev/null @@ -1,144 +0,0 @@ -.TH "PACKAGE\-LOCK\.JSON" "5" "December 2017" "" "" -.SH "NAME" -\fBpackage-lock.json\fR \- A manifestation of the manifest -.SH DESCRIPTION -.P -\fBpackage\-lock\.json\fP is automatically generated for any operations where npm -modifies either the \fBnode_modules\fP tree, or \fBpackage\.json\fP\|\. It describes the -exact tree that was generated, such that subsequent installs are able to -generate identical trees, regardless of intermediate dependency updates\. -.P -This file is intended to be committed into source repositories, and serves -various purposes: -.RS 0 -.IP \(bu 2 -Describe a single representation of a dependency tree such that teammates, deployments, and continuous integration are guaranteed to install exactly the same dependencies\. -.IP \(bu 2 -Provide a facility for users to "time\-travel" to previous states of \fBnode_modules\fP without having to commit the directory itself\. -.IP \(bu 2 -To facilitate greater visibility of tree changes through readable source control diffs\. -.IP \(bu 2 -And optimize the installation process by allowing npm to skip repeated metadata resolutions for previously\-installed packages\. - -.RE -.P -One key detail about \fBpackage\-lock\.json\fP is that it cannot be published, and it -will be ignored if found in any place other than the toplevel package\. It shares -a format with npm help 5 shrinkwrap\.json, which is essentially the same file, but -allows publication\. This is not recommended unless deploying a CLI tool or -otherwise using the publication process for producing production packages\. -.P -If both \fBpackage\-lock\.json\fP and \fBnpm\-shrinkwrap\.json\fP are present in the root of -a package, \fBpackage\-lock\.json\fP will be completely ignored\. -.SH FILE FORMAT -.SS name -.P -The name of the package this is a package\-lock for\. This must match what's in -\fBpackage\.json\fP\|\. -.SS version -.P -The version of the package this is a package\-lock for\. This must match what's in -\fBpackage\.json\fP\|\. -.SS lockfileVersion -.P -An integer version, starting at \fB1\fP with the version number of this document -whose semantics were used when generating this \fBpackage\-lock\.json\fP\|\. -.SS packageIntegrity -.P -This is a subresource -integrity \fIhttps://w3c\.github\.io/webappsec/specs/subresourceintegrity/\fR value -created from the \fBpackage\.json\fP\|\. No preprocessing of the \fBpackage\.json\fP should -be done\. Subresource integrity strings can be produced by modules like -\fBssri\fP \fIhttps://www\.npmjs\.com/package/ssri\fR\|\. -.SS preserveSymlinks -.P -Indicates that the install was done with the environment variable -\fBNODE_PRESERVE_SYMLINKS\fP enabled\. The installer should insist that the value of -this property match that environment variable\. -.SS dependencies -.P -A mapping of package name to dependency object\. Dependency objects have the -following properties: -.SS version -.P -This is a specifier that uniquely identifies this package and should be -usable in fetching a new copy of it\. -.RS 0 -.IP \(bu 2 -bundled dependencies: Regardless of source, this is a version number that is purely for informational purposes\. -.IP \(bu 2 -registry sources: This is a version number\. (eg, \fB1\.2\.3\fP) -.IP \(bu 2 -git sources: This is a git specifier with resolved committish\. (eg, \fBgit+https://example\.com/foo/bar#115311855adb0789a0466714ed48a1499ffea97e\fP) -.IP \(bu 2 -http tarball sources: This is the URL of the tarball\. (eg, \fBhttps://example\.com/example\-1\.3\.0\.tgz\fP) -.IP \(bu 2 -local tarball sources: This is the file URL of the tarball\. (eg \fBfile:///opt/storage/example\-1\.3\.0\.tgz\fP) -.IP \(bu 2 -local link sources: This is the file URL of the link\. (eg \fBfile:libs/our\-module\fP) - -.RE -.SS integrity -.P -This is a Standard Subresource -Integrity \fIhttps://w3c\.github\.io/webappsec/specs/subresourceintegrity/\fR for this -resource\. -.RS 0 -.IP \(bu 2 -For bundled dependencies this is not included, regardless of source\. -.IP \(bu 2 -For registry sources, this is the \fBintegrity\fP that the registry provided, or if one wasn't provided the SHA1 in \fBshasum\fP\|\. -.IP \(bu 2 -For git sources this is the specific commit hash we cloned from\. -.IP \(bu 2 -For remote tarball sources this is an integrity based on a SHA512 of -the file\. -.IP \(bu 2 -For local tarball sources: This is an integrity field based on the SHA512 of the file\. - -.RE -.SS resolved -.RS 0 -.IP \(bu 2 -For bundled dependencies this is not included, regardless of source\. -.IP \(bu 2 -For registry sources this is path of the tarball relative to the registry -URL\. If the tarball URL isn't on the same server as the registry URL then -this is a complete URL\. - -.RE -.SS bundled -.P -If true, this is the bundled dependency and will be installed by the parent -module\. When installing, this module will be extracted from the parent -module during the extract phase, not installed as a separate dependency\. -.SS dev -.P -If true then this dependency is either a development dependency ONLY of the -top level module or a transitive dependency of one\. This is false for -dependencies that are both a development dependency of the top level and a -transitive dependency of a non\-development dependency of the top level\. -.SS optional -.P -If true then this dependency is either an optional dependency ONLY of the -top level module or a transitive dependency of one\. This is false for -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 -All optional dependencies should be included even if they're uninstallable -on the current platform\. -.SS dependencies -.P -The dependencies of this dependency, exactly as at the top level\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help shrinkwrap -.IP \(bu 2 -npm help 5 shrinkwrap\.json -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install - -.RE diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5 deleted file mode 100644 index 0a4328f73fd..00000000000 --- a/deps/npm/man/man5/package.json.5 +++ /dev/null @@ -1,951 +0,0 @@ -.TH "PACKAGE\.JSON" "5" "December 2017" "" "" -.SH "NAME" -\fBpackage.json\fR \- Specifics of npm's package\.json handling -.SH DESCRIPTION -.P -This document is all you need to know about what's required in your package\.json -file\. It must be actual JSON, not just a JavaScript object literal\. -.P -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\. -.P -The name is what your thing is called\. -.P -Some rules: -.RS 0 -.IP \(bu 2 -The name must be less than or equal to 214 characters\. This includes the scope for -scoped packages\. -.IP \(bu 2 -The name can't start with a dot or an underscore\. -.IP \(bu 2 -New packages must not have uppercase letters in the name\. -.IP \(bu 2 -The name ends up being part of a URL, an argument on the command line, and a -folder name\. Therefore, the name can't contain any non\-URL\-safe characters\. - -.RE -.P -Some tips: -.RS 0 -.IP \(bu 2 -Don't use the same name as a core Node module\. -.IP \(bu 2 -Don't put "js" or "node" in the name\. It's assumed that it's js, since you're -writing a package\.json file, and you can specify the engine using the "engines" -field\. (See below\.) -.IP \(bu 2 -The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive\. -.IP \(bu 2 -You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it\. https://www\.npmjs\.com/ - -.RE -.P -A name can be optionally prefixed by a scope, e\.g\. \fB@myorg/mypackage\fP\|\. See -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\. -.P -Version must be parseable by -node\-semver \fIhttps://github\.com/isaacs/node\-semver\fR, which is bundled -with npm as a dependency\. (\fBnpm install semver\fP to use it yourself\.) -.P -More on version numbers and ranges at npm help 7 semver\. -.SH description -.P -Put a description in it\. It's a string\. This helps people discover your -package, as it's listed in \fBnpm search\fP\|\. -.SH keywords -.P -Put keywords in it\. It's an array of strings\. This helps people -discover your package as it's listed in \fBnpm search\fP\|\. -.SH homepage -.P -The url to the project homepage\. -.SH bugs -.P -The url to your project's issue tracker and / or the email address to which -issues should be reported\. These are helpful for people who encounter issues -with your package\. -.P -It should look like this: -.P -.RS 2 -.nf -{ "url" : "https://github\.com/owner/project/issues" -, "email" : "project@hostname\.com" -} -.fi -.RE -.P -You can specify either one or both values\. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object\. -.P -If a url is provided, it will be used by the \fBnpm bugs\fP command\. -.SH license -.P -You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it\. -.P -If you're using a common license such as BSD\-2\-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this: -.P -.RS 2 -.nf -{ "license" : "BSD\-3\-Clause" } -.fi -.RE -.P -You can check the full list of SPDX license IDs \fIhttps://spdx\.org/licenses/\fR\|\. -Ideally you should pick one that is -OSI \fIhttps://opensource\.org/licenses/alphabetical\fR approved\. -.P -If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2\.0 string \fIhttps://npmjs\.com/package/spdx\fR, like this: -.P -.RS 2 -.nf -{ "license" : "(ISC OR GPL\-3\.0)" } -.fi -.RE -.P -If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one: -.P -.RS 2 -.nf -{ "license" : "SEE LICENSE IN " } -.fi -.RE -.P -Then include a file named \fB\fP at the top level of the package\. -.P -Some old packages used license objects or a "licenses" property containing an -array of license objects: -.P -.RS 2 -.nf -// Not valid metadata -{ "license" : - { "type" : "ISC" - , "url" : "https://opensource\.org/licenses/ISC" - } -} - -// Not valid metadata -{ "licenses" : - [ - { "type": "MIT" - , "url": "https://www\.opensource\.org/licenses/mit\-license\.php" - } - , { "type": "Apache\-2\.0" - , "url": "https://opensource\.org/licenses/apache2\.0\.php" - } - ] -} -.fi -.RE -.P -Those styles are now deprecated\. Instead, use SPDX expressions, like this: -.P -.RS 2 -.nf -{ "license": "ISC" } - -{ "license": "(MIT OR Apache\-2\.0)" } -.fi -.RE -.P -Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms: -.P -.RS 2 -.nf -{ "license": "UNLICENSED" } -.fi -.RE -.P -Consider also setting \fB"private": true\fP to prevent accidental publication\. -.SH people fields: author, contributors -.P -The "author" is one person\. "contributors" is an array of people\. A "person" -is an object with a "name" field and optionally "url" and "email", like this: -.P -.RS 2 -.nf -{ "name" : "Barney Rubble" -, "email" : "b@rubble\.com" -, "url" : "http://barnyrubble\.tumblr\.com/" -} -.fi -.RE -.P -Or you can shorten that all into a single string, and npm will parse it for you: -.P -.RS 2 -.nf -"Barney Rubble (http://barnyrubble\.tumblr\.com/)" -.fi -.RE -.P -Both email and url are optional either way\. -.P -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 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 -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 -root of your package it will not override the "files" field, but in -subdirectories it will\. The \fB\|\.npmignore\fP file works just like a -\fB\|\.gitignore\fP\|\. If there is a \fB\|\.gitignore\fP file, and \fB\|\.npmignore\fP is -missing, \fB\|\.gitignore\fP\|'s contents will be used instead\. -.P -Files included with the "package\.json#files" field \fIcannot\fR be excluded -through \fB\|\.npmignore\fP or \fB\|\.gitignore\fP\|\. -.P -Certain files are always included, regardless of settings: -.RS 0 -.IP \(bu 2 -\fBpackage\.json\fP -.IP \(bu 2 -\fBREADME\fP -.IP \(bu 2 -\fBCHANGES\fP / \fBCHANGELOG\fP / \fBHISTORY\fP -.IP \(bu 2 -\fBLICENSE\fP / \fBLICENCE\fP -.IP \(bu 2 -\fBNOTICE\fP -.IP \(bu 2 -The file in the "main" field - -.RE -.P -\fBREADME\fP, \fBCHANGES\fP, \fBLICENSE\fP & \fBNOTICE\fP can have any case and extension\. -.P -Conversely, some files are always ignored: -.RS 0 -.IP \(bu 2 -\fB\|\.git\fP -.IP \(bu 2 -\fBCVS\fP -.IP \(bu 2 -\fB\|\.svn\fP -.IP \(bu 2 -\fB\|\.hg\fP -.IP \(bu 2 -\fB\|\.lock\-wscript\fP -.IP \(bu 2 -\fB\|\.wafpickle\-N\fP -.IP \(bu 2 -\fB\|\.*\.swp\fP -.IP \(bu 2 -\fB\|\.DS_Store\fP -.IP \(bu 2 -\fB\|\._*\fP -.IP \(bu 2 -\fBnpm\-debug\.log\fP -.IP \(bu 2 -\fB\|\.npmrc\fP -.IP \(bu 2 -\fBnode_modules\fP -.IP \(bu 2 -\fBconfig\.gypi\fP -.IP \(bu 2 -\fB*\.orig\fP -.IP \(bu 2 -\fBpackage\-lock\.json\fP (use shrinkwrap instead) - -.RE -.SH main -.P -The main field is a module ID that is the primary entry point to your program\. -That is, if your package is named \fBfoo\fP, and a user installs it, and then does -\fBrequire("foo")\fP, then your main module's exports object will be returned\. -.P -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 bin -.P -A lot of packages have one or more executable files that they'd like to -install into the PATH\. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable\.) -.P -To use this, supply a \fBbin\fP field in your package\.json which is a map of -command name to local file name\. On install, npm will symlink that file into -\fBprefix/bin\fP for global installs, or \fB\|\./node_modules/\.bin/\fP for local -installs\. -.P -For example, myapp could have this: -.P -.RS 2 -.nf -{ "bin" : { "myapp" : "\./cli\.js" } } -.fi -.RE -.P -So, when you install myapp, it'll create a symlink from the \fBcli\.js\fP script to -\fB/usr/local/bin/myapp\fP\|\. -.P -If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string\. For example: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin": "\./path/to/program" } -.fi -.RE -.P -would be the same as this: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin" : { "my\-program" : "\./path/to/program" } } -.fi -.RE -.P -Please make sure that your file(s) referenced in \fBbin\fP starts with -\fB#!/usr/bin/env node\fP, otherwise the scripts are started without the node -executable! -.SH man -.P -Specify either a single file or an array of filenames to put in place for the -\fBman\fP program to find\. -.P -If only a single file is provided, then it's installed such that it is the -result from \fBman \fP, regardless of its actual filename\. For example: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : "\./man/doc\.1" -} -.fi -.RE -.P -would link the \fB\|\./man/doc\.1\fP file in such that it is the target for \fBman foo\fP -.P -If the filename doesn't start with the package name, then it's prefixed\. -So, this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/bar\.1" ] -} -.fi -.RE -.P -will create files to do \fBman foo\fP and \fBman foo\-bar\fP\|\. -.P -Man files must end with a number, and optionally a \fB\|\.gz\fP suffix if they are -compressed\. The number dictates which man section the file is installed into\. -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/foo\.2" ] -} -.fi -.RE -.P -will create entries for \fBman foo\fP and \fBman 2 foo\fP -.SH directories -.P -The CommonJS Packages \fIhttp://wiki\.commonjs\.org/wiki/Packages/1\.0\fR spec details a -few ways that you can indicate the structure of your package using a \fBdirectories\fP -object\. If you look at npm's package\.json \fIhttps://registry\.npmjs\.org/npm/latest\fR, -you'll see that it has directories for doc, lib, and man\. -.P -In the future, this information may be used in other creative ways\. -.SS directories\.lib -.P -Tell people where the bulk of your library is\. Nothing special is done -with the lib folder in any way, but it's useful meta info\. -.SS directories\.bin -.P -If you specify a \fBbin\fP directory in \fBdirectories\.bin\fP, all the files in -that folder will be added\. -.P -Because of the way the \fBbin\fP directive works, specifying both a -\fBbin\fP path and setting \fBdirectories\.bin\fP is an error\. If you want to -specify individual files, use \fBbin\fP, and for all the files in an -existing \fBbin\fP directory, use \fBdirectories\.bin\fP\|\. -.SS directories\.man -.P -A folder that is full of man pages\. Sugar to generate a "man" array by -walking the folder\. -.SS directories\.doc -.P -Put markdown files in here\. Eventually, these will be displayed nicely, -maybe, someday\. -.SS directories\.example -.P -Put example scripts in here\. Someday, it might be exposed in some clever way\. -.SS directories\.test -.P -Put your tests in here\. It is currently not exposed, but it might be in the -future\. -.SH repository -.P -Specify the place where your code lives\. This is helpful for people who -want to contribute\. If the git repo is on GitHub, then the \fBnpm docs\fP -command will be able to find you\. -.P -Do it like this: -.P -.RS 2 -.nf -"repository" : - { "type" : "git" - , "url" : "https://github\.com/npm/npm\.git" - } - -"repository" : - { "type" : "svn" - , "url" : "https://v8\.googlecode\.com/svn/trunk/" - } -.fi -.RE -.P -The URL should be a publicly available (perhaps read\-only) url that can be handed -directly to a VCS program without any modification\. It should not be a url to an -html project page that you put in your browser\. It's for computers\. -.P -For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for \fBnpm install\fP: -.P -.RS 2 -.nf -"repository": "npm/npm" - -"repository": "github:user/repo" - -"repository": "gist:11081aaa281" - -"repository": "bitbucket:user/repo" - -"repository": "gitlab:user/repo" -.fi -.RE -.SH scripts -.P -The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package\. The key is the lifecycle -event, and the value is the command to run at that point\. -.P -See npm help 7 \fBnpm\-scripts\fP to find out more about writing package scripts\. -.SH config -.P -A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades\. For instance, if a package had the -following: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } } -.fi -.RE -.P -and then had a "start" command that then referenced the -\fBnpm_package_config_port\fP environment variable, then the user could -override that by doing \fBnpm config set foo:port 8001\fP\|\. -.P -See npm help 7 \fBnpm\-config\fP and npm help 7 \fBnpm\-scripts\fP for more on package -configs\. -.SH dependencies -.P -Dependencies are specified in a simple object that maps a package name to a -version range\. The version range is a string which has one or more -space\-separated descriptors\. Dependencies can also be identified with a -tarball or git URL\. -.P -\fBPlease do not put test harnesses or transpilers in your -\fBdependencies\fP object\.\fR See \fBdevDependencies\fP, below\. -.P -See npm help 7 semver for more details about specifying version ranges\. -.RS 0 -.IP \(bu 2 -\fBversion\fP Must match \fBversion\fP exactly -.IP \(bu 2 -\fB>version\fP Must be greater than \fBversion\fP -.IP \(bu 2 -\fB>=version\fP etc -.IP \(bu 2 -\fB=version1 <=version2\fP\|\. -.IP \(bu 2 -\fBrange1 || range2\fP Passes if either range1 or range2 are satisfied\. -.IP \(bu 2 -\fBgit\.\.\.\fP See 'Git URLs as Dependencies' below -.IP \(bu 2 -\fBuser/repo\fP See 'GitHub URLs' below -.IP \(bu 2 -\fBtag\fP A specific version tagged and published as \fBtag\fP See npm help \fBnpm\-dist\-tag\fP -.IP \(bu 2 -\fBpath/path/path\fP See Local Paths \fI#local\-paths\fR below - -.RE -.P -For example, these are all valid: -.P -.RS 2 -.nf -{ "dependencies" : - { "foo" : "1\.0\.0 \- 2\.9999\.9999" - , "bar" : ">=1\.0\.2 <2\.1\.2" - , "baz" : ">1\.0\.2 <=2\.3\.4" - , "boo" : "2\.0\.1" - , "qux" : "<1\.0\.0 || >=2\.3\.1 <2\.4\.5 || >=2\.5\.2 <3\.0\.0" - , "asd" : "http://asdf\.com/asdf\.tar\.gz" - , "til" : "~1\.2" - , "elf" : "~1\.2\.3" - , "two" : "2\.x" - , "thr" : "3\.3\.x" - , "lat" : "latest" - , "dyl" : "file:\.\./dyl" - } -} -.fi -.RE -.SS URLs as Dependencies -.P -You may specify a tarball URL in place of a version range\. -.P -This tarball will be downloaded and installed locally to your package at -install time\. -.SS Git URLs as Dependencies -.P -Git urls are of the form: -.P -.RS 2 -.nf -://[[:]@][:][:][/][# | #semver:] -.fi -.RE -.P -\fB\fP is one of \fBgit\fP, \fBgit+ssh\fP, \fBgit+http\fP, \fBgit+https\fP, or -\fBgit+file\fP\|\. -.P -If \fB#\fP is provided, it will be used to clone exactly that -commit\. If the commit\-ish has the format \fB#semver:\fP, \fB\fP can -be any valid semver range or exact version, and npm will look for any tags -or refs matching that range in the remote repository, much as it would for a -registry dependency\. If neither \fB#\fP or \fB#semver:\fP is -specified, then \fBmaster\fP is used\. -.P -Examples: -.P -.RS 2 -.nf -git+ssh://git@github\.com:npm/npm\.git#v1\.0\.27 -git+ssh://git@github\.com:npm/npm#semver:^5\.0 -git+https://isaacs@github\.com/npm/npm\.git -git://github\.com/npm/npm\.git#v1\.0\.27 -.fi -.RE -.SS GitHub URLs -.P -As of version 1\.1\.65, you can refer to GitHub urls as just "foo": -"user/foo\-project"\. Just as with git URLs, a \fBcommit\-ish\fP suffix can be -included\. For example: -.P -.RS 2 -.nf -{ - "name": "foo", - "version": "0\.0\.0", - "dependencies": { - "express": "expressjs/express", - "mocha": "mochajs/mocha#4727d357ea", - "module": "user/repo#feature\\/branch" - } -} -.fi -.RE -.SS Local Paths -.P -As of version 2\.0\.0 you can provide a path to a local directory that contains a -package\. Local paths can be saved using \fBnpm install \-S\fP or -\fBnpm install \-\-save\fP, using any of these forms: -.P -.RS 2 -.nf -\|\.\./foo/bar -~/foo/bar -\|\./foo/bar -/foo/bar -.fi -.RE -.P -in which case they will be normalized to a relative path and added to your -\fBpackage\.json\fP\|\. For example: -.P -.RS 2 -.nf -{ - "name": "baz", - "dependencies": { - "bar": "file:\.\./foo/bar" - } -} -.fi -.RE -.P -This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry\. -.SH devDependencies -.P -If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use\. -.P -In this case, it's best to map these additional items in a \fBdevDependencies\fP -object\. -.P -These things will be installed when doing \fBnpm link\fP or \fBnpm install\fP -from the root of a package, and can be managed like any other npm -configuration param\. See npm help 7 \fBnpm\-config\fP for more on the topic\. -.P -For build steps that are not platform\-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the \fBprepare\fP -script to do this, and make the required package a devDependency\. -.P -For example: -.P -.RS 2 -.nf -{ "name": "ethopia\-waza", - "description": "a delightfully fruity coffee varietal", - "version": "1\.2\.3", - "devDependencies": { - "coffee\-script": "~1\.6\.3" - }, - "scripts": { - "prepare": "coffee \-o lib/ \-c src/waza\.coffee" - }, - "main": "lib/waza\.js" -} -.fi -.RE -.P -The \fBprepare\fP script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves\. In dev mode (ie, locally running \fBnpm install\fP), it'll -run this script as well, so that you can test it easily\. -.SH peerDependencies -.P -In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a \fBrequire\fP of this host\. -This is usually referred to as a \fIplugin\fR\|\. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation\. -.P -For example: -.P -.RS 2 -.nf -{ - "name": "tea\-latte", - "version": "1\.3\.5", - "peerDependencies": { - "tea": "2\.x" - } -} -.fi -.RE -.P -This ensures your package \fBtea\-latte\fP can be installed \fIalong\fR with the second -major version of the host package \fBtea\fP only\. \fBnpm install tea\-latte\fP could -possibly yield the following dependency graph: -.P -.RS 2 -.nf -├── tea\-latte@1\.3\.5 -└── tea@2\.2\.0 -.fi -.RE -.P -\fBNOTE: npm versions 1 and 2 will automatically install \fBpeerDependencies\fP if -they are not explicitly depended upon higher in the dependency tree\. In the -next major version of npm (npm@3), this will no longer be the case\. You will -receive a warning that the peerDependency is not installed instead\.\fR The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible\. -.P -Trying to install another plugin with a conflicting requirement will cause an -error\. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions\. -.P -Assuming the host complies with semver \fIhttp://semver\.org/\fR, only changes in -the host package's major version will break your plugin\. Thus, if you've worked -with every 1\.x version of the host package, use \fB"^1\.0"\fP or \fB"1\.x"\fP to express -this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fP\|\. -.SH bundledDependencies -.P -This defines an array of package names that will be bundled when publishing -the package\. -.P -In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the \fBbundledDependencies\fP -array and executing \fBnpm pack\fP\|\. -.P -For example: -.P -If we define a package\.json like this: -.P -.RS 2 -.nf -{ - "name": "awesome\-web\-framework", - "version": "1\.0\.0", - "bundledDependencies": [ - "renderized", "super\-streams" - ] -} -.fi -.RE -.P -we can obtain \fBawesome\-web\-framework\-1\.0\.0\.tgz\fP file by running \fBnpm pack\fP\|\. -This file contains the dependencies \fBrenderized\fP and \fBsuper\-streams\fP which -can be installed in a new project by executing \fBnpm install -awesome\-web\-framework\-1\.0\.0\.tgz\fP\|\. -.P -If this is spelled \fB"bundleDependencies"\fP, then that is also honored\. -.SH optionalDependencies -.P -If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the \fBoptionalDependencies\fP -object\. This is a map of package name to version or url, just like the -\fBdependencies\fP object\. The difference is that build failures do not cause -installation to fail\. -.P -It is still your program's responsibility to handle the lack of the -dependency\. For example, something like this: -.P -.RS 2 -.nf -try { - var foo = require('foo') - var fooVersion = require('foo/package\.json')\.version -} catch (er) { - foo = null -} -if ( notGoodFooVersion(fooVersion) ) { - foo = null -} - -// \.\. then later in your program \.\. - -if (foo) { - foo\.doFooThings() -} -.fi -.RE -.P -Entries in \fBoptionalDependencies\fP will override entries of the same name in -\fBdependencies\fP, so it's usually best to only put in one place\. -.SH engines -.P -You can specify the version of node that your stuff works on: -.P -.RS 2 -.nf -{ "engines" : { "node" : ">=0\.10\.3 <0\.12" } } -.fi -.RE -.P -And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do\. -.P -If you specify an "engines" field, then npm will require that "node" be -somewhere on that list\. If "engines" is omitted, then npm will just assume -that it works on node\. -.P -You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program\. For example: -.P -.RS 2 -.nf -{ "engines" : { "npm" : "~1\.0\.20" } } -.fi -.RE -.P -Unless the user has set the \fBengine\-strict\fP config flag, this -field is advisory only and will only produce warnings when your package is installed as a dependency\. -.SH engineStrict -.P -\fBThis feature was removed in npm 3\.0\.0\fR -.P -Prior to npm 3\.0\.0, this feature was used to treat this package as if the -user had set \fBengine\-strict\fP\|\. It is no longer used\. -.SH os -.P -You can specify which operating systems your -module will run on: -.P -.RS 2 -.nf -"os" : [ "darwin", "linux" ] -.fi -.RE -.P -You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!': -.P -.RS 2 -.nf -"os" : [ "!win32" ] -.fi -.RE -.P -The host operating system is determined by \fBprocess\.platform\fP -.P -It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this\. -.SH cpu -.P -If your code only runs on certain cpu architectures, -you can specify which ones\. -.P -.RS 2 -.nf -"cpu" : [ "x64", "ia32" ] -.fi -.RE -.P -Like the \fBos\fP option, you can also blacklist architectures: -.P -.RS 2 -.nf -"cpu" : [ "!arm", "!mips" ] -.fi -.RE -.P -The host architecture is determined by \fBprocess\.arch\fP -.SH preferGlobal -.P -\fBDEPRECATED\fR -.P -This option used to trigger an npm warning, but it will no longer warn\. It is -purely there for informational purposes\. It is now recommended that you install -any binaries as local devDependencies wherever possible\. -.SH private -.P -If you set \fB"private": true\fP in your package\.json, then npm will refuse -to publish it\. -.P -This is a way to prevent accidental publication of private repositories\. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -\fBpublishConfig\fP dictionary described below to override the \fBregistry\fP config -param at publish\-time\. -.SH publishConfig -.P -This is a set of config values that will be used at publish\-time\. It's -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\. -.P -See npm help 7 \fBnpm\-config\fP to see the list of config options that can be -overridden\. -.SH DEFAULT VALUES -.P -npm will default some values based on package contents\. -.RS 0 -.IP \(bu 2 -\fB"scripts": {"start": "node server\.js"}\fP -If there is a \fBserver\.js\fP file in the root of your package, then npm -will default the \fBstart\fP command to \fBnode server\.js\fP\|\. -.IP \(bu 2 -\fB"scripts":{"install": "node\-gyp rebuild"}\fP -If there is a \fBbinding\.gyp\fP file in the root of your package and you have not defined an \fBinstall\fP or \fBpreinstall\fP script, npm will -default the \fBinstall\fP command to compile using node\-gyp\. -.IP \(bu 2 -\fB"contributors": [\.\.\.]\fP -If there is an \fBAUTHORS\fP file in the root of your package, npm will -treat each line as a \fBName (url)\fP format, where email and url -are optional\. Lines which start with a \fB#\fP or are blank, will be -ignored\. - -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 semver -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help version -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help uninstall - -.RE - diff --git a/deps/npm/man/man7/npm-coding-style.7 b/deps/npm/man/man7/npm-coding-style.7 deleted file mode 100644 index 508198722df..00000000000 --- a/deps/npm/man/man7/npm-coding-style.7 +++ /dev/null @@ -1,222 +0,0 @@ -.TH "NPM\-CODING\-STYLE" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-coding-style\fR \- npm's "funny" coding style -.SH DESCRIPTION -.P -npm's coding style is a bit unconventional\. It is not different for -difference's sake, but rather a carefully crafted style that is -designed to reduce visual clutter and make bugs more apparent\. -.P -If you want to contribute to npm (which is very encouraged), you should -make your code conform to npm's style\. -.P -Note: this concerns npm's code not the specific packages that you can download from the npm registry\. -.SH Line Length -.P -Keep lines shorter than 80 characters\. It's better for lines to be -too short than to be too long\. Break up long lists, objects, and other -statements onto multiple lines\. -.SH Indentation -.P -Two\-spaces\. Tabs are better, but they look like hell in web browsers -(and on GitHub), and node uses 2 spaces, so that's that\. -.P -Configure your editor appropriately\. -.SH Curly braces -.P -Curly braces belong on the same line as the thing that necessitates them\. -.P -Bad: -.P -.RS 2 -.nf -function () -{ -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -function () { -.fi -.RE -.P -If a block needs to wrap to the next line, use a curly brace\. Don't -use it if it doesn't\. -.P -Bad: -.P -.RS 2 -.nf -if (foo) { bar() } -while (foo) - bar() -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -if (foo) bar() -while (foo) { - bar() -} -.fi -.RE -.SH Semicolons -.P -Don't use them except in four situations: -.RS 0 -.IP \(bu 2 -\fBfor (;;)\fP loops\. They're actually required\. -.IP \(bu 2 -null loops like: \fBwhile (something) ;\fP (But you'd better have a good -reason for doing that\.) -.IP \(bu 2 -\fBcase 'foo': doSomething(); break\fP -.IP \(bu 2 -In front of a leading \fB(\fP or \fB[\fP at the start of the line\. -This prevents the expression from being interpreted -as a function call or property access, respectively\. - -.RE -.P -Some examples of good semicolon usage: -.P -.RS 2 -.nf -;(x || y)\.doSomething() -;[a, b, c]\.forEach(doSomething) -for (var i = 0; i < 10; i ++) { - switch (state) { - case 'begin': start(); continue - case 'end': finish(); break - default: throw new Error('unknown state') - } - end() -} -.fi -.RE -.P -Note that starting lines with \fB\-\fP and \fB+\fP also should be prefixed -with a semicolon, but this is much less common\. -.SH Comma First -.P -If there is a list of things separated by commas, and it wraps -across multiple lines, put the comma at the start of the next -line, directly below the token that starts the list\. Put the -final token in the list on a line by itself\. For example: -.P -.RS 2 -.nf -var magicWords = [ 'abracadabra' - , 'gesundheit' - , 'ventrilo' - ] - , spells = { 'fireball' : function () { setOnFire() } - , 'water' : function () { putOut() } - } - , a = 1 - , b = 'abc' - , etc - , somethingElse -.fi -.RE -.SH Quotes -.P -Use single quotes for strings except to avoid escaping\. -.P -Bad: -.P -.RS 2 -.nf -var notOk = "Just double quotes" -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -var ok = 'String contains "double" quotes' -var alsoOk = "String contains 'single' quotes or apostrophe" -.fi -.RE -.SH Whitespace -.P -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\. -.P -Don't leave trailing whitespace at the end of lines\. Don't indent empty -lines\. Don't use more spaces than are helpful\. -.SH Functions -.P -Use named functions\. They make stack traces a lot easier to read\. -.SH Callbacks, Sync/async Style -.P -Use the asynchronous/non\-blocking versions of things as much as possible\. -It might make more sense for npm to use the synchronous fs APIs, but this -way, the fs and http and child process stuff all uses the same callback\-passing -methodology\. -.P -The callback should always be the last argument in the list\. Its first -argument is the Error or null\. -.P -Be very careful never to ever ever throw anything\. It's worse than useless\. -Just send the error message back as the first argument to the callback\. -.SH Errors -.P -Always create a new Error object with your message\. Don't just return a -string message to the callback\. Stack traces are handy\. -.SH Logging -.P -Logging is done using the npmlog \fIhttps://github\.com/npm/npmlog\fR -utility\. -.P -Please clean up logs when they are no longer helpful\. In particular, -logging the same object over and over again is not helpful\. Logs should -report what's happening so that it's easier to track down where a fault -occurs\. -.P -Use appropriate log levels\. See npm help 7 \fBnpm\-config\fP and search for -"loglevel"\. -.SH Case, naming, etc\. -.P -Use \fBlowerCamelCase\fP for multiword identifiers when they refer to objects, -functions, methods, properties, or anything not specified in this section\. -.P -Use \fBUpperCamelCase\fP for class names (things that you'd pass to "new")\. -.P -Use \fBall\-lower\-hyphen\-css\-case\fP for multiword filenames and config keys\. -.P -Use named functions\. They make stack traces easier to follow\. -.P -Use \fBCAPS_SNAKE_CASE\fP for constants, things that should never change -and are rarely used\. -.P -Use a single uppercase letter for function names where the function -would normally be anonymous, but needs to call itself recursively\. It -makes it clear that it's a "throwaway" function\. -.SH null, undefined, false, 0 -.P -Boolean variables and functions should always be either \fBtrue\fP or -\fBfalse\fP\|\. Don't set it to 0 unless it's supposed to be a number\. -.P -When something is intentionally missing or removed, set it to \fBnull\fP\|\. -.P -Don't set things to \fBundefined\fP\|\. Reserve that value to mean "not yet -set to anything\." -.P -Boolean objects are forbidden\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help npm - -.RE - diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7 deleted file mode 100644 index aec6d8014ca..00000000000 --- a/deps/npm/man/man7/npm-config.7 +++ /dev/null @@ -1,1615 +0,0 @@ -.TH "NPM\-CONFIG" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-config\fR \- More than you probably want to know about npm configuration -.SH DESCRIPTION -.P -npm gets its configuration values from the following sources, sorted by priority: -.SS Command Line Flags -.P -Putting \fB\-\-foo bar\fP on the command line sets the \fBfoo\fP configuration -parameter to \fB"bar"\fP\|\. A \fB\-\-\fP argument tells the cli parser to stop -reading flags\. Using \fB\-\-flag\fP without specifying any value will set -the value to \fBtrue\fP\|\. -.P -Example: \fB\-\-flag1 \-\-flag2\fP will set both configuration parameters -to \fBtrue\fP, while \fB\-\-flag1 \-\-flag2 bar\fP will set \fBflag1\fP to \fBtrue\fP, -and \fBflag2\fP to \fBbar\fP\|\. Finally, \fB\-\-flag1 \-\-flag2 \-\- bar\fP will set -both configuration parameters to \fBtrue\fP, and the \fBbar\fP is taken -as a command argument\. -.SS Environment Variables -.P -Any environment variables that start with \fBnpm_config_\fP will be -interpreted as a configuration parameter\. For example, putting -\fBnpm_config_foo=bar\fP in your environment will set the \fBfoo\fP -configuration parameter to \fBbar\fP\|\. Any environment configurations that -are not given a value will be given the value of \fBtrue\fP\|\. Config -values are case\-insensitive, so \fBNPM_CONFIG_FOO=bar\fP will work the -same\. However, please note that inside npm\-scripts \fI/misc/scripts\fR -npm will set its own environment variables and Node will prefer -those lowercase versions over any uppercase ones that you might set\. -For details see this issue \fIhttps://github\.com/npm/npm/issues/14528\fR\|\. -.P -Notice that you need to use underscores instead of dashes, so \fB\-\-allow\-same\-version\fP -would become \fBnpm_config_allow_same_version=true\fP\|\. -.SS npmrc Files -.P -The four relevant files are: -.RS 0 -.IP \(bu 2 -per\-project configuration file (\fB/path/to/my/project/\.npmrc\fP) -.IP \(bu 2 -per\-user configuration file (defaults to \fB$HOME/\.npmrc\fP; configurable via CLI -option \fB\-\-userconfig\fP or environment variable \fB$NPM_CONFIG_USERCONFIG\fP) -.IP \(bu 2 -global configuration file (defaults to \fB$PREFIX/etc/npmrc\fP; configurable via -CLI option \fB\-\-globalconfig\fP or environment variable \fB$NPM_CONFIG_GLOBALCONFIG\fP) -.IP \(bu 2 -npm's built\-in configuration file (\fB/path/to/npm/npmrc\fP) - -.RE -.P -See npm help 5 npmrc for more details\. -.SS Default Configs -.P -Run \fBnpm config ls \-l\fP to see a set of configuration parameters that are -internal to npm, and are defaults if nothing else is specified\. -.SH Shorthands and Other CLI Niceties -.P -The following shorthands are parsed on the command\-line: -.RS 0 -.IP \(bu 2 -\fB\-v\fP: \fB\-\-version\fP -.IP \(bu 2 -\fB\-h\fP, \fB\-?\fP, \fB\-\-help\fP, \fB\-H\fP: \fB\-\-usage\fP -.IP \(bu 2 -\fB\-s\fP, \fB\-\-silent\fP: \fB\-\-loglevel silent\fP -.IP \(bu 2 -\fB\-q\fP, \fB\-\-quiet\fP: \fB\-\-loglevel warn\fP -.IP \(bu 2 -\fB\-d\fP: \fB\-\-loglevel info\fP -.IP \(bu 2 -\fB\-dd\fP, \fB\-\-verbose\fP: \fB\-\-loglevel verbose\fP -.IP \(bu 2 -\fB\-ddd\fP: \fB\-\-loglevel silly\fP -.IP \(bu 2 -\fB\-g\fP: \fB\-\-global\fP -.IP \(bu 2 -\fB\-C\fP: \fB\-\-prefix\fP -.IP \(bu 2 -\fB\-l\fP: \fB\-\-long\fP -.IP \(bu 2 -\fB\-m\fP: \fB\-\-message\fP -.IP \(bu 2 -\fB\-p\fP, \fB\-\-porcelain\fP: \fB\-\-parseable\fP -.IP \(bu 2 -\fB\-reg\fP: \fB\-\-registry\fP -.IP \(bu 2 -\fB\-f\fP: \fB\-\-force\fP -.IP \(bu 2 -\fB\-desc\fP: \fB\-\-description\fP -.IP \(bu 2 -\fB\-S\fP: \fB\-\-save\fP -.IP \(bu 2 -\fB\-P\fP: \fB\-\-save\-prod\fP -.IP \(bu 2 -\fB\-D\fP: \fB\-\-save\-dev\fP -.IP \(bu 2 -\fB\-O\fP: \fB\-\-save\-optional\fP -.IP \(bu 2 -\fB\-B\fP: \fB\-\-save\-bundle\fP -.IP \(bu 2 -\fB\-E\fP: \fB\-\-save\-exact\fP -.IP \(bu 2 -\fB\-y\fP: \fB\-\-yes\fP -.IP \(bu 2 -\fB\-n\fP: \fB\-\-yes false\fP -.IP \(bu 2 -\fBll\fP and \fBla\fP commands: \fBls \-\-long\fP - -.RE -.P -If the specified configuration param resolves unambiguously to a known -configuration parameter, then it is expanded to that configuration -parameter\. For example: -.P -.RS 2 -.nf -npm ls \-\-par -# same as: -npm ls \-\-parseable -.fi -.RE -.P -If multiple single\-character shorthands are strung together, and the -resulting combination is unambiguously not some other configuration -param, then it is expanded to its various component pieces\. For -example: -.P -.RS 2 -.nf -npm ls \-gpld -# same as: -npm ls \-\-global \-\-parseable \-\-long \-\-loglevel info -.fi -.RE -.SH Per\-Package Config Settings -.P -When running scripts (see npm help 7 \fBnpm\-scripts\fP) the package\.json "config" -keys are overwritten in the environment if there is a config param of -\fB[@]:\fP\|\. For example, if the package\.json has -this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } -, "scripts" : { "start" : "node server\.js" } } -.fi -.RE -.P -and the server\.js is this: -.P -.RS 2 -.nf -http\.createServer(\.\.\.)\.listen(process\.env\.npm_package_config_port) -.fi -.RE -.P -then the user could change the behavior by doing: -.P -.RS 2 -.nf -npm config set foo:port 80 -.fi -.RE -.P -See npm help 5 package\.json for more information\. -.SH Config Settings -.SS access -.RS 0 -.IP \(bu 2 -Default: \fBrestricted\fP -.IP \(bu 2 -Type: Access - -.RE -.P -When publishing scoped packages, the access level defaults to \fBrestricted\fP\|\. If -you want your scoped package to be publicly viewable (and installable) set -\fB\-\-access=public\fP\|\. The only valid values for \fBaccess\fP are \fBpublic\fP and -\fBrestricted\fP\|\. Unscoped packages \fIalways\fR have an access level of \fBpublic\fP\|\. -.SS allow\-same\-version -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Prevents throwing an error when \fBnpm version\fP is used to set the new version -to the same value as the current version\. -.SS always\-auth -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Force npm to always require authentication when accessing the registry, -even for \fBGET\fP requests\. -.SS also -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: String - -.RE -.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 auth\-type -.RS 0 -.IP \(bu 2 -Default: \fB\|'legacy'\fP -.IP \(bu 2 -Type: \fB\|'legacy'\fP, \fB\|'sso'\fP, \fB\|'saml'\fP, \fB\|'oauth'\fP - -.RE -.P -What authentication strategy to use with \fBadduser\fP/\fBlogin\fP\|\. -.SS bin\-links -.RS 0 -.IP \(bu 2 -Default: \fBtrue\fP -.IP \(bu 2 -Type: Boolean - -.RE -.P -Tells npm to create symlinks (or \fB\|\.cmd\fP shims on Windows) for package -executables\. -.P -Set to false to have it not do this\. This can be used to work around -the fact that some file systems don't support symlinks, even on -ostensibly Unix systems\. -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The browser that is called by the \fBnpm docs\fP command to open websites\. -.SS ca -.RS 0 -.IP \(bu 2 -Default: The npm CA certificate -.IP \(bu 2 -Type: String, Array or null - -.RE -.P -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: -.P -.RS 2 -.nf -ca="\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-\\nXXXX\\nXXXX\\n\-\-\-\-\-END CERTIFICATE\-\-\-\-\-" -.fi -.RE -.P -Set to \fBnull\fP to only allow "known" registrars, or to a specific CA cert -to trust only that specific signing authority\. -.P -Multiple CAs can be trusted by specifying an array of certificates: -.P -.RS 2 -.nf -ca[]="\.\.\." -ca[]="\.\.\." -.fi -.RE -.P -See also the \fBstrict\-ssl\fP config\. -.SS cafile -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: path - -.RE -.P -A path to a file containing one or multiple Certificate Authority signing -certificates\. Similar to the \fBca\fP setting, but allows for multiple CA's, as -well as for the CA information to be stored in a file on disk\. -.SS cache -.RS 0 -.IP \(bu 2 -Default: Windows: \fB%AppData%\\npm\-cache\fP, Posix: \fB~/\.npm\fP -.IP \(bu 2 -Type: path - -.RE -.P -The location of npm's cache directory\. See npm help \fBnpm\-cache\fP -.SS cache\-lock\-stale -.RS 0 -.IP \(bu 2 -Default: 60000 (1 minute) -.IP \(bu 2 -Type: Number - -.RE -.P -The number of ms before cache folder lockfiles are considered stale\. -.SS cache\-lock\-retries -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -Number of times to retry to acquire a lock on cache folder lockfiles\. -.SS cache\-lock\-wait -.RS 0 -.IP \(bu 2 -Default: 10000 (10 seconds) -.IP \(bu 2 -Type: Number - -.RE -.P -Number of ms to wait for cache lock files to expire\. -.SS cache\-max -.RS 0 -.IP \(bu 2 -Default: Infinity -.IP \(bu 2 -Type: Number - -.RE -.P -\fBDEPRECATED\fR: This option has been deprecated in favor of \fB\-\-prefer\-online\fP\|\. -.P -\fB\-\-cache\-max=0\fP is an alias for \fB\-\-prefer\-online\fP\|\. -.SS cache\-min -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -\fBDEPRECATED\fR: This option has been deprecated in favor of \fB\-\-prefer\-offline\fP\|\. -.P -\fB\-\-cache\-min=9999 (or bigger)\fP is an alias for \fB\-\-prefer\-offline\fP\|\. -.SS cert -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: String - -.RE -.P -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: -.P -.RS 2 -.nf -cert="\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-\\nXXXX\\nXXXX\\n\-\-\-\-\-END CERTIFICATE\-\-\-\-\-" -.fi -.RE -.P -It is \fInot\fR the path to a certificate file (and there is no "certfile" option)\. -.SS cidr -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: String, Array, null - -.RE -.P -This is a list of CIDR address to be used when configuring limited access tokens with the \fBnpm token create\fP command\. -.SS color -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean or \fB"always"\fP - -.RE -.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\. -.SS depth -.RS 0 -.IP \(bu 2 -Default: Infinity -.IP \(bu 2 -Type: Number - -.RE -.P -The depth to go when recursing directories for \fBnpm ls\fP, -\fBnpm cache ls\fP, and \fBnpm outdated\fP\|\. -.P -For \fBnpm outdated\fP, a setting of \fBInfinity\fP will be treated as \fB0\fP -since that gives more useful information\. To show the outdated status -of all packages and dependents, use a large integer value, -e\.g\., \fBnpm outdated \-\-depth 9999\fP -.SS description -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show the description in \fBnpm search\fP -.SS dev -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Install \fBdev\-dependencies\fP along with packages\. -.SS dry\-run -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Indicates that you don't want npm to make any changes and that it should -only report what it would have done\. This can be passed into any of the -commands that modify your local installation, eg, \fBinstall\fP, \fBupdate\fP, -\fBdedupe\fP, \fBuninstall\fP\|\. This is NOT currently honored by network related -commands, eg \fBdist\-tags\fP, \fBowner\fP, \fBpublish\fP, etc\. -.SS editor -.RS 0 -.IP \(bu 2 -Default: \fBEDITOR\fP environment variable if set, or \fB"vi"\fP on Posix, -or \fB"notepad"\fP on Windows\. -.IP \(bu 2 -Type: path - -.RE -.P -The command to run for \fBnpm edit\fP or \fBnpm config edit\fP\|\. -.SS engine\-strict -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to true, then npm will stubbornly refuse to install (or even -consider installing) any package that claims to not be compatible with -the current Node\.js version\. -.SS force -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Makes various commands more forceful\. -.RS 0 -.IP \(bu 2 -lifecycle script failure does not block progress\. -.IP \(bu 2 -publishing clobbers previously published versions\. -.IP \(bu 2 -skips cache when requesting from the registry\. -.IP \(bu 2 -prevents checks against clobbering non\-npm files\. - -.RE -.SS fetch\-retries -.RS 0 -.IP \(bu 2 -Default: 2 -.IP \(bu 2 -Type: Number - -.RE -.P -The "retries" config for the \fBretry\fP module to use when fetching -packages from the registry\. -.SS fetch\-retry\-factor -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -The "factor" config for the \fBretry\fP module to use when fetching -packages\. -.SS fetch\-retry\-mintimeout -.RS 0 -.IP \(bu 2 -Default: 10000 (10 seconds) -.IP \(bu 2 -Type: Number - -.RE -.P -The "minTimeout" config for the \fBretry\fP module to use when fetching -packages\. -.SS fetch\-retry\-maxtimeout -.RS 0 -.IP \(bu 2 -Default: 60000 (1 minute) -.IP \(bu 2 -Type: Number - -.RE -.P -The "maxTimeout" config for the \fBretry\fP module to use when fetching -packages\. -.SS git -.RS 0 -.IP \(bu 2 -Default: \fB"git"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The command to use for git commands\. If git is installed on the -computer, but is not in the \fBPATH\fP, then set this to the full path to -the git binary\. -.SS git\-tag\-version -.RS 0 -.IP \(bu 2 -Default: \fBtrue\fP -.IP \(bu 2 -Type: Boolean - -.RE -.P -Tag the commit when using the \fBnpm version\fP command\. -.SS commit\-hooks -.RS 0 -.IP \(bu 2 -Default: \fBtrue\fP -.IP \(bu 2 -Type: Boolean - -.RE -.P -Run git commit hooks when using the \fBnpm version\fP command\. -.SS global -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Operates in "global" mode, so that packages are installed into the -\fBprefix\fP folder instead of the current working directory\. See -npm help 5 \fBnpm\-folders\fP for more on the differences in behavior\. -.RS 0 -.IP \(bu 2 -packages are installed into the \fB{prefix}/lib/node_modules\fP folder, instead of the -current working directory\. -.IP \(bu 2 -bin files are linked to \fB{prefix}/bin\fP -.IP \(bu 2 -man pages are linked to \fB{prefix}/share/man\fP - -.RE -.SS globalconfig -.RS 0 -.IP \(bu 2 -Default: {prefix}/etc/npmrc -.IP \(bu 2 -Type: path - -.RE -.P -The config file to read for global config options\. -.SS global\-style -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Causes npm to install the package into your local \fBnode_modules\fP folder with -the same layout it uses with the global \fBnode_modules\fP folder\. Only your -direct dependencies will show in \fBnode_modules\fP and everything they depend -on will be flattened in their \fBnode_modules\fP folders\. This obviously will -eliminate some deduping\. If used with \fBlegacy\-bundling\fP, \fBlegacy\-bundling\fP will be -preferred\. -.SS group -.RS 0 -.IP \(bu 2 -Default: GID of the current process -.IP \(bu 2 -Type: String or Number - -.RE -.P -The group to use when running package scripts in global mode as the root -user\. -.SS heading -.RS 0 -.IP \(bu 2 -Default: \fB"npm"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The string that starts all the debugging log output\. -.SS https\-proxy -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: url - -.RE -.P -A proxy to use for outgoing https requests\. If the \fBHTTPS_PROXY\fP or -\fBhttps_proxy\fP or \fBHTTP_PROXY\fP or \fBhttp_proxy\fP environment variables are set, -proxy settings will be honored by the underlying \fBrequest\fP library\. -.SS if\-present -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, npm will not exit with an error code when \fBrun\-script\fP is invoked for -a script that isn't defined in the \fBscripts\fP section of \fBpackage\.json\fP\|\. This -option can be used when it's desirable to optionally run a script when it's -present and fail if the script fails\. This is useful, for example, when running -scripts that may only apply for some builds in an otherwise generic CI setup\. -.SS ignore\-prepublish -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, npm will not run \fBprepublish\fP scripts\. -.SS ignore\-scripts -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, npm does not run scripts specified in package\.json files\. -.SS init\-module -.RS 0 -.IP \(bu 2 -Default: ~/\.npm\-init\.js -.IP \(bu 2 -Type: path - -.RE -.P -A module that will be loaded by the \fBnpm init\fP command\. See the -documentation for the -init\-package\-json \fIhttps://github\.com/isaacs/init\-package\-json\fR module -for more information, or npm help init\. -.SS init\-author\-name -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package author's name\. -.SS init\-author\-email -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package author's email\. -.SS init\-author\-url -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package author's homepage\. -.SS init\-license -.RS 0 -.IP \(bu 2 -Default: "ISC" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package license\. -.SS init\-version -.RS 0 -.IP \(bu 2 -Default: "1\.0\.0" -.IP \(bu 2 -Type: semver - -.RE -.P -The value that \fBnpm init\fP should use by default for the package -version number, if not already set in package\.json\. -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Whether or not to output JSON data, rather than the normal output\. -.P -This feature is currently experimental, and the output data structures for many -commands is either not implemented in JSON yet, or subject to change\. Only the -output from \fBnpm ls \-\-json\fP and \fBnpm search \-\-json\fP are currently valid\. -.SS key -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: String - -.RE -.P -A client key to pass when accessing the registry\. Values should be in PEM -format with newlines replaced by the string "\\n"\. For example: -.P -.RS 2 -.nf -key="\-\-\-\-\-BEGIN PRIVATE KEY\-\-\-\-\-\\nXXXX\\nXXXX\\n\-\-\-\-\-END PRIVATE KEY\-\-\-\-\-" -.fi -.RE -.P -It is \fInot\fR the path to a key file (and there is no "keyfile" option)\. -.SS legacy\-bundling -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Causes npm to install the package such that versions of npm prior to 1\.4, -such as the one included with node 0\.8, can install the package\. This -eliminates all automatic deduping\. If used with \fBglobal\-style\fP this option -will be preferred\. -.SS link -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, then local installs will link if there is a suitable globally -installed package\. -.P -Note that this means that local installs can cause things to be -installed into the global space at the same time\. The link is only done -if one of the two conditions are met: -.RS 0 -.IP \(bu 2 -The package is not already installed globally, or -.IP \(bu 2 -the globally installed version is identical to the version that is -being installed locally\. - -.RE -.SS local\-address -.RS 0 -.IP \(bu 2 -Default: undefined -.IP \(bu 2 -Type: IP Address - -.RE -.P -The IP address of the local interface to use when making connections -to the npm registry\. Must be IPv4 in versions of Node prior to 0\.12\. -.SS loglevel -.RS 0 -.IP \(bu 2 -Default: "notice" -.IP \(bu 2 -Type: String -.IP \(bu 2 -Values: "silent", "error", "warn", "notice", "http", "timing", "info", -"verbose", "silly" - -.RE -.P -What level of logs to report\. On failure, \fIall\fR logs are written to -\fBnpm\-debug\.log\fP in the current working directory\. -.P -Any logs of a higher level than the setting are shown\. The default is "notice"\. -.SS logstream -.RS 0 -.IP \(bu 2 -Default: process\.stderr -.IP \(bu 2 -Type: Stream - -.RE -.P -This is the stream that is passed to the -npmlog \fIhttps://github\.com/npm/npmlog\fR module at run time\. -.P -It cannot be set from the command line, but if you are using npm -programmatically, you may wish to send logs to somewhere other than -stderr\. -.P -If the \fBcolor\fP config is set to true, then this stream will receive -colored output if it is a TTY\. -.SS logs\-max -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -The maximum number of log files to store\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show extended information in \fBnpm ls\fP and \fBnpm search\fP\|\. -.SS maxsockets -.RS 0 -.IP \(bu 2 -Default: 50 -.IP \(bu 2 -Type: Number - -.RE -.P -The maximum number of connections to use per origin (protocol/host/port -combination)\. Passed to the \fBhttp\fP \fBAgent\fP used to make the request\. -.SS message -.RS 0 -.IP \(bu 2 -Default: "%s" -.IP \(bu 2 -Type: String - -.RE -.P -Commit message which is used by \fBnpm version\fP when creating version commit\. -.P -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/") -.IP \(bu 2 -Type: String - -.RE -.P -The registry you want to send cli metrics to if \fBsend\-metrics\fP is true\. -.SS node\-options -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: String - -.RE -.P -Options to pass through to Node\.js via the \fBNODE_OPTIONS\fP environment -variable\. This does not impact how npm itself is executed but it does -impact how lifecycle scripts are called\. -.SS node\-version -.RS 0 -.IP \(bu 2 -Default: process\.version -.IP \(bu 2 -Type: semver or false - -.RE -.P -The node version to use when checking a package's \fBengines\fP map\. -.SS offline -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Force offline mode: no network requests will be done during install\. To allow -the CLI to fill in missing cache data, see \fB\-\-prefer\-offline\fP\|\. -.SS onload\-script -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: path - -.RE -.P -A node module to \fBrequire()\fP when npm loads\. Useful for programmatic -usage\. -.SS only -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: String - -.RE -.P -When "dev" or "development" and running local \fBnpm install\fP without any -arguments, only devDependencies (and their dependencies) are installed\. -.P -When "dev" or "development" and running local \fBnpm ls\fP, \fBnpm outdated\fP, or -\fBnpm update\fP, is an alias for \fB\-\-dev\fP\|\. -.P -When "prod" or "production" and running local \fBnpm install\fP without any -arguments, only non\-devDependencies (and their dependencies) are -installed\. -.P -When "prod" or "production" and running local \fBnpm ls\fP, \fBnpm outdated\fP, or -\fBnpm update\fP, is an alias for \fB\-\-production\fP\|\. -.SS optional -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Attempt to install packages in the \fBoptionalDependencies\fP object\. Note -that if these packages fail to install, the overall installation -process is not aborted\. -.SS otp -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: Number - -.RE -.P -This is a one\-time password from a two\-factor authenticator\. It's needed -when publishing or changing package permissions with \fBnpm access\fP\|\. -.SS package\-lock -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -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 -This option is an alias for \fB\-\-shrinkwrap\fP\|\. -.SS package\-lock\-only -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to true, it will update only the \fBpackage\-json\fP, -instead of checking \fBnode_modules\fP and downloading dependencies\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Output parseable results from commands that write to -standard output\. For \fBnpm search\fP, this will be tab\-separated table format\. -.SS prefer\-offline -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -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 \fB\-\-offline\fP\|\. -.P -This option is effectively equivalent to \fB\-\-cache\-min=9999999\fP\|\. -.SS prefer\-online -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, staleness checks for cached data will be forced, making the CLI look -for updates immediately even for fresh package data\. -.SS prefix -.RS 0 -.IP \(bu 2 -Default: see npm help 5 folders -.IP \(bu 2 -Type: path - -.RE -.P -The location to install global items\. If set on the command line, then -it forces non\-global commands to run in the specified folder\. -.SS production -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Set to true to run in "production" mode\. -.RS 0 -.IP 1. 3 -devDependencies are not installed at the topmost level when running -local \fBnpm install\fP without any arguments\. -.IP 2. 3 -Set the NODE_ENV="production" for lifecycle scripts\. - -.RE -.SS progress -.RS 0 -.IP \(bu 2 -Default: true, unless TRAVIS or CI env vars set\. -.IP \(bu 2 -Type: Boolean - -.RE -.P -When set to \fBtrue\fP, npm will display a progress bar during time intensive -operations, if \fBprocess\.stderr\fP is a TTY\. -.P -Set to \fBfalse\fP to suppress the progress bar\. -.SS proxy -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: url - -.RE -.P -A proxy to use for outgoing http requests\. If the \fBHTTP_PROXY\fP or -\fBhttp_proxy\fP environment variables are set, proxy settings will be -honored by the underlying \fBrequest\fP library\. -.SS read\-only -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -This is used to mark a token as unable to publish when configuring limited access tokens with the \fBnpm token create\fP command\. -.SS rebuild\-bundle -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Rebuild bundled dependencies after installation\. -.SS registry -.RS 0 -.IP \(bu 2 -Default: https://registry\.npmjs\.org/ -.IP \(bu 2 -Type: url - -.RE -.P -The base URL of the npm package registry\. -.SS rollback -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Remove failed installs\. -.SS save -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Save installed packages to a package\.json file as dependencies\. -.P -When used with the \fBnpm rm\fP command, it removes it from the \fBdependencies\fP -object\. -.P -Only works if there is already a package\.json file present\. -.SS save\-bundle -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If a package would be saved at install time by the use of \fB\-\-save\fP, -\fB\-\-save\-dev\fP, or \fB\-\-save\-optional\fP, then also put it in the -\fBbundleDependencies\fP list\. -.P -When used with the \fBnpm rm\fP command, it removes it from the -bundledDependencies list\. -.SS save\-prod -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Makes sure that a package will be saved into \fBdependencies\fP specifically\. This -is useful if a package already exists in \fBdevDependencies\fP or -\fBoptionalDependencies\fP, but you want to move it to be a production dep\. This is -also the default behavior if \fB\-\-save\fP is true, and neither \fB\-\-save\-dev\fP or -\fB\-\-save\-optional\fP are true\. -.SS save\-dev -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Save installed packages to a package\.json file as \fBdevDependencies\fP\|\. -.P -When used with the \fBnpm rm\fP command, it removes it from the -\fBdevDependencies\fP object\. -.P -Only works if there is already a package\.json file present\. -.SS save\-exact -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Dependencies saved to package\.json using \fB\-\-save\fP, \fB\-\-save\-dev\fP or -\fB\-\-save\-optional\fP will be configured with an exact version rather than -using npm's default semver range operator\. -.SS save\-optional -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Save installed packages to a package\.json file as -optionalDependencies\. -.P -When used with the \fBnpm rm\fP command, it removes it from the -\fBdevDependencies\fP object\. -.P -Only works if there is already a package\.json file present\. -.SS save\-prefix -.RS 0 -.IP \(bu 2 -Default: '^' -.IP \(bu 2 -Type: String - -.RE -.P -Configure how versions of packages installed to a package\.json file via -\fB\-\-save\fP or \fB\-\-save\-dev\fP get prefixed\. -.P -For example if a package has version \fB1\.2\.3\fP, by default its version is -set to \fB^1\.2\.3\fP which allows minor upgrades for that package, but after -\fBnpm config set save\-prefix='~'\fP it would be set to \fB~1\.2\.3\fP which only allows -patch upgrades\. -.SS scope -.RS 0 -.IP \(bu 2 -Default: the scope of the current project, if any, or "" -.IP \(bu 2 -Type: String - -.RE -.P -Associate an operation with a scope for a scoped registry\. Useful when logging -in to a private registry for the first time: -\fBnpm login \-\-scope=@organization \-\-registry=registry\.organization\.com\fP, which -will cause \fB@organization\fP to be mapped to the registry for future installation -of packages specified according to the pattern \fB@organization/package\fP\|\. -.SS script\-shell -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: path - -.RE -.P -The shell to use for scripts run with the \fBnpm run\fP command\. -.SS scripts\-prepend\-node\-path -.RS 0 -.IP \(bu 2 -Default: "warn\-only" -.IP \(bu 2 -Type: Boolean, \fB"auto"\fP or \fB"warn\-only"\fP - -.RE -.P -If set to \fBtrue\fP, add the directory in which the current \fBnode\fP executable -resides to the \fBPATH\fP environment variable when running scripts, -even if that means that \fBnpm\fP will invoke a different \fBnode\fP executable than -the one which it is running\. -.P -If set to \fBfalse\fP, never modify \fBPATH\fP with that\. -.P -If set to \fB"warn\-only"\fP, never modify \fBPATH\fP but print a warning if \fBnpm\fP thinks -that you may want to run it with \fBtrue\fP, e\.g\. because the \fBnode\fP executable -in the \fBPATH\fP is not the one \fBnpm\fP was invoked with\. -.P -If set to \fBauto\fP, only add that directory to the \fBPATH\fP environment variable -if the \fBnode\fP executable with which \fBnpm\fP was invoked and the one that is found -first on the \fBPATH\fP are different\. -.SS searchexclude -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Space\-separated options that limit the results from search\. -.SS searchopts -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Space\-separated options that are always passed to search\. -.SS searchlimit -.RS 0 -.IP \(bu 2 -Default: 20 -.IP \(bu 2 -Type: Number - -.RE -.P -Number of items to limit search results to\. Will not apply at all to legacy -searches\. -.SS searchstaleness -.RS 0 -.IP \(bu 2 -Default: 900 (15 minutes) -.IP \(bu 2 -Type: Number - -.RE -.P -The age of the cache, in seconds, before another registry request is made if -using legacy search endpoint\. -.SS send\-metrics -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, success/failure metrics will be reported to the registry stored in -\fBmetrics\-registry\fP\|\. These requests contain the number of successful and -failing runs of the npm CLI and the time period overwhich those counts were -gathered\. No identifying information is included in these requests\. -.SS shell -.RS 0 -.IP \(bu 2 -Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows -.IP \(bu 2 -Type: path - -.RE -.P -The shell to run for the \fBnpm explore\fP command\. -.SS shrinkwrap -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to false, then ignore \fBnpm\-shrinkwrap\.json\fP files when installing\. This -will also prevent \fIwriting\fR \fBnpm\-shrinkwrap\.json\fP if \fBsave\fP is true\. -.P -This option is an alias for \fB\-\-package\-lock\fP\|\. -.SS sign\-git\-tag -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to true, then the \fBnpm version\fP command will tag the version -using \fB\-s\fP to add a signature\. -.P -Note that git requires you to have set up GPG keys in your git configs -for this to work properly\. -.SS sso\-poll\-frequency -.RS 0 -.IP \(bu 2 -Default: 500 -.IP \(bu 2 -Type: Number - -.RE -.P -When used with SSO\-enabled \fBauth\-type\fPs, configures how regularly the registry -should be polled while the user is completing authentication\. -.SS sso\-type -.RS 0 -.IP \(bu 2 -Default: 'oauth' -.IP \(bu 2 -Type: 'oauth', 'saml', or null - -.RE -.P -If \fB\-\-auth\-type=sso\fP, the type of SSO type to use\. -.SS strict\-ssl -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Whether or not to do SSL key validation when making requests to the -registry via https\. -.P -See also the \fBca\fP config\. -.SS tag -.RS 0 -.IP \(bu 2 -Default: latest -.IP \(bu 2 -Type: String - -.RE -.P -If you ask npm to install a package and don't tell it a specific version, then -it will install the specified tag\. -.P -Also the tag that is added to the package@version specified by the \fBnpm -tag\fP command, if no explicit tag is given\. -.SS tag\-version\-prefix -.RS 0 -.IP \(bu 2 -Default: \fB"v"\fP -.IP \(bu 2 -Type: String - -.RE -.P -If set, alters the prefix used when tagging a new version when performing a -version increment using \fBnpm\-version\fP\|\. To remove the prefix altogether, set it -to the empty string: \fB""\fP\|\. -.P -Because other tools may rely on the convention that npm version tags look like -\fBv1\.0\.0\fP, \fIonly use this property if it is absolutely necessary\fR\|\. In -particular, use care when overriding this setting for public packages\. -.SS timing -.RS 0 -.IP \(bu 2 -Default: \fBfalse\fP -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, writes an \fBnpm\-debug\fP log to \fB_logs\fP and timing information to -\fB_timing\.json\fP, both in your cache\. \fB_timing\.json\fP is a newline delimited -list of JSON objects\. You can quickly view it with this -json \fIhttps://www\.npmjs\.com/package/json\fR command line: -\fBjson \-g < ~/\.npm/_timing\.json\fP\|\. -.SS tmp -.RS 0 -.IP \(bu 2 -Default: TMPDIR environment variable, or "/tmp" -.IP \(bu 2 -Type: path - -.RE -.P -Where to store temporary files and folders\. All temp files are deleted -on success, but left behind on failure for forensic purposes\. -.SS unicode -.RS 0 -.IP \(bu 2 -Default: false on windows, true on mac/unix systems with a unicode locale -.IP \(bu 2 -Type: Boolean - -.RE -.P -When set to true, npm uses unicode characters in the tree output\. When -false, it uses ascii characters to draw trees\. -.SS unsafe\-perm -.RS 0 -.IP \(bu 2 -Default: false if running as root, true otherwise -.IP \(bu 2 -Type: Boolean - -.RE -.P -Set to true to suppress the UID/GID switching when running package -scripts\. If set explicitly to false, then installing as a non\-root user -will fail\. -.SS usage -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Set to show short usage output (like the \-H output) -instead of complete help when doing npm help \fBnpm\-help\fP\|\. -.SS user -.RS 0 -.IP \(bu 2 -Default: "nobody" -.IP \(bu 2 -Type: String or Number - -.RE -.P -The UID to set to when running package scripts as root\. -.SS userconfig -.RS 0 -.IP \(bu 2 -Default: ~/\.npmrc -.IP \(bu 2 -Type: path - -.RE -.P -The location of user\-level configuration settings\. -.SS umask -.RS 0 -.IP \(bu 2 -Default: 022 -.IP \(bu 2 -Type: Octal numeric string in range 0000\.\.0777 (0\.\.511) - -.RE -.P -The "umask" value to use when setting the file creation mode on files -and folders\. -.P -Folders and executables are given a mode which is \fB0777\fP masked against -this value\. Other files are given a mode which is \fB0666\fP masked against -this value\. Thus, the defaults are \fB0755\fP and \fB0644\fP respectively\. -.SS user\-agent -.RS 0 -.IP \(bu 2 -Default: node/{process\.version} {process\.platform} {process\.arch} -.IP \(bu 2 -Type: String - -.RE -.P -Sets a User\-Agent to the request header -.SS version -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: boolean - -.RE -.P -If true, output the npm version and exit successfully\. -.P -Only relevant when specified explicitly on the command line\. -.SS versions -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: boolean - -.RE -.P -If true, output the npm version as well as node's \fBprocess\.versions\fP map, and -exit successfully\. -.P -Only relevant when specified explicitly on the command line\. -.SS viewer -.RS 0 -.IP \(bu 2 -Default: "man" on Posix, "browser" on Windows -.IP \(bu 2 -Type: path - -.RE -.P -The program to use to view help content\. -.P -Set to \fB"browser"\fP to view html help content in the default web browser\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help npm - -.RE - diff --git a/deps/npm/man/man7/npm-developers.7 b/deps/npm/man/man7/npm-developers.7 deleted file mode 100644 index d9e483206a4..00000000000 --- a/deps/npm/man/man7/npm-developers.7 +++ /dev/null @@ -1,292 +0,0 @@ -.TH "NPM\-DEVELOPERS" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-developers\fR \- Developer Guide -.SH DESCRIPTION -.P -So, you've decided to use npm to develop (and maybe publish/deploy) -your project\. -.P -Fantastic! -.P -There are a few things that you need to do above the simple steps -that your users will do to install your program\. -.SH About These Documents -.P -These are man pages\. If you install npm, you should be able to -then do \fBman npm\-thing\fP to get the documentation on a particular -topic, or \fBnpm help thing\fP to see the same information\. -.SH What is a \fBpackage\fP -.P -A package is: -.RS 0 -.IP \(bu 2 -a) a folder containing a program described by a package\.json file -.IP \(bu 2 -b) a gzipped tarball containing (a) -.IP \(bu 2 -c) a url that resolves to (b) -.IP \(bu 2 -d) a \fB@\fP that is published on the registry with (c) -.IP \(bu 2 -e) a \fB@\fP that points to (d) -.IP \(bu 2 -f) a \fB\fP that has a "latest" tag satisfying (e) -.IP \(bu 2 -g) a \fBgit\fP url that, when cloned, results in (a)\. - -.RE -.P -Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b)\. -.P -Git urls can be of the form: -.P -.RS 2 -.nf -git://github\.com/user/project\.git#commit\-ish -git+ssh://user@hostname:project\.git#commit\-ish -git+http://user@hostname/project/blah\.git#commit\-ish -git+https://user@hostname/project/blah\.git#commit\-ish -.fi -.RE -.P -The \fBcommit\-ish\fP can be any tag, sha, or branch which can be supplied as -an argument to \fBgit checkout\fP\|\. The default is \fBmaster\fP\|\. -.SH The package\.json File -.P -You need to have a \fBpackage\.json\fP file in the root of your project to do -much of anything with npm\. That is basically the whole interface\. -.P -See npm help 5 \fBpackage\.json\fP for details about what goes in that file\. At the very -least, you need: -.RS 0 -.IP \(bu 2 -name: -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\. -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 -version: -A semver\-compatible version\. -.IP \(bu 2 -engines: -Specify the versions of node (or whatever else) that your program -runs on\. The node API changes a lot, and there may be bugs or new -functionality that you depend on\. Be explicit\. -.IP \(bu 2 -author: -Take some credit\. -.IP \(bu 2 -scripts: -If you have a special compilation or installation script, then you -should put it in the \fBscripts\fP object\. You should definitely have at -least a basic smoke\-test command as the "scripts\.test" field\. -See npm help 7 scripts\. -.IP \(bu 2 -main: -If you have a single module that serves as the entry point to your -program (like what the "foo" package gives you at require("foo")), -then you need to specify that in the "main" field\. -.IP \(bu 2 -directories: -This is an object mapping names to folders\. The best ones to include are -"lib" and "doc", but if you use "man" to specify a folder full of man pages, -they'll get installed just like these ones\. - -.RE -.P -You can use \fBnpm init\fP in the root of your package in order to get you -started with a pretty basic package\.json file\. See npm help \fBnpm\-init\fP for -more info\. -.SH Keeping files \fIout\fR of your package -.P -Use a \fB\|\.npmignore\fP file to keep stuff out of your package\. If there's -no \fB\|\.npmignore\fP file, but there \fIis\fR a \fB\|\.gitignore\fP file, then npm will -ignore the stuff matched by the \fB\|\.gitignore\fP file\. If you \fIwant\fR to -include something that is excluded by your \fB\|\.gitignore\fP file, you can -create an empty \fB\|\.npmignore\fP file to override it\. Like \fBgit\fP, \fBnpm\fP looks -for \fB\|\.npmignore\fP and \fB\|\.gitignore\fP files in all subdirectories of your -package, not only the root directory\. -.P -\fB\|\.npmignore\fP files follow the same pattern rules \fIhttps://git\-scm\.com/book/en/v2/Git\-Basics\-Recording\-Changes\-to\-the\-Repository#Ignoring\-Files\fR -as \fB\|\.gitignore\fP files: -.RS 0 -.IP \(bu 2 -Blank lines or lines starting with \fB#\fP are ignored\. -.IP \(bu 2 -Standard glob patterns work\. -.IP \(bu 2 -You can end patterns with a forward slash \fB/\fP to specify a directory\. -.IP \(bu 2 -You can negate a pattern by starting it with an exclamation point \fB!\fP\|\. - -.RE -.P -By default, the following paths and files are ignored, so there's no -need to add them to \fB\|\.npmignore\fP explicitly: -.RS 0 -.IP \(bu 2 -\fB\|\.*\.swp\fP -.IP \(bu 2 -\fB\|\._*\fP -.IP \(bu 2 -\fB\|\.DS_Store\fP -.IP \(bu 2 -\fB\|\.git\fP -.IP \(bu 2 -\fB\|\.hg\fP -.IP \(bu 2 -\fB\|\.npmrc\fP -.IP \(bu 2 -\fB\|\.lock\-wscript\fP -.IP \(bu 2 -\fB\|\.svn\fP -.IP \(bu 2 -\fB\|\.wafpickle\-*\fP -.IP \(bu 2 -\fBconfig\.gypi\fP -.IP \(bu 2 -\fBCVS\fP -.IP \(bu 2 -\fBnpm\-debug\.log\fP - -.RE -.P -Additionally, everything in \fBnode_modules\fP is ignored, except for -bundled dependencies\. npm automatically handles this for you, so don't -bother adding \fBnode_modules\fP to \fB\|\.npmignore\fP\|\. -.P -The following paths and files are never ignored, so adding them to -\fB\|\.npmignore\fP is pointless: -.RS 0 -.IP \(bu 2 -\fBpackage\.json\fP -.IP \(bu 2 -\fBREADME\fP (and its variants) -.IP \(bu 2 -\fBCHANGELOG\fP (and its variants) -.IP \(bu 2 -\fBLICENSE\fP / \fBLICENCE\fP - -.RE -.P -If, given the structure of your project, you find \fB\|\.npmignore\fP to be a -maintenance headache, you might instead try populating the \fBfiles\fP -property of \fBpackage\.json\fP, which is an array of file or directory names -that should be included in your package\. Sometimes a whitelist is easier -to manage than a blacklist\. -.SS Testing whether your \fB\|\.npmignore\fP or \fBfiles\fP config works -.P -If you want to double check that your package will include only the files -you intend it to when published, you can run the \fBnpm pack\fP command locally -which will generate a tarball in the working directory, the same way it -does for publishing\. -.SH Link Packages -.P -\fBnpm link\fP is designed to install a development package and see the -changes in real time without having to keep re\-installing it\. (You do -need to either re\-link or \fBnpm rebuild \-g\fP to update compiled packages, -of course\.) -.P -More info at npm help \fBnpm\-link\fP\|\. -.SH Before Publishing: Make Sure Your Package Installs and Works -.P -\fBThis is important\.\fR -.P -If you can not install it locally, you'll have -problems trying to publish it\. Or, worse yet, you'll be able to -publish it, but you'll be publishing a broken or pointless package\. -So don't do that\. -.P -In the root of your package, do this: -.P -.RS 2 -.nf -npm install \. \-g -.fi -.RE -.P -That'll show you that it's working\. If you'd rather just create a symlink -package that points to your working directory, then do this: -.P -.RS 2 -.nf -npm link -.fi -.RE -.P -Use \fBnpm ls \-g\fP to see if it's there\. -.P -To test a local install, go into some other folder, and then do: -.P -.RS 2 -.nf -cd \.\./some\-other\-folder -npm install \.\./my\-package -.fi -.RE -.P -to install it locally into the node_modules folder in that other place\. -.P -Then go into the node\-repl, and try using require("my\-thing") to -bring in your module's main module\. -.SH Create a User Account -.P -Create a user with the adduser command\. It works like this: -.P -.RS 2 -.nf -npm adduser -.fi -.RE -.P -and then follow the prompts\. -.P -This is documented better in npm help adduser\. -.SH Publish your package -.P -This part's easy\. In the root of your folder, do this: -.P -.RS 2 -.nf -npm publish -.fi -.RE -.P -You can give publish a url to a tarball, or a filename of a tarball, -or a path to a folder\. -.P -Note that pretty much \fBeverything in that folder will be exposed\fR -by default\. So, if you have secret stuff in there, use a -\fB\|\.npmignore\fP file to list out the globs to ignore, or publish -from a fresh checkout\. -.SH Brag about it -.P -Send emails, write blogs, blab in IRC\. -.P -Tell the world how easy it is to install your program! -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/deps/npm/man/man7/npm-disputes.7 b/deps/npm/man/man7/npm-disputes.7 deleted file mode 100644 index 642abcf1783..00000000000 --- a/deps/npm/man/man7/npm-disputes.7 +++ /dev/null @@ -1,150 +0,0 @@ -.TH "NPM\-DISPUTES" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-disputes\fR \- Handling Module Name Disputes -.P -This document describes the steps that you should take to resolve module name -disputes with other npm publishers\. It also describes special steps you should -take about names you think infringe your trademarks\. -.P -This document is a clarification of the acceptable behavior outlined in the -npm Code of Conduct \fIhttps://www\.npmjs\.com/policies/conduct\fR, and nothing in -this document should be interpreted to contradict any aspect of the npm Code of -Conduct\. -.SH TL;DR -.RS 0 -.IP 1. 3 -Get the author email with \fBnpm owner ls \fP -.IP 2. 3 -Email the author, CC support@npmjs\.com -.IP 3. 3 -After a few weeks, if there's no resolution, we'll sort it out\. - -.RE -.P -Don't squat on package names\. Publish code or move out of the way\. -.SH DESCRIPTION -.P -There sometimes arise cases where a user publishes a module, and then later, -some other user wants to use that name\. Here are some common ways that happens -(each of these is based on actual events\.) -.RS 0 -.IP 1. 3 -Alice writes a JavaScript module \fBfoo\fP, which is not node\-specific\. Alice -doesn't use node at all\. Yusuf wants to use \fBfoo\fP in node, so he wraps it in -an npm module\. Some time later, Alice starts using node, and wants to take -over management of her program\. -.IP 2. 3 -Yusuf writes an npm module \fBfoo\fP, and publishes it\. Perhaps much later, Alice -finds a bug in \fBfoo\fP, and fixes it\. She sends a pull request to Yusuf, but -Yusuf doesn't have the time to deal with it, because he has a new job and a -new baby and is focused on his new Erlang project, and kind of not involved -with node any more\. Alice would like to publish a new \fBfoo\fP, but can't, -because the name is taken\. -.IP 3. 3 -Yusuf writes a 10\-line flow\-control library, and calls it \fBfoo\fP, and -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\. -.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\. -Later on, Alice writes a much more complete \fBfoo\fP parser, but can't publish, -because Yusuf's \fBfoo\fP is in the way\. -.IP 5. 3 -\fBnpm owner ls foo\fP\|\. This will tell Alice the email address of the owner -(Yusuf)\. -.IP 6. 3 -Alice emails Yusuf, explaining the situation \fBas respectfully as possible\fR, -and what she would like to do with the module name\. She adds the npm support -staff support@npmjs\.com to the CC list of the email\. Mention in the email -that Yusuf can run npm owner \fBadd alice foo\fP to add Alice as an owner of the -foo package\. -.IP 7. 3 -After a reasonable amount of time, if Yusuf has not responded, or if Yusuf -and Alice can't come to any sort of resolution, email support -support@npmjs\.com and we'll sort it out\. ("Reasonable" is usually at least -4 weeks\.) - -.RE -.SH REASONING -.P -In almost every case so far, the parties involved have been able to reach an -amicable resolution without any major intervention\. Most people really do want -to be reasonable, and are probably not even aware that they're in your way\. -.P -Module ecosystems are most vibrant and powerful when they are as self\-directed -as possible\. If an admin one day deletes something you had worked on, then that -is going to make most people quite upset, regardless of the justification\. When -humans solve their problems by talking to other humans with respect, everyone -has the chance to end up feeling good about the interaction\. -.SH EXCEPTIONS -.P -Some things are not allowed, and will be removed without discussion if they are -brought to the attention of the npm registry admins, including but not limited -to: -.RS 0 -.IP 1. 3 -Malware (that is, a package designed to exploit or harm the machine on which -it is installed)\. -.IP 2. 3 -Violations of copyright or licenses (for example, cloning an MIT\-licensed -program, and then removing or changing the copyright and license statement)\. -.IP 3. 3 -Illegal content\. -.IP 4. 3 -"Squatting" on a package name that you plan to use, but aren't actually -using\. Sorry, I don't care how great the name is, or how perfect a fit it is -for the thing that someday might happen\. If someone wants to use it today, -and you're just taking up space with an empty tarball, you're going to be -evicted\. -.IP 5. 3 -Putting empty packages in the registry\. Packages must have SOME -functionality\. It can be silly, but it can't be nothing\. (See also: -squatting\.) -.IP 6. 3 -Doing weird things with the registry, like using it as your own personal -application database or otherwise putting non\-packagey things into it\. -.IP 7. 3 -Other things forbidden by the npm -Code of Conduct \fIhttps://www\.npmjs\.com/policies/conduct\fR such as hateful -language, pornographic content, or harassment\. - -.RE -.P -If you see bad behavior like this, please report it to abuse@npmjs\.com right -away\. \fBYou are never expected to resolve abusive behavior on your own\. We are -here to help\.\fR -.SH TRADEMARKS -.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 -copy of your trademark registration certificate\. -.P -If we see that the package's publisher is intentionally misleading others by -misusing your registered mark without permission, we will transfer the package -name to you\. Otherwise, we will contact the package publisher and ask them to -clear up any confusion with changes to their package's \fBREADME\fP file or -metadata\. -.SH CHANGES -.P -This is a living document and may be updated from time to time\. Please refer to -the git history for this document \fIhttps://github\.com/npm/npm/commits/master/doc/misc/npm\-disputes\.md\fR -to view the changes\. -.SH LICENSE -.P -Copyright (C) npm, Inc\., All rights reserved -.P -This document may be reused under a Creative Commons Attribution\-ShareAlike -License\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help owner - -.RE - diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7 deleted file mode 100644 index 77a70e6cc62..00000000000 --- a/deps/npm/man/man7/npm-index.7 +++ /dev/null @@ -1,229 +0,0 @@ -.TH "NPM\-INDEX" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-index\fR \- Index of all npm documentation -.SS npm help README -.P -a JavaScript package manager -.SH Command Line Documentation -.P -Using npm on the command line -.SS npm help npm -.P -javascript package manager -.SS npm help access -.P -Set access level on published packages -.SS npm help adduser -.P -Add a registry user account -.SS npm help bin -.P -Display npm bin folder -.SS npm help bugs -.P -Bugs for a package in a web browser maybe -.SS npm help build -.P -Build a package -.SS npm help bundle -.P -REMOVED -.SS npm help cache -.P -Manipulates packages cache -.SS npm help completion -.P -Tab Completion for npm -.SS npm help config -.P -Manage the npm configuration files -.SS npm help dedupe -.P -Reduce duplication -.SS npm help deprecate -.P -Deprecate a version of a package -.SS npm help dist\-tag -.P -Modify package distribution tags -.SS npm help docs -.P -Docs for a package in a web browser maybe -.SS npm help doctor -.P -Check your environments -.SS npm help edit -.P -Edit an installed package -.SS npm help explore -.P -Browse an installed package -.SS npm help help\-search -.P -Search npm help documentation -.SS npm help help -.P -Get help on npm -.SS npm help init -.P -Interactively create a package\.json file -.SS npm help install\-test -.P -Install package(s) and run tests -.SS npm help install -.P -Install a package -.SS npm help link -.P -Symlink a package folder -.SS npm help logout -.P -Log out of the registry -.SS npm help ls -.P -List installed packages -.SS npm help outdated -.P -Check for outdated packages -.SS npm help owner -.P -Manage package owners -.SS npm help pack -.P -Create a tarball from a package -.SS npm help ping -.P -Ping npm registry -.SS npm help prefix -.P -Display prefix -.SS npm help profile -.P -Change settings on your registry profile -.SS npm help prune -.P -Remove extraneous packages -.SS npm help publish -.P -Publish a package -.SS npm help rebuild -.P -Rebuild a package -.SS npm help repo -.P -Open package repository page in the browser -.SS npm help restart -.P -Restart a package -.SS npm help root -.P -Display npm root -.SS npm help run\-script -.P -Run arbitrary package scripts -.SS npm help search -.P -Search for packages -.SS npm help shrinkwrap -.P -Lock down dependency versions for publication -.SS npm help star -.P -Mark your favorite packages -.SS npm help stars -.P -View packages marked as favorites -.SS npm help start -.P -Start a package -.SS npm help stop -.P -Stop a package -.SS npm help team -.P -Manage organization teams and team memberships -.SS npm help test -.P -Test a package -.SS npm help token -.P -Manage your authentication tokens -.SS npm help uninstall -.P -Remove a package -.SS npm help unpublish -.P -Remove a package from the registry -.SS npm help update -.P -Update a package -.SS npm help version -.P -Bump a package version -.SS npm help view -.P -View registry info -.SS npm help whoami -.P -Display npm username -.SH API Documentation -.P -Using npm in your Node programs -.SH Files -.P -File system structures npm uses -.SS npm help 5 folders -.P -Folder Structures Used by npm -.SS npm help 5 package\-locks -.P -An explanation of npm lockfiles -.SS npm help 5 shrinkwrap\.json -.P -A publishable lockfile -.SS npm help 5 npmrc -.P -The npm config files -.SS npm help 5 package\-lock\.json -.P -A manifestation of the manifest -.SS npm help 5 package\.json -.P -Specifics of npm's package\.json handling -.SH Misc -.P -Various other bits and bobs -.SS npm help 7 coding\-style -.P -npm's "funny" coding style -.SS npm help 7 config -.P -More than you probably want to know about npm configuration -.SS npm help 7 developers -.P -Developer Guide -.SS npm help 7 disputes -.P -Handling Module Name Disputes -.SS npm help 7 index -.P -Index of all npm documentation -.SS npm help 7 orgs -.P -Working with Teams & Orgs -.SS npm help 7 registry -.P -The JavaScript Package Registry -.SS npm help 7 scope -.P -Scoped packages -.SS npm help 7 scripts -.P -How npm handles the "scripts" field -.SS npm help 7 removing\-npm -.P -Cleaning the Slate -.SS npm help 7 semver -.P -The semantic versioner for npm - diff --git a/deps/npm/man/man7/npm-orgs.7 b/deps/npm/man/man7/npm-orgs.7 deleted file mode 100644 index d1c3588ad8e..00000000000 --- a/deps/npm/man/man7/npm-orgs.7 +++ /dev/null @@ -1,147 +0,0 @@ -.TH "NPM\-ORGS" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-orgs\fR \- Working with Teams & Orgs -.SH DESCRIPTION -.P -There are three levels of org users: -.RS 0 -.IP 1. 3 -Super admin, controls billing & adding people to the org\. -.IP 2. 3 -Team admin, manages team membership & package access\. -.IP 3. 3 -Developer, works on packages they are given access to\. - -.RE -.P -The super admin is the only person who can add users to the org because it impacts the monthly bill\. The super admin will use the website to manage membership\. Every org has a \fBdevelopers\fP team that all users are automatically added to\. -.P -The team admin is the person who manages team creation, team membership, and package access for teams\. The team admin grants package access to teams, not individuals\. -.P -The developer will be able to access packages based on the teams they are on\. Access is either read\-write or read\-only\. -.P -There are two main commands: -.RS 0 -.IP 1. 3 -\fBnpm team\fP see npm help team for more details -.IP 2. 3 -\fBnpm access\fP see npm help access for more details - -.RE -.SH Team Admins create teams -.RS 0 -.IP \(bu 2 -Check who you’ve added to your org: - -.RE -.P -.RS 2 -.nf -npm team ls :developers -.fi -.RE -.RS 0 -.IP \(bu 2 -Each org is automatically given a \fBdevelopers\fP team, so you can see the whole list of team members in your org\. This team automatically gets read\-write access to all packages, but you can change that with the \fBaccess\fP command\. -.IP \(bu 2 -Create a new team: - -.RE -.P -.RS 2 -.nf -npm team create -.fi -.RE -.RS 0 -.IP \(bu 2 -Add members to that team: - -.RE -.P -.RS 2 -.nf -npm team add -.fi -.RE -.SH Publish a package and adjust package access -.RS 0 -.IP \(bu 2 -In package directory, run - -.RE -.P -.RS 2 -.nf -npm init \-\-scope= -.fi -.RE -.P -to scope it for your org & publish as usual -.RS 0 -.IP \(bu 2 -Grant access: - -.RE -.P -.RS 2 -.nf -npm access grant [] -.fi -.RE -.RS 0 -.IP \(bu 2 -Revoke access: - -.RE -.P -.RS 2 -.nf -npm access revoke [] -.fi -.RE -.SH Monitor your package access -.RS 0 -.IP \(bu 2 -See what org packages a team member can access: - -.RE -.P -.RS 2 -.nf -npm access ls\-packages -.fi -.RE -.RS 0 -.IP \(bu 2 -See packages available to a specific team: - -.RE -.P -.RS 2 -.nf -npm access ls\-packages -.fi -.RE -.RS 0 -.IP \(bu 2 -Check which teams are collaborating on a package: - -.RE -.P -.RS 2 -.nf -npm access ls\-collaborators -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help team -.IP \(bu 2 -npm help access -.IP \(bu 2 -npm help 7 scope - -.RE - diff --git a/deps/npm/man/man7/npm-registry.7 b/deps/npm/man/man7/npm-registry.7 deleted file mode 100644 index a51170a387b..00000000000 --- a/deps/npm/man/man7/npm-registry.7 +++ /dev/null @@ -1,97 +0,0 @@ -.TH "NPM\-REGISTRY" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-registry\fR \- The JavaScript Package Registry -.SH DESCRIPTION -.P -To resolve packages by name and version, npm talks to a registry website -that implements the CommonJS Package Registry specification for reading -package info\. -.P -Additionally, npm's package registry implementation supports several -write APIs as well, to allow for publishing packages and managing user -account information\. -.P -The official public npm registry is at https://registry\.npmjs\.org/\|\. It -is powered by a CouchDB database, of which there is a public mirror at -https://skimdb\.npmjs\.com/registry\|\. The code for the couchapp is -available at https://github\.com/npm/npm\-registry\-couchapp\|\. -.P -The registry URL used is determined by the scope of the package (see -npm help 7 \fBnpm\-scope\fP)\. If no scope is specified, the default registry is used, which is -supplied by the \fBregistry\fP config parameter\. See npm help \fBnpm\-config\fP, -npm help 5 \fBnpmrc\fP, and npm help 7 \fBnpm\-config\fP for more on managing npm's configuration\. -.SH Does npm send any information about me back to the registry? -.P -Yes\. -.P -When making requests of the registry npm adds two headers with information -about your environment: -.RS 0 -.IP \(bu 2 -\fBNpm\-Scope\fP – If your project is scoped, this header will contain its -scope\. In the future npm hopes to build registry features that use this -information to allow you to customize your experience for your -organization\. -.IP \(bu 2 -\fBNpm\-In\-CI\fP – Set to "true" if npm believes this install is running in a -continous integration environment, "false" otherwise\. This is detected by -looking for the following environment variables: \fBCI\fP, \fBTDDIUM\fP, -\fBJENKINS_URL\fP, \fBbamboo\.buildKey\fP\|\. If you'd like to learn more you may find -the original PR \fIhttps://github\.com/npm/npm\-registry\-client/pull/129\fR -interesting\. -This is used to gather better metrics on how npm is used by humans, versus -build farms\. - -.RE -.P -The npm registry does not to correlate the information in these headers with -any authenticated accounts that may be used in the same requests\. -.SH Can I run my own private registry? -.P -Yes! -.P -The easiest way is to replicate the couch database, and use the same (or -similar) design doc to implement the APIs\. -.P -If you set up continuous replication from the official CouchDB, and then -set your internal CouchDB as the registry config, then you'll be able -to read any published packages, in addition to your private ones, and by -default will only publish internally\. -.P -If you then want to publish a package for the whole world to see, you can -simply override the \fB\-\-registry\fP option for that \fBpublish\fP command\. -.SH I don't want my package published in the official registry\. It's private\. -.P -Set \fB"private": true\fP in your package\.json to prevent it from being -published at all, or -\fB"publishConfig":{"registry":"http://my\-internal\-registry\.local"}\fP -to force it to be published only to your internal registry\. -.P -See npm help 5 \fBpackage\.json\fP for more info on what goes in the package\.json file\. -.SH Will you replicate from my registry into the public one? -.P -No\. If you want things to be public, then publish them into the public -registry using npm\. What little security there is would be for nought -otherwise\. -.SH Do I have to use couchdb to build a registry that npm can talk to? -.P -No, but it's way easier\. Basically, yes, you do, or you have to -effectively implement the entire CouchDB API anyway\. -.SH Is there a website or something to see package docs and such? -.P -Yes, head over to https://npmjs\.com/ -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help 7 disputes - -.RE - diff --git a/deps/npm/man/man7/npm-scope.7 b/deps/npm/man/man7/npm-scope.7 deleted file mode 100644 index 16e42f4bf0d..00000000000 --- a/deps/npm/man/man7/npm-scope.7 +++ /dev/null @@ -1,137 +0,0 @@ -.TH "NPM\-SCOPE" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-scope\fR \- Scoped packages -.SH DESCRIPTION -.P -All npm packages have a name\. Some package names also have a scope\. A scope -follows the usual rules for package names (URL\-safe characters, no leading dots -or underscores)\. When used in package names, scopes are preceded by an \fB@\fP symbol -and followed by a slash, e\.g\. -.P -.RS 2 -.nf -@somescope/somepackagename -.fi -.RE -.P -Scopes are a way of grouping related packages together, and also affect a few -things about the way npm treats the package\. -.P -Each npm user/organization has their own scope, and only you can add packages -in your scope\. This means you don't have to worry about someone taking your -package name ahead of you\. Thus it is also a good way to signal official packages -for organizations\. -.P -Scoped packages can be published and installed as of \fBnpm@2\fP and are supported -by the primary npm registry\. Unscoped packages can depend on scoped packages and -vice versa\. The npm client is backwards\-compatible with unscoped registries, -so it can be used to work with scoped and unscoped registries at the same time\. -.SH Installing scoped packages -.P -Scoped packages are installed to a sub\-folder of the regular installation -folder, e\.g\. if your other packages are installed in \fBnode_modules/packagename\fP, -scoped modules will be installed in \fBnode_modules/@myorg/packagename\fP\|\. The scope -folder (\fB@myorg\fP) is simply the name of the scope preceded by an \fB@\fP symbol, and can -contain any number of scoped packages\. -.P -A scoped package is installed by referencing it by name, preceded by an -\fB@\fP symbol, in \fBnpm install\fP: -.P -.RS 2 -.nf -npm install @myorg/mypackage -.fi -.RE -.P -Or in \fBpackage\.json\fP: -.P -.RS 2 -.nf -"dependencies": { - "@myorg/mypackage": "^1\.3\.0" -} -.fi -.RE -.P -Note that if the \fB@\fP symbol is omitted, in either case, npm will instead attempt to -install from GitHub; see npm help \fBnpm\-install\fP\|\. -.SH Requiring scoped packages -.P -Because scoped packages are installed into a scope folder, you have to -include the name of the scope when requiring them in your code, e\.g\. -.P -.RS 2 -.nf -require('@myorg/mypackage') -.fi -.RE -.P -There is nothing special about the way Node treats scope folders\. This -simply requires the \fBmypackage\fP module in the folder named \fB@myorg\fP\|\. -.SH Publishing scoped packages -.P -Scoped packages can be published from the CLI as of \fBnpm@2\fP and can be -published to any registry that supports them, including the primary npm -registry\. -.P -(As of 2015\-04\-19, and with npm 2\.0 or better, the primary npm registry -\fBdoes\fR support scoped packages\.) -.P -If you wish, you may associate a scope with a registry; see below\. -.SS Publishing public scoped packages to the primary npm registry -.P -To publish a public scoped package, you must specify \fB\-\-access public\fP with -the initial publication\. This will publish the package and set access -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 -account\. -.P -You can then publish the module with \fBnpm publish\fP or \fBnpm publish -\-\-access restricted\fP, and it will be present in the npm registry, with -restricted access\. You can then change the access permissions, if -desired, with \fBnpm access\fP or on the npmjs\.com website\. -.SH Associating a scope with a registry -.P -Scopes can be associated with a separate registry\. This allows you to -seamlessly use a mix of packages from the primary npm registry and one or more -private registries, such as npm Enterprise\. -.P -You can associate a scope with a registry at login, e\.g\. -.P -.RS 2 -.nf -npm login \-\-registry=http://reg\.example\.com \-\-scope=@myco -.fi -.RE -.P -Scopes have a many\-to\-one relationship with registries: one registry can -host multiple scopes, but a scope only ever points to one registry\. -.P -You can also associate a scope with a registry using \fBnpm config\fP: -.P -.RS 2 -.nf -npm config set @myco:registry http://reg\.example\.com -.fi -.RE -.P -Once a scope is associated with a registry, any \fBnpm install\fP for a package -with that scope will request packages from that registry instead\. Any -\fBnpm publish\fP for a package name that contains the scope will be published to -that registry instead\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help access -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/deps/npm/man/man7/npm-scripts.7 b/deps/npm/man/man7/npm-scripts.7 deleted file mode 100644 index bd0383116b7..00000000000 --- a/deps/npm/man/man7/npm-scripts.7 +++ /dev/null @@ -1,323 +0,0 @@ -.TH "NPM\-SCRIPTS" "7" "December 2017" "" "" -.SH "NAME" -\fBnpm-scripts\fR \- How npm handles the "scripts" field -.SH DESCRIPTION -.P -npm supports the "scripts" property of the package\.json file, for the -following scripts: -.RS 0 -.IP \(bu 2 -prepublish: -Run BEFORE the package is packed and published, as well as on local \fBnpm -install\fP without any arguments\. (See below) -.IP \(bu 2 -prepare: -Run both BEFORE the package is packed and published, and on local \fBnpm -install\fP without any arguments (See below)\. This is run -AFTER \fBprepublish\fP, but BEFORE \fBprepublishOnly\fP\|\. -.IP \(bu 2 -prepublishOnly: -Run BEFORE the package is prepared and packed, ONLY on \fBnpm publish\fP\|\. (See -below\.) -.IP \(bu 2 -prepack: -run BEFORE a tarball is packed (on \fBnpm pack\fP, \fBnpm publish\fP, and when -installing git dependencies) -.IP \(bu 2 -postpack: -Run AFTER the tarball has been generated and moved to its final destination\. -.IP \(bu 2 -publish, postpublish: -Run AFTER the package is published\. -.IP \(bu 2 -preinstall: -Run BEFORE the package is installed -.IP \(bu 2 -install, postinstall: -Run AFTER the package is installed\. -.IP \(bu 2 -preuninstall, uninstall: -Run BEFORE the package is uninstalled\. -.IP \(bu 2 -postuninstall: -Run AFTER the package is uninstalled\. -.IP \(bu 2 -preversion: -Run BEFORE bumping the package version\. -.IP \(bu 2 -version: -Run AFTER bumping the package version, but BEFORE commit\. -.IP \(bu 2 -postversion: -Run AFTER bumping the package version, and AFTER commit\. -.IP \(bu 2 -pretest, test, posttest: -Run by the \fBnpm test\fP command\. -.IP \(bu 2 -prestop, stop, poststop: -Run by the \fBnpm stop\fP command\. -.IP \(bu 2 -prestart, start, poststart: -Run by the \fBnpm start\fP command\. -.IP \(bu 2 -prerestart, restart, postrestart: -Run by the \fBnpm restart\fP command\. Note: \fBnpm restart\fP will run the -stop and start scripts if no \fBrestart\fP script is provided\. -.IP \(bu 2 -preshrinkwrap, shrinkwrap, postshrinkwrap: -Run by the \fBnpm shrinkwrap\fP command\. - -.RE -.P -Additionally, arbitrary scripts can be executed by running \fBnpm -run\-script \fP\|\. \fIPre\fR and \fIpost\fR commands with matching -names will be run for those as well (e\.g\. \fBpremyscript\fP, \fBmyscript\fP, -\fBpostmyscript\fP)\. Scripts from dependencies can be run with `npm explore -.P - \-\- npm run `\. -.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 -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 -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 -they're in good shape)\. -.P -See https://github\.com/npm/npm/issues/10074 for a much lengthier -justification, with further reading, for this change\. -.SS USE CASES -.P -If you need to perform operations on your package before it is used, in a way -that is not dependent on the operating system or architecture of the -target system, use a \fBprepublish\fP script\. This includes -tasks such as: -.RS 0 -.IP \(bu 2 -Compiling CoffeeScript source code into JavaScript\. -.IP \(bu 2 -Creating minified versions of JavaScript source code\. -.IP \(bu 2 -Fetching remote resources that your package will use\. - -.RE -.P -The advantage of doing these things at \fBprepublish\fP time is that they can be done once, in a -single place, thus reducing complexity and variability\. -Additionally, this means that: -.RS 0 -.IP \(bu 2 -You can depend on \fBcoffee\-script\fP as a \fBdevDependency\fP, and thus -your users don't need to have it installed\. -.IP \(bu 2 -You don't need to include minifiers in your package, reducing -the size for your users\. -.IP \(bu 2 -You don't need to rely on your users having \fBcurl\fP or \fBwget\fP or -other system tools on the target machines\. - -.RE -.SH DEFAULT VALUES -.P -npm will default some script values based on package contents\. -.RS 0 -.IP \(bu 2 -\fB"start": "node server\.js"\fP: -If there is a \fBserver\.js\fP file in the root of your package, then npm -will default the \fBstart\fP command to \fBnode server\.js\fP\|\. -.IP \(bu 2 -\fB"install": "node\-gyp rebuild"\fP: -If there is a \fBbinding\.gyp\fP file in the root of your package and you -haven't defined your own \fBinstall\fP or \fBpreinstall\fP scripts, npm will -default the \fBinstall\fP command to compile using node\-gyp\. - -.RE -.SH USER -.P -If npm was invoked with root privileges, then it will change the uid -to the user account or uid specified by the \fBuser\fP config, which -defaults to \fBnobody\fP\|\. Set the \fBunsafe\-perm\fP flag to run scripts with -root privileges\. -.SH ENVIRONMENT -.P -Package scripts run in an environment where many pieces of information -are made available regarding the setup of npm and the current state of -the process\. -.SS path -.P -If you depend on modules that define executable scripts, like test -suites, then those executables will be added to the \fBPATH\fP for -executing the scripts\. So, if your package\.json has this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "dependencies" : { "bar" : "0\.1\.x" } -, "scripts": { "start" : "bar \./test" } } -.fi -.RE -.P -then you could run \fBnpm start\fP to execute the \fBbar\fP script, which is -exported into the \fBnode_modules/\.bin\fP directory on \fBnpm install\fP\|\. -.SS package\.json vars -.P -The package\.json fields are tacked onto the \fBnpm_package_\fP prefix\. So, -for instance, if you had \fB{"name":"foo", "version":"1\.2\.5"}\fP in your -package\.json file, then your package scripts would have the -\fBnpm_package_name\fP environment variable set to "foo", and the -\fBnpm_package_version\fP set to "1\.2\.5" -.SS configuration -.P -Configuration parameters are put in the environment with the -\fBnpm_config_\fP prefix\. For instance, you can view the effective \fBroot\fP -config by checking the \fBnpm_config_root\fP environment variable\. -.SS Special: package\.json "config" object -.P -The package\.json "config" keys are overwritten in the environment if -there is a config param of \fB[@]:\fP\|\. For example, -if the package\.json has this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } -, "scripts" : { "start" : "node server\.js" } } -.fi -.RE -.P -and the server\.js is this: -.P -.RS 2 -.nf -http\.createServer(\.\.\.)\.listen(process\.env\.npm_package_config_port) -.fi -.RE -.P -then the user could change the behavior by doing: -.P -.RS 2 -.nf -npm config set foo:port 80 -.fi -.RE -.SS current lifecycle event -.P -Lastly, the \fBnpm_lifecycle_event\fP environment variable is set to -whichever stage of the cycle is being executed\. So, you could have a -single script used for different parts of the process which switches -based on what's currently happening\. -.P -Objects are flattened following this format, so if you had -\fB{"scripts":{"install":"foo\.js"}}\fP in your package\.json, then you'd -see this in the script: -.P -.RS 2 -.nf -process\.env\.npm_package_scripts_install === "foo\.js" -.fi -.RE -.SH EXAMPLES -.P -For example, if your package\.json contains this: -.P -.RS 2 -.nf -{ "scripts" : - { "install" : "scripts/install\.js" - , "postinstall" : "scripts/install\.js" - , "uninstall" : "scripts/uninstall\.js" - } -} -.fi -.RE -.P -then \fBscripts/install\.js\fP will be called for the install -and post\-install stages of the lifecycle, and \fBscripts/uninstall\.js\fP -will be called when the package is uninstalled\. Since -\fBscripts/install\.js\fP is running for two different phases, it would -be wise in this case to look at the \fBnpm_lifecycle_event\fP environment -variable\. -.P -If you want to run a make command, you can do so\. This works just -fine: -.P -.RS 2 -.nf -{ "scripts" : - { "preinstall" : "\./configure" - , "install" : "make && make install" - , "test" : "make test" - } -} -.fi -.RE -.SH EXITING -.P -Scripts are run by passing the line as a script argument to \fBsh\fP\|\. -.P -If the script exits with a code other than 0, then this will abort the -process\. -.P -Note that these script files don't have to be nodejs or even -javascript programs\. They just have to be some kind of executable -file\. -.SH HOOK SCRIPTS -.P -If you want to run a specific script at a specific lifecycle event for -ALL packages, then you can use a hook script\. -.P -Place an executable file at \fBnode_modules/\.hooks/{eventname}\fP, and -it'll get run for all packages when they are going through that point -in the package lifecycle for any packages installed in that root\. -.P -Hook scripts are run exactly the same way as package\.json scripts\. -That is, they are in a separate child process, with the env described -above\. -.SH BEST PRACTICES -.RS 0 -.IP \(bu 2 -Don't exit with a non\-zero error code unless you \fIreally\fR mean it\. -Except for uninstall scripts, this will cause the npm action to -fail, and potentially be rolled back\. If the failure is minor or -only will prevent some optional features, then it's better to just -print a warning and exit successfully\. -.IP \(bu 2 -Try not to use scripts to do what npm can do for you\. Read through -npm help 5 \fBpackage\.json\fP to see all the things that you can specify and enable -by simply describing your package appropriately\. In general, this -will lead to a more robust and consistent state\. -.IP \(bu 2 -Inspect the env to determine where to put things\. For instance, if -the \fBnpm_config_binroot\fP environment variable is set to \fB/home/user/bin\fP, then -don't try to install executables into \fB/usr/local/bin\fP\|\. The user -probably set it up that way for a reason\. -.IP \(bu 2 -Don't prefix your script commands with "sudo"\. If root permissions -are required for some reason, then it'll fail with that error, and -the user will sudo the npm command in question\. -.IP \(bu 2 -Don't use \fBinstall\fP\|\. Use a \fB\|\.gyp\fP file for compilation, and \fBprepublish\fP -for anything else\. You should almost never have to explicitly set a -preinstall or install script\. If you are doing this, please consider if -there is another option\. The only valid use of \fBinstall\fP or \fBpreinstall\fP -scripts is for compilation which must be done on the target architecture\. - -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help install - -.RE - diff --git a/deps/npm/man/man7/removing-npm.7 b/deps/npm/man/man7/removing-npm.7 deleted file mode 100644 index 62c5ae42615..00000000000 --- a/deps/npm/man/man7/removing-npm.7 +++ /dev/null @@ -1,78 +0,0 @@ -.TH "NPM\-REMOVAL" "1" "December 2017" "" "" -.SH "NAME" -\fBnpm-removal\fR \- Cleaning the Slate -.SH SYNOPSIS -.P -So sad to see you go\. -.P -.RS 2 -.nf -sudo npm uninstall npm \-g -.fi -.RE -.P -Or, if that fails, get the npm source code, and do: -.P -.RS 2 -.nf -sudo make uninstall -.fi -.RE -.SH More Severe Uninstalling -.P -Usually, the above instructions are sufficient\. That will remove -npm, but leave behind anything you've installed\. -.P -If that doesn't work, or if you require more drastic measures, -continue reading\. -.P -Note that this is only necessary for globally\-installed packages\. Local -installs are completely contained within a project's \fBnode_modules\fP -folder\. Delete that folder, and everything is gone (unless a package's -install script is particularly ill\-behaved)\. -.P -This assumes that you installed node and npm in the default place\. If -you configured node with a different \fB\-\-prefix\fP, or installed npm with a -different prefix setting, then adjust the paths accordingly, replacing -\fB/usr/local\fP with your install prefix\. -.P -To remove everything npm\-related manually: -.P -.RS 2 -.nf -rm \-rf /usr/local/{lib/node{,/\.npm,_modules},bin,share/man}/npm* -.fi -.RE -.P -If you installed things \fIwith\fR npm, then your best bet is to uninstall -them with npm first, and then install them again once you have a -proper install\. This can help find any symlinks that are lying -around: -.P -.RS 2 -.nf -ls \-laF /usr/local/{lib/node{,/\.npm},bin,share/man} | grep npm -.fi -.RE -.P -Prior to version 0\.3, npm used shim files for executables and node -modules\. To track those down, you can do the following: -.P -.RS 2 -.nf -find /usr/local/{lib/node,bin} \-exec grep \-l npm \\{\\} \\; ; -.fi -.RE -.P -(This is also in the README file\.) -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -README -.IP \(bu 2 -npm help uninstall -.IP \(bu 2 -npm help prune - -.RE - diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7 deleted file mode 100644 index 23c1e018d53..00000000000 --- a/deps/npm/man/man7/semver.7 +++ /dev/null @@ -1,458 +0,0 @@ -.TH "SEMVER" "7" "December 2017" "" "" -.SH "NAME" -\fBsemver\fR \- The semantic versioner for npm -.SH Install -.P -.RS 2 -.nf -npm install \-\-save semver -` -.fi -.RE -.SH Usage -.P -As a node module: -.P -.RS 2 -.nf -const semver = require('semver') - -semver\.valid('1\.2\.3') // '1\.2\.3' -semver\.valid('a\.b\.c') // null -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 -.fi -.RE -.P -As a command\-line utility: -.P -.RS 2 -.nf -$ semver \-h - -SemVer 5\.3\.0 - -A JavaScript implementation of the http://semver\.org/ specification -Copyright Isaac Z\. Schlueter - -Usage: semver [options] [ [\.\.\.]] -Prints valid versions sorted by SemVer precedence - -Options: -\-r \-\-range - Print versions that match the specified range\. - -\-i \-\-increment [] - Increment a version by the specified level\. Level can - be one of: major, minor, patch, premajor, preminor, - prepatch, or prerelease\. Default level is 'patch'\. - Only one version may be specified\. - -\-\-preid - Identifier to be used to prefix premajor, preminor, - prepatch or prerelease version increments\. - -\-l \-\-loose - Interpret versions and ranges loosely - -Program exits successfully if any valid version satisfies -all supplied ranges, and prints all satisfying versions\. - -If no satisfying versions are found, then exits failure\. - -Versions are printed in ascending order, so supplying -multiple versions to the utility will just sort them\. -.fi -.RE -.SH Versions -.P -A "version" is described by the \fBv2\.0\.0\fP specification found at -http://semver\.org/\|\. -.P -A leading \fB"="\fP or \fB"v"\fP character is stripped off and ignored\. -.SH Ranges -.P -A \fBversion range\fP is a set of \fBcomparators\fP which specify versions -that satisfy the range\. -.P -A \fBcomparator\fP is composed of an \fBoperator\fP and a \fBversion\fP\|\. The set -of primitive \fBoperators\fP is: -.RS 0 -.IP \(bu 2 -\fB<\fP Less than -.IP \(bu 2 -\fB<=\fP Less than or equal to -.IP \(bu 2 -\fB>\fP Greater than -.IP \(bu 2 -\fB>=\fP Greater than or equal to -.IP \(bu 2 -\fB=\fP Equal\. If no operator is specified, then equality is assumed, -so this operator is optional, but MAY be included\. - -.RE -.P -For example, the comparator \fB>=1\.2\.7\fP would match the versions -\fB1\.2\.7\fP, \fB1\.2\.8\fP, \fB2\.5\.3\fP, and \fB1\.3\.9\fP, but not the versions \fB1\.2\.6\fP -or \fB1\.1\.0\fP\|\. -.P -Comparators can be joined by whitespace to form a \fBcomparator set\fP, -which is satisfied by the \fBintersection\fR of all of the comparators -it includes\. -.P -A range is composed of one or more comparator sets, joined by \fB||\fP\|\. A -version matches a range if and only if every comparator in at least -one of the \fB||\fP\-separated comparator sets is satisfied by the version\. -.P -For example, the range \fB>=1\.2\.7 <1\.3\.0\fP would match the versions -\fB1\.2\.7\fP, \fB1\.2\.8\fP, and \fB1\.2\.99\fP, but not the versions \fB1\.2\.6\fP, \fB1\.3\.0\fP, -or \fB1\.1\.0\fP\|\. -.P -The range \fB1\.2\.7 || >=1\.2\.9 <2\.0\.0\fP would match the versions \fB1\.2\.7\fP, -\fB1\.2\.9\fP, and \fB1\.4\.6\fP, but not the versions \fB1\.2\.8\fP or \fB2\.0\.0\fP\|\. -.SS Prerelease Tags -.P -If a version has a prerelease tag (for example, \fB1\.2\.3\-alpha\.3\fP) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same \fB[major, minor, patch]\fP tuple also has a -prerelease tag\. -.P -For example, the range \fB>1\.2\.3\-alpha\.3\fP would be allowed to match the -version \fB1\.2\.3\-alpha\.7\fP, but it would \fInot\fR be satisfied by -\fB3\.4\.5\-alpha\.9\fP, even though \fB3\.4\.5\-alpha\.9\fP is technically "greater -than" \fB1\.2\.3\-alpha\.3\fP according to the SemVer sort rules\. The version -range only accepts prerelease tags on the \fB1\.2\.3\fP version\. The -version \fB3\.4\.5\fP \fIwould\fR satisfy the range, because it does not have a -prerelease flag, and \fB3\.4\.5\fP is greater than \fB1\.2\.3\-alpha\.7\fP\|\. -.P -The purpose for this behavior is twofold\. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption\. -Therefore, by default, they are excluded from range matching -semantics\. -.P -Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use \fIthat specific\fR set of -alpha/beta/rc versions\. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk\. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the \fInext\fR set of prerelease versions\. -.SS Prerelease Identifiers -.P -The method \fB\|\.inc\fP takes an additional \fBidentifier\fP string argument that -will append the value of the string as a prerelease identifier: -.P -.RS 2 -.nf -semver\.inc('1\.2\.3', 'prerelease', 'beta') -// '1\.2\.4\-beta\.0' -.fi -.RE -.P -command\-line example: -.P -.RS 2 -.nf -$ semver 1\.2\.3 \-i prerelease \-\-preid beta -1\.2\.4\-beta\.0 -.fi -.RE -.P -Which then can be used to increment further: -.P -.RS 2 -.nf -$ semver 1\.2\.4\-beta\.0 \-i prerelease -1\.2\.4\-beta\.1 -.fi -.RE -.SS Advanced Range Syntax -.P -Advanced range syntax desugars to primitive comparators in -deterministic ways\. -.P -Advanced ranges may be combined in the same way as primitive -comparators using white space or \fB||\fP\|\. -.SS Hyphen Ranges \fBX\.Y\.Z \- A\.B\.C\fP -.P -Specifies an inclusive set\. -.RS 0 -.IP \(bu 2 -\fB1\.2\.3 \- 2\.3\.4\fP := \fB>=1\.2\.3 <=2\.3\.4\fP - -.RE -.P -If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes\. -.RS 0 -.IP \(bu 2 -\fB1\.2 \- 2\.3\.4\fP := \fB>=1\.2\.0 <=2\.3\.4\fP - -.RE -.P -If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts\. -.RS 0 -.IP \(bu 2 -\fB1\.2\.3 \- 2\.3\fP := \fB>=1\.2\.3 <2\.4\.0\fP -.IP \(bu 2 -\fB1\.2\.3 \- 2\fP := \fB>=1\.2\.3 <3\.0\.0\fP - -.RE -.SS X\-Ranges \fB1\.2\.x\fP \fB1\.X\fP \fB1\.2\.*\fP \fB*\fP -.P -Any of \fBX\fP, \fBx\fP, or \fB*\fP may be used to "stand in" for one of the -numeric values in the \fB[major, minor, patch]\fP tuple\. -.RS 0 -.IP \(bu 2 -\fB*\fP := \fB>=0\.0\.0\fP (Any version satisfies) -.IP \(bu 2 -\fB1\.x\fP := \fB>=1\.0\.0 <2\.0\.0\fP (Matching major version) -.IP \(bu 2 -\fB1\.2\.x\fP := \fB>=1\.2\.0 <1\.3\.0\fP (Matching major and minor versions) - -.RE -.P -A partial version range is treated as an X\-Range, so the special -character is in fact optional\. -.RS 0 -.IP \(bu 2 -\fB""\fP (empty string) := \fB*\fP := \fB>=0\.0\.0\fP -.IP \(bu 2 -\fB1\fP := \fB1\.x\.x\fP := \fB>=1\.0\.0 <2\.0\.0\fP -.IP \(bu 2 -\fB1\.2\fP := \fB1\.2\.x\fP := \fB>=1\.2\.0 <1\.3\.0\fP - -.RE -.SS Tilde Ranges \fB~1\.2\.3\fP \fB~1\.2\fP \fB~1\fP -.P -Allows patch\-level changes if a minor version is specified on the -comparator\. Allows minor\-level changes if not\. -.RS 0 -.IP \(bu 2 -\fB~1\.2\.3\fP := \fB>=1\.2\.3 <1\.(2+1)\.0\fP := \fB>=1\.2\.3 <1\.3\.0\fP -.IP \(bu 2 -\fB~1\.2\fP := \fB>=1\.2\.0 <1\.(2+1)\.0\fP := \fB>=1\.2\.0 <1\.3\.0\fP (Same as \fB1\.2\.x\fP) -.IP \(bu 2 -\fB~1\fP := \fB>=1\.0\.0 <(1+1)\.0\.0\fP := \fB>=1\.0\.0 <2\.0\.0\fP (Same as \fB1\.x\fP) -.IP \(bu 2 -\fB~0\.2\.3\fP := \fB>=0\.2\.3 <0\.(2+1)\.0\fP := \fB>=0\.2\.3 <0\.3\.0\fP -.IP \(bu 2 -\fB~0\.2\fP := \fB>=0\.2\.0 <0\.(2+1)\.0\fP := \fB>=0\.2\.0 <0\.3\.0\fP (Same as \fB0\.2\.x\fP) -.IP \(bu 2 -\fB~0\fP := \fB>=0\.0\.0 <(0+1)\.0\.0\fP := \fB>=0\.0\.0 <1\.0\.0\fP (Same as \fB0\.x\fP) -.IP \(bu 2 -\fB~1\.2\.3\-beta\.2\fP := \fB>=1\.2\.3\-beta\.2 <1\.3\.0\fP Note that prereleases in -the \fB1\.2\.3\fP version will be allowed, if they are greater than or -equal to \fBbeta\.2\fP\|\. So, \fB1\.2\.3\-beta\.4\fP would be allowed, but -\fB1\.2\.4\-beta\.2\fP would not, because it is a prerelease of a -different \fB[major, minor, patch]\fP tuple\. - -.RE -.SS Caret Ranges \fB^1\.2\.3\fP \fB^0\.2\.5\fP \fB^0\.0\.4\fP -.P -Allows changes that do not modify the left\-most non\-zero digit in the -\fB[major, minor, patch]\fP tuple\. In other words, this allows patch and -minor updates for versions \fB1\.0\.0\fP and above, patch updates for -versions \fB0\.X >=0\.1\.0\fP, and \fIno\fR updates for versions \fB0\.0\.X\fP\|\. -.P -Many authors treat a \fB0\.x\fP version as if the \fBx\fP were the major -"breaking\-change" indicator\. -.P -Caret ranges are ideal when an author may make breaking changes -between \fB0\.2\.4\fP and \fB0\.3\.0\fP releases, which is a common practice\. -However, it presumes that there will \fInot\fR be breaking changes between -\fB0\.2\.4\fP and \fB0\.2\.5\fP\|\. It allows for changes that are presumed to be -additive (but non\-breaking), according to commonly observed practices\. -.RS 0 -.IP \(bu 2 -\fB^1\.2\.3\fP := \fB>=1\.2\.3 <2\.0\.0\fP -.IP \(bu 2 -\fB^0\.2\.3\fP := \fB>=0\.2\.3 <0\.3\.0\fP -.IP \(bu 2 -\fB^0\.0\.3\fP := \fB>=0\.0\.3 <0\.0\.4\fP -.IP \(bu 2 -\fB^1\.2\.3\-beta\.2\fP := \fB>=1\.2\.3\-beta\.2 <2\.0\.0\fP Note that prereleases in -the \fB1\.2\.3\fP version will be allowed, if they are greater than or -equal to \fBbeta\.2\fP\|\. So, \fB1\.2\.3\-beta\.4\fP would be allowed, but -\fB1\.2\.4\-beta\.2\fP would not, because it is a prerelease of a -different \fB[major, minor, patch]\fP tuple\. -.IP \(bu 2 -\fB^0\.0\.3\-beta\fP := \fB>=0\.0\.3\-beta <0\.0\.4\fP Note that prereleases in the -\fB0\.0\.3\fP version \fIonly\fR will be allowed, if they are greater than or -equal to \fBbeta\fP\|\. So, \fB0\.0\.3\-pr\.2\fP would be allowed\. - -.RE -.P -When parsing caret ranges, a missing \fBpatch\fP value desugars to the -number \fB0\fP, but will allow flexibility within that value, even if the -major and minor versions are both \fB0\fP\|\. -.RS 0 -.IP \(bu 2 -\fB^1\.2\.x\fP := \fB>=1\.2\.0 <2\.0\.0\fP -.IP \(bu 2 -\fB^0\.0\.x\fP := \fB>=0\.0\.0 <0\.1\.0\fP -.IP \(bu 2 -\fB^0\.0\fP := \fB>=0\.0\.0 <0\.1\.0\fP - -.RE -.P -A missing \fBminor\fP and \fBpatch\fP values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero\. -.RS 0 -.IP \(bu 2 -\fB^1\.x\fP := \fB>=1\.0\.0 <2\.0\.0\fP -.IP \(bu 2 -\fB^0\.x\fP := \fB>=0\.0\.0 <1\.0\.0\fP - -.RE -.SS Range Grammar -.P -Putting all this together, here is a Backus\-Naur grammar for ranges, -for the benefit of parser authors: -.P -.RS 2 -.nf -range\-set ::= range ( logical\-or range ) * -logical\-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' \- ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial -partial ::= xr ( '\.' xr ( '\.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'\-'9'] ( ['0'\-'9'] ) * -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '\-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '\.' part ) * -part ::= nr | [\-0\-9A\-Za\-z]+ -.fi -.RE -.SH Functions -.P -All methods and classes take a final \fBloose\fP boolean argument that, if -true, will be more forgiving about not\-quite\-valid semver strings\. -The resulting output will always be 100% strict, of course\. -.P -Strict\-mode Comparators and Ranges will be strict about the SemVer -strings that they parse\. -.RS 0 -.IP \(bu 2 -\fBvalid(v)\fP: Return the parsed version, or null if it's not valid\. -.IP \(bu 2 -\fBinc(v, release)\fP: Return the version incremented by the release -type (\fBmajor\fP, \fBpremajor\fP, \fBminor\fP, \fBpreminor\fP, \fBpatch\fP, -\fBprepatch\fP, or \fBprerelease\fP), or null if it's not valid -.RS 0 -.IP \(bu 2 -\fBpremajor\fP in one call will bump the version up to the next major -version and down to a prerelease of that major version\. -\fBpreminor\fP, and \fBprepatch\fP work the same way\. -.IP \(bu 2 -If called from a non\-prerelease version, the \fBprerelease\fP will work the -same as \fBprepatch\fP\|\. It increments the patch version, then makes a -prerelease\. If the input version is already a prerelease it simply -increments it\. - -.RE -.IP \(bu 2 -\fBprerelease(v)\fP: Returns an array of prerelease components, or null -if none exist\. Example: \fBprerelease('1\.2\.3\-alpha\.1') \-> ['alpha', 1]\fP -.IP \(bu 2 -\fBmajor(v)\fP: Return the major version number\. -.IP \(bu 2 -\fBminor(v)\fP: Return the minor version number\. -.IP \(bu 2 -\fBpatch(v)\fP: Return the patch version number\. -.IP \(bu 2 -\fBintersects(r1, r2, loose)\fP: Return true if the two supplied ranges -or comparators intersect\. - -.RE -.SS Comparison -.RS 0 -.IP \(bu 2 -\fBgt(v1, v2)\fP: \fBv1 > v2\fP -.IP \(bu 2 -\fBgte(v1, v2)\fP: \fBv1 >= v2\fP -.IP \(bu 2 -\fBlt(v1, v2)\fP: \fBv1 < v2\fP -.IP \(bu 2 -\fBlte(v1, v2)\fP: \fBv1 <= v2\fP -.IP \(bu 2 -\fBeq(v1, v2)\fP: \fBv1 == v2\fP This is true if they're logically equivalent, -even if they're not the exact same string\. You already know how to -compare strings\. -.IP \(bu 2 -\fBneq(v1, v2)\fP: \fBv1 != v2\fP The opposite of \fBeq\fP\|\. -.IP \(bu 2 -\fBcmp(v1, comparator, v2)\fP: Pass in a comparison string, and it'll call -the corresponding function above\. \fB"==="\fP and \fB"!=="\fP do simple -string comparison, but are included for completeness\. Throws if an -invalid comparison string is provided\. -.IP \(bu 2 -\fBcompare(v1, v2)\fP: Return \fB0\fP if \fBv1 == v2\fP, or \fB1\fP if \fBv1\fP is greater, or \fB\-1\fP if -\fBv2\fP is greater\. Sorts in ascending order if passed to \fBArray\.sort()\fP\|\. -.IP \(bu 2 -\fBrcompare(v1, v2)\fP: The reverse of compare\. Sorts an array of versions -in descending order when passed to \fBArray\.sort()\fP\|\. -.IP \(bu 2 -\fBdiff(v1, v2)\fP: Returns difference between two versions by the release type -(\fBmajor\fP, \fBpremajor\fP, \fBminor\fP, \fBpreminor\fP, \fBpatch\fP, \fBprepatch\fP, or \fBprerelease\fP), -or null if the versions are the same\. - -.RE -.SS Comparators -.RS 0 -.IP \(bu 2 -\fBintersects(comparator)\fP: Return true if the comparators intersect - -.RE -.SS Ranges -.RS 0 -.IP \(bu 2 -\fBvalidRange(range)\fP: Return the valid range or null if it's not valid -.IP \(bu 2 -\fBsatisfies(version, range)\fP: Return true if the version satisfies the -range\. -.IP \(bu 2 -\fBmaxSatisfying(versions, range)\fP: Return the highest version in the list -that satisfies the range, or \fBnull\fP if none of them do\. -.IP \(bu 2 -\fBminSatisfying(versions, range)\fP: Return the lowest version in the list -that satisfies the range, or \fBnull\fP if none of them do\. -.IP \(bu 2 -\fBgtr(version, range)\fP: Return \fBtrue\fP if version is greater than all the -versions possible in the range\. -.IP \(bu 2 -\fBltr(version, range)\fP: Return \fBtrue\fP if version is less than all the -versions possible in the range\. -.IP \(bu 2 -\fBoutside(version, range, hilo)\fP: Return true if the version is outside -the bounds of the range in either the high or low direction\. The -\fBhilo\fP argument must be either the string \fB\|'>'\fP or \fB\|'<'\fP\|\. (This is -the function called by \fBgtr\fP and \fBltr\fP\|\.) -.IP \(bu 2 -\fBintersects(range)\fP: Return true if any of the ranges comparators intersect - -.RE -.P -Note that, since ranges may be non\-contiguous, a version might not be -greater than a range, less than a range, \fIor\fR satisfy a range! For -example, the range \fB1\.2 <1\.2\.9 || >2\.0\.0\fP would have a hole from \fB1\.2\.9\fP -until \fB2\.0\.0\fP, so the version \fB1\.2\.10\fP would not be greater than the -range (because \fB2\.0\.1\fP satisfies, which is higher), nor less than the -range (since \fB1\.2\.8\fP satisfies, which is lower), and it also does not -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\. - diff --git a/deps/npm/node_modules/JSONStream/.npmignore b/deps/npm/node_modules/JSONStream/.npmignore deleted file mode 100644 index a9a9d586e59..00000000000 --- a/deps/npm/node_modules/JSONStream/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/* -node_modules diff --git a/deps/npm/node_modules/JSONStream/.travis.yml b/deps/npm/node_modules/JSONStream/.travis.yml deleted file mode 100644 index 2f60c363d24..00000000000 --- a/deps/npm/node_modules/JSONStream/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js -node_js: - - 4 - - 5 - - 6 -sudo: false diff --git a/deps/npm/node_modules/JSONStream/LICENSE.APACHE2 b/deps/npm/node_modules/JSONStream/LICENSE.APACHE2 deleted file mode 100644 index 6366c04716f..00000000000 --- a/deps/npm/node_modules/JSONStream/LICENSE.APACHE2 +++ /dev/null @@ -1,15 +0,0 @@ -Apache License, Version 2.0 - -Copyright (c) 2011 Dominic Tarr - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/deps/npm/node_modules/JSONStream/LICENSE.MIT b/deps/npm/node_modules/JSONStream/LICENSE.MIT deleted file mode 100644 index 49e7da41fec..00000000000 --- a/deps/npm/node_modules/JSONStream/LICENSE.MIT +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2011 Dominic Tarr - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/examples/all_docs.js b/deps/npm/node_modules/JSONStream/examples/all_docs.js deleted file mode 100644 index f20781e18c9..00000000000 --- a/deps/npm/node_modules/JSONStream/examples/all_docs.js +++ /dev/null @@ -1,13 +0,0 @@ -var request = require('request') - , JSONStream = require('JSONStream') - , es = require('event-stream') - -var parser = JSONStream.parse(['rows', true]) //emit parts that match this path (any element of the rows array) - , req = request({url: 'http://isaacs.couchone.com/registry/_all_docs'}) - , logger = es.mapSync(function (data) { //create a stream that logs to stderr, - console.error(data) - return data - }) - -req.pipe(parser) -parser.pipe(logger) diff --git a/deps/npm/node_modules/JSONStream/index.js b/deps/npm/node_modules/JSONStream/index.js deleted file mode 100755 index 2cc9fff0713..00000000000 --- a/deps/npm/node_modules/JSONStream/index.js +++ /dev/null @@ -1,252 +0,0 @@ -#! /usr/bin/env node - -'use strict' - -var Parser = require('jsonparse') - , through = require('through') - -/* - - the value of this.stack that creationix's jsonparse has is weird. - - it makes this code ugly, but his problem is way harder that mine, - so i'll forgive him. - -*/ - -exports.parse = function (path, map) { - var header, footer - var parser = new Parser() - var stream = through(function (chunk) { - if('string' === typeof chunk) - chunk = new Buffer(chunk) - parser.write(chunk) - }, - function (data) { - if(data) - stream.write(data) - if (header) - stream.emit('header', header) - if (footer) - stream.emit('footer', footer) - stream.queue(null) - }) - - if('string' === typeof path) - path = path.split('.').map(function (e) { - if (e === '$*') - return {emitKey: true} - else if (e === '*') - return true - else if (e === '') // '..'.split('.') returns an empty string - return {recurse: true} - else - return e - }) - - - var count = 0, _key - if(!path || !path.length) - path = null - - parser.onValue = function (value) { - if (!this.root) - stream.root = value - - if(! path) return - - var i = 0 // iterates on path - var j = 0 // iterates on stack - var emitKey = false; - var emitPath = false; - while (i < path.length) { - var key = path[i] - var c - j++ - - if (key && !key.recurse) { - c = (j === this.stack.length) ? this : this.stack[j] - if (!c) return - if (! check(key, c.key)) { - setHeaderFooter(c.key, value) - return - } - emitKey = !!key.emitKey; - emitPath = !!key.emitPath; - i++ - } else { - i++ - var nextKey = path[i] - if (! nextKey) return - while (true) { - c = (j === this.stack.length) ? this : this.stack[j] - if (!c) return - if (check(nextKey, c.key)) { - i++; - if (!Object.isFrozen(this.stack[j])) - this.stack[j].value = null - break - } else { - setHeaderFooter(c.key, value) - } - j++ - } - } - - } - - // emit header - if (header) { - stream.emit('header', header); - header = false; - } - if (j !== this.stack.length) return - - count ++ - var actualPath = this.stack.slice(1).map(function(element) { return element.key }).concat([this.key]) - var data = this.value[this.key] - if(null != data) - if(null != (data = map ? map(data, actualPath) : data)) { - if (emitKey || emitPath) { - data = { value: data }; - if (emitKey) - data["key"] = this.key; - if (emitPath) - data["path"] = actualPath; - } - - stream.queue(data) - } - delete this.value[this.key] - for(var k in this.stack) - if (!Object.isFrozen(this.stack[k])) - this.stack[k].value = null - } - parser._onToken = parser.onToken; - - parser.onToken = function (token, value) { - parser._onToken(token, value); - if (this.stack.length === 0) { - if (stream.root) { - if(!path) - stream.queue(stream.root) - count = 0; - stream.root = null; - } - } - } - - parser.onError = function (err) { - if(err.message.indexOf("at position") > -1) - err.message = "Invalid JSON (" + err.message + ")"; - stream.emit('error', err) - } - - return stream - - function setHeaderFooter(key, value) { - // header has not been emitted yet - if (header !== false) { - header = header || {} - header[key] = value - } - - // footer has not been emitted yet but header has - if (footer !== false && header === false) { - footer = footer || {} - footer[key] = value - } - } -} - -function check (x, y) { - if ('string' === typeof x) - return y == x - else if (x && 'function' === typeof x.exec) - return x.exec(y) - else if ('boolean' === typeof x || 'object' === typeof x) - return x - else if ('function' === typeof x) - return x(y) - return false -} - -exports.stringify = function (op, sep, cl, indent) { - indent = indent || 0 - if (op === false){ - op = '' - sep = '\n' - cl = '' - } else if (op == null) { - - op = '[\n' - sep = '\n,\n' - cl = '\n]\n' - - } - - //else, what ever you like - - var stream - , first = true - , anyData = false - stream = through(function (data) { - anyData = true - try { - var json = JSON.stringify(data, null, indent) - } catch (err) { - return stream.emit('error', err) - } - if(first) { first = false ; stream.queue(op + json)} - else stream.queue(sep + json) - }, - function (data) { - if(!anyData) - stream.queue(op) - stream.queue(cl) - stream.queue(null) - }) - - return stream -} - -exports.stringifyObject = function (op, sep, cl, indent) { - indent = indent || 0 - if (op === false){ - op = '' - sep = '\n' - cl = '' - } else if (op == null) { - - op = '{\n' - sep = '\n,\n' - cl = '\n}\n' - - } - - //else, what ever you like - - var first = true - var anyData = false - var stream = through(function (data) { - anyData = true - var json = JSON.stringify(data[0]) + ':' + JSON.stringify(data[1], null, indent) - if(first) { first = false ; this.queue(op + json)} - else this.queue(sep + json) - }, - function (data) { - if(!anyData) this.queue(op) - this.queue(cl) - - this.queue(null) - }) - - return stream -} - -if(!module.parent && process.title !== 'browser') { - process.stdin - .pipe(exports.parse(process.argv[2])) - .pipe(exports.stringify('[', ',\n', ']\n', 2)) - .pipe(process.stdout) -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore deleted file mode 100644 index b512c09d476..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE deleted file mode 100644 index ed1e50c3d34..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2012 Tim Caswell - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown deleted file mode 100644 index c5425f8c3af..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown +++ /dev/null @@ -1,10 +0,0 @@ -This is a streaming JSON parser. For a simpler, sax-based version see this gist: https://gist.github.com/1821394 - -The MIT License (MIT) -Copyright (c) 2011-2012 Tim Caswell - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js deleted file mode 100644 index b36d92f7e35..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js +++ /dev/null @@ -1,26 +0,0 @@ -var fs = require('fs'), - Parser = require('./jsonparse'); - - -var json = fs.readFileSync("samplejson/basic.json"); - - -while (true) { - var start = Date.now(); - for (var i = 0; i < 1000; i++) { - JSON.parse(json); - } - var first = Date.now() - start; - - start = Date.now(); - var p = new Parser(); - for (var i = 0; i < 1000; i++) { - p.write(json); - } - var second = Date.now() - start; - - - console.log("JSON.parse took %s", first); - console.log("streaming parser took %s", second); - console.log("streaming is %s times slower", second / first); -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js deleted file mode 100644 index 10210d470b6..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js +++ /dev/null @@ -1,30 +0,0 @@ -var Parser = require('../jsonparse'); -var Http = require('http'); -require('./colors'); -var p = new Parser(); -var cred = require('./credentials'); -var client = Http.createClient(80, "stream.twitter.com"); -var request = client.request("GET", "/1/statuses/sample.json", { - "Host": "stream.twitter.com", - "Authorization": (new Buffer(cred.username + ":" + cred.password)).toString("base64") -}); -request.on('response', function (response) { - console.log(response.statusCode); - console.dir(response.headers); - response.on('data', function (chunk) { - p.write(chunk); - }); - response.on('end', function () { - console.log("END"); - }); -}); -request.end(); -var text = "", name = ""; -p.onValue = function (value) { - if (this.stack.length === 1 && this.key === 'text') { text = value; } - if (this.stack.length === 2 && this.key === 'name' && this.stack[1].key === 'user') { name = value; } - if (this.stack.length === 0) { - console.log(text.blue + " - " + name.yellow); - text = name = ""; - } -}; diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js deleted file mode 100644 index 39910608b3d..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +++ /dev/null @@ -1,413 +0,0 @@ -/*global Buffer*/ -// Named constants with unique integer values -var C = {}; -// Tokens -var LEFT_BRACE = C.LEFT_BRACE = 0x1; -var RIGHT_BRACE = C.RIGHT_BRACE = 0x2; -var LEFT_BRACKET = C.LEFT_BRACKET = 0x3; -var RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4; -var COLON = C.COLON = 0x5; -var COMMA = C.COMMA = 0x6; -var TRUE = C.TRUE = 0x7; -var FALSE = C.FALSE = 0x8; -var NULL = C.NULL = 0x9; -var STRING = C.STRING = 0xa; -var NUMBER = C.NUMBER = 0xb; -// Tokenizer States -var START = C.START = 0x11; -var STOP = C.STOP = 0x12; -var TRUE1 = C.TRUE1 = 0x21; -var TRUE2 = C.TRUE2 = 0x22; -var TRUE3 = C.TRUE3 = 0x23; -var FALSE1 = C.FALSE1 = 0x31; -var FALSE2 = C.FALSE2 = 0x32; -var FALSE3 = C.FALSE3 = 0x33; -var FALSE4 = C.FALSE4 = 0x34; -var NULL1 = C.NULL1 = 0x41; -var NULL2 = C.NULL2 = 0x42; -var NULL3 = C.NULL3 = 0x43; -var NUMBER1 = C.NUMBER1 = 0x51; -var NUMBER3 = C.NUMBER3 = 0x53; -var STRING1 = C.STRING1 = 0x61; -var STRING2 = C.STRING2 = 0x62; -var STRING3 = C.STRING3 = 0x63; -var STRING4 = C.STRING4 = 0x64; -var STRING5 = C.STRING5 = 0x65; -var STRING6 = C.STRING6 = 0x66; -// Parser States -var VALUE = C.VALUE = 0x71; -var KEY = C.KEY = 0x72; -// Parser Modes -var OBJECT = C.OBJECT = 0x81; -var ARRAY = C.ARRAY = 0x82; -// Character constants -var BACK_SLASH = "\\".charCodeAt(0); -var FORWARD_SLASH = "\/".charCodeAt(0); -var BACKSPACE = "\b".charCodeAt(0); -var FORM_FEED = "\f".charCodeAt(0); -var NEWLINE = "\n".charCodeAt(0); -var CARRIAGE_RETURN = "\r".charCodeAt(0); -var TAB = "\t".charCodeAt(0); - -var STRING_BUFFER_SIZE = 64 * 1024; - -function Parser() { - this.tState = START; - this.value = undefined; - - this.string = undefined; // string data - this.stringBuffer = Buffer.alloc ? Buffer.alloc(STRING_BUFFER_SIZE) : new Buffer(STRING_BUFFER_SIZE); - this.stringBufferOffset = 0; - this.unicode = undefined; // unicode escapes - this.highSurrogate = undefined; - - this.key = undefined; - this.mode = undefined; - this.stack = []; - this.state = VALUE; - this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary - this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read - this.temp_buffs = { "2": new Buffer(2), "3": new Buffer(3), "4": new Buffer(4) }; // for rebuilding chars split before boundary is reached - - // Stream offset - this.offset = -1; -} - -// Slow code to string converter (only used when throwing syntax errors) -Parser.toknam = function (code) { - var keys = Object.keys(C); - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - if (C[key] === code) { return key; } - } - return code && ("0x" + code.toString(16)); -}; - -var proto = Parser.prototype; -proto.onError = function (err) { throw err; }; -proto.charError = function (buffer, i) { - this.tState = STOP; - this.onError(new Error("Unexpected " + JSON.stringify(String.fromCharCode(buffer[i])) + " at position " + i + " in state " + Parser.toknam(this.tState))); -}; -proto.appendStringChar = function (char) { - if (this.stringBufferOffset >= STRING_BUFFER_SIZE) { - this.string += this.stringBuffer.toString('utf8'); - this.stringBufferOffset = 0; - } - - this.stringBuffer[this.stringBufferOffset++] = char; -}; -proto.appendStringBuf = function (buf, start, end) { - var size = buf.length; - if (typeof start === 'number') { - if (typeof end === 'number') { - if (end < 0) { - // adding a negative end decreeses the size - size = buf.length - start + end; - } else { - size = end - start; - } - } else { - size = buf.length - start; - } - } - - if (size < 0) { - size = 0; - } - - if (this.stringBufferOffset + size > STRING_BUFFER_SIZE) { - this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset); - this.stringBufferOffset = 0; - } - - buf.copy(this.stringBuffer, this.stringBufferOffset, start, end); - this.stringBufferOffset += size; -}; -proto.write = function (buffer) { - if (typeof buffer === "string") buffer = new Buffer(buffer); - var n; - for (var i = 0, l = buffer.length; i < l; i++) { - if (this.tState === START){ - n = buffer[i]; - this.offset++; - if(n === 0x7b){ this.onToken(LEFT_BRACE, "{"); // { - }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, "}"); // } - }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, "["); // [ - }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, "]"); // ] - }else if(n === 0x3a){ this.onToken(COLON, ":"); // : - }else if(n === 0x2c){ this.onToken(COMMA, ","); // , - }else if(n === 0x74){ this.tState = TRUE1; // t - }else if(n === 0x66){ this.tState = FALSE1; // f - }else if(n === 0x6e){ this.tState = NULL1; // n - }else if(n === 0x22){ // " - this.string = ""; - this.stringBufferOffset = 0; - this.tState = STRING1; - }else if(n === 0x2d){ this.string = "-"; this.tState = NUMBER1; // - - }else{ - if (n >= 0x30 && n < 0x40) { // 1-9 - this.string = String.fromCharCode(n); this.tState = NUMBER3; - } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) { - // whitespace - } else { - return this.charError(buffer, i); - } - } - }else if (this.tState === STRING1){ // After open quote - n = buffer[i]; // get current byte from buffer - // check for carry over of a multi byte char split between data chunks - // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration - if (this.bytes_remaining > 0) { - for (var j = 0; j < this.bytes_remaining; j++) { - this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j]; - } - - this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]); - this.bytes_in_sequence = this.bytes_remaining = 0; - i = i + j - 1; - } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time - if (n <= 193 || n > 244) { - return this.onError(new Error("Invalid UTF-8 character at position " + i + " in state " + Parser.toknam(this.tState))); - } - if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2; - if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3; - if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4; - if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split - for (var k = 0; k <= (buffer.length - 1 - i); k++) { - this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk - } - this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length; - i = buffer.length - 1; - } else { - this.appendStringBuf(buffer, i, i + this.bytes_in_sequence); - i = i + this.bytes_in_sequence - 1; - } - } else if (n === 0x22) { - this.tState = START; - this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset); - this.stringBufferOffset = 0; - this.onToken(STRING, this.string); - this.offset += Buffer.byteLength(this.string, 'utf8') + 1; - this.string = undefined; - } - else if (n === 0x5c) { - this.tState = STRING2; - } - else if (n >= 0x20) { this.appendStringChar(n); } - else { - return this.charError(buffer, i); - } - }else if (this.tState === STRING2){ // After backslash - n = buffer[i]; - if(n === 0x22){ this.appendStringChar(n); this.tState = STRING1; - }else if(n === 0x5c){ this.appendStringChar(BACK_SLASH); this.tState = STRING1; - }else if(n === 0x2f){ this.appendStringChar(FORWARD_SLASH); this.tState = STRING1; - }else if(n === 0x62){ this.appendStringChar(BACKSPACE); this.tState = STRING1; - }else if(n === 0x66){ this.appendStringChar(FORM_FEED); this.tState = STRING1; - }else if(n === 0x6e){ this.appendStringChar(NEWLINE); this.tState = STRING1; - }else if(n === 0x72){ this.appendStringChar(CARRIAGE_RETURN); this.tState = STRING1; - }else if(n === 0x74){ this.appendStringChar(TAB); this.tState = STRING1; - }else if(n === 0x75){ this.unicode = ""; this.tState = STRING3; - }else{ - return this.charError(buffer, i); - } - }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes - n = buffer[i]; - // 0-9 A-F a-f - if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) { - this.unicode += String.fromCharCode(n); - if (this.tState++ === STRING6) { - var intVal = parseInt(this.unicode, 16); - this.unicode = undefined; - if (this.highSurrogate !== undefined && intVal >= 0xDC00 && intVal < (0xDFFF + 1)) { //<56320,57343> - lowSurrogate - this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate, intVal))); - this.highSurrogate = undefined; - } else if (this.highSurrogate === undefined && intVal >= 0xD800 && intVal < (0xDBFF + 1)) { //<55296,56319> - highSurrogate - this.highSurrogate = intVal; - } else { - if (this.highSurrogate !== undefined) { - this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate))); - this.highSurrogate = undefined; - } - this.appendStringBuf(new Buffer(String.fromCharCode(intVal))); - } - this.tState = STRING1; - } - } else { - return this.charError(buffer, i); - } - } else if (this.tState === NUMBER1 || this.tState === NUMBER3) { - n = buffer[i]; - - switch (n) { - case 0x30: // 0 - case 0x31: // 1 - case 0x32: // 2 - case 0x33: // 3 - case 0x34: // 4 - case 0x35: // 5 - case 0x36: // 6 - case 0x37: // 7 - case 0x38: // 8 - case 0x39: // 9 - case 0x2e: // . - case 0x65: // e - case 0x45: // E - case 0x2b: // + - case 0x2d: // - - this.string += String.fromCharCode(n); - this.tState = NUMBER3; - break; - default: - this.tState = START; - var result = Number(this.string); - - if (isNaN(result)){ - return this.charError(buffer, i); - } - - if ((this.string.match(/[0-9]+/) == this.string) && (result.toString() != this.string)) { - // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number - this.onToken(STRING, this.string); - } else { - this.onToken(NUMBER, result); - } - - this.offset += this.string.length - 1; - this.string = undefined; - i--; - break; - } - }else if (this.tState === TRUE1){ // r - if (buffer[i] === 0x72) { this.tState = TRUE2; } - else { return this.charError(buffer, i); } - }else if (this.tState === TRUE2){ // u - if (buffer[i] === 0x75) { this.tState = TRUE3; } - else { return this.charError(buffer, i); } - }else if (this.tState === TRUE3){ // e - if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE1){ // a - if (buffer[i] === 0x61) { this.tState = FALSE2; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE2){ // l - if (buffer[i] === 0x6c) { this.tState = FALSE3; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE3){ // s - if (buffer[i] === 0x73) { this.tState = FALSE4; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE4){ // e - if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; } - else { return this.charError(buffer, i); } - }else if (this.tState === NULL1){ // u - if (buffer[i] === 0x75) { this.tState = NULL2; } - else { return this.charError(buffer, i); } - }else if (this.tState === NULL2){ // l - if (buffer[i] === 0x6c) { this.tState = NULL3; } - else { return this.charError(buffer, i); } - }else if (this.tState === NULL3){ // l - if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; } - else { return this.charError(buffer, i); } - } - } -}; -proto.onToken = function (token, value) { - // Override this to get events -}; - -proto.parseError = function (token, value) { - this.tState = STOP; - this.onError(new Error("Unexpected " + Parser.toknam(token) + (value ? ("(" + JSON.stringify(value) + ")") : "") + " in state " + Parser.toknam(this.state))); -}; -proto.push = function () { - this.stack.push({value: this.value, key: this.key, mode: this.mode}); -}; -proto.pop = function () { - var value = this.value; - var parent = this.stack.pop(); - this.value = parent.value; - this.key = parent.key; - this.mode = parent.mode; - this.emit(value); - if (!this.mode) { this.state = VALUE; } -}; -proto.emit = function (value) { - if (this.mode) { this.state = COMMA; } - this.onValue(value); -}; -proto.onValue = function (value) { - // Override me -}; -proto.onToken = function (token, value) { - if(this.state === VALUE){ - if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){ - if (this.value) { - this.value[this.key] = value; - } - this.emit(value); - }else if(token === LEFT_BRACE){ - this.push(); - if (this.value) { - this.value = this.value[this.key] = {}; - } else { - this.value = {}; - } - this.key = undefined; - this.state = KEY; - this.mode = OBJECT; - }else if(token === LEFT_BRACKET){ - this.push(); - if (this.value) { - this.value = this.value[this.key] = []; - } else { - this.value = []; - } - this.key = 0; - this.mode = ARRAY; - this.state = VALUE; - }else if(token === RIGHT_BRACE){ - if (this.mode === OBJECT) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else if(token === RIGHT_BRACKET){ - if (this.mode === ARRAY) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else{ - return this.parseError(token, value); - } - }else if(this.state === KEY){ - if (token === STRING) { - this.key = value; - this.state = COLON; - } else if (token === RIGHT_BRACE) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else if(this.state === COLON){ - if (token === COLON) { this.state = VALUE; } - else { return this.parseError(token, value); } - }else if(this.state === COMMA){ - if (token === COMMA) { - if (this.mode === ARRAY) { this.key++; this.state = VALUE; } - else if (this.mode === OBJECT) { this.state = KEY; } - - } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else{ - return this.parseError(token, value); - } -}; - -Parser.C = C; - -module.exports = Parser; diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json deleted file mode 100644 index fe0cfcd1f4a..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "_from": "jsonparse@^1.2.0", - "_id": "jsonparse@1.3.1", - "_inBundle": false, - "_integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "_location": "/JSONStream/jsonparse", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "jsonparse@^1.2.0", - "name": "jsonparse", - "escapedName": "jsonparse", - "rawSpec": "^1.2.0", - "saveSpec": null, - "fetchSpec": "^1.2.0" - }, - "_requiredBy": [ - "/JSONStream" - ], - "_resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "_shasum": "3f4dae4a91fac315f71062f8521cc239f1366280", - "_spec": "jsonparse@^1.2.0", - "_where": "/Users/rebecca/code/npm/node_modules/JSONStream", - "author": { - "name": "Tim Caswell", - "email": "tim@creationix.com" - }, - "bugs": { - "url": "http://github.com/creationix/jsonparse/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "This is a pure-js JSON streaming parser for node.js", - "devDependencies": { - "tap": "~0.3.3", - "tape": "~0.1.1" - }, - "engines": [ - "node >= 0.2.0" - ], - "homepage": "https://github.com/creationix/jsonparse#readme", - "license": "MIT", - "main": "jsonparse.js", - "name": "jsonparse", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/creationix/jsonparse.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "tags": [ - "json", - "stream" - ], - "version": "1.3.1" -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json deleted file mode 100644 index 950dff9e9d9..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - }, - { - "image": [ - {"shape": "rect", "fill": "#333", "stroke": "#999", "x": 0.5e+1, "y": 0.5, "z": 0.8e-0, "w": 0.5e5, "u": 2E10, "foo": 2E+1, "bar": 2E-0, "width": 47, "height": 47} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,47.5],[47.5,47.5],[47.5,0.5]]} - ], - "solid": { - "1": [2,4], - "2": [1], - "3": [2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,0.5],[47.5,47.5],[0.5,47.5]]} - ], - "solid": { - "1": [2], - "2": [3], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [7], - "9": [6,8] - }, - "corners": {"1": false,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[0.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [9], - "9": [6,8] - }, - "corners": {"1": true,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,47.5],[0.5,23.5],[24.5,23.5],[24.5,0.5],[47.5,0.5],[47.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [6,2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [9], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,0.5],[23.5,0.5],[23.5,24.5],[47.5,24.5],[47.5,47.5],[0.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [4,2], - "2": [], - "3": [2,6], - "4": [7], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "circle", "fill": "#ff0", "stroke": "#ff8", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - }, - { - "image": [ - {"shape": "polygon", "fill": "#842", "stroke": "#f84", "points": [[4.5,0.5],[14.5,0.5],[14.5,17.5],[34,17.5],[33.5,0.5],[43.5,0.5],[43.5,47.5],[33.5,47.5],[33.5,30.5],[14.5,30.5],[14.5,47.5],[4.5,47.5]]} - ], - "jumpable": 3 - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,0.5],[24,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": false,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "rect", "fill": "#114acb", "x": 0.5, "y": 0.5, "width": 47, "height": 47}, - {"shape": "polygon", "fill": "rgba(255,255,255,0.30)", "points": [[0.5,0.5],[47.5,0.5],[40,8],[8,8],[8,40],[0.5,47.5]]}, - {"shape": "polygon", "fill": "rgba(0,0,0,0.30)", "points": [[47.5,0.5],[48,48],[0.5,47.5],[8,40],[40,40],[40,8]]}, - {"shape": "polygon", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "points": [[24,9],[35,20],[26,29],[26,33],[22,33],[22,27],[29,20],[24,15],[16,23],[13,20]]}, - {"shape": "rect", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "x": 22, "y":35, "width": 4, "height": 4} - ] - } -] diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json deleted file mode 100644 index 3a6919b2ea2..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json +++ /dev/null @@ -1,180 +0,0 @@ -[ - { - }, - { - "image": [ - {"shape": "rect", "fill": "#333", "stroke": "#999", "x": 0.5, "y": 0.5, "width": 47, "height": 47} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,47.5],[47.5,47.5],[47.5,0.5]]} - ], - "solid": { - "1": [2,4], - "2": [1], - "3": [2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,0.5],[47.5,47.5],[0.5,47.5]]} - ], - "solid": { - "1": [2], - "2": [3], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [7], - "9": [6,8] - }, - "corners": {"1": false,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[0.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [9], - "9": [6,8] - }, - "corners": {"1": true,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,47.5],[0.5,23.5],[24.5,23.5],[24.5,0.5],[47.5,0.5],[47.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [6,2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [9], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,0.5],[23.5,0.5],[23.5,24.5],[47.5,24.5],[47.5,47.5],[0.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [4,2], - "2": [], - "3": [2,6], - "4": [7], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "circle", "fill": "#ff0", "stroke": "#ff8", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - }, - { - "image": [ - {"shape": "polygon", "fill": "#842", "stroke": "#f84", "points": [[4.5,0.5],[14.5,0.5],[14.5,17.5],[34,17.5],[33.5,0.5],[43.5,0.5],[43.5,47.5],[33.5,47.5],[33.5,30.5],[14.5,30.5],[14.5,47.5],[4.5,47.5]]} - ], - "jumpable": 3 - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,0.5],[24,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": false,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "rect", "fill": "#114acb", "x": 0.5, "y": 0.5, "width": 47, "height": 47}, - {"shape": "polygon", "fill": "rgba(255,255,255,0.30)", "points": [[0.5,0.5],[47.5,0.5],[40,8],[8,8],[8,40],[0.5,47.5]]}, - {"shape": "polygon", "fill": "rgba(0,0,0,0.30)", "points": [[47.5,0.5],[48,48],[0.5,47.5],[8,40],[40,40],[40,8]]}, - {"shape": "polygon", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "points": [[24,9],[35,20],[26,29],[26,33],[22,33],[22,27],[29,20],[24,15],[16,23],[13,20]]}, - {"shape": "rect", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "x": 22, "y":35, "width": 4, "height": 4} - ], - "item": true - }, - { - "image": [ - {"shape": "circle", "fill": "#80f", "stroke": "#88f", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - }, - { - "image": [ - {"shape": "circle", "fill": "#4f4", "stroke": "#8f8", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - } -] diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js deleted file mode 100644 index 36046317ee9..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js +++ /dev/null @@ -1,24 +0,0 @@ -var stream = require('stream'); -var JsonParse = require('../jsonparse'); -var test = require('tape'); - -test('can handle large tokens without running out of memory', function (t) { - var parser = new JsonParse(); - var chunkSize = 1024; - var chunks = 1024 * 200; // 200mb - var quote = Buffer.from ? Buffer.from('"') : new Buffer('"'); - t.plan(1); - - parser.onToken = function (type, value) { - t.equal(value.length, chunkSize * chunks, 'token should be size of input json'); - t.end(); - }; - - parser.write(quote); - for (var i = 0; i < chunks; ++i) { - var buf = Buffer.alloc ? Buffer.alloc(chunkSize) : new Buffer(chunkSize); - buf.fill('a'); - parser.write(buf); - } - parser.write(quote); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js deleted file mode 100644 index 6671f5f9301..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js +++ /dev/null @@ -1,110 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('2 byte utf8 \'De\' character: д', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'д'); - }; - - var de_buffer = new Buffer([0xd0, 0xb4]); - - p.write('"'); - p.write(de_buffer); - p.write('"'); - -}); - -test('3 byte utf8 \'Han\' character: 我', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '我'); - }; - - var han_buffer = new Buffer([0xe6, 0x88, 0x91]); - p.write('"'); - p.write(han_buffer); - p.write('"'); -}); - -test('4 byte utf8 character (unicode scalar U+2070E): 𠜎', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '𠜎'); - }; - - var Ux2070E_buffer = new Buffer([0xf0, 0xa0, 0x9c, 0x8e]); - p.write('"'); - p.write(Ux2070E_buffer); - p.write('"'); -}); - -test('3 byte utf8 \'Han\' character chunked inbetween 2nd and 3rd byte: 我', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '我'); - }; - - var han_buffer_first = new Buffer([0xe6, 0x88]); - var han_buffer_second = new Buffer([0x91]); - p.write('"'); - p.write(han_buffer_first); - p.write(han_buffer_second); - p.write('"'); -}); - -test('4 byte utf8 character (unicode scalar U+2070E) chunked inbetween 2nd and 3rd byte: 𠜎', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '𠜎'); - }; - - var Ux2070E_buffer_first = new Buffer([0xf0, 0xa0]); - var Ux2070E_buffer_second = new Buffer([0x9c, 0x8e]); - p.write('"'); - p.write(Ux2070E_buffer_first); - p.write(Ux2070E_buffer_second); - p.write('"'); -}); - -test('1-4 byte utf8 character string chunked inbetween random bytes: Aж文𠜱B', function (t) { - t.plan(1); - -var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'Aж文𠜱B'); - }; - - var eclectic_buffer = new Buffer([0x41, // A - 0xd0, 0xb6, // ж - 0xe6, 0x96, 0x87, // 文 - 0xf0, 0xa0, 0x9c, 0xb1, // 𠜱 - 0x42]); // B - - var rand_chunk = Math.floor(Math.random() * (eclectic_buffer.length)); - var first_buffer = eclectic_buffer.slice(0, rand_chunk); - var second_buffer = eclectic_buffer.slice(rand_chunk); - - //console.log('eclectic_buffer: ' + eclectic_buffer) - //console.log('sliced from 0 to ' + rand_chunk); - //console.log(first_buffer); - //console.log('then sliced from ' + rand_chunk + ' to the end'); - //console.log(second_buffer); - - console.log('chunked after offset ' + rand_chunk); - p.write('"'); - p.write(first_buffer); - p.write(second_buffer); - p.write('"'); - -}); \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js deleted file mode 100644 index 9a552ab0594..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js +++ /dev/null @@ -1,67 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -var input = '{\n "string": "value",\n "number": 3,\n "object"'; -var input2 = ': {\n "key": "vд"\n },\n "array": [\n -1,\n 12\n ]\n '; -var input3 = '"null": null, "true": true, "false": false, "frac": 3.14 }'; - -var offsets = [ - [ 0, Parser.C.LEFT_BRACE ], - [ 4, Parser.C.STRING ], - [ 12, Parser.C.COLON ], - [ 14, Parser.C.STRING ], - [ 21, Parser.C.COMMA ], - [ 25, Parser.C.STRING ], - [ 33, Parser.C.COLON ], - [ 35, Parser.C.NUMBER ], - [ 36, Parser.C.COMMA ], - [ 40, Parser.C.STRING ], - [ 48, Parser.C.COLON ], - [ 50, Parser.C.LEFT_BRACE ], - [ 54, Parser.C.STRING ], - [ 59, Parser.C.COLON ], - [ 61, Parser.C.STRING ], - [ 69, Parser.C.RIGHT_BRACE ], - [ 70, Parser.C.COMMA ], - [ 74, Parser.C.STRING ], - [ 81, Parser.C.COLON ], - [ 83, Parser.C.LEFT_BRACKET ], - [ 87, Parser.C.NUMBER ], - [ 89, Parser.C.COMMA ], - [ 93, Parser.C.NUMBER ], - [ 98, Parser.C.RIGHT_BRACKET ], - [ 102, Parser.C.STRING ], - [ 108, Parser.C.COLON ], - [ 110, Parser.C.NULL ], - [ 114, Parser.C.COMMA ], - [ 116, Parser.C.STRING ], - [ 122, Parser.C.COLON ], - [ 124, Parser.C.TRUE ], - [ 128, Parser.C.COMMA ], - [ 130, Parser.C.STRING ], - [ 137, Parser.C.COLON ], - [ 139, Parser.C.FALSE ], - [ 144, Parser.C.COMMA ], - [ 146, Parser.C.STRING ], - [ 152, Parser.C.COLON ], - [ 154, Parser.C.NUMBER ], - [ 159, Parser.C.RIGHT_BRACE ] -]; - -test('offset', function(t) { - t.plan(offsets.length * 2 + 1); - - var p = new Parser(); - var i = 0; - p.onToken = function (token) { - t.equal(p.offset, offsets[i][0]); - t.equal(token, offsets[i][1]); - i++; - }; - - p.write(input); - p.write(input2); - p.write(input3); - - t.equal(i, offsets.length); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js deleted file mode 100644 index 33cae169a26..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js +++ /dev/null @@ -1,57 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -var expected = [ - [ [], '' ], - [ [], 'Hello' ], - [ [], 'This"is' ], - [ [], '\r\n\f\t\\/"' ], - [ [], 'Λάμβδα' ], - [ [], '\\' ], - [ [], '/' ], - [ [], '"' ], - [ [ 0 ], 0 ], - [ [ 1 ], 1 ], - [ [ 2 ], -1 ], - [ [], [ 0, 1, -1 ] ], - [ [ 0 ], 1 ], - [ [ 1 ], 1.1 ], - [ [ 2 ], -1.1 ], - [ [ 3 ], -1 ], - [ [], [ 1, 1.1, -1.1, -1 ] ], - [ [ 0 ], -1 ], - [ [], [ -1 ] ], - [ [ 0 ], -0.1 ], - [ [], [ -0.1 ] ], - [ [ 0 ], 6.02e+23 ], - [ [], [ 6.02e+23 ] ], - [ [ 0 ], '7161093205057351174' ], - [ [], [ '7161093205057351174'] ] -]; - -test('primitives', function (t) { - t.plan(25); - - var p = new Parser(); - p.onValue = function (value) { - var keys = this.stack - .slice(1) - .map(function (item) { return item.key }) - .concat(this.key !== undefined ? this.key : []) - ; - t.deepEqual( - [ keys, value ], - expected.shift() - ); - }; - - p.write('"""Hello""This\\"is""\\r\\n\\f\\t\\\\\\/\\""'); - p.write('"\\u039b\\u03ac\\u03bc\\u03b2\\u03b4\\u03b1"'); - p.write('"\\\\"'); - p.write('"\\/"'); - p.write('"\\""'); - p.write('[0,1,-1]'); - p.write('[1.0,1.1,-1.1,-1.0][-1][-0.1]'); - p.write('[6.02e23]'); - p.write('[7161093205057351174]'); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js deleted file mode 100644 index 33351c73cc1..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js +++ /dev/null @@ -1,25 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('parse surrogate pair', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '😋'); - }; - - p.write('"\\uD83D\\uDE0B"'); -}); - -test('parse chunked surrogate pair', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '😋'); - }; - - p.write('"\\uD83D'); - p.write('\\uDE0B"'); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js deleted file mode 100644 index 7715cc0ef19..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js +++ /dev/null @@ -1,15 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('unvalid', function (t) { - var count = 0; - - var p = new Parser(); - p.onError = function (value) { - count++; - t.equal(1, count); - t.end(); - }; - - p.write('{"test": eer['); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js deleted file mode 100644 index 6cb842f3e7b..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js +++ /dev/null @@ -1,38 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('3 bytes of utf8', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '├──'); - }; - - p.write('"├──"'); -}); - -test('utf8 snowman', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, '☃'); - }; - - p.write('"☃"'); -}); - -test('utf8 with regular ascii', function (t) { - t.plan(4); - - var p = new Parser(); - var expected = [ "snow: ☃!", "xyz", "¡que!" ]; - expected.push(expected.slice()); - - p.onValue = function (value) { - t.deepEqual(value, expected.shift()); - }; - - p.write('["snow: ☃!","xyz","¡que!"]'); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml b/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml deleted file mode 100644 index c693a939df9..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 - - "0.10" diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 b/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 deleted file mode 100644 index 6366c04716f..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 +++ /dev/null @@ -1,15 +0,0 @@ -Apache License, Version 2.0 - -Copyright (c) 2011 Dominic Tarr - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT b/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT deleted file mode 100644 index 49e7da41fec..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2011 Dominic Tarr - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/index.js b/deps/npm/node_modules/JSONStream/node_modules/through/index.js deleted file mode 100644 index 9f443ffd2b1..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/index.js +++ /dev/null @@ -1,107 +0,0 @@ -var Stream = require('stream') - -// through -// -// a stream that does nothing but re-emit the input. -// useful for aggregating a series of changing but not ending streams into one stream) - -exports = module.exports = through -through.through = through - -//create a readable writable stream. - -function through (write, end, opts) { - write = write || function (data) { this.queue(data) } - end = end || function () { this.queue(null) } - - var ended = false, destroyed = false, buffer = [], _ended = false - var stream = new Stream() - stream.readable = stream.writable = true - stream.paused = false - -// stream.autoPause = !(opts && opts.autoPause === false) - stream.autoDestroy = !(opts && opts.autoDestroy === false) - - stream.write = function (data) { - write.call(this, data) - return !stream.paused - } - - function drain() { - while(buffer.length && !stream.paused) { - var data = buffer.shift() - if(null === data) - return stream.emit('end') - else - stream.emit('data', data) - } - } - - stream.queue = stream.push = function (data) { -// console.error(ended) - if(_ended) return stream - if(data === null) _ended = true - buffer.push(data) - drain() - return stream - } - - //this will be registered as the first 'end' listener - //must call destroy next tick, to make sure we're after any - //stream piped from here. - //this is only a problem if end is not emitted synchronously. - //a nicer way to do this is to make sure this is the last listener for 'end' - - stream.on('end', function () { - stream.readable = false - if(!stream.writable && stream.autoDestroy) - process.nextTick(function () { - stream.destroy() - }) - }) - - function _end () { - stream.writable = false - end.call(stream) - if(!stream.readable && stream.autoDestroy) - stream.destroy() - } - - stream.end = function (data) { - if(ended) return - ended = true - if(arguments.length) stream.write(data) - _end() // will emit or queue - return stream - } - - stream.destroy = function () { - if(destroyed) return - destroyed = true - ended = true - buffer.length = 0 - stream.writable = stream.readable = false - stream.emit('close') - return stream - } - - stream.pause = function () { - if(stream.paused) return - stream.paused = true - return stream - } - - stream.resume = function () { - if(stream.paused) { - stream.paused = false - stream.emit('resume') - } - drain() - //may have become paused again, - //as drain emits 'data'. - if(!stream.paused) - stream.emit('drain') - return stream - } - return stream -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/package.json b/deps/npm/node_modules/JSONStream/node_modules/through/package.json deleted file mode 100644 index 645e8a4f6a3..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_from": "through@>=2.2.7 <3", - "_id": "through@2.3.8", - "_integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "_location": "/JSONStream/through", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "through@>=2.2.7 <3", - "name": "through", - "escapedName": "through", - "rawSpec": ">=2.2.7 <3", - "saveSpec": null, - "fetchSpec": ">=2.2.7 <3" - }, - "_requiredBy": [ - "/JSONStream" - ], - "_resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "_shasum": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "_shrinkwrap": null, - "_spec": "through@>=2.2.7 <3", - "_where": "/Users/zkat/Documents/code/npm/node_modules/JSONStream", - "author": { - "name": "Dominic Tarr", - "email": "dominic.tarr@gmail.com", - "url": "dominictarr.com" - }, - "bin": null, - "bugs": { - "url": "https://github.com/dominictarr/through/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "simplified stream construction", - "devDependencies": { - "from": "~0.1.3", - "stream-spec": "~0.3.5", - "tape": "~2.3.2" - }, - "homepage": "https://github.com/dominictarr/through", - "keywords": [ - "stream", - "streams", - "user-streams", - "pipe" - ], - "license": "MIT", - "main": "index.js", - "name": "through", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/dominictarr/through.git" - }, - "scripts": { - "test": "set -e; for t in test/*.js; do node $t; done" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "ff/15..latest", - "chrome/20..latest", - "safari/5.1..latest" - ], - "files": "test/*.js" - }, - "version": "2.3.8" -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown b/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown deleted file mode 100644 index 4939fffe422..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown +++ /dev/null @@ -1,64 +0,0 @@ -#through - -[![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through) -[![testling badge](https://ci.testling.com/dominictarr/through.png)](https://ci.testling.com/dominictarr/through) - -Easy way to create a `Stream` that is both `readable` and `writable`. - -* Pass in optional `write` and `end` methods. -* `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`. -* Use `this.pause()` and `this.resume()` to manage flow. -* Check `this.paused` to see current flow state. (`write` always returns `!this.paused`). - -This function is the basis for most of the synchronous streams in -[event-stream](http://github.com/dominictarr/event-stream). - -``` js -var through = require('through') - -through(function write(data) { - this.queue(data) //data *must* not be null - }, - function end () { //optional - this.queue(null) - }) -``` - -Or, can also be used _without_ buffering on pause, use `this.emit('data', data)`, -and this.emit('end') - -``` js -var through = require('through') - -through(function write(data) { - this.emit('data', data) - //this.pause() - }, - function end () { //optional - this.emit('end') - }) -``` - -## Extended Options - -You will probably not need these 99% of the time. - -### autoDestroy=false - -By default, `through` emits close when the writable -and readable side of the stream has ended. -If that is not desired, set `autoDestroy=false`. - -``` js -var through = require('through') - -//like this -var ts = through(write, end, {autoDestroy: false}) -//or like this -var ts = through(write, end) -ts.autoDestroy = false -``` - -## License - -MIT / Apache2 diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js deleted file mode 100644 index f6fc95f4ffa..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js +++ /dev/null @@ -1,28 +0,0 @@ -var from = require('from') -var through = require('../') - -var tape = require('tape') - -tape('simple async example', function (t) { - - var n = 0, expected = [1,2,3,4,5], actual = [] - from(expected) - .pipe(through(function(data) { - this.pause() - n ++ - setTimeout(function(){ - console.log('pushing data', data) - this.push(data) - this.resume() - }.bind(this), 300) - })).pipe(through(function(data) { - console.log('pushing data second time', data); - this.push(data) - })).on('data', function (d) { - actual.push(d) - }).on('end', function() { - t.deepEqual(actual, expected) - t.end() - }) - -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js deleted file mode 100644 index 305fff23d35..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js +++ /dev/null @@ -1,29 +0,0 @@ -var test = require('tape') -var through = require('../') - -// must emit end before close. - -test('end before close', function (assert) { - var ts = through() - ts.autoDestroy = false - var ended = false, closed = false - - ts.on('end', function () { - assert.ok(!closed) - ended = true - }) - ts.on('close', function () { - assert.ok(ended) - closed = true - }) - - ts.write(1) - ts.write(2) - ts.write(3) - ts.end() - assert.ok(ended) - assert.notOk(closed) - ts.destroy() - assert.ok(closed) - assert.end() -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js deleted file mode 100644 index b0084bfc6ed..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js +++ /dev/null @@ -1,71 +0,0 @@ -var test = require('tape') -var through = require('../') - -// must emit end before close. - -test('buffering', function(assert) { - var ts = through(function (data) { - this.queue(data) - }, function () { - this.queue(null) - }) - - var ended = false, actual = [] - - ts.on('data', actual.push.bind(actual)) - ts.on('end', function () { - ended = true - }) - - ts.write(1) - ts.write(2) - ts.write(3) - assert.deepEqual(actual, [1, 2, 3]) - ts.pause() - ts.write(4) - ts.write(5) - ts.write(6) - assert.deepEqual(actual, [1, 2, 3]) - ts.resume() - assert.deepEqual(actual, [1, 2, 3, 4, 5, 6]) - ts.pause() - ts.end() - assert.ok(!ended) - ts.resume() - assert.ok(ended) - assert.end() -}) - -test('buffering has data in queue, when ends', function (assert) { - - /* - * If stream ends while paused with data in the queue, - * stream should still emit end after all data is written - * on resume. - */ - - var ts = through(function (data) { - this.queue(data) - }, function () { - this.queue(null) - }) - - var ended = false, actual = [] - - ts.on('data', actual.push.bind(actual)) - ts.on('end', function () { - ended = true - }) - - ts.pause() - ts.write(1) - ts.write(2) - ts.write(3) - ts.end() - assert.deepEqual(actual, [], 'no data written yet, still paused') - assert.ok(!ended, 'end not emitted yet, still paused') - ts.resume() - assert.deepEqual(actual, [1, 2, 3], 'resumed, all data should be delivered') - assert.ok(ended, 'end should be emitted once all data was delivered') - assert.end(); -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js deleted file mode 100644 index fa113f58e03..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js +++ /dev/null @@ -1,45 +0,0 @@ -var test = require('tape') -var through = require('../') - -// must emit end before close. - -test('end before close', function (assert) { - var ts = through() - var ended = false, closed = false - - ts.on('end', function () { - assert.ok(!closed) - ended = true - }) - ts.on('close', function () { - assert.ok(ended) - closed = true - }) - - ts.write(1) - ts.write(2) - ts.write(3) - ts.end() - assert.ok(ended) - assert.ok(closed) - assert.end() -}) - -test('end only once', function (t) { - - var ts = through() - var ended = false, closed = false - - ts.on('end', function () { - t.equal(ended, false) - ended = true - }) - - ts.queue(null) - ts.queue(null) - ts.queue(null) - - ts.resume() - - t.end() -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js deleted file mode 100644 index 1d9523f40e4..00000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js +++ /dev/null @@ -1,133 +0,0 @@ - -var test = require('tape') -var spec = require('stream-spec') -var through = require('../') - -/* - I'm using these two functions, and not streams and pipe - so there is less to break. if this test fails it must be - the implementation of _through_ -*/ - -function write(array, stream) { - array = array.slice() - function next() { - while(array.length) - if(stream.write(array.shift()) === false) - return stream.once('drain', next) - - stream.end() - } - - next() -} - -function read(stream, callback) { - var actual = [] - stream.on('data', function (data) { - actual.push(data) - }) - stream.once('end', function () { - callback(null, actual) - }) - stream.once('error', function (err) { - callback(err) - }) -} - -test('simple defaults', function(assert) { - - var l = 1000 - , expected = [] - - while(l--) expected.push(l * Math.random()) - - var t = through() - var s = spec(t).through().pausable() - - read(t, function (err, actual) { - assert.ifError(err) - assert.deepEqual(actual, expected) - assert.end() - }) - - t.on('close', s.validate) - - write(expected, t) -}); - -test('simple functions', function(assert) { - - var l = 1000 - , expected = [] - - while(l--) expected.push(l * Math.random()) - - var t = through(function (data) { - this.emit('data', data*2) - }) - var s = spec(t).through().pausable() - - - read(t, function (err, actual) { - assert.ifError(err) - assert.deepEqual(actual, expected.map(function (data) { - return data*2 - })) - assert.end() - }) - - t.on('close', s.validate) - - write(expected, t) -}) - -test('pauses', function(assert) { - - var l = 1000 - , expected = [] - - while(l--) expected.push(l) //Math.random()) - - var t = through() - - var s = spec(t) - .through() - .pausable() - - t.on('data', function () { - if(Math.random() > 0.1) return - t.pause() - process.nextTick(function () { - t.resume() - }) - }) - - read(t, function (err, actual) { - assert.ifError(err) - assert.deepEqual(actual, expected) - }) - - t.on('close', function () { - s.validate() - assert.end() - }) - - write(expected, t) -}) - -test('does not soft-end on `undefined`', function(assert) { - var stream = through() - , count = 0 - - stream.on('data', function (data) { - count++ - }) - - stream.write(undefined) - stream.write(undefined) - - assert.equal(count, 2) - - assert.end() -}) diff --git a/deps/npm/node_modules/JSONStream/package.json b/deps/npm/node_modules/JSONStream/package.json deleted file mode 100644 index 2086da717bc..00000000000 --- a/deps/npm/node_modules/JSONStream/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_from": "JSONStream@~1.3.1", - "_id": "JSONStream@1.3.1", - "_inBundle": false, - "_integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "_location": "/JSONStream", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "JSONStream@~1.3.1", - "name": "JSONStream", - "escapedName": "JSONStream", - "rawSpec": "~1.3.1", - "saveSpec": null, - "fetchSpec": "~1.3.1" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "_shasum": "707f761e01dae9e16f1bcf93703b78c70966579a", - "_spec": "JSONStream@~1.3.1", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Dominic Tarr", - "email": "dominic.tarr@gmail.com", - "url": "http://bit.ly/dominictarr" - }, - "bin": { - "JSONStream": "./index.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", - "event-stream": "~0.7.0", - "it-is": "~1", - "render": "~0.1.1", - "tape": "~2.12.3", - "trees": "~0.0.3" - }, - "engines": { - "node": "*" - }, - "homepage": "http://github.com/dominictarr/JSONStream", - "keywords": [ - "json", - "stream", - "streaming", - "parser", - "async", - "parsing" - ], - "license": "(MIT OR Apache-2.0)", - "name": "JSONStream", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/dominictarr/JSONStream.git" - }, - "scripts": { - "test": "set -e; for t in test/*.js; do echo '***' $t '***'; node $t; done" - }, - "version": "1.3.1" -} diff --git a/deps/npm/node_modules/JSONStream/readme.markdown b/deps/npm/node_modules/JSONStream/readme.markdown deleted file mode 100644 index 7e94ddd7f4c..00000000000 --- a/deps/npm/node_modules/JSONStream/readme.markdown +++ /dev/null @@ -1,206 +0,0 @@ -# JSONStream - -streaming JSON.parse and stringify - -![](https://secure.travis-ci.org/dominictarr/JSONStream.png?branch=master) - -## install -```npm install JSONStream``` - -## example - -``` js - -var request = require('request') - , JSONStream = require('JSONStream') - , es = require('event-stream') - -request({url: 'http://isaacs.couchone.com/registry/_all_docs'}) - .pipe(JSONStream.parse('rows.*')) - .pipe(es.mapSync(function (data) { - console.error(data) - return data - })) -``` - -## JSONStream.parse(path) - -parse stream of values that match a path - -``` js - JSONStream.parse('rows.*.doc') -``` - -The `..` operator is the recursive descent operator from [JSONPath](http://goessner.net/articles/JsonPath/), which will match a child at any depth (see examples below). - -If your keys have keys that include `.` or `*` etc, use an array instead. -`['row', true, /^doc/]`. - -If you use an array, `RegExp`s, booleans, and/or functions. The `..` operator is also available in array representation, using `{recurse: true}`. -any object that matches the path will be emitted as 'data' (and `pipe`d down stream) - -If `path` is empty or null, no 'data' events are emitted. - -If you want to have keys emitted, you can prefix your `*` operator with `$`: `obj.$*` - in this case the data passed to the stream is an object with a `key` holding the key and a `value` property holding the data. - -### Examples - -query a couchdb view: - -``` bash -curl -sS localhost:5984/tests/_all_docs&include_docs=true -``` -you will get something like this: - -``` js -{"total_rows":129,"offset":0,"rows":[ - { "id":"change1_0.6995461115147918" - , "key":"change1_0.6995461115147918" - , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"} - , "doc":{ - "_id": "change1_0.6995461115147918" - , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1} - }, - { "id":"change2_0.6995461115147918" - , "key":"change2_0.6995461115147918" - , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"} - , "doc":{ - "_id":"change2_0.6995461115147918" - , "_rev":"1-13677d36b98c0c075145bb8975105153" - , "hello":2 - } - }, -]} - -``` - -we are probably most interested in the `rows.*.doc` - -create a `Stream` that parses the documents from the feed like this: - -``` js -var stream = JSONStream.parse(['rows', true, 'doc']) //rows, ANYTHING, doc - -stream.on('data', function(data) { - console.log('received:', data); -}); -//emits anything from _before_ the first match -stream.on('header', function (data) { - console.log('header:', data) // => {"total_rows":129,"offset":0} -}) - -``` -awesome! - -In case you wanted the contents the doc emitted: - -``` js -var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]) //rows, ANYTHING, doc, items in docs with keys - -stream.on('data', function(data) { - console.log('key:', data.key); - console.log('value:', data.value); -}); - -``` - -You can also emit the path: - -``` js -var stream = JSONStream.parse(['rows', true, 'doc', {emitPath: true}]) //rows, ANYTHING, doc, items in docs with keys - -stream.on('data', function(data) { - console.log('path:', data.path); - console.log('value:', data.value); -}); - -``` - -### recursive patterns (..) - -`JSONStream.parse('docs..value')` -(or `JSONStream.parse(['docs', {recurse: true}, 'value'])` using an array) -will emit every `value` object that is a child, grand-child, etc. of the -`docs` object. In this example, it will match exactly 5 times at various depth -levels, emitting 0, 1, 2, 3 and 4 as results. - -```js -{ - "total": 5, - "docs": [ - { - "key": { - "value": 0, - "some": "property" - } - }, - {"value": 1}, - {"value": 2}, - {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]}, - {"value": 4} - ] -} -``` - -## JSONStream.parse(pattern, map) - -provide a function that can be used to map or filter -the json output. `map` is passed the value at that node of the pattern, -if `map` return non-nullish (anything but `null` or `undefined`) -that value will be emitted in the stream. If it returns a nullish value, -nothing will be emitted. - -`JSONStream` also emits `'header'` and `'footer'` events, -the `'header'` event contains anything in the output that was before -the first match, and the `'footer'`, is anything after the last match. - -## JSONStream.stringify(open, sep, close) - -Create a writable stream. - -you may pass in custom `open`, `close`, and `seperator` strings. -But, by default, `JSONStream.stringify()` will create an array, -(with default options `open='[\n', sep='\n,\n', close='\n]\n'`) - -If you call `JSONStream.stringify(false)` -the elements will only be seperated by a newline. - -If you only write one item this will be valid JSON. - -If you write many items, -you can use a `RegExp` to split it into valid chunks. - -## JSONStream.stringifyObject(open, sep, close) - -Very much like `JSONStream.stringify`, -but creates a writable stream for objects instead of arrays. - -Accordingly, `open='{\n', sep='\n,\n', close='\n}\n'`. - -When you `.write()` to the stream you must supply an array with `[ key, data ]` -as the first argument. - -## unix tool - -query npm to see all the modules that browserify has ever depended on. - -``` bash -curl https://registry.npmjs.org/browserify | JSONStream 'versions.*.dependencies' -``` - -## numbers - -numbers will be emitted as numbers. -huge numbers that cannot be represented in memory as javascript numbers will be emitted as strings. -cf https://github.com/creationix/jsonparse/commit/044b268f01c4b8f97fb936fc85d3bcfba179e5bb for details. - -## Acknowlegements - -this module depends on https://github.com/creationix/jsonparse -by Tim Caswell -and also thanks to Florent Jaby for teaching me about parsing with: -https://github.com/Floby/node-json-streams - -## license - -Dual-licensed under the MIT License or the Apache License, version 2.0 diff --git a/deps/npm/node_modules/JSONStream/test/bool.js b/deps/npm/node_modules/JSONStream/test/bool.js deleted file mode 100644 index 9b87b1730f1..00000000000 --- a/deps/npm/node_modules/JSONStream/test/bool.js +++ /dev/null @@ -1,41 +0,0 @@ - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is').style('colour') - - function randomObj () { - return ( - Math.random () < 0.4 - ? {hello: 'eonuhckmqjk', - whatever: 236515, - lies: true, - nothing: [null], -// stuff: [Math.random(),Math.random(),Math.random()] - } - : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]] - ) - } - -var expected = [] - , stringify = JSONStream.stringify() - , es = require('event-stream') - , stringified = '' - , called = 0 - , count = 10 - , ended = false - -while (count --) - expected.push(randomObj()) - - es.connect( - es.readArray(expected), - stringify, - JSONStream.parse([true]), - es.writeArray(function (err, lines) { - - it(lines).has(expected) - console.error('PASSED') - }) - ) diff --git a/deps/npm/node_modules/JSONStream/test/browser.js b/deps/npm/node_modules/JSONStream/test/browser.js deleted file mode 100644 index 3c28d4919f3..00000000000 --- a/deps/npm/node_modules/JSONStream/test/browser.js +++ /dev/null @@ -1,18 +0,0 @@ -var test = require('tape') -var JSONStream = require('../') -var testData = '{"rows":[{"hello":"world"}, {"foo": "bar"}]}' - -test('basic parsing', function (t) { - t.plan(2) - var parsed = JSONStream.parse("rows.*") - var parsedKeys = {} - parsed.on('data', function(match) { - parsedKeys[Object.keys(match)[0]] = true - }) - parsed.on('end', function() { - t.equal(!!parsedKeys['hello'], true) - t.equal(!!parsedKeys['foo'], true) - }) - parsed.write(testData) - parsed.end() -}) \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/test/destroy_missing.js b/deps/npm/node_modules/JSONStream/test/destroy_missing.js deleted file mode 100644 index 315fdc83423..00000000000 --- a/deps/npm/node_modules/JSONStream/test/destroy_missing.js +++ /dev/null @@ -1,27 +0,0 @@ -var fs = require ('fs'); -var net = require('net'); -var join = require('path').join; -var file = join(__dirname, 'fixtures','all_npm.json'); -var JSONStream = require('../'); - - -var server = net.createServer(function(client) { - var parser = JSONStream.parse([]); - parser.on('end', function() { - console.log('close') - console.error('PASSED'); - server.close(); - }); - client.pipe(parser); - var n = 4 - client.on('data', function () { - if(--n) return - client.end(); - }) -}); -server.listen(9999); - - -var client = net.connect({ port : 9999 }, function() { - fs.createReadStream(file).pipe(client).on('data', console.log) //.resume(); -}); diff --git a/deps/npm/node_modules/JSONStream/test/disabled/doubledot1.js b/deps/npm/node_modules/JSONStream/test/disabled/doubledot1.js deleted file mode 100644 index ceaa3edb331..00000000000 --- a/deps/npm/node_modules/JSONStream/test/disabled/doubledot1.js +++ /dev/null @@ -1,29 +0,0 @@ -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is') - -var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse('rows..rev') - , called = 0 - , ended = false - , parsed = [] - -fs.createReadStream(file).pipe(parser) - -parser.on('data', function (data) { - called ++ - parsed.push(data) -}) - -parser.on('end', function () { - ended = true -}) - -process.on('exit', function () { - it(called).equal(expected.rows.length) - for (var i = 0 ; i < expected.rows.length ; i++) - it(parsed[i]).deepEqual(expected.rows[i].value.rev) - console.error('PASSED') -}) diff --git a/deps/npm/node_modules/JSONStream/test/disabled/doubledot2.js b/deps/npm/node_modules/JSONStream/test/disabled/doubledot2.js deleted file mode 100644 index c957683db70..00000000000 --- a/deps/npm/node_modules/JSONStream/test/disabled/doubledot2.js +++ /dev/null @@ -1,29 +0,0 @@ - var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','depth.json') - , JSONStream = require('../') - , it = require('it-is') - - var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse(['docs', {recurse: true}, 'value']) - , called = 0 - , ended = false - , parsed = [] - - fs.createReadStream(file).pipe(parser) - - parser.on('data', function (data) { - called ++ - parsed.push(data) - }) - - parser.on('end', function () { - ended = true - }) - - process.on('exit', function () { - it(called).equal(5) - for (var i = 0 ; i < 5 ; i++) - it(parsed[i]).deepEqual(i) - console.error('PASSED') - }) diff --git a/deps/npm/node_modules/JSONStream/test/empty.js b/deps/npm/node_modules/JSONStream/test/empty.js deleted file mode 100644 index 19e888c1eb6..00000000000 --- a/deps/npm/node_modules/JSONStream/test/empty.js +++ /dev/null @@ -1,44 +0,0 @@ -var JSONStream = require('../') - , stream = require('stream') - , it = require('it-is') - -var output = [ [], [] ] - -var parser1 = JSONStream.parse(['docs', /./]) -parser1.on('data', function(data) { - output[0].push(data) -}) - -var parser2 = JSONStream.parse(['docs', /./]) -parser2.on('data', function(data) { - output[1].push(data) -}) - -var pending = 2 -function onend () { - if (--pending > 0) return - it(output).deepEqual([ - [], [{hello: 'world'}] - ]) - console.error('PASSED') -} -parser1.on('end', onend) -parser2.on('end', onend) - -function makeReadableStream() { - var readStream = new stream.Stream() - readStream.readable = true - readStream.write = function (data) { this.emit('data', data) } - readStream.end = function (data) { this.emit('end') } - return readStream -} - -var emptyArray = makeReadableStream() -emptyArray.pipe(parser1) -emptyArray.write('{"docs":[]}') -emptyArray.end() - -var objectArray = makeReadableStream() -objectArray.pipe(parser2) -objectArray.write('{"docs":[{"hello":"world"}]}') -objectArray.end() diff --git a/deps/npm/node_modules/JSONStream/test/error_contents.js b/deps/npm/node_modules/JSONStream/test/error_contents.js deleted file mode 100644 index 13c27aec0d3..00000000000 --- a/deps/npm/node_modules/JSONStream/test/error_contents.js +++ /dev/null @@ -1,45 +0,0 @@ - - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','error.json') - , JSONStream = require('../') - , it = require('it-is') - -var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse(['rows']) - , called = 0 - , headerCalled = 0 - , footerCalled = 0 - , ended = false - , parsed = [] - -fs.createReadStream(file).pipe(parser) - -parser.on('header', function (data) { - headerCalled ++ - it(data).deepEqual({ - error: 'error_code', - message: 'this is an error message' - }) -}) - -parser.on('footer', function (data) { - footerCalled ++ -}) - -parser.on('data', function (data) { - called ++ - parsed.push(data) -}) - -parser.on('end', function () { - ended = true -}) - -process.on('exit', function () { - it(called).equal(0) - it(headerCalled).equal(1) - it(footerCalled).equal(0) - console.error('PASSED') -}) diff --git a/deps/npm/node_modules/JSONStream/test/fixtures/all_npm.json b/deps/npm/node_modules/JSONStream/test/fixtures/all_npm.json deleted file mode 100644 index 2ada0396e10..00000000000 --- a/deps/npm/node_modules/JSONStream/test/fixtures/all_npm.json +++ /dev/null @@ -1,4030 +0,0 @@ -{"total_rows":4028,"offset":0,"rows":[ -{"id":"","key":"","value":{"rev":"1-2f11e026763c10730d8b19ba5dce7565"}}, -{"id":"3scale","key":"3scale","value":{"rev":"3-db3d574bf0ecdfdf627afeaa21b4bdaa"}}, -{"id":"7digital-api","key":"7digital-api","value":{"rev":"20-21d11832780e2368aabc946598a41dd5"}}, -{"id":"AMD","key":"AMD","value":{"rev":"7-3b4305a9c786ab4c5ce611e7f0de0aca"}}, -{"id":"AriesNode","key":"AriesNode","value":{"rev":"3-9d88392bca6582c5c54784927dbfdee6"}}, -{"id":"Array.prototype.forEachAsync","key":"Array.prototype.forEachAsync","value":{"rev":"3-85696441ba6bef77cc1e7de7b073110e"}}, -{"id":"Babel","key":"Babel","value":{"rev":"5-9d8370c6ac6fd9cd3d530f26a9379814"}}, -{"id":"Blaggie-System","key":"Blaggie-System","value":{"rev":"3-47782b1e5cbfa425170192799510e148"}}, -{"id":"Blob","key":"Blob","value":{"rev":"3-cf5fb5d69da4dd00bc4f2be8870ca698"}}, -{"id":"BlobBuilder","key":"BlobBuilder","value":{"rev":"3-eb977ff1713a915384fac994f9d8fa7c"}}, -{"id":"Buffer","key":"Buffer","value":{"rev":"3-549594b58e83d6d07bb219e73de558e5"}}, -{"id":"CLI-UI","key":"CLI-UI","value":{"rev":"5-5912625f27b4bdfb4d3eed16726c48a8"}}, -{"id":"CLoader","key":"CLoader","value":{"rev":"1-ad3c317ddf3497e73ab41cb1ddbc6ba8"}}, -{"id":"CM1","key":"CM1","value":{"rev":"15-a325a2dc28bc6967a1a14beed86f3b80"}}, -{"id":"CONFIGURATOR","key":"CONFIGURATOR","value":{"rev":"3-c76bf9282a75cc4d3fb349e831ccb8a5"}}, -{"id":"Cashew","key":"Cashew","value":{"rev":"7-6a74dc51dbecc47d2c15bfb7d056a20f"}}, -{"id":"Class","key":"Class","value":{"rev":"5-958c6365f76a60a8b3dafbbd9730ac7e"}}, -{"id":"ClassLoader","key":"ClassLoader","value":{"rev":"3-27fe8faa8a1d60d639f87af52826ed47"}}, -{"id":"ClearSilver","key":"ClearSilver","value":{"rev":"3-f3e54eb9ce64fc6a090186e61f15ed0b"}}, -{"id":"Couch-cleaner","key":"Couch-cleaner","value":{"rev":"3-fc77270917d967a4e2e8637cfa9f0fe0"}}, -{"id":"CouchCover","key":"CouchCover","value":{"rev":"15-3b2d87d314f57272a5c27c42bbb3eaf9"}}, -{"id":"DOM-js","key":"DOM-js","value":{"rev":"8-748cdc96566a7b65bbd0b12be2eeb386"}}, -{"id":"DOMBuilder","key":"DOMBuilder","value":{"rev":"19-41a518f2ce16fabc0241535ccd967300"}}, -{"id":"DateZ","key":"DateZ","value":{"rev":"15-69d8115a9bd521e614eaad3cf2611264"}}, -{"id":"Dateselect","key":"Dateselect","value":{"rev":"3-6511567a876d8fe15724bbc7f247214c"}}, -{"id":"Deferred","key":"Deferred","value":{"rev":"3-c61dfc4a0d1bd3e9f35c7182f161f1f2"}}, -{"id":"DeskSet","key":"DeskSet","value":{"rev":"5-359bf760718898ff3591eb366e336cf9"}}, -{"id":"Estro","key":"Estro","value":{"rev":"11-97192e2d0327469bb30f814963db6dff"}}, -{"id":"EventProxy.js","key":"EventProxy.js","value":{"rev":"5-106696b56c6959cec4bfd37f406ee60a"}}, -{"id":"EventServer","key":"EventServer","value":{"rev":"3-59d174119435e99e2affe0c4ba7caae0"}}, -{"id":"Expressive","key":"Expressive","value":{"rev":"3-7eae0ea010eb9014b28108e814918eac"}}, -{"id":"F","key":"F","value":{"rev":"12-91a3db69527b46cf43e36b7ec64a4336"}}, -{"id":"Faker","key":"Faker","value":{"rev":"9-77951c352cb6f9a0b824be620a8fa40d"}}, -{"id":"FastLegS","key":"FastLegS","value":{"rev":"27-4399791981235021a36c94bb9e9b52b5"}}, -{"id":"Fayer","key":"Fayer","value":{"rev":"7-7e4974ff2716329375f9711bcabef701"}}, -{"id":"File","key":"File","value":{"rev":"3-45e353a984038bc48248dfc32b18f9a8"}}, -{"id":"FileError","key":"FileError","value":{"rev":"3-bb4b03a2548e3c229e2c7e92242946c3"}}, -{"id":"FileList","key":"FileList","value":{"rev":"3-ec4a3fc91794ef7fdd3fe88b19cec7b0"}}, -{"id":"FileReader","key":"FileReader","value":{"rev":"7-e81b58a2d8a765ae4781b41bbfadb4cb"}}, -{"id":"FileSaver","key":"FileSaver","value":{"rev":"3-476dcb3f63f4d10feee08d41a8128cb8"}}, -{"id":"FileWriter","key":"FileWriter","value":{"rev":"3-f2fcdbc4938de480cce2e8e8416a93dd"}}, -{"id":"FileWriterSync","key":"FileWriterSync","value":{"rev":"3-9494c3fe7a1230238f37a724ec10895b"}}, -{"id":"FormData","key":"FormData","value":{"rev":"3-8872d717575f7090107a96d81583f6fe"}}, -{"id":"Frenchpress","key":"Frenchpress","value":{"rev":"3-6d916fc15b9e77535771578f96c47c52"}}, -{"id":"FreshDocs","key":"FreshDocs","value":{"rev":"5-f1f3e76c85267faf21d06d911cc6c203"}}, -{"id":"Google_Plus_API","key":"Google_Plus_API","value":{"rev":"3-3302bc9846726d996a45daee3dc5922c"}}, -{"id":"Gord","key":"Gord","value":{"rev":"11-32fddef1453773ac7270ba0e7c83f727"}}, -{"id":"Graph","key":"Graph","value":{"rev":"7-c346edea4f90e3e18d50a62473868cf4"}}, -{"id":"GridFS","key":"GridFS","value":{"rev":"27-4fc649aaa007fddec4947bdb7111560f"}}, -{"id":"Haraka","key":"Haraka","value":{"rev":"39-ee8f890521c1579b3cc779c8ebe03480"}}, -{"id":"Index","key":"Index","value":{"rev":"29-d8f4881c1544bf51dea1927e87ebb3f3"}}, -{"id":"JS-Entities","key":"JS-Entities","value":{"rev":"7-905636d8b46f273210233b60063d079b"}}, -{"id":"JSLint-commonJS","key":"JSLint-commonJS","value":{"rev":"3-759a81f82af7055e85ee89c9707c9609"}}, -{"id":"JSON","key":"JSON","value":{"rev":"3-7966a79067c34fb5de2e62c796f67341"}}, -{"id":"JSONPath","key":"JSONPath","value":{"rev":"7-58789d57ae366a5b0ae4b36837f15d59"}}, -{"id":"JSONSelect","key":"JSONSelect","value":{"rev":"9-5b0730da91eeb52e8f54da516367dc0f"}}, -{"id":"JSONloops","key":"JSONloops","value":{"rev":"3-3d4a1f8bfcfd778ab7def54155324331"}}, -{"id":"JSPP","key":"JSPP","value":{"rev":"7-af09a2bb193b3ff44775e8fbb7d4f522"}}, -{"id":"JSV","key":"JSV","value":{"rev":"3-41a7af86909046111be8ee9b56b077c8"}}, -{"id":"Jody","key":"Jody","value":{"rev":"43-70c1cf40e93cd8ce53249e5295d6b159"}}, -{"id":"Journaling-Hash","key":"Journaling-Hash","value":{"rev":"3-ac676eecb40a4dff301c671fa4bb6be9"}}, -{"id":"Kahana","key":"Kahana","value":{"rev":"33-1cb7e291ae02cee4e8105509571223f5"}}, -{"id":"LazyBoy","key":"LazyBoy","value":{"rev":"13-20a8894e3a957f184f5ae2a3e709551c"}}, -{"id":"Lingo","key":"Lingo","value":{"rev":"9-1af9a6df616e601f09c8cec07ccad1ae"}}, -{"id":"Loggy","key":"Loggy","value":{"rev":"33-e115c25163ab468314eedbe497d1c51e"}}, -{"id":"MeCab","key":"MeCab","value":{"rev":"4-2687176c7b878930e812a534976a6988"}}, -{"id":"Mercury","key":"Mercury","value":{"rev":"3-09a6bff1332ed829bd2c37bfec244a41"}}, -{"id":"Mu","key":"Mu","value":{"rev":"7-28e6ab82c402c3a75fe0f79dea846b97"}}, -{"id":"N","key":"N","value":{"rev":"7-e265046b5bdd299b2cad1584083ce2d5"}}, -{"id":"NORRIS","key":"NORRIS","value":{"rev":"3-4b5b23b09118582c44414f8d480619e6"}}, -{"id":"NetOS","key":"NetOS","value":{"rev":"3-3f943f87a24c11e6dd8c265469914e80"}}, -{"id":"NewBase60","key":"NewBase60","value":{"rev":"3-fd84758db79870e82917d358c6673f32"}}, -{"id":"NoCR","key":"NoCR","value":{"rev":"3-8f6cddd528f2d6045e3dda6006fb6948"}}, -{"id":"NodObjC","key":"NodObjC","value":{"rev":"15-ea6ab2df532c90fcefe5a428950bfdbb"}}, -{"id":"Node-JavaScript-Preprocessor","key":"Node-JavaScript-Preprocessor","value":{"rev":"13-4662b5ad742caaa467ec5d6c8e77b1e5"}}, -{"id":"NodeInterval","key":"NodeInterval","value":{"rev":"3-dc3446db2e0cd5be29a3c07942dba66d"}}, -{"id":"NodeSSH","key":"NodeSSH","value":{"rev":"3-45530fae5a69c44a6dd92357910f4212"}}, -{"id":"Nonsense","key":"Nonsense","value":{"rev":"3-9d86191475bc76dc3dd496d4dfe5d94e"}}, -{"id":"NormAndVal","key":"NormAndVal","value":{"rev":"9-d3b3d6ffd046292f4733aa5f3eb7be61"}}, -{"id":"Olive","key":"Olive","value":{"rev":"5-67f3057f09cae5104f09472db1d215aa"}}, -{"id":"OnCollect","key":"OnCollect","value":{"rev":"16-6dbe3afd04f123dda87bb1e21cdfd776"}}, -{"id":"PJsonCouch","key":"PJsonCouch","value":{"rev":"3-be9588f49d85094c36288eb63f8236b3"}}, -{"id":"PMInject","key":"PMInject","value":{"rev":"5-da518047d8273dbf3b3c05ea25e77836"}}, -{"id":"PanPG","key":"PanPG","value":{"rev":"13-beb54225a6b1be4c157434c28adca016"}}, -{"id":"PerfDriver","key":"PerfDriver","value":{"rev":"2-b448fb2f407f341b8df7032f29e4920f"}}, -{"id":"PostgresClient","key":"PostgresClient","value":{"rev":"8-2baec6847f8ad7dcf24b7d61a4034163"}}, -{"id":"QuickWeb","key":"QuickWeb","value":{"rev":"13-d388df9c484021ecd75bc9650d659a67"}}, -{"id":"R.js","key":"R.js","value":{"rev":"3-3f154b95ec6fc744f95a29750f16667e"}}, -{"id":"R2","key":"R2","value":{"rev":"11-f5ccff6f108f6b928caafb62b80d1056"}}, -{"id":"Reston","key":"Reston","value":{"rev":"5-9d234010f32f593edafc04620f3cf2bd"}}, -{"id":"Sardines","key":"Sardines","value":{"rev":"5-d7d3d2269420e21c2c62b86ff5a0021e"}}, -{"id":"SessionWebSocket","key":"SessionWebSocket","value":{"rev":"8-d9fc9beaf90057aefeb701addd7fc845"}}, -{"id":"Sheet","key":"Sheet","value":{"rev":"8-c827c713564e4ae5a17988ffea520d0d"}}, -{"id":"Spec_My_Node","key":"Spec_My_Node","value":{"rev":"8-fa58408e9d9736d9c6fa8daf5d632106"}}, -{"id":"Spot","key":"Spot","value":{"rev":"3-6b6c2131451fed28fb57c924c4fa44cc"}}, -{"id":"Sslac","key":"Sslac","value":{"rev":"3-70a2215cc7505729254aa6fa1d9a25d9"}}, -{"id":"StaticServer","key":"StaticServer","value":{"rev":"3-6f5433177ef4d76a52f01c093117a532"}}, -{"id":"StringScanner","key":"StringScanner","value":{"rev":"3-e85d0646c25ec477c1c45538712d3a38"}}, -{"id":"Structr","key":"Structr","value":{"rev":"3-449720001801cff5831c2cc0e0f1fcf8"}}, -{"id":"Templ8","key":"Templ8","value":{"rev":"11-4e6edb250bc250df20b2d557ca7f6589"}}, -{"id":"Template","key":"Template","value":{"rev":"6-1f055c73524d2b7e82eb6c225bd4b8e0"}}, -{"id":"Thimble","key":"Thimble","value":{"rev":"3-8499b261206f2f2e9acf92d8a4e54afb"}}, -{"id":"Toji","key":"Toji","value":{"rev":"96-511e171ad9f32a9264c2cdf01accacfb"}}, -{"id":"TwigJS","key":"TwigJS","value":{"rev":"3-1aaefc6d6895d7d4824174d410a747b9"}}, -{"id":"UkGeoTool","key":"UkGeoTool","value":{"rev":"5-e84291128e12f66cebb972a60c1d710f"}}, -{"id":"Vector","key":"Vector","value":{"rev":"3-bf5dc97abe7cf1057260b70638175a96"}}, -{"id":"_design/app","key":"_design/app","value":{"rev":"421-b1661d854599a58d0904d68aa44d8b63"}}, -{"id":"_design/ui","key":"_design/ui","value":{"rev":"78-db00aeb91a59a326e38e2bef7f1126cf"}}, -{"id":"aaronblohowiak-plugify-js","key":"aaronblohowiak-plugify-js","value":{"rev":"3-0272c269eacd0c86bfc1711566922577"}}, -{"id":"aaronblohowiak-uglify-js","key":"aaronblohowiak-uglify-js","value":{"rev":"3-77844a6def6ec428d75caa0846c95502"}}, -{"id":"aasm-js","key":"aasm-js","value":{"rev":"3-01a48108d55909575440d9e0ef114f37"}}, -{"id":"abbrev","key":"abbrev","value":{"rev":"16-e17a2b6c7360955b950edf2cb2ef1602"}}, -{"id":"abhispeak","key":"abhispeak","value":{"rev":"5-9889431f68ec10212db3be91796608e2"}}, -{"id":"ace","key":"ace","value":{"rev":"3-e8d267de6c17ebaa82c2869aff983c74"}}, -{"id":"acl","key":"acl","value":{"rev":"13-87c131a1801dc50840a177be73ce1c37"}}, -{"id":"active-client","key":"active-client","value":{"rev":"5-0ca16ae2e48a3ba9de2f6830a8c2d3a0"}}, -{"id":"activenode-monitor","key":"activenode-monitor","value":{"rev":"9-2634fa446379c39475d0ce4183fb92f2"}}, -{"id":"activeobject","key":"activeobject","value":{"rev":"43-6d73e28412612aaee37771e3ab292c3d"}}, -{"id":"actor","key":"actor","value":{"rev":"3-f6b84acd7d2e689b860e3142a18cd460"}}, -{"id":"actors","key":"actors","value":{"rev":"3-6df913bbe5b99968a2e71ae4ef07b2d2"}}, -{"id":"addTimeout","key":"addTimeout","value":{"rev":"15-e5170f0597fe8cf5ed0b54b7e6f2cde1"}}, -{"id":"addressable","key":"addressable","value":{"rev":"27-0c74fde458d92e4b93a29317da15bb3c"}}, -{"id":"aejs","key":"aejs","value":{"rev":"7-4928e2ce6151067cd6c585c0ba3e0bc3"}}, -{"id":"aenoa-supervisor","key":"aenoa-supervisor","value":{"rev":"7-6d399675981e76cfdfb9144bc2f7fb6d"}}, -{"id":"after","key":"after","value":{"rev":"9-baee7683ff54182cf7544cc05b0a4ad7"}}, -{"id":"ahr","key":"ahr","value":{"rev":"27-4ed272c516f3f2f9310e4f0ef28254e9"}}, -{"id":"ahr.browser","key":"ahr.browser","value":{"rev":"3-f7226aab4a1a3ab5f77379f92aae87f9"}}, -{"id":"ahr.browser.jsonp","key":"ahr.browser.jsonp","value":{"rev":"3-abed17143cf5e3c451c3d7da457e6f5b"}}, -{"id":"ahr.browser.request","key":"ahr.browser.request","value":{"rev":"7-fafd7b079d0415f388b64a20509a270b"}}, -{"id":"ahr.node","key":"ahr.node","value":{"rev":"17-f487a4a9896bd3876a11f9dfa1c639a7"}}, -{"id":"ahr.options","key":"ahr.options","value":{"rev":"13-904a4cea763a4455f7b2ae0abba18b8d"}}, -{"id":"ahr.utils","key":"ahr.utils","value":{"rev":"3-5f7b4104ea280d1fd36370c8f3356ead"}}, -{"id":"ahr2","key":"ahr2","value":{"rev":"87-ddf57f3ee158dcd23b2df330e2883a1d"}}, -{"id":"ain","key":"ain","value":{"rev":"7-d840736668fb36e9be3c26a68c5cd411"}}, -{"id":"ain-tcp","key":"ain-tcp","value":{"rev":"11-d18a1780bced8981d1d9dbd262ac4045"}}, -{"id":"ain2","key":"ain2","value":{"rev":"5-0b67879174f5f0a06448c7c737d98b5e"}}, -{"id":"airbrake","key":"airbrake","value":{"rev":"33-4bb9f822162e0c930c31b7f961938dc9"}}, -{"id":"ajaxrunner","key":"ajaxrunner","value":{"rev":"2-17e6a5de4f0339f4e6ce0b7681d0ba0c"}}, -{"id":"ajs","key":"ajs","value":{"rev":"13-063a29dec829fdaf4ca63d622137d1c6"}}, -{"id":"ajs-xgettext","key":"ajs-xgettext","value":{"rev":"3-cd4bbcc1c9d87fa7119d3bbbca99b793"}}, -{"id":"akismet","key":"akismet","value":{"rev":"13-a144e15dd6c2b13177572e80a526edd1"}}, -{"id":"alfred","key":"alfred","value":{"rev":"45-9a69041b18d2587c016b1b1deccdb2ce"}}, -{"id":"alfred-bcrypt","key":"alfred-bcrypt","value":{"rev":"11-7ed10ef318e5515d1ef7c040818ddb22"}}, -{"id":"algorithm","key":"algorithm","value":{"rev":"3-9ec0b38298cc15b0f295152de8763358"}}, -{"id":"algorithm-js","key":"algorithm-js","value":{"rev":"9-dd7496b7ec2e3b23cc7bb182ae3aac6d"}}, -{"id":"alists","key":"alists","value":{"rev":"5-22cc13c86d84081a826ac79a0ae5cda3"}}, -{"id":"altshift","key":"altshift","value":{"rev":"53-1c51d8657f271f390503a6fe988d09db"}}, -{"id":"amazon-ses","key":"amazon-ses","value":{"rev":"5-c175d60de2232a5664666a80832269e5"}}, -{"id":"ambrosia","key":"ambrosia","value":{"rev":"3-8c648ec7393cf842838c20e2c5d9bce4"}}, -{"id":"amd","key":"amd","value":{"rev":"3-d78c4df97a577af598a7def2a38379fa"}}, -{"id":"amionline","key":"amionline","value":{"rev":"3-a62887a632523700402b0f4ebb896812"}}, -{"id":"amo-version-reduce","key":"amo-version-reduce","value":{"rev":"3-05f6956269e5e921ca3486d3d6ea74b0"}}, -{"id":"amqp","key":"amqp","value":{"rev":"17-ee62d2b8248f8eb13f3369422d66df26"}}, -{"id":"amqpsnoop","key":"amqpsnoop","value":{"rev":"3-36a1c45647bcfb2f56cf68dbc24b0426"}}, -{"id":"ams","key":"ams","value":{"rev":"40-1c0cc53ad942d2fd23c89618263befc8"}}, -{"id":"amulet","key":"amulet","value":{"rev":"7-d1ed71811e45652799982e4f2e9ffb36"}}, -{"id":"anachronism","key":"anachronism","value":{"rev":"11-468bdb40f9a5aa146bae3c1c6253d0e1"}}, -{"id":"analytics","key":"analytics","value":{"rev":"3-a143ccdd863b5f7dbee4d2f7732390b3"}}, -{"id":"ann","key":"ann","value":{"rev":"9-41f00594d6216c439f05f7116a697cac"}}, -{"id":"ansi-color","key":"ansi-color","value":{"rev":"6-d6f02b32525c1909d5134afa20f470de"}}, -{"id":"ansi-font","key":"ansi-font","value":{"rev":"3-b039661ad9b6aa7baf34741b449c4420"}}, -{"id":"ant","key":"ant","value":{"rev":"3-35a64e0b7f6eb63a90c32971694b0d93"}}, -{"id":"anvil.js","key":"anvil.js","value":{"rev":"19-290c82075f0a9ad764cdf6dc5c558e0f"}}, -{"id":"aop","key":"aop","value":{"rev":"7-5963506c9e7912aa56fda065c56fd472"}}, -{"id":"ap","key":"ap","value":{"rev":"3-f525b5b490a1ada4452f46307bf92d08"}}, -{"id":"apac","key":"apac","value":{"rev":"12-945d0313a84797b4c3df19da4bec14d4"}}, -{"id":"aparser","key":"aparser","value":{"rev":"5-cb35cfc9184ace6642413dad97e49dca"}}, -{"id":"api-easy","key":"api-easy","value":{"rev":"15-2ab5eefef1377ff217cb020e80343d65"}}, -{"id":"api.js","key":"api.js","value":{"rev":"5-a14b8112fbda17022c80356a010de59a"}}, -{"id":"api_request","key":"api_request","value":{"rev":"3-8531e71f5cf2f3f811684269132d72d4"}}, -{"id":"apimaker","key":"apimaker","value":{"rev":"3-bdbd4a2ebf5b67276d89ea73eaa20025"}}, -{"id":"apn","key":"apn","value":{"rev":"30-0513d27341f587b39db54300c380921f"}}, -{"id":"app","key":"app","value":{"rev":"3-d349ddb47167f60c03d259649569e002"}}, -{"id":"app.js","key":"app.js","value":{"rev":"3-bff3646634daccfd964b4bbe510acb25"}}, -{"id":"append","key":"append","value":{"rev":"7-53e2f4ab2a69dc0c5e92f10a154998b6"}}, -{"id":"applescript","key":"applescript","value":{"rev":"10-ef5ab30ccd660dc71fb89e173f30994a"}}, -{"id":"appzone","key":"appzone","value":{"rev":"21-fb27e24d460677fe9c7eda0d9fb1fead"}}, -{"id":"apricot","key":"apricot","value":{"rev":"14-b55361574a0715f78afc76ddf6125845"}}, -{"id":"arcane","key":"arcane","value":{"rev":"3-f846c96e890ed6150d4271c93cc05a24"}}, -{"id":"archetype","key":"archetype","value":{"rev":"3-441336def3b7aade89c8c1c19a84f56d"}}, -{"id":"ardrone","key":"ardrone","value":{"rev":"8-540e95b796da734366a89bb06dc430c5"}}, -{"id":"ardrone-web","key":"ardrone-web","value":{"rev":"3-8a53cc85a95be20cd44921347e82bbe4"}}, -{"id":"arduino","key":"arduino","value":{"rev":"3-22f6359c47412d086d50dc7f1a994139"}}, -{"id":"argon","key":"argon","value":{"rev":"3-ba12426ce67fac01273310cb3909b855"}}, -{"id":"argparse","key":"argparse","value":{"rev":"8-5e841e38cca6cfc3fe1d1f507a7f47ee"}}, -{"id":"argparser","key":"argparser","value":{"rev":"19-b8793bfc005dd84e1213ee53ae56206d"}}, -{"id":"argsparser","key":"argsparser","value":{"rev":"26-d31eca2f41546172763af629fc50631f"}}, -{"id":"argtype","key":"argtype","value":{"rev":"10-96a7d23e571d56cf598472115bcac571"}}, -{"id":"arguments","key":"arguments","value":{"rev":"7-767de2797f41702690bef5928ec7c6e9"}}, -{"id":"armory","key":"armory","value":{"rev":"41-ea0f7bd0868c11fc9986fa708e11e071"}}, -{"id":"armrest","key":"armrest","value":{"rev":"3-bbe40b6320b6328211be33425bed20c8"}}, -{"id":"arnold","key":"arnold","value":{"rev":"3-4896fc8d02b8623f47a024f0dbfa44bf"}}, -{"id":"arouter","key":"arouter","value":{"rev":"7-55cab1f7128df54f27be94039a8d8dc5"}}, -{"id":"array-promise","key":"array-promise","value":{"rev":"3-e2184561ee65de64c2dfeb57955c758f"}}, -{"id":"arrayemitter","key":"arrayemitter","value":{"rev":"3-d64c917ac1095bfcbf173dac88d3d148"}}, -{"id":"asEvented","key":"asEvented","value":{"rev":"3-2ad3693b49d4d9dc9a11c669033a356e"}}, -{"id":"asciimo","key":"asciimo","value":{"rev":"12-50130f5ac2ef4d95df190be2c8ede893"}}, -{"id":"asereje","key":"asereje","value":{"rev":"15-84853499f89a87109ddf47ba692323ba"}}, -{"id":"ash","key":"ash","value":{"rev":"6-3697a3aee708bece8a08c7e0d1010476"}}, -{"id":"ask","key":"ask","value":{"rev":"3-321bbc3837d749b5d97bff251693a825"}}, -{"id":"asn1","key":"asn1","value":{"rev":"13-e681a814a4a1439a22b19e141b45006f"}}, -{"id":"aspsms","key":"aspsms","value":{"rev":"9-7b82d722bdac29a4da8c88b642ad64f2"}}, -{"id":"assert","key":"assert","value":{"rev":"3-85480762f5cb0be2cb85f80918257189"}}, -{"id":"assertions","key":"assertions","value":{"rev":"9-d797d4c09aa994556c7d5fdb4e86fe1b"}}, -{"id":"assertn","key":"assertn","value":{"rev":"6-080a4fb5d2700a6850d56b58c6f6ee9e"}}, -{"id":"assertvanish","key":"assertvanish","value":{"rev":"13-3b0b555ff77c1bfc2fe2642d50879648"}}, -{"id":"asset","key":"asset","value":{"rev":"33-cb70b68e0e05e9c9a18b3d89f1bb43fc"}}, -{"id":"assetgraph","key":"assetgraph","value":{"rev":"82-7853d644e64741b46fdd29a997ec4852"}}, -{"id":"assetgraph-builder","key":"assetgraph-builder","value":{"rev":"61-1ed98d95f3589050037851edde760a01"}}, -{"id":"assetgraph-sprite","key":"assetgraph-sprite","value":{"rev":"15-351b5fd9e50a3dda8580d014383423e0"}}, -{"id":"assets-expander","key":"assets-expander","value":{"rev":"11-f9e1197b773d0031dd015f1d871b87c6"}}, -{"id":"assets-packager","key":"assets-packager","value":{"rev":"13-51f7d2d57ed35be6aff2cc2aa2fa74db"}}, -{"id":"assoc","key":"assoc","value":{"rev":"9-07098388f501da16bf6afe6c9babefd5"}}, -{"id":"ast-inlining","key":"ast-inlining","value":{"rev":"5-02e7e2c3a06ed81ddc61980f778ac413"}}, -{"id":"ast-transformer","key":"ast-transformer","value":{"rev":"5-b4020bb763b8839afa8d3ac0d54a6f26"}}, -{"id":"astar","key":"astar","value":{"rev":"3-3df8c56c64c3863ef0650c0c74e2801b"}}, -{"id":"aster","key":"aster","value":{"rev":"7-b187c1270d3924f5ee04044e579d2df9"}}, -{"id":"asterisk-manager","key":"asterisk-manager","value":{"rev":"3-7fbf4294dafee04cc17cca4692c09c33"}}, -{"id":"astrolin","key":"astrolin","value":{"rev":"3-30ac515a2388e7dc22b25c15346f6d7e"}}, -{"id":"asyn","key":"asyn","value":{"rev":"3-51996b0197c21e85858559045c1481b7"}}, -{"id":"async","key":"async","value":{"rev":"26-73aea795f46345a7e65d89ec75dff2f1"}}, -{"id":"async-array","key":"async-array","value":{"rev":"17-3ef5faff03333aa5b2a733ef36118066"}}, -{"id":"async-chain","key":"async-chain","value":{"rev":"9-10ec3e50b01567390d55973494e36d43"}}, -{"id":"async-ejs","key":"async-ejs","value":{"rev":"19-6f0e6e0eeb3cdb4c816ea427d8288d7d"}}, -{"id":"async-fs","key":"async-fs","value":{"rev":"3-b96906283d345604f784dfcdbeb21a63"}}, -{"id":"async-it","key":"async-it","value":{"rev":"7-6aed4439df25989cfa040fa4b5dd4ff2"}}, -{"id":"async-json","key":"async-json","value":{"rev":"5-589d5b6665d00c5bffb99bb142cac5d0"}}, -{"id":"async-memoizer","key":"async-memoizer","value":{"rev":"9-01d56f4dff95e61a39dab5ebee49d5dc"}}, -{"id":"async-object","key":"async-object","value":{"rev":"21-1bf28b0f8a7d875b54126437f3539f9b"}}, -{"id":"asyncEJS","key":"asyncEJS","value":{"rev":"3-28b1c94255381f23a4d4f52366255937"}}, -{"id":"async_testing","key":"async_testing","value":{"rev":"14-0275d8b608d8644dfe8d68a81fa07e98"}}, -{"id":"asyncevents","key":"asyncevents","value":{"rev":"3-de104847994365dcab5042db2b46fb84"}}, -{"id":"asyncify","key":"asyncify","value":{"rev":"3-3f6deb82ee1c6cb25e83a48fe6379b75"}}, -{"id":"asyncjs","key":"asyncjs","value":{"rev":"27-15903d7351f80ed37cb069aedbfc26cc"}}, -{"id":"asynct","key":"asynct","value":{"rev":"5-6be002b3e005d2d53b80fff32ccbd2ac"}}, -{"id":"at_scheduler","key":"at_scheduler","value":{"rev":"3-5587061c90218d2e99b6e22d5b488b0b"}}, -{"id":"atbar","key":"atbar","value":{"rev":"19-e9e906d4874afd4d8bf2d8349ed46dff"}}, -{"id":"atob","key":"atob","value":{"rev":"3-bc907d10dd2cfc940de586dc090451da"}}, -{"id":"audiolib","key":"audiolib","value":{"rev":"17-cb2f55ff50061081b440f0605cf0450c"}}, -{"id":"audit_couchdb","key":"audit_couchdb","value":{"rev":"24-6e620895b454b345b2aed13db847c237"}}, -{"id":"auditor","key":"auditor","value":{"rev":"11-c4df509d40650c015943dd90315a12c0"}}, -{"id":"authnet_cim","key":"authnet_cim","value":{"rev":"7-f02bbd206ac2b8c05255bcd8171ac1eb"}}, -{"id":"autocomplete","key":"autocomplete","value":{"rev":"3-f2773bca040d5abcd0536dbebe5847bf"}}, -{"id":"autodafe","key":"autodafe","value":{"rev":"7-a75262b53a9dd1a25693adecde7206d7"}}, -{"id":"autolint","key":"autolint","value":{"rev":"7-07f885902d72b52678fcc57aa4b9c592"}}, -{"id":"autoload","key":"autoload","value":{"rev":"5-9247704d9a992a175e3ae49f4af757d0"}}, -{"id":"autoloader","key":"autoloader","value":{"rev":"11-293c20c34d0c81fac5c06b699576b1fe"}}, -{"id":"auton","key":"auton","value":{"rev":"25-4fcb7a62b607b7929b62a9b792afef55"}}, -{"id":"autoreleasepool","key":"autoreleasepool","value":{"rev":"5-5d2798bf74bbec583cc6f19127e3c89e"}}, -{"id":"autorequire","key":"autorequire","value":{"rev":"9-564a46b355532fcec24db0afc99daed5"}}, -{"id":"autotest","key":"autotest","value":{"rev":"7-e319995dd0e1fbd935c14c46b1234f77"}}, -{"id":"awesome","key":"awesome","value":{"rev":"15-4458b746e4722214bd26ea15e453288e"}}, -{"id":"aws","key":"aws","value":{"rev":"14-9a8f0989be29034d3fa5c66c594b649b"}}, -{"id":"aws-js","key":"aws-js","value":{"rev":"6-c61d87b8ad948cd065d2ca222808c209"}}, -{"id":"aws-lib","key":"aws-lib","value":{"rev":"36-9733e215c03d185a860574600a8feb14"}}, -{"id":"aws2js","key":"aws2js","value":{"rev":"35-42498f44a5ae7d4f3c84096b435d0e0b"}}, -{"id":"azure","key":"azure","value":{"rev":"5-2c4e05bd842d3dcfa419f4d2b67121e2"}}, -{"id":"b64","key":"b64","value":{"rev":"3-e5e727a46df4c8aad38acd117d717140"}}, -{"id":"b64url","key":"b64url","value":{"rev":"9-ab3b017f00a53b0078261254704c30ba"}}, -{"id":"ba","key":"ba","value":{"rev":"11-3cec7ec9a566fe95fbeb34271538d60a"}}, -{"id":"babelweb","key":"babelweb","value":{"rev":"11-8e6a2fe00822cec15573cdda48b6d0a0"}}, -{"id":"backbone","key":"backbone","value":{"rev":"37-79b95355f8af59bf9131e14d52b68edc"}}, -{"id":"backbone-browserify","key":"backbone-browserify","value":{"rev":"3-f25dac0b05a7f7aa5dbc0f4a1ad97969"}}, -{"id":"backbone-celtra","key":"backbone-celtra","value":{"rev":"3-775a5ebb25c1cd84723add52774ece84"}}, -{"id":"backbone-couch","key":"backbone-couch","value":{"rev":"8-548327b3cd7ee7a4144c9070377be5f6"}}, -{"id":"backbone-cradle","key":"backbone-cradle","value":{"rev":"3-b9bc220ec48b05eed1d4d77a746b10db"}}, -{"id":"backbone-dirty","key":"backbone-dirty","value":{"rev":"21-fa0f688cc95a85c0fc440733f09243b5"}}, -{"id":"backbone-dnode","key":"backbone-dnode","value":{"rev":"65-3212d3aa3284efb3bc0732bac71b5a2e"}}, -{"id":"backbone-proxy","key":"backbone-proxy","value":{"rev":"3-3602cb984bdd266516a3145663f9a5c6"}}, -{"id":"backbone-redis","key":"backbone-redis","value":{"rev":"9-2e3f6a9e095b00ccec9aa19b3fbc65eb"}}, -{"id":"backbone-rel","key":"backbone-rel","value":{"rev":"5-f9773dc85f1c502e61c163a22d2f74aa"}}, -{"id":"backbone-simpledb","key":"backbone-simpledb","value":{"rev":"5-a815128e1e3593696f666f8b3da36d78"}}, -{"id":"backbone-stash","key":"backbone-stash","value":{"rev":"19-8d3cc5f9ed28f9a56856154e2b4e7f78"}}, -{"id":"backplane","key":"backplane","value":{"rev":"7-f69188dac21e007b09efe1b5b3575087"}}, -{"id":"backport-0.4","key":"backport-0.4","value":{"rev":"11-25e15f01f1ef9e626433a82284bc00d6"}}, -{"id":"backuptweets","key":"backuptweets","value":{"rev":"3-68712682aada41082d3ae36c03c8f899"}}, -{"id":"bake","key":"bake","value":{"rev":"113-ce13508ba2b4f15aa4df06d796aa4573"}}, -{"id":"bal-util","key":"bal-util","value":{"rev":"31-b818725a5af131c89ec66b9fdebf2122"}}, -{"id":"balancer","key":"balancer","value":{"rev":"7-63dcb4327081a8ec4d6c51a21253cb4b"}}, -{"id":"bancroft","key":"bancroft","value":{"rev":"11-8fa3370a4615a0ed4ba411b05c0285f4"}}, -{"id":"bandcamp","key":"bandcamp","value":{"rev":"41-f2fee472d63257fdba9e5fa8ad570ee8"}}, -{"id":"banner","key":"banner","value":{"rev":"19-89a447e2136b2fabddbad84abcd63a27"}}, -{"id":"banzai-docstore-couchdb","key":"banzai-docstore-couchdb","value":{"rev":"5-950c115737d634e2f48ee1c772788321"}}, -{"id":"banzai-redis","key":"banzai-redis","value":{"rev":"3-446f29e0819fd79c810fdfa8ce05bdcf"}}, -{"id":"banzai-statestore-couchdb","key":"banzai-statestore-couchdb","value":{"rev":"5-c965442821741ce6f20e266fe43aea4a"}}, -{"id":"banzai-statestore-mem","key":"banzai-statestore-mem","value":{"rev":"3-a0891a1a2344922d91781c332ed26528"}}, -{"id":"bar","key":"bar","value":{"rev":"7-fbb44a76cb023e6a8941f15576cf190b"}}, -{"id":"barc","key":"barc","value":{"rev":"7-dfe352b410782543d6b1aea292f123eb"}}, -{"id":"barista","key":"barista","value":{"rev":"9-d3f3c776453ba69a81947f34d7cc3cbf"}}, -{"id":"bark","key":"bark","value":{"rev":"20-fc1a94f80cfa199c16aa075e940e06dc"}}, -{"id":"barricane-db","key":"barricane-db","value":{"rev":"3-450947b9a05047fe195f76a69a3144e8"}}, -{"id":"base-converter","key":"base-converter","value":{"rev":"7-1b49b01df111176b89343ad56ac68d5c"}}, -{"id":"base32","key":"base32","value":{"rev":"11-d686c54c9de557681356e74b83d916e8"}}, -{"id":"base64","key":"base64","value":{"rev":"24-bd713c3d7e96fad180263ed7563c595e"}}, -{"id":"bash","key":"bash","value":{"rev":"3-86a1c61babfa47da0ebc14c2f4e59a6a"}}, -{"id":"basic-auth","key":"basic-auth","value":{"rev":"3-472a87af27264ae81bd4394d70792e55"}}, -{"id":"basicFFmpeg","key":"basicFFmpeg","value":{"rev":"15-3e87a41c543bde1e6f7c49d021fda62f"}}, -{"id":"basicauth","key":"basicauth","value":{"rev":"3-15d95a05b6f5e7b6d7261f87c4eb73de"}}, -{"id":"basil-cookie","key":"basil-cookie","value":{"rev":"11-fff96b263f31b9d017e3cf59bf6fb23f"}}, -{"id":"batik","key":"batik","value":{"rev":"7-a19ce28cbbf54649fa225ed5474eff02"}}, -{"id":"batman","key":"batman","value":{"rev":"15-6af5469bf143790cbb4af196824c9e95"}}, -{"id":"batteries","key":"batteries","value":{"rev":"13-656c68fe887f4af3ef1e720e64275f4e"}}, -{"id":"bbcode","key":"bbcode","value":{"rev":"5-e79a8b62125f8a3a1751bf7bd8875f33"}}, -{"id":"bcrypt","key":"bcrypt","value":{"rev":"31-db8496d1239362a97a26f1e5eeb8a733"}}, -{"id":"beaconpush","key":"beaconpush","value":{"rev":"3-956fcd87a6d3f9d5b9775d47e36aa3e5"}}, -{"id":"bean","key":"bean","value":{"rev":"56-151c1558e15016205e65bd515eab9ee0"}}, -{"id":"bean.database.mongo","key":"bean.database.mongo","value":{"rev":"3-ede73166710137cbf570385b7e8f17fe"}}, -{"id":"beandocs","key":"beandocs","value":{"rev":"3-9f7492984c95b69ca1ad30d40223f117"}}, -{"id":"beanpole","key":"beanpole","value":{"rev":"53-565a78a2304405cdc9f4a6b6101160fa"}}, -{"id":"beanprep","key":"beanprep","value":{"rev":"3-bd387f0072514b8e44131671f9aad1b0"}}, -{"id":"beans","key":"beans","value":{"rev":"54-7f6d40a2a5bf228fe3547cce43edaa63"}}, -{"id":"beanstalk_client","key":"beanstalk_client","value":{"rev":"6-13c8c80aa6469b5dcf20d65909289383"}}, -{"id":"beanstalk_worker","key":"beanstalk_worker","value":{"rev":"6-45500991db97ed5a18ea96f3621bf99f"}}, -{"id":"beantest","key":"beantest","value":{"rev":"7-52d8160a0c0420c7d659b2ee10f26644"}}, -{"id":"beatit","key":"beatit","value":{"rev":"7-c0ba5f95b0601dcb628e4820555cc252"}}, -{"id":"beatport","key":"beatport","value":{"rev":"5-3b186b633ceea7f047e1df91e7b683a5"}}, -{"id":"beautifyjs","key":"beautifyjs","value":{"rev":"3-89ce050152aca0727c099060229ddc73"}}, -{"id":"beaver","key":"beaver","value":{"rev":"17-3b56116e8e40205e8efcedefee0319e3"}}, -{"id":"beeline","key":"beeline","value":{"rev":"11-92a4bd9524cc7aec3106efcacff6faed"}}, -{"id":"beet","key":"beet","value":{"rev":"95-3c9d9de63c363319b2201ac83bc0ee7d"}}, -{"id":"begin","key":"begin","value":{"rev":"3-b32a5eb1b9475353b37f90813ed89dce"}}, -{"id":"begin.js","key":"begin.js","value":{"rev":"7-9156869392a448595bf3e5723fcb7b57"}}, -{"id":"bejesus-api","key":"bejesus-api","value":{"rev":"11-6b42f8ffc370c494d01481b64536e91e"}}, -{"id":"bejesus-cli","key":"bejesus-cli","value":{"rev":"31-5fbbfe5ec1f6a0a7a3fafdf69230434a"}}, -{"id":"bem","key":"bem","value":{"rev":"22-c0e0f8d9e92b355246fd15058199b73c"}}, -{"id":"ben","key":"ben","value":{"rev":"3-debe52552a86f1e71895dd5d32add585"}}, -{"id":"bench","key":"bench","value":{"rev":"14-20987e1becf3acd1bd1833b04712c87c"}}, -{"id":"bencher","key":"bencher","value":{"rev":"3-08866a8fdcf180582b43690bbbf21087"}}, -{"id":"benchmark","key":"benchmark","value":{"rev":"219-0669bc24f3f2918d93369bb0d801abf3"}}, -{"id":"bencode","key":"bencode","value":{"rev":"8-7b9eff4c1658fb3a054ebc6f50e6edcd"}}, -{"id":"beseda","key":"beseda","value":{"rev":"49-5cc8c4e9bb3e836de7db58c3adf9a5bb"}}, -{"id":"bf","key":"bf","value":{"rev":"14-d81312e1bf4f7202b801b4343199aa55"}}, -{"id":"biggie-router","key":"biggie-router","value":{"rev":"42-56a546a78d5abd4402183b3d300d563e"}}, -{"id":"bigint","key":"bigint","value":{"rev":"58-02f368567849596219d6a0e87d9bc6b9"}}, -{"id":"bignumber","key":"bignumber","value":{"rev":"3-6e372428992a767e0a991ec3f39b8343"}}, -{"id":"binary","key":"binary","value":{"rev":"47-947aa2f5238a68e34b164ef7e50ece28"}}, -{"id":"binarySearch","key":"binarySearch","value":{"rev":"15-93a3d2f9c2690457023b5ae5f3d00446"}}, -{"id":"bind","key":"bind","value":{"rev":"9-b74d0af83e90a2655e564ab64bf1d27d"}}, -{"id":"binpack","key":"binpack","value":{"rev":"7-3dc67a64e0ef01f3aa59441c5150e04f"}}, -{"id":"bintrees","key":"bintrees","value":{"rev":"12-507fcd92f447f81842cba08cacb425cf"}}, -{"id":"bisection","key":"bisection","value":{"rev":"5-f785ea3bbd8fcc7cd9381d20417b87bb"}}, -{"id":"bison","key":"bison","value":{"rev":"12-e663b2ef96650b3b5a0cc36524e1b94a"}}, -{"id":"bitcoder","key":"bitcoder","value":{"rev":"8-19c957d6b845f4d7ad531951c971e03d"}}, -{"id":"bitcoin","key":"bitcoin","value":{"rev":"13-af88a28c02ab146622743c4c1c32e87b"}}, -{"id":"bitcoin-impl","key":"bitcoin-impl","value":{"rev":"8-99068f1d259e3c75209a6bd08e3e06a2"}}, -{"id":"bitcoin-p2p","key":"bitcoin-p2p","value":{"rev":"25-6df0283eb6e419bc3a1571f17721b100"}}, -{"id":"bitcoinjs-mongoose","key":"bitcoinjs-mongoose","value":{"rev":"3-57e239b31e218693f8cf3cf1cf098437"}}, -{"id":"bitly","key":"bitly","value":{"rev":"8-d6bfac8338e223fe62538954d2e9246a"}}, -{"id":"bitly.node","key":"bitly.node","value":{"rev":"3-15329b7a77633e0dae2c720e592420fb"}}, -{"id":"biwascheme","key":"biwascheme","value":{"rev":"3-37a85eed1bd2d4ee85ef1e100e7ebe8f"}}, -{"id":"black","key":"black","value":{"rev":"3-e07ae2273357da5894f4b7cdf1b20560"}}, -{"id":"black_coffee","key":"black_coffee","value":{"rev":"3-c5c764cf550ad3c831a085509f64cdfb"}}, -{"id":"bleach","key":"bleach","value":{"rev":"5-ef3ab7e761a6903eb70da1550a07e53d"}}, -{"id":"blend","key":"blend","value":{"rev":"16-c5dd075b3ede45f91056b4b768b2bfe8"}}, -{"id":"bless","key":"bless","value":{"rev":"29-1b9bc6f17acd144f51a297e4bdccfe0e"}}, -{"id":"blitz","key":"blitz","value":{"rev":"5-8bf6786f6fd7dbc0570ba21f803f35e6"}}, -{"id":"blo","key":"blo","value":{"rev":"5-9e752ea37438ea026e88a7aa7e7a91ba"}}, -{"id":"blog","key":"blog","value":{"rev":"13-80fc7b11d73e23ca7e518d271d1836ee"}}, -{"id":"blogmate","key":"blogmate","value":{"rev":"11-e503081be9290647c841aa8c04eb6e70"}}, -{"id":"bloodmoney","key":"bloodmoney","value":{"rev":"3-859b0235de3a29bf241323a31f9aa730"}}, -{"id":"bloom","key":"bloom","value":{"rev":"15-c609882b29d61a771d7dbf17f43016ad"}}, -{"id":"blue","key":"blue","value":{"rev":"6-e84221f7286dffbfda6f8abc6306064c"}}, -{"id":"bluemold","key":"bluemold","value":{"rev":"11-f48528b642b5d38d7c02b03622117fa7"}}, -{"id":"bn-lang","key":"bn-lang","value":{"rev":"3-266f186334f69448a940081589e82b04"}}, -{"id":"bn-lang-util","key":"bn-lang-util","value":{"rev":"3-0bc44f1d7d3746120dd835bfb685e229"}}, -{"id":"bn-log","key":"bn-log","value":{"rev":"5-db81a8a978071efd24b45e350e8b8954"}}, -{"id":"bn-template","key":"bn-template","value":{"rev":"3-604e77465ab1dc7e17f3b325089651ec"}}, -{"id":"bn-time","key":"bn-time","value":{"rev":"3-9c33587e783a98e1ccea409cacd5bbfb"}}, -{"id":"bn-unit","key":"bn-unit","value":{"rev":"3-5f35e3fd446241f682231bedcf846c0a"}}, -{"id":"bncode","key":"bncode","value":{"rev":"7-915a1759135a9837954c0ead58bf8e5a"}}, -{"id":"bnf","key":"bnf","value":{"rev":"5-4fe80fcafcc7a263f28b8dc62093bd8d"}}, -{"id":"bob","key":"bob","value":{"rev":"9-9ceeb581263c04793a2231b3726ab22b"}}, -{"id":"bogart","key":"bogart","value":{"rev":"30-70aed6f0827d2bd09963afddcad7a34a"}}, -{"id":"boil","key":"boil","value":{"rev":"3-7ab0fc3b831c591fd15711c27a6f5de0"}}, -{"id":"bolt","key":"bolt","value":{"rev":"3-138dfbdea2ab53ca714ca51494d32610"}}, -{"id":"bones","key":"bones","value":{"rev":"70-c74f0845c167cd755250fc7b4b9b40c2"}}, -{"id":"bones-admin","key":"bones-admin","value":{"rev":"11-2cdfe738d66aacff8569712a279c041d"}}, -{"id":"bones-auth","key":"bones-auth","value":{"rev":"35-2224f95bf3521809ce805ff215d2856c"}}, -{"id":"bones-document","key":"bones-document","value":{"rev":"13-95971fed1f47005c282e0fa60498e31c"}}, -{"id":"bonsai","key":"bonsai","value":{"rev":"3-67eb8935492d4ae9182a7ec74c1f36a6"}}, -{"id":"bonzo","key":"bonzo","value":{"rev":"142-7c5680b0f841c2263f06e96eb5237825"}}, -{"id":"bookbu","key":"bookbu","value":{"rev":"3-d9a104bccc67eae8a5dc6f0f4c3ba5fc"}}, -{"id":"bootstrap","key":"bootstrap","value":{"rev":"17-7a62dbe5e3323beb47165f13265f1a96"}}, -{"id":"borschik","key":"borschik","value":{"rev":"7-2570b5d6555a031394a55ff054797cb9"}}, -{"id":"bots","key":"bots","value":{"rev":"9-df43539c13d2996d9e32dff848615e8a"}}, -{"id":"bounce","key":"bounce","value":{"rev":"8-a3e424b2be1379743e9628c726facaa8"}}, -{"id":"bowser","key":"bowser","value":{"rev":"11-23ecc98edf5fde63fda626bb03da597f"}}, -{"id":"box2d","key":"box2d","value":{"rev":"6-5c920e9829764cbf904b9a59474c1672"}}, -{"id":"box2dnode","key":"box2dnode","value":{"rev":"3-12ffe24dcc1478ea0008c60c4ef7118f"}}, -{"id":"boxcar","key":"boxcar","value":{"rev":"5-a9ba953c547585285559d0e05c16e29e"}}, -{"id":"boxer","key":"boxer","value":{"rev":"8-60c49ff8574d5a47616796ad991463ad"}}, -{"id":"bracket-matcher","key":"bracket-matcher","value":{"rev":"27-a01c946c69665629e212a0f702be1b38"}}, -{"id":"brain","key":"brain","value":{"rev":"24-3aba33914e0f823505c69ef01361681b"}}, -{"id":"brainfuck","key":"brainfuck","value":{"rev":"7-adf33477ffe8640c9fdd6a0f8b349953"}}, -{"id":"brains","key":"brains","value":{"rev":"3-d7e7a95ea742f9b42fefb594c67c726a"}}, -{"id":"braintree","key":"braintree","value":{"rev":"14-eabe1c3e4e7cfd1f521f4bfd337611f7"}}, -{"id":"brazilnut","key":"brazilnut","value":{"rev":"3-4163b5a5598a8905c1283db9d260e5cc"}}, -{"id":"brazln","key":"brazln","value":{"rev":"29-15895bb5b193552826c196efe084caf2"}}, -{"id":"bread","key":"bread","value":{"rev":"9-093c9dd71fffb9a5b1c9eb8ac3e2a9b0"}}, -{"id":"breakfast","key":"breakfast","value":{"rev":"3-231e3046ede5e35e272dfab4a379015d"}}, -{"id":"brequire","key":"brequire","value":{"rev":"18-58b386e08541b222238aa12a13119fd9"}}, -{"id":"bricks","key":"bricks","value":{"rev":"15-f72e6c858c5bceb00cc34a16d52a7b59"}}, -{"id":"bricks-analytics","key":"bricks-analytics","value":{"rev":"3-dc2b6d2157c5039a4c36ceda46761b37"}}, -{"id":"bricks-compress","key":"bricks-compress","value":{"rev":"5-580eeecaa30c210502f42c5e184344a3"}}, -{"id":"bricks-rewrite","key":"bricks-rewrite","value":{"rev":"5-7a141aacaa3fd706b97847c6e8f9830a"}}, -{"id":"brokenbin","key":"brokenbin","value":{"rev":"5-bbc7a1c9628ed9f49b6d23e80c242852"}}, -{"id":"broker","key":"broker","value":{"rev":"9-756a097b948756e4bd7609b6f83a0847"}}, -{"id":"browscap","key":"browscap","value":{"rev":"12-c6fed16796d1ad84913f2617c66f0c7b"}}, -{"id":"browser-require","key":"browser-require","value":{"rev":"27-99f61fb3036ebc643282625649cc674f"}}, -{"id":"browserify","key":"browserify","value":{"rev":"163-c307ee153caf2160e5c32abd58898139"}}, -{"id":"browserjet","key":"browserjet","value":{"rev":"3-a386ab8911c410362eb8fceab5a998fe"}}, -{"id":"brt","key":"brt","value":{"rev":"3-b8452659a92039571ff1f877c8f874c7"}}, -{"id":"brunch","key":"brunch","value":{"rev":"113-64ae44857425c5d860d36f38ab3cf797"}}, -{"id":"brushes.js","key":"brushes.js","value":{"rev":"3-e28bd6597b949d84965a788928738f53"}}, -{"id":"bson","key":"bson","value":{"rev":"50-9d9db515dd9d2a4d873d186f324767a5"}}, -{"id":"btc-ex-api","key":"btc-ex-api","value":{"rev":"3-cabbf284cb01af79ee183d8023106762"}}, -{"id":"btoa","key":"btoa","value":{"rev":"3-b4a124b3650a746b8da9c9f93f386bac"}}, -{"id":"btoa-atob","key":"btoa-atob","value":{"rev":"3-baac60a3f04487333cc0364301220a53"}}, -{"id":"bucket","key":"bucket","value":{"rev":"3-5c2da8f67e29de1c29adbf51ad7d7299"}}, -{"id":"buffalo","key":"buffalo","value":{"rev":"9-6c763d939d775a255c65ba8dcf0d5372"}}, -{"id":"bufferjs","key":"bufferjs","value":{"rev":"13-b6e09e35ec822714d3ec485ac2010272"}}, -{"id":"bufferlib","key":"bufferlib","value":{"rev":"16-d48d96815fc7709d6b7d0a8bfc67f053"}}, -{"id":"bufferlist","key":"bufferlist","value":{"rev":"18-6fcedc10ffbca1afdc866e208d2f906a"}}, -{"id":"buffers","key":"buffers","value":{"rev":"11-3a70ec2da112befdc65b8c02772b8c44"}}, -{"id":"bufferstream","key":"bufferstream","value":{"rev":"82-6f82c5affb3906ebbaa0b116baf73c54"}}, -{"id":"buffertools","key":"buffertools","value":{"rev":"20-68f90e224f81fab81295f9079dc3c0fc"}}, -{"id":"buffoon","key":"buffoon","value":{"rev":"9-1cdc1cbced94691e836d4266eed7c143"}}, -{"id":"builder","key":"builder","value":{"rev":"25-b9679e2aaffec1ac6d59fdd259d9590c"}}, -{"id":"buildr","key":"buildr","value":{"rev":"69-cb3a756903a6322c6f9f4dd1c384a607"}}, -{"id":"bumper","key":"bumper","value":{"rev":"3-1e8d17aa3b29815e4069294cc9ce572c"}}, -{"id":"bundle","key":"bundle","value":{"rev":"39-46fde9cd841bce1fbdd92f6a1235c308"}}, -{"id":"bunker","key":"bunker","value":{"rev":"7-ed993a296fa0b8d3c3a7cd759d6f371e"}}, -{"id":"burari","key":"burari","value":{"rev":"11-08b61073d6ad0ef0c7449a574dc8f54b"}}, -{"id":"burrito","key":"burrito","value":{"rev":"38-3f3b109972720647f5412f3a2478859b"}}, -{"id":"busbuddy","key":"busbuddy","value":{"rev":"5-298ec29f6307351cf7a19bceebe957c7"}}, -{"id":"buster","key":"buster","value":{"rev":"9-870a6e9638806adde2f40105900cd4b3"}}, -{"id":"buster-args","key":"buster-args","value":{"rev":"7-9b189c602e437a505625dbf7fef5dead"}}, -{"id":"buster-assertions","key":"buster-assertions","value":{"rev":"5-fa34a8a5e7cf4dd08c2d02c39de3b563"}}, -{"id":"buster-cli","key":"buster-cli","value":{"rev":"5-b1a85006e41dbf74313253c571e63874"}}, -{"id":"buster-client","key":"buster-client","value":{"rev":"5-340637ec63b54bb01c1313a78db01945"}}, -{"id":"buster-configuration","key":"buster-configuration","value":{"rev":"3-a12e7ff172562b513534fc26be00aaed"}}, -{"id":"buster-core","key":"buster-core","value":{"rev":"5-871df160645e6684111a8fd02ff0eee9"}}, -{"id":"buster-evented-logger","key":"buster-evented-logger","value":{"rev":"5-c46681e6275a76723e3bc834555dbe32"}}, -{"id":"buster-format","key":"buster-format","value":{"rev":"5-e193e90436c7f941739b82adad86bdd8"}}, -{"id":"buster-module-loader","key":"buster-module-loader","value":{"rev":"5-4148b61f8b718e6181aa6054664a7c44"}}, -{"id":"buster-multicast","key":"buster-multicast","value":{"rev":"3-79480b5be761d243b274cb1e77375afc"}}, -{"id":"buster-promise","key":"buster-promise","value":{"rev":"5-b50030957fbd70e65576faa9c541b739"}}, -{"id":"buster-script-loader","key":"buster-script-loader","value":{"rev":"3-85af28b5bc4e647f27514fede19a144e"}}, -{"id":"buster-server","key":"buster-server","value":{"rev":"7-57b8b43047504818322018d2bbfee1f1"}}, -{"id":"buster-static","key":"buster-static","value":{"rev":"3-018c89d1524f7823934087f18dab9047"}}, -{"id":"buster-terminal","key":"buster-terminal","value":{"rev":"5-2c54c30ffa4a2d4b061e4c38e6b9b0e7"}}, -{"id":"buster-test","key":"buster-test","value":{"rev":"5-f7ee9c9f3b379e0ad5aa03d07581ad6f"}}, -{"id":"buster-test-cli","key":"buster-test-cli","value":{"rev":"9-c207974d20e95029cad5fa4c9435d152"}}, -{"id":"buster-user-agent-parser","key":"buster-user-agent-parser","value":{"rev":"5-7883085a203b3047b28ad08361219d1d"}}, -{"id":"buster-util","key":"buster-util","value":{"rev":"3-81977275a9c467ad79bb7e3f2b1caaa8"}}, -{"id":"butler","key":"butler","value":{"rev":"7-c964c4d213da6b0de2492ee57514d0f8"}}, -{"id":"byline","key":"byline","value":{"rev":"9-0b236ed5986c20136c0d581a244d52ac"}}, -{"id":"bz","key":"bz","value":{"rev":"7-d2a463b259c4e09dc9a79ddee9575ca0"}}, -{"id":"c2dm","key":"c2dm","value":{"rev":"11-a1e6a6643506bed3e1443155706aa5fe"}}, -{"id":"cabin","key":"cabin","value":{"rev":"7-df81ef56f0bb085d381c36600496dc57"}}, -{"id":"caboose","key":"caboose","value":{"rev":"49-7226441f91b63fb5c3ac240bd99d142a"}}, -{"id":"caboose-authentication","key":"caboose-authentication","value":{"rev":"3-9c71a9d7315fdea7d5f52fe52ecef118"}}, -{"id":"caboose-model","key":"caboose-model","value":{"rev":"3-967426d5acb8bb70e133f0052075dc1b"}}, -{"id":"cache2file","key":"cache2file","value":{"rev":"17-ac9caec611a38e1752d91f8cc80cfb04"}}, -{"id":"caching","key":"caching","value":{"rev":"11-06041aaaa46b63ed36843685cac63245"}}, -{"id":"calais","key":"calais","value":{"rev":"11-f8ac2064ca45dd5b7db7ea099cd61dfb"}}, -{"id":"calc","key":"calc","value":{"rev":"3-bead9c5b0bee34e44e7c04aa2bf9cd68"}}, -{"id":"calipso","key":"calipso","value":{"rev":"87-b562676045a66a3ec702591c67a9635e"}}, -{"id":"caman","key":"caman","value":{"rev":"15-4b97c73f0ac101c68335de2937483893"}}, -{"id":"camanjs","key":"camanjs","value":{"rev":"3-2856bbdf7a1d454929b4a80b119e3da0"}}, -{"id":"camelot","key":"camelot","value":{"rev":"7-8e257c5213861ecbd229ee737a3a8bb4"}}, -{"id":"campusbooks","key":"campusbooks","value":{"rev":"18-489be33c6ac2d6cbcf93355f2b129389"}}, -{"id":"canvas","key":"canvas","value":{"rev":"78-27dbf5b6e0a25ba5886d485fd897d701"}}, -{"id":"canvasutil","key":"canvasutil","value":{"rev":"7-0b87a370d673886efb7763aaf500b744"}}, -{"id":"capoo","key":"capoo","value":{"rev":"9-136a3ddf489228d5f4b504b1da619447"}}, -{"id":"capsule","key":"capsule","value":{"rev":"19-ad3c9ba0af71a84228e6dd360017f379"}}, -{"id":"capt","key":"capt","value":{"rev":"13-0805d789000fb2e361103a5e62379196"}}, -{"id":"carena","key":"carena","value":{"rev":"10-d38e8c336a0dbb8091514f638b22b96b"}}, -{"id":"carrier","key":"carrier","value":{"rev":"20-b2b4a0560d40eeac617000e9e22a9e9d"}}, -{"id":"cart","key":"cart","value":{"rev":"12-493e79c6fa0b099626e90da79a69f1e5"}}, -{"id":"carto","key":"carto","value":{"rev":"45-8eab07e2fac57396dd62af5805062387"}}, -{"id":"caruso","key":"caruso","value":{"rev":"5-d58e22212b0bcebbab4b42adc68799aa"}}, -{"id":"cas","key":"cas","value":{"rev":"3-82a93160eb9add99bde1599e55d18fd8"}}, -{"id":"cas-auth","key":"cas-auth","value":{"rev":"3-b02f77c198050b99f1df18f637e77c10"}}, -{"id":"cas-client","key":"cas-client","value":{"rev":"3-ca69e32a3053bc680d1dddc57271483b"}}, -{"id":"cashew","key":"cashew","value":{"rev":"7-9e81cde34263adad6949875c4b33ee99"}}, -{"id":"cassandra","key":"cassandra","value":{"rev":"3-8617ef73fdc73d02ecec74d31f98e463"}}, -{"id":"cassandra-client","key":"cassandra-client","value":{"rev":"19-aa1aef5d203be5b0eac678284f1a979f"}}, -{"id":"casset","key":"casset","value":{"rev":"3-2052c7feb5b89c77aaa279c8b50126ce"}}, -{"id":"castaneum","key":"castaneum","value":{"rev":"26-4dc55ba2482cca4230b4bc77ecb5b70d"}}, -{"id":"cat","key":"cat","value":{"rev":"3-75f20119b363b85c1a8433e26b86c943"}}, -{"id":"catchjs","key":"catchjs","value":{"rev":"3-ffda7eff7613de37f629dc7a831ffda1"}}, -{"id":"caterpillar","key":"caterpillar","value":{"rev":"5-bc003e3af33240e67b4c3042f308b7da"}}, -{"id":"causeeffect","key":"causeeffect","value":{"rev":"9-7e4e25bff656170c97cb0cce1b2ab6ca"}}, -{"id":"cayenne","key":"cayenne","value":{"rev":"5-2797f561467b41cc45804e5498917800"}}, -{"id":"ccn4bnode","key":"ccn4bnode","value":{"rev":"17-96f55189e5c98f0fa8200e403a04eb39"}}, -{"id":"ccnq3_config","key":"ccnq3_config","value":{"rev":"21-40345771769a9cadff4af9113b8124c2"}}, -{"id":"ccnq3_logger","key":"ccnq3_logger","value":{"rev":"5-4aa168dc24425938a29cf9ac456158d7"}}, -{"id":"ccnq3_portal","key":"ccnq3_portal","value":{"rev":"17-84e629ec1eaba1722327ccb9dddb05cf"}}, -{"id":"ccnq3_roles","key":"ccnq3_roles","value":{"rev":"43-97de74b08b1af103da8905533a84b749"}}, -{"id":"ccss","key":"ccss","value":{"rev":"11-b9beb506410ea81581ba4c7dfe9b2a7d"}}, -{"id":"cdb","key":"cdb","value":{"rev":"13-d7b6f609f069dc738912b405aac558ab"}}, -{"id":"cdb_changes","key":"cdb_changes","value":{"rev":"13-1dc99b096cb91c276332b651396789e8"}}, -{"id":"celeri","key":"celeri","value":{"rev":"17-b19294619ef6c2056f3bf6641e8945c2"}}, -{"id":"celery","key":"celery","value":{"rev":"5-bdfccd483cf30c4c10c5ec0963de1248"}}, -{"id":"cempl8","key":"cempl8","value":{"rev":"21-bb9547b78a1548fe11dc1d5b816b6da1"}}, -{"id":"cfg","key":"cfg","value":{"rev":"3-85c7651bb8f16b057e60a46946eb95af"}}, -{"id":"cgi","key":"cgi","value":{"rev":"17-7ceac458c7f141d4fbbf05d267a72aa8"}}, -{"id":"chain","key":"chain","value":{"rev":"9-b0f175c5ad0173bcb7e11e58b02a7394"}}, -{"id":"chain-gang","key":"chain-gang","value":{"rev":"22-b0e6841a344b65530ea2a83a038e5aa6"}}, -{"id":"chainer","key":"chainer","value":{"rev":"15-8c6a565035225a1dcca0177e92ccf42d"}}, -{"id":"chainify","key":"chainify","value":{"rev":"3-0926790f18a0016a9943cfb4830e0187"}}, -{"id":"chains","key":"chains","value":{"rev":"5-d9e1ac38056e2638e38d9a7c415929c6"}}, -{"id":"chainsaw","key":"chainsaw","value":{"rev":"24-82e078efbbc59f798d29a0259481012e"}}, -{"id":"changelog","key":"changelog","value":{"rev":"27-317e473de0bf596b273a9dadecea126d"}}, -{"id":"channel-server","key":"channel-server","value":{"rev":"3-3c882f7e61686e8a124b5198c638a18e"}}, -{"id":"channels","key":"channels","value":{"rev":"5-0b532f054886d9094cb98493ee0a7a16"}}, -{"id":"chaos","key":"chaos","value":{"rev":"40-7caa4459d398f5ec30fea91d087f0d71"}}, -{"id":"chard","key":"chard","value":{"rev":"3-f2de35f7a390ea86ac0eb78bf720d0de"}}, -{"id":"charenc","key":"charenc","value":{"rev":"3-092036302311a8f5779b800c98170b5b"}}, -{"id":"chargify","key":"chargify","value":{"rev":"5-e3f29f2816b04c26ca047d345928e2c1"}}, -{"id":"charm","key":"charm","value":{"rev":"13-3e7e7b5babc1efc472e3ce62eec2c0c7"}}, -{"id":"chat-server","key":"chat-server","value":{"rev":"7-c73b785372474e083fb8f3e9690761da"}}, -{"id":"chatroom","key":"chatroom","value":{"rev":"3-f4fa8330b7eb277d11407f968bffb6a2"}}, -{"id":"chatspire","key":"chatspire","value":{"rev":"3-081e167e3f7c1982ab1b7fc3679cb87c"}}, -{"id":"checkip","key":"checkip","value":{"rev":"3-b31d58a160a4a3fe2f14cfbf2217949e"}}, -{"id":"cheddar-getter","key":"cheddar-getter","value":{"rev":"3-d675ec138ea704df127fabab6a52a8dc"}}, -{"id":"chess","key":"chess","value":{"rev":"3-8b15268c8b0fb500dcbc83b259e7fb88"}}, -{"id":"chessathome-worker","key":"chessathome-worker","value":{"rev":"7-cdfd411554c35ba7a52e54f7744bed35"}}, -{"id":"chirkut.js","key":"chirkut.js","value":{"rev":"3-c0e515eee0f719c5261a43e692a3585c"}}, -{"id":"chiron","key":"chiron","value":{"rev":"6-ccb575e432c1c1981fc34b4e27329c85"}}, -{"id":"chopper","key":"chopper","value":{"rev":"5-168681c58c2a50796676dea73dc5398b"}}, -{"id":"choreographer","key":"choreographer","value":{"rev":"14-b0159823becdf0b4552967293968b2a8"}}, -{"id":"chromic","key":"chromic","value":{"rev":"3-c4ca0bb1f951db96c727241092afa9cd"}}, -{"id":"chrono","key":"chrono","value":{"rev":"9-6399d715df1a2f4696f89f2ab5d4d83a"}}, -{"id":"chuck","key":"chuck","value":{"rev":"3-71f2ee071d4b6fb2af3b8b828c51d8ab"}}, -{"id":"chunkedstream","key":"chunkedstream","value":{"rev":"3-b145ed7d1abd94ac44343413e4f823e7"}}, -{"id":"cider","key":"cider","value":{"rev":"10-dc20cd3eac9470e96911dcf75ac6492b"}}, -{"id":"cinch","key":"cinch","value":{"rev":"5-086af7f72caefb57284e4101cbe3c905"}}, -{"id":"cipherpipe","key":"cipherpipe","value":{"rev":"5-0b5590f808415a7297de6d45947d911f"}}, -{"id":"cjson","key":"cjson","value":{"rev":"25-02e3d327b48e77dc0f9e070ce9454ac2"}}, -{"id":"ck","key":"ck","value":{"rev":"3-f482385f5392a49353d8ba5eb9c7afef"}}, -{"id":"ckup","key":"ckup","value":{"rev":"26-90a76ec0cdf951dc2ea6058098407ee2"}}, -{"id":"class","key":"class","value":{"rev":"6-e2805f7d87586a66fb5fd170cf74b3b0"}}, -{"id":"class-42","key":"class-42","value":{"rev":"3-14c988567a2c78a857f15c9661bd6430"}}, -{"id":"class-js","key":"class-js","value":{"rev":"5-792fd04288a651dad87bc47eb91c2042"}}, -{"id":"classify","key":"classify","value":{"rev":"23-35eb336c350446f5ed49069df151dbb7"}}, -{"id":"clean-css","key":"clean-css","value":{"rev":"13-e30ea1007f6c5bb49e07276228b8a960"}}, -{"id":"clearInterval","key":"clearInterval","value":{"rev":"3-a49fa235d3dc14d28a3d15f8db291986"}}, -{"id":"clearTimeout","key":"clearTimeout","value":{"rev":"3-e838bd25adc825112922913c1a35b934"}}, -{"id":"cli","key":"cli","value":{"rev":"65-9e79c37c12d21b9b9114093de0773c54"}}, -{"id":"cli-color","key":"cli-color","value":{"rev":"9-0a8e775e713b1351f6a6648748dd16ec"}}, -{"id":"cli-table","key":"cli-table","value":{"rev":"3-9e447a8bb392fb7d9c534445a650e328"}}, -{"id":"clickatell","key":"clickatell","value":{"rev":"3-31f1a66d08a789976919df0c9280de88"}}, -{"id":"clicktime","key":"clicktime","value":{"rev":"9-697a99f5f704bfebbb454df47c9c472a"}}, -{"id":"clientexpress","key":"clientexpress","value":{"rev":"3-9b07041cd7b0c3967c4625ac74c9b50c"}}, -{"id":"cliff","key":"cliff","value":{"rev":"15-ef9ef25dbad08c0e346388522d94c5c3"}}, -{"id":"clip","key":"clip","value":{"rev":"21-c3936e566feebfe0beddb0bbb686c00d"}}, -{"id":"clock","key":"clock","value":{"rev":"5-19bc51841d41408b4446c0862487dc5e"}}, -{"id":"clog","key":"clog","value":{"rev":"5-1610fe2c0f435d2694a1707ee15cd11e"}}, -{"id":"clone","key":"clone","value":{"rev":"11-099d07f38381b54902c4cf5b93671ed4"}}, -{"id":"closure","key":"closure","value":{"rev":"7-9c2ac6b6ec9f14d12d10bfbfad58ec14"}}, -{"id":"closure-compiler","key":"closure-compiler","value":{"rev":"8-b3d2f9e3287dd33094a35d797d6beaf2"}}, -{"id":"cloud","key":"cloud","value":{"rev":"27-407c7aa77d3d4a6cc903d18b383de8b8"}}, -{"id":"cloud9","key":"cloud9","value":{"rev":"71-4af631e3fa2eb28058cb0d18ef3a6a3e"}}, -{"id":"cloudcontrol","key":"cloudcontrol","value":{"rev":"15-2df57385aa9bd92f7ed81e6892e23696"}}, -{"id":"cloudfiles","key":"cloudfiles","value":{"rev":"30-01f84ebda1d8f151b3e467590329960c"}}, -{"id":"cloudfoundry","key":"cloudfoundry","value":{"rev":"3-66fafd3d6b1353b1699d35e634686ab6"}}, -{"id":"cloudmailin","key":"cloudmailin","value":{"rev":"3-a4e3e4d457f5a18261bb8df145cfb418"}}, -{"id":"cloudnode-cli","key":"cloudnode-cli","value":{"rev":"17-3a80f7855ce618f7aee68bd693ed485b"}}, -{"id":"cloudservers","key":"cloudservers","value":{"rev":"42-6bc34f7e34f84a24078b43a609e96c59"}}, -{"id":"clucene","key":"clucene","value":{"rev":"37-3d613f12a857b8fe22fbf420bcca0dc3"}}, -{"id":"cluster","key":"cluster","value":{"rev":"83-63fb7a468d95502f94ea45208ba0a890"}}, -{"id":"cluster-isolatable","key":"cluster-isolatable","value":{"rev":"5-6af883cea9ab1c90bb126d8b3be2d156"}}, -{"id":"cluster-live","key":"cluster-live","value":{"rev":"7-549d19e9727f460c7de48f93b92e9bb3"}}, -{"id":"cluster-log","key":"cluster-log","value":{"rev":"7-9c47854df8ec911e679743185668a5f7"}}, -{"id":"cluster-loggly","key":"cluster-loggly","value":{"rev":"3-e1f7e331282d7b8317ce55e0fce7f934"}}, -{"id":"cluster-mail","key":"cluster-mail","value":{"rev":"9-dc18c5c1b2b265f3d531b92467b6cc35"}}, -{"id":"cluster-responsetimes","key":"cluster-responsetimes","value":{"rev":"3-c9e16daee15eb84910493264e973275c"}}, -{"id":"cluster-socket.io","key":"cluster-socket.io","value":{"rev":"7-29032f0b42575e9fe183a0af92191132"}}, -{"id":"cluster.exception","key":"cluster.exception","value":{"rev":"3-10856526e2f61e3000d62b12abd750e3"}}, -{"id":"clutch","key":"clutch","value":{"rev":"8-50283f7263c430cdd1d293c033571012"}}, -{"id":"cm1-route","key":"cm1-route","value":{"rev":"13-40e72b5a4277b500c98c966bcd2a8a86"}}, -{"id":"cmd","key":"cmd","value":{"rev":"9-9168fcd96fb1ba9449050162023f3570"}}, -{"id":"cmdopt","key":"cmdopt","value":{"rev":"3-85677533e299bf195e78942929cf9839"}}, -{"id":"cmp","key":"cmp","value":{"rev":"5-b10f873b78eb64e406fe55bd001ae0fa"}}, -{"id":"cmudict","key":"cmudict","value":{"rev":"3-cd028380bba917d5ed2be7a8d3b3b0b7"}}, -{"id":"cnlogger","key":"cnlogger","value":{"rev":"9-dbe7e0e50d25ca5ae939fe999c3c562b"}}, -{"id":"coa","key":"coa","value":{"rev":"11-ff4e634fbebd3f80b9461ebe58b3f64e"}}, -{"id":"cobra","key":"cobra","value":{"rev":"5-a3e0963830d350f4a7e91b438caf9117"}}, -{"id":"cockpit","key":"cockpit","value":{"rev":"3-1757b37245ee990999e4456b9a6b963e"}}, -{"id":"coco","key":"coco","value":{"rev":"104-eabc4d7096295c2156144a7581d89b35"}}, -{"id":"cocos2d","key":"cocos2d","value":{"rev":"19-88a5c75ceb6e7667665c056d174f5f1a"}}, -{"id":"codem-transcode","key":"codem-transcode","value":{"rev":"9-1faa2657d53271ccc44cce27de723e99"}}, -{"id":"codepad","key":"codepad","value":{"rev":"5-094ddce74dc057dc0a4d423d6d2fbc3a"}}, -{"id":"codetube","key":"codetube","value":{"rev":"3-819794145f199330e724864db70da53b"}}, -{"id":"coerce","key":"coerce","value":{"rev":"3-e7d392d497c0b8491b89fcbbd1a5a89f"}}, -{"id":"coffee-conf","key":"coffee-conf","value":{"rev":"3-883bc4767d70810ece2fdf1ccae883de"}}, -{"id":"coffee-css","key":"coffee-css","value":{"rev":"11-66ca197173751389b24945f020f198f9"}}, -{"id":"coffee-echonest","key":"coffee-echonest","value":{"rev":"3-3cd0e2b77103e334eccf6cf4168f39b2"}}, -{"id":"coffee-machine","key":"coffee-machine","value":{"rev":"9-02deb4d27fd5d56002ead122e9bb213e"}}, -{"id":"coffee-new","key":"coffee-new","value":{"rev":"67-0664b0f289030c38d113070fd26f4f71"}}, -{"id":"coffee-resque","key":"coffee-resque","value":{"rev":"22-5b022809317d3a873be900f1a697c5eb"}}, -{"id":"coffee-resque-retry","key":"coffee-resque-retry","value":{"rev":"29-1fb64819a4a21ebb4d774d9d4108e419"}}, -{"id":"coffee-revup","key":"coffee-revup","value":{"rev":"3-23aafa258bcdcf2bb68d143d61383551"}}, -{"id":"coffee-script","key":"coffee-script","value":{"rev":"60-a6c3739655f43953bd86283776586b95"}}, -{"id":"coffee-son","key":"coffee-son","value":{"rev":"3-84a81e7e24c8cb23293940fc1b87adfe"}}, -{"id":"coffee-toaster","key":"coffee-toaster","value":{"rev":"17-d43d7276c08b526c229c78b7d5acd6cc"}}, -{"id":"coffee-watcher","key":"coffee-watcher","value":{"rev":"3-3d861a748f0928c789cbdb8ff62b6091"}}, -{"id":"coffee-world","key":"coffee-world","value":{"rev":"15-46dc320f94fa64c39e183224ec59f47a"}}, -{"id":"coffee4clients","key":"coffee4clients","value":{"rev":"15-58fba7dd10bced0411cfe546b9336145"}}, -{"id":"coffeeapp","key":"coffeeapp","value":{"rev":"48-bece0a26b78afc18cd37d577f90369d9"}}, -{"id":"coffeebot","key":"coffeebot","value":{"rev":"3-a9007053f25a4c13b324f0ac7066803e"}}, -{"id":"coffeedoc","key":"coffeedoc","value":{"rev":"21-a955faafafd10375baf3101ad2c142d0"}}, -{"id":"coffeegrinder","key":"coffeegrinder","value":{"rev":"9-6e725aad7fd39cd38f41c743ef8a7563"}}, -{"id":"coffeekup","key":"coffeekup","value":{"rev":"35-9b1eecdb7b13d3e75cdc7b1045cf910a"}}, -{"id":"coffeemaker","key":"coffeemaker","value":{"rev":"9-4c5e665aa2a5b4efa2b7d077d0a4f9c1"}}, -{"id":"coffeemate","key":"coffeemate","value":{"rev":"71-03d0221fb495f2dc6732009884027b47"}}, -{"id":"coffeepack","key":"coffeepack","value":{"rev":"3-bbf0e27cb4865392164e7ab33f131d58"}}, -{"id":"coffeeq","key":"coffeeq","value":{"rev":"9-4e38e9742a0b9d7b308565729fbfd123"}}, -{"id":"coffeescript-growl","key":"coffeescript-growl","value":{"rev":"7-2bc1f93c4aad5fa8fb4bcfd1b3ecc279"}}, -{"id":"coffeescript-notify","key":"coffeescript-notify","value":{"rev":"3-8aeb31f8e892d3fefa421ff28a1b3de9"}}, -{"id":"collectd","key":"collectd","value":{"rev":"5-3d4c84b0363aa9c078157d82695557a1"}}, -{"id":"collection","key":"collection","value":{"rev":"3-a47e1fe91b9eebb3e75954e350ec2ca3"}}, -{"id":"collection_functions","key":"collection_functions","value":{"rev":"3-7366c721008062373ec924a409415189"}}, -{"id":"collections","key":"collections","value":{"rev":"3-0237a40d08a0da36c2dd01ce73a89bb2"}}, -{"id":"color","key":"color","value":{"rev":"15-4898b2cd9744feb3249ba10828c186f8"}}, -{"id":"color-convert","key":"color-convert","value":{"rev":"7-2ccb47c7f07a47286d9a2f39383d28f0"}}, -{"id":"color-string","key":"color-string","value":{"rev":"5-9a6336f420e001e301a15b88b0103696"}}, -{"id":"colorize","key":"colorize","value":{"rev":"3-ff380385edacc0c46e4c7b5c05302576"}}, -{"id":"colors","key":"colors","value":{"rev":"8-7c7fb9c5af038c978f0868c7706fe145"}}, -{"id":"colour-extractor","key":"colour-extractor","value":{"rev":"3-62e96a84c6adf23f438b5aac76c7b257"}}, -{"id":"coloured","key":"coloured","value":{"rev":"8-c5295f2d5a8fc08e93d180a4e64f8d38"}}, -{"id":"coloured-log","key":"coloured-log","value":{"rev":"14-8627a3625959443acad71e2c23dfc582"}}, -{"id":"comb","key":"comb","value":{"rev":"5-7f201b621ae9a890c7f5a31867eba3e9"}}, -{"id":"combine","key":"combine","value":{"rev":"14-bed33cd4389a2e4bb826a0516c6ae307"}}, -{"id":"combined-stream","key":"combined-stream","value":{"rev":"13-678f560200ac2835b9026e9e2b955cb0"}}, -{"id":"combiner","key":"combiner","value":{"rev":"3-5e7f133c8c14958eaf9e92bd79ae8ee1"}}, -{"id":"combohandler","key":"combohandler","value":{"rev":"7-d7e1a402f0066caa6756a8866de81dd9"}}, -{"id":"combyne","key":"combyne","value":{"rev":"23-05ebee9666a769e32600bc5548d10ce9"}}, -{"id":"comfy","key":"comfy","value":{"rev":"5-8bfe55bc16611dfe51a184b8f3eb31c1"}}, -{"id":"command-parser","key":"command-parser","value":{"rev":"5-8a5c3ed6dfa0fa55cc71b32cf52332fc"}}, -{"id":"commander","key":"commander","value":{"rev":"11-9dd16c00844d464bf66c101a57075401"}}, -{"id":"commando","key":"commando","value":{"rev":"3-e159f1890f3771dfd6e04f4d984f26f3"}}, -{"id":"common","key":"common","value":{"rev":"16-94eafcf104c0c7d1090e668ddcc12a5f"}}, -{"id":"common-exception","key":"common-exception","value":{"rev":"7-bd46358014299da814691c835548ef21"}}, -{"id":"common-node","key":"common-node","value":{"rev":"5-b2c4bef0e7022d5d453661a9c43497a8"}}, -{"id":"common-pool","key":"common-pool","value":{"rev":"5-c495fa945361ba4fdfb2ee8733d791b4"}}, -{"id":"common-utils","key":"common-utils","value":{"rev":"3-e5a047f118fc304281d2bc5e9ab18e62"}}, -{"id":"commondir","key":"commondir","value":{"rev":"3-ea49874d12eeb9adf28ca28989dfb5a9"}}, -{"id":"commonjs","key":"commonjs","value":{"rev":"6-39fcd0de1ec265890cf063effd0672e3"}}, -{"id":"commonjs-utils","key":"commonjs-utils","value":{"rev":"6-c0266a91dbd0a43effb7d30da5d9f35c"}}, -{"id":"commonkv","key":"commonkv","value":{"rev":"3-90b2fe4c79e263b044303706c4d5485a"}}, -{"id":"commons","key":"commons","value":{"rev":"6-0ecb654aa2bd17cf9519f86d354f8a50"}}, -{"id":"complete","key":"complete","value":{"rev":"7-acde8cba7677747d09c3d53ff165754e"}}, -{"id":"complex-search","key":"complex-search","value":{"rev":"5-c80b2c7f049f333bde89435f3de497ca"}}, -{"id":"compose","key":"compose","value":{"rev":"1-cf8a97d6ead3bef056d85daec5d36c70"}}, -{"id":"composer","key":"composer","value":{"rev":"6-1deb43725051f845efd4a7c8e68aa6d6"}}, -{"id":"compress","key":"compress","value":{"rev":"17-f0aacce1356f807b51e083490fb353bd"}}, -{"id":"compress-buffer","key":"compress-buffer","value":{"rev":"12-2886014c7f2541f4ddff9f0f55f4c171"}}, -{"id":"compress-ds","key":"compress-ds","value":{"rev":"5-9e4c6931edf104443353594ef50aa127"}}, -{"id":"compressor","key":"compressor","value":{"rev":"3-ee8ad155a98e1483d899ebcf82d5fb63"}}, -{"id":"concrete","key":"concrete","value":{"rev":"5-bc70bbffb7c6fe9e8c399db578fb3bae"}}, -{"id":"condo","key":"condo","value":{"rev":"9-5f03d58ee7dc29465defa3758f3b138a"}}, -{"id":"conductor","key":"conductor","value":{"rev":"8-1878afadcda7398063de6286c2d2c5c1"}}, -{"id":"conf","key":"conf","value":{"rev":"11-dcf0f6a93827d1b143cb1d0858f2be4a"}}, -{"id":"config","key":"config","value":{"rev":"37-2b741a1e6951a74b7f1de0d0547418a0"}}, -{"id":"config-loader","key":"config-loader","value":{"rev":"3-708cc96d1206de46fb450eb57ca07b0d"}}, -{"id":"configurator","key":"configurator","value":{"rev":"5-b31ad9731741d19f28241f6af5b41fee"}}, -{"id":"confu","key":"confu","value":{"rev":"7-c46f82c4aa9a17db6530b00669461eaf"}}, -{"id":"confy","key":"confy","value":{"rev":"3-893b33743830a0318dc99b1788aa92ee"}}, -{"id":"connect","key":"connect","value":{"rev":"151-8b5617fc6ece6c125b5f628936159bd6"}}, -{"id":"connect-access-control","key":"connect-access-control","value":{"rev":"3-ccf5fb09533d41eb0b564eb1caecf910"}}, -{"id":"connect-airbrake","key":"connect-airbrake","value":{"rev":"5-19db5e5828977540814d09f9eb7f028f"}}, -{"id":"connect-analytics","key":"connect-analytics","value":{"rev":"3-6f71c8b08ed9f5762c1a4425c196fb2a"}}, -{"id":"connect-app-cache","key":"connect-app-cache","value":{"rev":"27-3e69452dfe51cc907f8b188aede1bda8"}}, -{"id":"connect-assetmanager","key":"connect-assetmanager","value":{"rev":"46-f2a8834d2749e0c069cee06244e7501c"}}, -{"id":"connect-assetmanager-handlers","key":"connect-assetmanager-handlers","value":{"rev":"38-8b93821fcf46f20bbad4319fb39302c1"}}, -{"id":"connect-assets","key":"connect-assets","value":{"rev":"33-7ec2940217e29a9514d20cfd49af10f5"}}, -{"id":"connect-auth","key":"connect-auth","value":{"rev":"36-5640e82f3e2773e44ce47b0687436305"}}, -{"id":"connect-cache","key":"connect-cache","value":{"rev":"11-efe1f0ab00c181b1a4dece446ef13a90"}}, -{"id":"connect-coffee","key":"connect-coffee","value":{"rev":"3-3d4ebcfe083c9e5a5d587090f1bb4d65"}}, -{"id":"connect-conneg","key":"connect-conneg","value":{"rev":"3-bc3e04e65cf1f5233a38cc846e9a4a75"}}, -{"id":"connect-cookie-session","key":"connect-cookie-session","value":{"rev":"3-f48ca73aa1ce1111a2c962d219b59c1a"}}, -{"id":"connect-cors","key":"connect-cors","value":{"rev":"10-5bc9e3759671a0157fdc307872d38844"}}, -{"id":"connect-couchdb","key":"connect-couchdb","value":{"rev":"9-9adb6d24c7fb6de58bafe6d06fb4a230"}}, -{"id":"connect-cradle","key":"connect-cradle","value":{"rev":"5-0e5e32e00a9b98eff1ab010173d26ffb"}}, -{"id":"connect-docco","key":"connect-docco","value":{"rev":"9-c8e379f9a89db53f8921895ac4e87ed6"}}, -{"id":"connect-dojo","key":"connect-dojo","value":{"rev":"17-f323c634536b9b948ad9607f4ca0847f"}}, -{"id":"connect-esi","key":"connect-esi","value":{"rev":"45-01de7506d405856586ea77cb14022192"}}, -{"id":"connect-facebook","key":"connect-facebook","value":{"rev":"3-bf77eb01c0476e607b25bc9d93416b7e"}}, -{"id":"connect-force-domain","key":"connect-force-domain","value":{"rev":"5-a65755f93aaea8a21c7ce7dd4734dca0"}}, -{"id":"connect-form","key":"connect-form","value":{"rev":"16-fa786af79f062a05ecdf3e7cf48317e2"}}, -{"id":"connect-geoip","key":"connect-geoip","value":{"rev":"3-d87f93bcac58aa7904886a8fb6c45899"}}, -{"id":"connect-googleapps","key":"connect-googleapps","value":{"rev":"13-49c5c6c6724b21eea9a8eaae2165978d"}}, -{"id":"connect-gzip","key":"connect-gzip","value":{"rev":"7-2e1d4bb887c1ddda278fc8465ee5645b"}}, -{"id":"connect-heroku-redis","key":"connect-heroku-redis","value":{"rev":"13-92da2be67451e5f55f6fbe3672c86dc4"}}, -{"id":"connect-i18n","key":"connect-i18n","value":{"rev":"8-09d47d7c220770fc80d1b6fd87ffcd07"}}, -{"id":"connect-identity","key":"connect-identity","value":{"rev":"8-8eb9e21bbf80045e0243720955d6070f"}}, -{"id":"connect-image-resizer","key":"connect-image-resizer","value":{"rev":"7-5f82563f87145f3cc06086afe3a14a62"}}, -{"id":"connect-index","key":"connect-index","value":{"rev":"3-8b8373334079eb26c8735b39483889a0"}}, -{"id":"connect-jsonp","key":"connect-jsonp","value":{"rev":"16-9e80af455e490710f06039d3c0025840"}}, -{"id":"connect-jsonrpc","key":"connect-jsonrpc","value":{"rev":"6-6556800f0bef6ae5eb10496d751048e7"}}, -{"id":"connect-kyoto","key":"connect-kyoto","value":{"rev":"5-8f6a9e9b24d1a71c786645402f509645"}}, -{"id":"connect-less","key":"connect-less","value":{"rev":"3-461ed9a80b462b978a81d5bcee6f3665"}}, -{"id":"connect-load-balance","key":"connect-load-balance","value":{"rev":"3-e74bff5fb47d1490c05a9cc4339af347"}}, -{"id":"connect-memcached","key":"connect-memcached","value":{"rev":"3-5fc92b7f9fb5bcfb364a27e6f052bcc7"}}, -{"id":"connect-mongo","key":"connect-mongo","value":{"rev":"13-c3869bc7337b2f1ee6b9b3364993f321"}}, -{"id":"connect-mongodb","key":"connect-mongodb","value":{"rev":"30-30cb932839ce16e4e496f5a33fdd720a"}}, -{"id":"connect-mongoose","key":"connect-mongoose","value":{"rev":"3-48a5b329e4cfa885442d43bbd1d0db46"}}, -{"id":"connect-mongoose-session","key":"connect-mongoose-session","value":{"rev":"3-6692b8e1225d5cd6a2daabd61cecb1cd"}}, -{"id":"connect-mysql-session","key":"connect-mysql-session","value":{"rev":"9-930abd0279ef7f447e75c95b3e71be12"}}, -{"id":"connect-no-www","key":"connect-no-www","value":{"rev":"3-33bed7417bc8a5e8efc74ce132c33158"}}, -{"id":"connect-notifo","key":"connect-notifo","value":{"rev":"3-4681f8c5a7dfd35aee9634e809c41804"}}, -{"id":"connect-parameter-router","key":"connect-parameter-router","value":{"rev":"3-f435f06d556c208d43ef05c64bcddceb"}}, -{"id":"connect-pg","key":"connect-pg","value":{"rev":"11-d84c53d8f1c24adfc266e7a031dddf0d"}}, -{"id":"connect-proxy","key":"connect-proxy","value":{"rev":"7-a691ff57a9affeab47c54d17dbe613cb"}}, -{"id":"connect-queryparser","key":"connect-queryparser","value":{"rev":"3-bb35a7f3f75297a63bf942a63b842698"}}, -{"id":"connect-redis","key":"connect-redis","value":{"rev":"40-4faa12962b14da49380de2bb183176f9"}}, -{"id":"connect-restreamer","key":"connect-restreamer","value":{"rev":"3-08e637ca685cc63b2b4f9722c763c105"}}, -{"id":"connect-riak","key":"connect-riak","value":{"rev":"5-3268c29a54e430a3f8adb33570afafdb"}}, -{"id":"connect-rpx","key":"connect-rpx","value":{"rev":"28-acc7bb4200c1d30f359151f0a715162c"}}, -{"id":"connect-security","key":"connect-security","value":{"rev":"16-fecd20f486a8ea4d557119af5b5a2960"}}, -{"id":"connect-select","key":"connect-select","value":{"rev":"5-5ca28ec800419e4cb3e97395a6b96153"}}, -{"id":"connect-session-mongo","key":"connect-session-mongo","value":{"rev":"9-9e6a26dfbb9c13a9d6f4060a1895730a"}}, -{"id":"connect-session-redis-store","key":"connect-session-redis-store","value":{"rev":"8-fecfed6e17476eaada5cfe7740d43893"}}, -{"id":"connect-sessionvoc","key":"connect-sessionvoc","value":{"rev":"13-57b6e6ea2158e3b7136054839662ea3d"}}, -{"id":"connect-spdy","key":"connect-spdy","value":{"rev":"11-f9eefd7303295d77d317cba78d299130"}}, -{"id":"connect-sts","key":"connect-sts","value":{"rev":"9-8e3fd563c04ce14b824fc4da42efb70e"}}, -{"id":"connect-timeout","key":"connect-timeout","value":{"rev":"4-6f5f8d97480c16c7acb05fe82400bbc7"}}, -{"id":"connect-unstable","key":"connect-unstable","value":{"rev":"3-1d3a4edc52f005d8cb4d557485095314"}}, -{"id":"connect-wormhole","key":"connect-wormhole","value":{"rev":"3-f33b15acc686bd9ad0c6df716529009f"}}, -{"id":"connect-xcors","key":"connect-xcors","value":{"rev":"7-f8e1cd6805a8779bbd6bb2c1000649fb"}}, -{"id":"connect_facebook","key":"connect_facebook","value":{"rev":"3-b3001d71f619836a009c53c816ce36ed"}}, -{"id":"connect_json","key":"connect_json","value":{"rev":"3-dd0df74291f80f45b4314d56192c19c5"}}, -{"id":"connectables","key":"connectables","value":{"rev":"3-f6e9f8f13883a523b4ea6035281f541b"}}, -{"id":"conseq","key":"conseq","value":{"rev":"3-890d340704322630e7a724333f394c70"}}, -{"id":"consistent-hashing","key":"consistent-hashing","value":{"rev":"3-fcef5d4479d926560cf1bc900f746f2a"}}, -{"id":"console","key":"console","value":{"rev":"3-1e0449b07c840eeac6b536e2552844f4"}}, -{"id":"console.log","key":"console.log","value":{"rev":"9-d608afe50e732ca453365befcb87bad5"}}, -{"id":"consolemark","key":"consolemark","value":{"rev":"13-320f003fc2c3cec909ab3e9c3bce9743"}}, -{"id":"construct","key":"construct","value":{"rev":"3-75bdc809ee0572172e6acff537af7d9b"}}, -{"id":"context","key":"context","value":{"rev":"3-86b1a6a0f77ef86d4d9ccfff47ceaf6a"}}, -{"id":"contextify","key":"contextify","value":{"rev":"9-547b8019ef66e0d1c84fe00be832e750"}}, -{"id":"contract","key":"contract","value":{"rev":"3-d09e775c2c1e297b6cbbfcd5efbae3c7"}}, -{"id":"contracts","key":"contracts","value":{"rev":"13-3fd75c77e688937734f51cf97f10dd7d"}}, -{"id":"control","key":"control","value":{"rev":"31-7abf0cb81d19761f3ff59917e56ecedf"}}, -{"id":"controljs","key":"controljs","value":{"rev":"3-a8e80f93e389ca07509fa7addd6cb805"}}, -{"id":"convert","key":"convert","value":{"rev":"3-6c962b92274bcbe82b82a30806559d47"}}, -{"id":"conway","key":"conway","value":{"rev":"5-93ce24976e7dd5ba02fe4addb2b44267"}}, -{"id":"cookie","key":"cookie","value":{"rev":"14-946d98bf46e940d13ca485148b1bd609"}}, -{"id":"cookie-sessions","key":"cookie-sessions","value":{"rev":"8-4b399ac8cc4baea15f6c5e7ac94399f0"}}, -{"id":"cookiejar","key":"cookiejar","value":{"rev":"20-220b41a4c2a8f2b7b14aafece7dcc1b5"}}, -{"id":"cookies","key":"cookies","value":{"rev":"15-b3b35c32a99ed79accc724685d131d18"}}, -{"id":"cool","key":"cool","value":{"rev":"3-007d1123eb2dc52cf845d625f7ccf198"}}, -{"id":"coolmonitor","key":"coolmonitor","value":{"rev":"3-69c3779c596527f63e49c5e507dff1e1"}}, -{"id":"coop","key":"coop","value":{"rev":"9-39dee3260858cf8c079f31bdf02cea1d"}}, -{"id":"coordinator","key":"coordinator","value":{"rev":"32-9d92f2033a041d5c40f8e1018d512755"}}, -{"id":"core-utils","key":"core-utils","value":{"rev":"9-98f2412938a67d83e53e76a26b5601e0"}}, -{"id":"cornify","key":"cornify","value":{"rev":"6-6913172d09c52f9e8dc0ea19ec49972c"}}, -{"id":"corpus","key":"corpus","value":{"rev":"3-a357e7779f8d4ec020b755c71dd1e57b"}}, -{"id":"corrector","key":"corrector","value":{"rev":"3-ef3cf99fc59a581aee3590bdb8615269"}}, -{"id":"cosmos","key":"cosmos","value":{"rev":"3-3eb292c59758fb5215f22739fa9531ce"}}, -{"id":"couch-ar","key":"couch-ar","value":{"rev":"25-f106d2965ab74b25b18328ca44ca4a02"}}, -{"id":"couch-cleaner","key":"couch-cleaner","value":{"rev":"15-74e61ef98a770d76be4c7e7571d18381"}}, -{"id":"couch-client","key":"couch-client","value":{"rev":"10-94945ebd3e17f509fcc71fb6c6ef5d35"}}, -{"id":"couch-session","key":"couch-session","value":{"rev":"4-c73dea41ceed26a2a0bde9a9c8ffffc4"}}, -{"id":"couch-sqlite","key":"couch-sqlite","value":{"rev":"3-3e420fe6623542475595aa7e55a4e4bd"}}, -{"id":"couch-stream","key":"couch-stream","value":{"rev":"5-911704fc984bc49acce1e10adefff7ff"}}, -{"id":"couchapp","key":"couchapp","value":{"rev":"16-ded0f4742bb3f5fd42ec8f9c6b21ae8e"}}, -{"id":"couchcmd","key":"couchcmd","value":{"rev":"3-651ea2b435e031481b5d3d968bd3d1eb"}}, -{"id":"couchdb","key":"couchdb","value":{"rev":"12-8abcfd649751226c10edf7cf0508a09f"}}, -{"id":"couchdb-api","key":"couchdb-api","value":{"rev":"23-f2c82f08f52f266df7ac2aa709615244"}}, -{"id":"couchdb-tmp","key":"couchdb-tmp","value":{"rev":"3-9a695fb4ba352f3be2d57c5995718520"}}, -{"id":"couchdev","key":"couchdev","value":{"rev":"3-50a0ca3ed0395dd72de62a1b96619e66"}}, -{"id":"couchlegs","key":"couchlegs","value":{"rev":"5-be78e7922ad4ff86dbe5c17a87fdf4f1"}}, -{"id":"couchtato","key":"couchtato","value":{"rev":"11-15a1ce8de9a8cf1e81d96de6afbb4f45"}}, -{"id":"couchy","key":"couchy","value":{"rev":"13-0a52b2712fb8447f213866612e3ccbf7"}}, -{"id":"courier","key":"courier","value":{"rev":"17-eb94fe01aeaad43805f4bce21d23bcba"}}, -{"id":"coverage","key":"coverage","value":{"rev":"10-a333448996d0b0d420168d1b5748db32"}}, -{"id":"coverage_testing","key":"coverage_testing","value":{"rev":"3-62834678206fae7911401aa86ec1a85e"}}, -{"id":"cqs","key":"cqs","value":{"rev":"6-0dad8b969c70abccc27a146a99399533"}}, -{"id":"crab","key":"crab","value":{"rev":"9-599fc7757f0c9efbe3889f30981ebe93"}}, -{"id":"cradle","key":"cradle","value":{"rev":"60-8fb414b66cb07b4bae59c0316d5c45b4"}}, -{"id":"cradle-fixed","key":"cradle-fixed","value":{"rev":"4-589afffa26fca22244ad2038abb77dc5"}}, -{"id":"cradle-init","key":"cradle-init","value":{"rev":"13-499d63592141f1e200616952bbdea015"}}, -{"id":"crawler","key":"crawler","value":{"rev":"5-ec4a8d77f90d86d17d6d14d631360188"}}, -{"id":"crc","key":"crc","value":{"rev":"3-25ab83f8b1333e6d4e4e5fb286682422"}}, -{"id":"creatary","key":"creatary","value":{"rev":"3-770ad84ecb2e2a3994637d419384740d"}}, -{"id":"createsend","key":"createsend","value":{"rev":"7-19885346e4d7a01ac2e9ad70ea0e822a"}}, -{"id":"creationix","key":"creationix","value":{"rev":"61-7ede1759afbd41e8b4dedc348b72202e"}}, -{"id":"creek","key":"creek","value":{"rev":"33-4f511aa4dd379e04bba7ac333744325e"}}, -{"id":"cron","key":"cron","value":{"rev":"12-8d794edb5f9b7cb6322acaef1c848043"}}, -{"id":"cron2","key":"cron2","value":{"rev":"13-bae2f1b02ffcbb0e77bde6c33b566f80"}}, -{"id":"crontab","key":"crontab","value":{"rev":"36-14d26bf316289fb4841940eee2932f37"}}, -{"id":"crossroads","key":"crossroads","value":{"rev":"7-d73d51cde30f24caad91e6a3c5b420f2"}}, -{"id":"crowdflower","key":"crowdflower","value":{"rev":"3-16c2dfc9fd505f75068f75bd19e3d227"}}, -{"id":"cruvee","key":"cruvee","value":{"rev":"3-979ccf0286b1701e9e7483a10451d975"}}, -{"id":"crypt","key":"crypt","value":{"rev":"3-031b338129bebc3749b42fb3d442fc4b"}}, -{"id":"crypto","key":"crypto","value":{"rev":"3-66a444b64481c85987dd3f22c32e0630"}}, -{"id":"csj","key":"csj","value":{"rev":"3-bc3133c7a0a8827e89aa03897b81d177"}}, -{"id":"cson","key":"cson","value":{"rev":"7-3ac3e1e10572e74e58874cfe3200eb87"}}, -{"id":"csrf-express","key":"csrf-express","value":{"rev":"3-4cc36d88e8ad10b9c2cc8a7318f0abd3"}}, -{"id":"css-crawler","key":"css-crawler","value":{"rev":"13-4739c7bf1decc72d7682b53303f93ec6"}}, -{"id":"css-smasher","key":"css-smasher","value":{"rev":"3-631128f966135c97d648efa3eadf7bfb"}}, -{"id":"css-sourcery","key":"css-sourcery","value":{"rev":"3-571343da3a09af7de473d29ed7dd788b"}}, -{"id":"css2json","key":"css2json","value":{"rev":"5-fb6d84c1da4a9391fa05d782860fe7c4"}}, -{"id":"csskeeper","key":"csskeeper","value":{"rev":"5-ea667a572832ea515b044d4b87ea7d98"}}, -{"id":"csslike","key":"csslike","value":{"rev":"3-6e957cce81f6e790f8562526d907ad94"}}, -{"id":"csslint","key":"csslint","value":{"rev":"19-b1e973274a0a6b8eb81b4d715a249612"}}, -{"id":"cssmin","key":"cssmin","value":{"rev":"10-4bb4280ec56f110c43abe01189f95818"}}, -{"id":"csso","key":"csso","value":{"rev":"17-ccfe2a72d377919b07973bbb1d19b8f2"}}, -{"id":"cssom","key":"cssom","value":{"rev":"3-f96b884b63b4c04bac18b8d9c0a4c4cb"}}, -{"id":"cssp","key":"cssp","value":{"rev":"5-abf69f9ff99b7d0bf2731a5b5da0897c"}}, -{"id":"cssunminifier","key":"cssunminifier","value":{"rev":"3-7bb0c27006af682af92d1969fcb4fa73"}}, -{"id":"cssutils","key":"cssutils","value":{"rev":"3-4759f9db3b8eac0964e36f5229260526"}}, -{"id":"csv","key":"csv","value":{"rev":"21-0420554e9c08e001063cfb0a69a48255"}}, -{"id":"csv2mongo","key":"csv2mongo","value":{"rev":"9-373f11c05e5d1744c3187d9aaeaae0ab"}}, -{"id":"csvutils","key":"csvutils","value":{"rev":"15-84aa82e56b49cd425a059c8f0735a23c"}}, -{"id":"ctrlflow","key":"ctrlflow","value":{"rev":"33-0b817baf6c744dc17b83d5d8ab1ba74e"}}, -{"id":"ctrlflow_tests","key":"ctrlflow_tests","value":{"rev":"3-d9ed35503d27b0736c59669eecb4c4fe"}}, -{"id":"ctype","key":"ctype","value":{"rev":"9-c5cc231475f23a01682d0b1a3b6e49c2"}}, -{"id":"cube","key":"cube","value":{"rev":"5-40320a20d260e082f5c4ca508659b4d1"}}, -{"id":"cucumber","key":"cucumber","value":{"rev":"11-8489af0361b6981cf9001a0403815936"}}, -{"id":"cucumis","key":"cucumis","value":{"rev":"33-6dc38f1161fae3efa2a89c8288b6e040"}}, -{"id":"cucumis-rm","key":"cucumis-rm","value":{"rev":"3-6179249ad15166f8d77eb136b3fa87ca"}}, -{"id":"cupcake","key":"cupcake","value":{"rev":"15-1dd13a85415a366942e7f0a3de06aa2a"}}, -{"id":"curator","key":"curator","value":{"rev":"19-d798ab7fbca11ba0e9c6c40c0a2f9440"}}, -{"id":"curl","key":"curl","value":{"rev":"11-ac7143ac07c64ea169ba7d4e58be232a"}}, -{"id":"curly","key":"curly","value":{"rev":"30-0248a5563b6e96457315ad0cc2fe22c1"}}, -{"id":"curry","key":"curry","value":{"rev":"11-ce13fa80e84eb25d9cf76cf4162a634e"}}, -{"id":"cursory","key":"cursory","value":{"rev":"3-ea2f4b1b47caf38460402d1a565c18b8"}}, -{"id":"d-utils","key":"d-utils","value":{"rev":"37-699ad471caa28183d75c06f0f2aab41c"}}, -{"id":"d3","key":"d3","value":{"rev":"5-4d867844bd7dce21b34cd7283bb9cad4"}}, -{"id":"d3bench","key":"d3bench","value":{"rev":"3-617cc625bfd91c175d037bfcace9c4e9"}}, -{"id":"daemon","key":"daemon","value":{"rev":"11-8654f90bc609ca2c3ec260c7d6b7793e"}}, -{"id":"daemon-tools","key":"daemon-tools","value":{"rev":"18-8197fce2054de67925e6f2c3fa3cd90a"}}, -{"id":"daimyo","key":"daimyo","value":{"rev":"25-531b0b0afdc5ae3d41b4131da40af6cf"}}, -{"id":"daleth","key":"daleth","value":{"rev":"7-4824619205289ba237ef2a4dc1fba1ec"}}, -{"id":"dali","key":"dali","value":{"rev":"9-037c4c76f739ecb537a064c07d3c63e3"}}, -{"id":"damncomma","key":"damncomma","value":{"rev":"3-b1472eada01efb8a12d521e5a248834b"}}, -{"id":"dana","key":"dana","value":{"rev":"3-2a3c0ff58a6d13fedd17e1d192080e59"}}, -{"id":"dandy","key":"dandy","value":{"rev":"9-f4ae43659dd812a010b0333bf8e5a282"}}, -{"id":"dash","key":"dash","value":{"rev":"5-698513f86165f429a5f55320d5a700f0"}}, -{"id":"dash-fu","key":"dash-fu","value":{"rev":"3-848e99a544f9f78f311c7ebfc5a172c4"}}, -{"id":"dashboard","key":"dashboard","value":{"rev":"3-71844d1fc1140b7533f9e57740d2b666"}}, -{"id":"data","key":"data","value":{"rev":"23-b594e2bd1ffef1cda8b7e94dbf15ad5b"}}, -{"id":"data-layer","key":"data-layer","value":{"rev":"9-9205d35cc6eaf1067ee0cec1b421d749"}}, -{"id":"data-page","key":"data-page","value":{"rev":"3-d7a3346a788a0c07132e50585db11c99"}}, -{"id":"data-section","key":"data-section","value":{"rev":"9-d3fff313977667c53cbadb134d993412"}}, -{"id":"data-uuid","key":"data-uuid","value":{"rev":"8-24001fe9f37c4cc7ac01079ee4767363"}}, -{"id":"data-visitor","key":"data-visitor","value":{"rev":"6-7fe5da9d118fab27157dba97050c6487"}}, -{"id":"database-cleaner","key":"database-cleaner","value":{"rev":"19-4bdfc8b324e95e6da9f72e7b7b708b98"}}, -{"id":"datapool","key":"datapool","value":{"rev":"3-f99c93ca812d2f4725bbaea99122832c"}}, -{"id":"datasift","key":"datasift","value":{"rev":"3-6de3ae25c9a99f651101e191595bcf64"}}, -{"id":"date","key":"date","value":{"rev":"9-b334fc6450d093de40a664a4a835cfc4"}}, -{"id":"date-utils","key":"date-utils","value":{"rev":"31-7be8fcf1919564a8fb7223a86a5954ac"}}, -{"id":"dateformat","key":"dateformat","value":{"rev":"11-5b924e1d29056a0ef9b89b9d7984d5c4"}}, -{"id":"dateformatjs","key":"dateformatjs","value":{"rev":"3-4c50a38ecc493535ee2570a838673937"}}, -{"id":"datejs","key":"datejs","value":{"rev":"5-f47e3e6532817f822aa910b59a45717c"}}, -{"id":"dateselect","key":"dateselect","value":{"rev":"3-ce58def02fd8c8feda8c6f2004726f97"}}, -{"id":"datetime","key":"datetime","value":{"rev":"7-14227b0677eb93b8eb519db47f46bf36"}}, -{"id":"db","key":"db","value":{"rev":"3-636e9ea922a85c92bc11aa9691a2e67f"}}, -{"id":"db-drizzle","key":"db-drizzle","value":{"rev":"157-955f74f49ac4236df317e227c08afaa3"}}, -{"id":"db-mysql","key":"db-mysql","value":{"rev":"224-e596a18d9af33ff1fbcf085a9f4f56fd"}}, -{"id":"db-oracle","key":"db-oracle","value":{"rev":"13-a1e2924d87b4badfddeccf6581525b08"}}, -{"id":"dcrypt","key":"dcrypt","value":{"rev":"29-a144a609bef5004781df901440d67b2d"}}, -{"id":"decafscript","key":"decafscript","value":{"rev":"3-f3a239dc7d503c900fc9854603d716e6"}}, -{"id":"decimal","key":"decimal","value":{"rev":"3-614ed56d4d6c5eb7883d8fd215705a12"}}, -{"id":"decimaljson","key":"decimaljson","value":{"rev":"9-7cb23f4b2b1168b1a213f1eefc85fa51"}}, -{"id":"deck","key":"deck","value":{"rev":"7-da422df97f13c7d84e8f3690c1e1ca32"}}, -{"id":"deckard","key":"deckard","value":{"rev":"3-85e0cd76cdd88ff60a617239060d6f46"}}, -{"id":"deckem","key":"deckem","value":{"rev":"9-03ca75ea35960ccd5779b4cfa8cfb9f9"}}, -{"id":"defensio","key":"defensio","value":{"rev":"5-0ad0ae70b4e184626d914cc4005ee34c"}}, -{"id":"defer","key":"defer","value":{"rev":"3-8d003c96f4263a26b7955e251cddbd95"}}, -{"id":"deferrable","key":"deferrable","value":{"rev":"8-3ae57ce4391105962d09ad619d4c4670"}}, -{"id":"deferred","key":"deferred","value":{"rev":"17-9cee7948dbdf7b6dcc00bbdc60041dd0"}}, -{"id":"define","key":"define","value":{"rev":"45-9d422f2ac5ab693f881df85898d68e3a"}}, -{"id":"deflate","key":"deflate","value":{"rev":"10-3ebe2b87e09f4ae51857cae02e1af788"}}, -{"id":"degrees","key":"degrees","value":{"rev":"5-707c57cfa3e589e8059fe9860cc0c10b"}}, -{"id":"deimos","key":"deimos","value":{"rev":"11-6481696be774d14254fe7c427107dc2a"}}, -{"id":"deja","key":"deja","value":{"rev":"47-bde4457402db895aad46198433842668"}}, -{"id":"delayed-stream","key":"delayed-stream","value":{"rev":"13-f6ca393b08582350f78c5c66f183489b"}}, -{"id":"delegator","key":"delegator","value":{"rev":"3-650651749c1df44ef544c919fae74f82"}}, -{"id":"dep-graph","key":"dep-graph","value":{"rev":"3-e404af87822756da52754e2cc5c576b1"}}, -{"id":"dependency-promise","key":"dependency-promise","value":{"rev":"11-1cc2be8465d736ec8f3cc8940ab22823"}}, -{"id":"depends","key":"depends","value":{"rev":"30-adc9604bbd8117592f82eee923d8703e"}}, -{"id":"deploy","key":"deploy","value":{"rev":"3-82020957528bd0bdd675bed9ac4e4cc5"}}, -{"id":"deployjs","key":"deployjs","value":{"rev":"5-a3e99a5ed81d4b1ad44b6477e6a5a985"}}, -{"id":"deputy-client","key":"deputy-client","value":{"rev":"3-31fd224b301ec0f073df7afa790050ec"}}, -{"id":"deputy-server","key":"deputy-server","value":{"rev":"3-0d790cce82aadfd2b8f39a6b056f2792"}}, -{"id":"derby","key":"derby","value":{"rev":"40-b642048a1a639d77ab139160a4da0fd2"}}, -{"id":"des","key":"des","value":{"rev":"24-fcbdc086e657aef356b75433b3e65ab6"}}, -{"id":"descent","key":"descent","value":{"rev":"7-9cc259b25fc688597fc7efaa516d03c6"}}, -{"id":"describe","key":"describe","value":{"rev":"6-788c7f2feaf2e88f4b1179976b273744"}}, -{"id":"deserver","key":"deserver","value":{"rev":"5-da8083694e89b8434123fe7482a3cc7e"}}, -{"id":"detect","key":"detect","value":{"rev":"3-c27f258d39d7905c2b92383809bb5988"}}, -{"id":"detective","key":"detective","value":{"rev":"9-d6cfa0c6389783cdc9c9ffa9e4082c64"}}, -{"id":"dev","key":"dev","value":{"rev":"23-5c2ce4a4f6a4f24d3cff3b7db997d8bc"}}, -{"id":"dev-warnings","key":"dev-warnings","value":{"rev":"5-5a7d7f36d09893df96441be8b09e41d6"}}, -{"id":"dhcpjs","key":"dhcpjs","value":{"rev":"3-1bc01bd612f3ab1fce178c979aa34e43"}}, -{"id":"dht","key":"dht","value":{"rev":"3-40c0b909b6c0e2305e19d10cea1881b0"}}, -{"id":"dht-bencode","key":"dht-bencode","value":{"rev":"5-88a1da8de312a54097507d72a049f0f3"}}, -{"id":"dialect","key":"dialect","value":{"rev":"18-db7928ce4756eea35db1732d4f2ebc88"}}, -{"id":"dialect-http","key":"dialect-http","value":{"rev":"19-23a927d28cb43733dbd05294134a5b8c"}}, -{"id":"dicks","key":"dicks","value":{"rev":"11-ba64897899e336d366ffd4b68cac99f5"}}, -{"id":"diff","key":"diff","value":{"rev":"13-1a88acb0369ab8ae096a2323d65a2811"}}, -{"id":"diff_match_patch","key":"diff_match_patch","value":{"rev":"8-2f6f467e483b23b217a2047e4aded850"}}, -{"id":"diffbot","key":"diffbot","value":{"rev":"3-8cb8e34af89cb477a5da52e3fd9a13f7"}}, -{"id":"digest","key":"digest","value":{"rev":"7-bc6fb9e68c83197381b0d9ac7db16c1c"}}, -{"id":"dir","key":"dir","value":{"rev":"7-574462bb241a39eeffe6c5184d40c57a"}}, -{"id":"dir-watcher","key":"dir-watcher","value":{"rev":"31-1a3ca4d6aa8aa32c619efad5fbfce494"}}, -{"id":"dir2html","key":"dir2html","value":{"rev":"5-b4bfb2916c2d94c85aa75ffa29ad1af4"}}, -{"id":"directive","key":"directive","value":{"rev":"3-3373f02b8762cb1505c8f8cbcc50d3d4"}}, -{"id":"dirsum","key":"dirsum","value":{"rev":"5-8545445faaa41d2225ec7ff226a10750"}}, -{"id":"dirty","key":"dirty","value":{"rev":"13-d636ea0d1ed35560c0bc7272965c1a6f"}}, -{"id":"dirty-uuid","key":"dirty-uuid","value":{"rev":"5-65acdfda886afca65ae52f0ac21ce1b2"}}, -{"id":"discogs","key":"discogs","value":{"rev":"21-839410e6bf3bee1435ff837daaeaf9f8"}}, -{"id":"discount","key":"discount","value":{"rev":"13-a8fb2a8f668ac0a55fffada1ea94a4b7"}}, -{"id":"discovery","key":"discovery","value":{"rev":"3-46f4496224d132e56cbc702df403219d"}}, -{"id":"diskcache","key":"diskcache","value":{"rev":"23-7b14ad41fc199184fb939828e9122099"}}, -{"id":"dispatch","key":"dispatch","value":{"rev":"6-e72cc7b2bcc97faf897ae4e4fa3ec681"}}, -{"id":"distribute.it","key":"distribute.it","value":{"rev":"12-0978757eb25d22117af675806cf6eef2"}}, -{"id":"dive","key":"dive","value":{"rev":"21-9cbd1281c5a3c2dae0cc0407863f3336"}}, -{"id":"diveSync","key":"diveSync","value":{"rev":"3-015ec4803903106bf24cb4f17cedee68"}}, -{"id":"dk-assets","key":"dk-assets","value":{"rev":"3-25d9b6ac727caf1e227e6436af835d03"}}, -{"id":"dk-core","key":"dk-core","value":{"rev":"3-0b6a2f4dfc0484a3908159a897920bae"}}, -{"id":"dk-couchdb","key":"dk-couchdb","value":{"rev":"3-cc9ef511f9ed46be9d7099f10b1ee776"}}, -{"id":"dk-model","key":"dk-model","value":{"rev":"3-3a61006be57d304724c049e4dcf2fc9b"}}, -{"id":"dk-model-couchdb","key":"dk-model-couchdb","value":{"rev":"3-5163def21660db8428e623909bbfcb4d"}}, -{"id":"dk-routes","key":"dk-routes","value":{"rev":"3-4563357f850248d7d0fb37f9bdcb893b"}}, -{"id":"dk-server","key":"dk-server","value":{"rev":"3-9aef13fc5814785c9805b26828e8d114"}}, -{"id":"dk-template","key":"dk-template","value":{"rev":"3-809c94776252441129705fbe1d93e752"}}, -{"id":"dk-transport","key":"dk-transport","value":{"rev":"3-9271da6f86079027535179b743d0d4c3"}}, -{"id":"dk-websockets","key":"dk-websockets","value":{"rev":"3-426b44c04180d6caf7cf765f03fc52c2"}}, -{"id":"dnet-index-proxy","key":"dnet-index-proxy","value":{"rev":"51-1f3cf4f534c154369d5e774a8f599106"}}, -{"id":"dnode","key":"dnode","value":{"rev":"129-68db10c25c23d635dc828aa698d1279e"}}, -{"id":"dnode-ez","key":"dnode-ez","value":{"rev":"17-75877eab5cf3976b8876c49afd2f7e38"}}, -{"id":"dnode-protocol","key":"dnode-protocol","value":{"rev":"23-fb28f8e1180e6aa44fa564e0d55b3d1e"}}, -{"id":"dnode-smoothiecharts","key":"dnode-smoothiecharts","value":{"rev":"3-d1483028e5768527c2786b9ed5d76463"}}, -{"id":"dnode-stack","key":"dnode-stack","value":{"rev":"9-c1ad8ce01282ce4fa72b5993c580e58e"}}, -{"id":"dnode-worker","key":"dnode-worker","value":{"rev":"3-4c73c0d7ed225197fd8fb0555eaf1152"}}, -{"id":"dns-server","key":"dns-server","value":{"rev":"3-4858a1773da514fea68eac6d9d39f69e"}}, -{"id":"dns-srv","key":"dns-srv","value":{"rev":"12-867c769437fa0ad8a83306aa9e2a158e"}}, -{"id":"doc","key":"doc","value":{"rev":"5-2c077b3fd3b6efa4e927b66f1390e4ea"}}, -{"id":"doc.md","key":"doc.md","value":{"rev":"7-8e8e51be4956550388699222b2e039e7"}}, -{"id":"docco","key":"docco","value":{"rev":"18-891bde1584809c3b1f40fef9961b4f28"}}, -{"id":"docdown","key":"docdown","value":{"rev":"5-fcf5be2ab6ceaed76c1980b462359057"}}, -{"id":"docket","key":"docket","value":{"rev":"13-a4969e0fb17af8dba7df178e364161c2"}}, -{"id":"docpad","key":"docpad","value":{"rev":"77-a478ac8c7ac86e304f9213380ea4b550"}}, -{"id":"docs","key":"docs","value":{"rev":"3-6b1fae9738a3327a3a3be826c0981c3a"}}, -{"id":"dojo-node","key":"dojo-node","value":{"rev":"13-e0dc12e9ce8ab3f40b228c2af8c41064"}}, -{"id":"dom","key":"dom","value":{"rev":"3-cecd9285d0d5b1cab0f18350aac1b2b0"}}, -{"id":"dom-js","key":"dom-js","value":{"rev":"8-dd20e8b23028f4541668501650b52a71"}}, -{"id":"dom-js-ns","key":"dom-js-ns","value":{"rev":"3-787567fc1d6f4ca7e853215a4307b593"}}, -{"id":"domjs","key":"domjs","value":{"rev":"3-d2d05a20dccb57fb6db7da08916c6c0f"}}, -{"id":"doml","key":"doml","value":{"rev":"11-c3b49c50906d9875b546413e4acd1b38"}}, -{"id":"domo","key":"domo","value":{"rev":"3-a4321e6c0c688f773068365b44b08b6b"}}, -{"id":"domready","key":"domready","value":{"rev":"46-21c6b137bbed79ddbff31fdf0ef7d61f"}}, -{"id":"donkey","key":"donkey","value":{"rev":"3-1454aa878654886e8495ebb060aa10f7"}}, -{"id":"dot","key":"dot","value":{"rev":"19-b6d2d53cb9ae1a608a0956aeb8092578"}}, -{"id":"dotaccess","key":"dotaccess","value":{"rev":"13-63ddef6740e84f4517f7dd1bb0d68c56"}}, -{"id":"douche","key":"douche","value":{"rev":"3-6a200f908ccfc9ae549e80209e117cbf"}}, -{"id":"dox","key":"dox","value":{"rev":"10-856cc6bf3dc7c44e028173fea8323c24"}}, -{"id":"drag","key":"drag","value":{"rev":"9-00f27e241269c3df1d71e45b698e9b3b"}}, -{"id":"drain","key":"drain","value":{"rev":"3-8827a0ee7ed74b948bf56d5a33455fc8"}}, -{"id":"drawback","key":"drawback","value":{"rev":"74-dd356b3e55175525317e53c24979a431"}}, -{"id":"drev","key":"drev","value":{"rev":"9-43529419a69529dd7af9a83985aab1f2"}}, -{"id":"drews-mixins","key":"drews-mixins","value":{"rev":"17-63373bae6525859bddfc8d6ad19bdb06"}}, -{"id":"drnu","key":"drnu","value":{"rev":"3-b9b14b2241ded1e52a92fc4225b4ddc5"}}, -{"id":"dropbox","key":"dropbox","value":{"rev":"19-2cb7a40d253621fdfa96f23b96e42ecb"}}, -{"id":"drtoms-nodehelpers","key":"drtoms-nodehelpers","value":{"rev":"3-be0a75cdd7c2d49b1ec4ad1d2c3bc911"}}, -{"id":"drty","key":"drty","value":{"rev":"3-56eabd39b9badfa0af601c5cc64cee2c"}}, -{"id":"drty-facebook","key":"drty-facebook","value":{"rev":"3-fd07af7fb87d7f1d35e13f458a02c127"}}, -{"id":"drumkit","key":"drumkit","value":{"rev":"3-f3cdacef51453d3ac630759aff2a8b58"}}, -{"id":"drupal","key":"drupal","value":{"rev":"13-13835b1e1c8a0e8f0b0e8479640a8d7e"}}, -{"id":"dryice","key":"dryice","value":{"rev":"15-9990fdbde5475a8dbdcc055cb08d654d"}}, -{"id":"dryml","key":"dryml","value":{"rev":"33-483ff8cc3ab1431790cc2587c0bce989"}}, -{"id":"ds","key":"ds","value":{"rev":"9-743274a1d0143927851af07ff0f86d8d"}}, -{"id":"dt","key":"dt","value":{"rev":"3-ab59016f28e182c763b78ba49a59191c"}}, -{"id":"dtl","key":"dtl","value":{"rev":"11-415b4aeec93f096523569615e80f1be1"}}, -{"id":"dtrace-provider","key":"dtrace-provider","value":{"rev":"12-7f01510bd2b1d543f11e3dc02d98ab69"}}, -{"id":"dtrejo","key":"dtrejo","value":{"rev":"3-85f5bb2b9faec499e6aa77fe22e6e3ec"}}, -{"id":"dude","key":"dude","value":{"rev":"3-006528c1efd98312991273ba6ee45f7b"}}, -{"id":"dunce","key":"dunce","value":{"rev":"3-fa4fa5cafdfd1d86c650746f60b7bc0e"}}, -{"id":"duostack","key":"duostack","value":{"rev":"15-47824bdf6e32f49f64014e75421dc42e"}}, -{"id":"duplex-stream","key":"duplex-stream","value":{"rev":"3-2d0e12876e7ad4e5d3ea5520dcbad861"}}, -{"id":"durilka","key":"durilka","value":{"rev":"15-54400496515c8625e8bedf19f8a41cad"}}, -{"id":"dust","key":"dust","value":{"rev":"18-9bc9cae2e48c54f4389e9fce5dfc021e"}}, -{"id":"dustfs","key":"dustfs","value":{"rev":"5-944770c24f06989f3fc62427f2ddebc4"}}, -{"id":"dx","key":"dx","value":{"rev":"3-6000afd60be07d9ff91e7231a388f22f"}}, -{"id":"dynamic","key":"dynamic","value":{"rev":"3-33b83464ed56eb33c052a13dfb709c9c"}}, -{"id":"dynobj","key":"dynobj","value":{"rev":"5-3eb168dae1f9c20369fa1d5ae45f9021"}}, -{"id":"each","key":"each","value":{"rev":"3-5063799b0afcbb61378b1d605660a864"}}, -{"id":"ears","key":"ears","value":{"rev":"11-e77cd2b865409be7ba2e072e98b1c8a1"}}, -{"id":"easey","key":"easey","value":{"rev":"3-a380d8d945e03f55732ae8769cd6dbbf"}}, -{"id":"easy","key":"easy","value":{"rev":"3-73b836a34beafa31cdd8129fe158bf6e"}}, -{"id":"easy-oauth","key":"easy-oauth","value":{"rev":"5-2c1db698e61d77f99633042113099528"}}, -{"id":"easyfs","key":"easyfs","value":{"rev":"3-b807671a77c2a8cc27a9f1aa20ff74c0"}}, -{"id":"easyhash","key":"easyhash","value":{"rev":"3-2eeb24098bc4d201766dcc92dc7325f7"}}, -{"id":"easyrss","key":"easyrss","value":{"rev":"9-1687a54348670ef9ca387ea7ec87f0be"}}, -{"id":"ebnf-diagram","key":"ebnf-diagram","value":{"rev":"3-704e4605bf933b281a6821259a531055"}}, -{"id":"ec2","key":"ec2","value":{"rev":"22-25e562ae8898807c7b4c696c809cf387"}}, -{"id":"echo","key":"echo","value":{"rev":"19-75c2421f623ecc9fe2771f3658589ce8"}}, -{"id":"eco","key":"eco","value":{"rev":"14-b4db836928c91cbf22628cc65ca94f56"}}, -{"id":"ed","key":"ed","value":{"rev":"3-bed9b8225e83a02241d48254077a7df4"}}, -{"id":"edate","key":"edate","value":{"rev":"3-5ec1441ffe3b56d5d01561003b9844f2"}}, -{"id":"eden","key":"eden","value":{"rev":"35-9aa2ff880c2d4f45e3da881b15e58d0a"}}, -{"id":"eio","key":"eio","value":{"rev":"5-e6dd895635596d826ccdf4439761d5fa"}}, -{"id":"ejs","key":"ejs","value":{"rev":"30-c7b020b6cb8ee2626f47db21fc5fedb4"}}, -{"id":"ejs-ext","key":"ejs-ext","value":{"rev":"15-820393685191bbed37938acb7af5885e"}}, -{"id":"elastical","key":"elastical","value":{"rev":"3-c652af043bc4256a29a87e3de9b78093"}}, -{"id":"elasticsearchclient","key":"elasticsearchclient","value":{"rev":"33-bcb59deb7d9d56737a6946c56830ae6b"}}, -{"id":"elastiseahclient","key":"elastiseahclient","value":{"rev":"3-c4e525605859e249f04fb07d31739002"}}, -{"id":"elementtree","key":"elementtree","value":{"rev":"3-ef2017fe67ae425253de911c2f219d31"}}, -{"id":"elf-logger","key":"elf-logger","value":{"rev":"6-98d61588cfc171611568cf86004aa2e1"}}, -{"id":"elk","key":"elk","value":{"rev":"25-8b92241d0218c6593a7dc8a8cc69b7ce"}}, -{"id":"elucidata-build-tools","key":"elucidata-build-tools","value":{"rev":"7-0ad3de708aaac2eebfcfce273bfe6edf"}}, -{"id":"email","key":"email","value":{"rev":"16-110ae6a99ab3e37f4edd9357c03d78c2"}}, -{"id":"email-verificationtoken","key":"email-verificationtoken","value":{"rev":"7-ef37672bc6e9ee806ecc22fd5257ae03"}}, -{"id":"emailjs","key":"emailjs","value":{"rev":"31-0dd24f9aba8d96e9493e55e8345f3d21"}}, -{"id":"embedly","key":"embedly","value":{"rev":"21-47838d8015e9b927c56a7bd52c52e4fc"}}, -{"id":"emile","key":"emile","value":{"rev":"11-05d4715964b5bf2e1fd98096cb7ccc83"}}, -{"id":"emit.io","key":"emit.io","value":{"rev":"3-faacb1c30bb92c06a55a44bb027a9475"}}, -{"id":"emre","key":"emre","value":{"rev":"3-5686f4782f1f5171fff83b662ce68802"}}, -{"id":"encrypt","key":"encrypt","value":{"rev":"3-77e2e2007b452f7fcdfa9e8696a188f5"}}, -{"id":"ender","key":"ender","value":{"rev":"95-89b8c6ccfcaf3eb56f5dbe48bf3c2e24"}}, -{"id":"ender-dragdealer","key":"ender-dragdealer","value":{"rev":"9-e12bb3492614f20fe5781f20e3bb17dc"}}, -{"id":"ender-fermata","key":"ender-fermata","value":{"rev":"3-e52d772042852408ae070b361c247068"}}, -{"id":"ender-fittext","key":"ender-fittext","value":{"rev":"5-e46f5a384d790ea6f65a5f8b9e43bac6"}}, -{"id":"ender-flowplayer","key":"ender-flowplayer","value":{"rev":"3-87267072fb566112315254fdf6547500"}}, -{"id":"ender-js","key":"ender-js","value":{"rev":"80-aa18576f782e3aa14c2ba7ba05658a30"}}, -{"id":"ender-json","key":"ender-json","value":{"rev":"3-5606608389aef832e4d4ecaa6c088a94"}}, -{"id":"ender-lettering","key":"ender-lettering","value":{"rev":"3-6fc6ad3869fad6374a1de69ba4e9301d"}}, -{"id":"ender-modules","key":"ender-modules","value":{"rev":"5-2bbb354d6219b5e13e6c897c562b8c83"}}, -{"id":"ender-poke","key":"ender-poke","value":{"rev":"5-3afa2fd690ebc4f2d75125b2c57e2a43"}}, -{"id":"ender-test","key":"ender-test","value":{"rev":"5-f8e90a951e5ad58199e53645067fad0c"}}, -{"id":"ender-tipsy","key":"ender-tipsy","value":{"rev":"5-cefd04c5d89707dfe31023702328d417"}}, -{"id":"ender-tween","key":"ender-tween","value":{"rev":"13-035312bb47bb3d29e7157932d4d29dcb"}}, -{"id":"ender-vows","key":"ender-vows","value":{"rev":"5-d48e088816d71779a80a74c43cd61b80"}}, -{"id":"ender-wallet","key":"ender-wallet","value":{"rev":"21-93723cd24fbf14d0f58f2ee41df9910d"}}, -{"id":"endtable","key":"endtable","value":{"rev":"36-8febf1be0120d867f9ff90e5c5058ef9"}}, -{"id":"enhance-css","key":"enhance-css","value":{"rev":"7-ae1cf6dee7d3116103781edaa7d47ba4"}}, -{"id":"ensure","key":"ensure","value":{"rev":"27-47e0874d1823188965a02a41abb61739"}}, -{"id":"ent","key":"ent","value":{"rev":"9-51924cd76fabcc4a244db66d65d48eff"}}, -{"id":"entropy","key":"entropy","value":{"rev":"17-84bfbbc0689b3b55e4fa3881888f0c12"}}, -{"id":"enumerable","key":"enumerable","value":{"rev":"3-d31bfcaca3b53eacc9ce09983efffe35"}}, -{"id":"envious","key":"envious","value":{"rev":"3-08d1e6d9c25c4e2350a0dd6759a27426"}}, -{"id":"environ","key":"environ","value":{"rev":"5-6f78def4743dfbeb77c1cb62d41eb671"}}, -{"id":"epub","key":"epub","value":{"rev":"3-5c3604eab851bce0a6ac66db6a6ce77a"}}, -{"id":"erlang","key":"erlang","value":{"rev":"3-3bd8e8e8ed416a32567475d984028b65"}}, -{"id":"err","key":"err","value":{"rev":"11-61d11f26b47d29ef819136214830f24c"}}, -{"id":"errbacker","key":"errbacker","value":{"rev":"5-0ad6d62207abb9822118ae69d0b9181d"}}, -{"id":"es5","key":"es5","value":{"rev":"3-5497cb0c821f3e17234c09ab0e67e1de"}}, -{"id":"es5-basic","key":"es5-basic","value":{"rev":"9-2ff708ae54ae223923cb810f799bfb2d"}}, -{"id":"es5-ext","key":"es5-ext","value":{"rev":"21-04537d704412a631596beeba4d534b33"}}, -{"id":"es5-shim","key":"es5-shim","value":{"rev":"34-3c4c40a6dab9ff137d1a7d4349d72c5b"}}, -{"id":"es5-shimify","key":"es5-shimify","value":{"rev":"3-f85700407e9c129d22b45c15700c82f1"}}, -{"id":"esc","key":"esc","value":{"rev":"5-42911775f391330f361105b8a0cefe47"}}, -{"id":"escaperoute","key":"escaperoute","value":{"rev":"18-e1372f35e6dcdb353b8c11e3c7e2f3b4"}}, -{"id":"escort","key":"escort","value":{"rev":"27-bf43341e15d565c9f67dd3300dc57734"}}, -{"id":"escrito","key":"escrito","value":{"rev":"5-c39d5b373486327b2e13670f921a2c7b"}}, -{"id":"esl","key":"esl","value":{"rev":"9-562ff6239a3b9910989bdf04746fa9d1"}}, -{"id":"espresso","key":"espresso","value":{"rev":"75-4c3692f1e92ea841e2d04338f4f2432e"}}, -{"id":"esproxy","key":"esproxy","value":{"rev":"7-be629dc6e1428f0fdb22fdbe7ab2ee99"}}, -{"id":"etch-a-sketch","key":"etch-a-sketch","value":{"rev":"3-a4e23b8e9f298d4844d6bff0a9688e53"}}, -{"id":"etherpad-lite-client","key":"etherpad-lite-client","value":{"rev":"55-58ca439a697db64ee66652da2d327fcb"}}, -{"id":"etsy","key":"etsy","value":{"rev":"5-1b795b360c28261f11c07d849637047c"}}, -{"id":"eve","key":"eve","value":{"rev":"3-16e72b336a1f354f4dfc8fa783fa2e72"}}, -{"id":"event-emitter","key":"event-emitter","value":{"rev":"5-15fe3e2e19b206929b815909737b15ac"}}, -{"id":"event-queue","key":"event-queue","value":{"rev":"12-200cd3bcd8e0b35bc4b15c1d8b6161e2"}}, -{"id":"event-stream","key":"event-stream","value":{"rev":"15-811a6329b5820d998731a604accf83db"}}, -{"id":"eventable","key":"eventable","value":{"rev":"3-08e9cd94a9aae280f406d043039e545e"}}, -{"id":"eventbrite","key":"eventbrite","value":{"rev":"13-cac3c9bda2da1c7b115de04264bb440f"}}, -{"id":"evented","key":"evented","value":{"rev":"6-ade6271c40a19aab6c4e3bb18b0987b6"}}, -{"id":"evented-twitter","key":"evented-twitter","value":{"rev":"6-3ebb7327022d6d6a8c49d684febb236b"}}, -{"id":"eventedsocket","key":"eventedsocket","value":{"rev":"59-cd2158c47b676a58ca3064a42c5274f7"}}, -{"id":"eventemitter","key":"eventemitter","value":{"rev":"5-7766fd7ebc44d52efbd0e7088e2321ec"}}, -{"id":"eventemitter2","key":"eventemitter2","value":{"rev":"41-927ce7996d4056a21f543e1f928f9699"}}, -{"id":"eventful","key":"eventful","value":{"rev":"7-9505f3c621f50addf02a457cfcc8ae78"}}, -{"id":"eventhub","key":"eventhub","value":{"rev":"15-5390d210a4d3ba079dd6e26bda652caa"}}, -{"id":"eventpipe","key":"eventpipe","value":{"rev":"7-41f0f93a9dcea477f08782af28e5b0f1"}}, -{"id":"events","key":"events","value":{"rev":"12-e3ead8eac62799cb299c139687135289"}}, -{"id":"events.io","key":"events.io","value":{"rev":"3-56c6955024cbb1765a1f9f37d8a739a4"}}, -{"id":"events.node","key":"events.node","value":{"rev":"3-e072f9c457fd8a3882ccd41ce52c5d00"}}, -{"id":"eventstream","key":"eventstream","value":{"rev":"5-a578a3a2a62d50631b3fb4d44a058bd1"}}, -{"id":"eventvat","key":"eventvat","value":{"rev":"3-e26d7fe8a226c7bc7f9e55abf1630e9c"}}, -{"id":"everyauth","key":"everyauth","value":{"rev":"107-a621f3028a230f9f3ade6a4e729a9a38"}}, -{"id":"ewdDOM","key":"ewdDOM","value":{"rev":"7-28188ec27fe011bf7fcb330a5fc90b55"}}, -{"id":"ewdGateway","key":"ewdGateway","value":{"rev":"7-81fe5ec1a3e920894b560fbf96160258"}}, -{"id":"exceptional","key":"exceptional","value":{"rev":"5-5842d306b2cf084c4e7c2ecb1d715280"}}, -{"id":"exceptional-node","key":"exceptional-node","value":{"rev":"5-3385b42af0a6ea8a943cb686d5789b0c"}}, -{"id":"executor","key":"executor","value":{"rev":"3-aee4f949a4d140a439965e137200c4fb"}}, -{"id":"exif","key":"exif","value":{"rev":"3-da6fd2bd837633f673b325231c164a0f"}}, -{"id":"expanda","key":"expanda","value":{"rev":"3-dcbc59c5db0017d25748ec8094aeeb0a"}}, -{"id":"express","key":"express","value":{"rev":"157-24ef0cdd4ba6c6697c66f3e78bc777bb"}}, -{"id":"express-aid","key":"express-aid","value":{"rev":"21-6d3831e93b823f800e6a22eb08aa41d6"}}, -{"id":"express-app-bootstrap","key":"express-app-bootstrap","value":{"rev":"3-4b5a256bef5ca3bd41b0958f594907b9"}}, -{"id":"express-asset","key":"express-asset","value":{"rev":"3-7d5e23bc753851c576e429e7901301d9"}}, -{"id":"express-blocks","key":"express-blocks","value":{"rev":"7-305b6e046355c8e7a4bb0f1f225092ef"}}, -{"id":"express-cache","key":"express-cache","value":{"rev":"5-eebbea6c0e5db5fd4c12847933c853e1"}}, -{"id":"express-chromeframe","key":"express-chromeframe","value":{"rev":"5-1bb72d30b7a1f00d3eaf248285942d5e"}}, -{"id":"express-coffee","key":"express-coffee","value":{"rev":"39-14eff195c9352c6c3898befb3d613807"}}, -{"id":"express-config","key":"express-config","value":{"rev":"3-27ea0d27e20afa9ece375878aab846ed"}}, -{"id":"express-configure","key":"express-configure","value":{"rev":"7-46bd636c0b56dfcfa4f1ee46b43d6ca0"}}, -{"id":"express-contrib","key":"express-contrib","value":{"rev":"20-472c93fefe0a9a6440a76b2c843b2e0e"}}, -{"id":"express-controllers","key":"express-controllers","value":{"rev":"3-296d54f3b5bf26bfa057cd8c5f0a11ea"}}, -{"id":"express-controllers-new","key":"express-controllers-new","value":{"rev":"15-11f73e4a8ab935987a3b8f132d80afa5"}}, -{"id":"express-cross-site","key":"express-cross-site","value":{"rev":"11-b76814fdd58a616b3cafe6e97f3c7c98"}}, -{"id":"express-csrf","key":"express-csrf","value":{"rev":"20-2a79f0fdc65ed91120e7417a5cf8ce6c"}}, -{"id":"express-custom-errors","key":"express-custom-errors","value":{"rev":"6-bd131169ccac73fa3766195147e34404"}}, -{"id":"express-dialect","key":"express-dialect","value":{"rev":"34-1fbc5baf7ea464abbadcfaf3c1971660"}}, -{"id":"express-dust","key":"express-dust","value":{"rev":"5-33a1d8dd9c113d6fb8f1818c8a749c1b"}}, -{"id":"express-expose","key":"express-expose","value":{"rev":"7-f8757d8bf8d3fac8395ee8ce5117a895"}}, -{"id":"express-extras","key":"express-extras","value":{"rev":"6-53c7bfc68a41043eb5e11321673a2c48"}}, -{"id":"express-form","key":"express-form","value":{"rev":"27-533598a1bd5a0e9b8d694f5b38228c6c"}}, -{"id":"express-helpers","key":"express-helpers","value":{"rev":"3-7b9123b0ea6b840bb5a6e4da9c28308c"}}, -{"id":"express-livejade","key":"express-livejade","value":{"rev":"9-1320996d4ed3db352a2c853226880a17"}}, -{"id":"express-logger","key":"express-logger","value":{"rev":"5-c485b1020742310a313cac87abdde67b"}}, -{"id":"express-messages","key":"express-messages","value":{"rev":"5-f6225b906d0ac33ba1bfc5409b227edb"}}, -{"id":"express-messages-bootstrap","key":"express-messages-bootstrap","value":{"rev":"5-fb8fc70c1cbd6df0e07b2e0148bdf8bf"}}, -{"id":"express-mongoose","key":"express-mongoose","value":{"rev":"29-2d6907a23c8c3bbfdf9b6f9b6b3c00e3"}}, -{"id":"express-mvc-bootstrap","key":"express-mvc-bootstrap","value":{"rev":"15-c53ecb696af1d34ff94efe5ab5d89287"}}, -{"id":"express-namespace","key":"express-namespace","value":{"rev":"7-d209feb707821b06426aed233295df75"}}, -{"id":"express-on-railway","key":"express-on-railway","value":{"rev":"7-784b533cbf29930d04039bafb2c03cc0"}}, -{"id":"express-params","key":"express-params","value":{"rev":"3-13f0ed9c17d10fd01d1ff869e625c91f"}}, -{"id":"express-resource","key":"express-resource","value":{"rev":"13-cca556327152588a87112c6bf2613bc9"}}, -{"id":"express-rewrite","key":"express-rewrite","value":{"rev":"7-c76ca2616eb6e70209ace6499f5b961a"}}, -{"id":"express-route-util","key":"express-route-util","value":{"rev":"9-4b7bad7e8ab3bf71daf85362b47ec8be"}}, -{"id":"express-rpx","key":"express-rpx","value":{"rev":"9-54d48f5e24174500c73f07d97a7d3f9f"}}, -{"id":"express-session-mongo","key":"express-session-mongo","value":{"rev":"3-850cf5b42f65a6f27af6edf1ad1aa966"}}, -{"id":"express-session-mongo-russp","key":"express-session-mongo-russp","value":{"rev":"7-441e8afcd466a4cbb5e65a1949190f97"}}, -{"id":"express-session-redis","key":"express-session-redis","value":{"rev":"6-5f4f16092a0706d2daef89470d6971e6"}}, -{"id":"express-share","key":"express-share","value":{"rev":"5-f5327a97738e9c8e6e05a51cb7153f82"}}, -{"id":"express-spdy","key":"express-spdy","value":{"rev":"11-2634f388338c45b2d6f020d2a6739ba1"}}, -{"id":"express-template-override","key":"express-template-override","value":{"rev":"5-758cf2eb0c9cbc32f205c4ba2ece24f9"}}, -{"id":"express-trace","key":"express-trace","value":{"rev":"5-ba59571f8881e02e2b297ed9ffb4e48c"}}, -{"id":"express-unstable","key":"express-unstable","value":{"rev":"3-06467336e1610ba9915401df26c936c1"}}, -{"id":"express-validate","key":"express-validate","value":{"rev":"15-b63bd9b18fadfc2345d0a10a7a2fb2e7"}}, -{"id":"express-view-helpers","key":"express-view-helpers","value":{"rev":"7-4d07ba11f81788783c6f9fd48fdf8834"}}, -{"id":"express-with-ease","key":"express-with-ease","value":{"rev":"3-604d9176a4a03f9f7c74679604c7bbf9"}}, -{"id":"express-wormhole","key":"express-wormhole","value":{"rev":"3-7e06cf63b070e0f54b2aa71b48db9a40"}}, -{"id":"expresso","key":"expresso","value":{"rev":"79-a27b6ef2f9e7bb9f85da34f728d124a8"}}, -{"id":"expressobdd","key":"expressobdd","value":{"rev":"5-e8cae7a17a9e8c1779c08abedc674e03"}}, -{"id":"ext","key":"ext","value":{"rev":"6-8790c06324c5f057b1713ba420e8bf27"}}, -{"id":"extend","key":"extend","value":{"rev":"3-934d0de77bbaefb1b52ec18a17f46d7d"}}, -{"id":"extendables","key":"extendables","value":{"rev":"11-e4db9b62a4047e95fb4d7f88e351a14e"}}, -{"id":"extjs-node","key":"extjs-node","value":{"rev":"3-2b2033dbbf0b99d41e876498886b0995"}}, -{"id":"extractcontent","key":"extractcontent","value":{"rev":"6-ad70764c834ecd3414cbc15dbda317c3"}}, -{"id":"extractor","key":"extractor","value":{"rev":"9-f95bde04bb8db37350c9cc95c5578c03"}}, -{"id":"extx-layout","key":"extx-layout","value":{"rev":"3-f6bbc3a923ebce17f62cbf382b096ac7"}}, -{"id":"extx-reference-slot","key":"extx-reference-slot","value":{"rev":"14-b1b92573492f7239144693ee9e1d1aac"}}, -{"id":"extx-shotenjin","key":"extx-shotenjin","value":{"rev":"5-c641121ba57fb960d8db766511ecf6cd"}}, -{"id":"eyes","key":"eyes","value":{"rev":"16-fab6b201646fb12986e396c33a7cd428"}}, -{"id":"f","key":"f","value":{"rev":"3-23b73ffafbe5b56b6a0736db6a7256a6"}}, -{"id":"f-core","key":"f-core","value":{"rev":"3-9a6898e007acf48d956f0a70ff07a273"}}, -{"id":"f7u12rl","key":"f7u12rl","value":{"rev":"3-7b5e15d106db8b7f8784b27f7d2c9bdc"}}, -{"id":"fab","key":"fab","value":{"rev":"10-149dec0b653ce481af013c63fec125e8"}}, -{"id":"fab.accept","key":"fab.accept","value":{"rev":"6-d6b08e7054d823906c6c64c92b008d3a"}}, -{"id":"fab.static","key":"fab.static","value":{"rev":"6-5bdb6db53223bb5203ba91a5b2b87566"}}, -{"id":"fabric","key":"fabric","value":{"rev":"15-30e99e486c58962c049bea54e00b7cb9"}}, -{"id":"face-detect","key":"face-detect","value":{"rev":"3-d4d3f1a894c807f79ba541d2f2ed630d"}}, -{"id":"facebook","key":"facebook","value":{"rev":"17-e241999000e34aed62ee0f9f358bfd06"}}, -{"id":"facebook-api","key":"facebook-api","value":{"rev":"5-cb9d07b2eba18d8fb960768d69f80326"}}, -{"id":"facebook-client","key":"facebook-client","value":{"rev":"17-84c106420b183ca791b0c80fd8c3fe00"}}, -{"id":"facebook-connect","key":"facebook-connect","value":{"rev":"6-471f28bb12928e32610d02c0b03aa972"}}, -{"id":"facebook-express","key":"facebook-express","value":{"rev":"11-6e6d98b8252907b05c41aac7e0418f4e"}}, -{"id":"facebook-graph","key":"facebook-graph","value":{"rev":"9-c92149825fef42ad76bcffdd232cc9a5"}}, -{"id":"facebook-graph-client","key":"facebook-graph-client","value":{"rev":"10-c3136a2b2e5c5d80b78404a4102af7b5"}}, -{"id":"facebook-js","key":"facebook-js","value":{"rev":"22-dd9d916550ebccb71e451acbd7a4b315"}}, -{"id":"facebook-realtime-graph","key":"facebook-realtime-graph","value":{"rev":"6-c4fe01ac036585394cd59f01c6fc7df1"}}, -{"id":"facebook-sdk","key":"facebook-sdk","value":{"rev":"21-77daf7eba51bb913e54381995718e13d"}}, -{"id":"facebook-session-cookie","key":"facebook-session-cookie","value":{"rev":"9-70e14cac759dacadacb0af17387ab230"}}, -{"id":"facebook-signed-request","key":"facebook-signed-request","value":{"rev":"5-11cb36123a94e37fff6a7efd6f7d88b9"}}, -{"id":"facebook.node","key":"facebook.node","value":{"rev":"3-f6760795e71c1d5734ae34f9288d02be"}}, -{"id":"factory-worker","key":"factory-worker","value":{"rev":"7-1c365b3dd92b12573d00c08b090e01ae"}}, -{"id":"fake","key":"fake","value":{"rev":"25-2d1ae2299168d95edb8d115fb7961c8e"}}, -{"id":"fake-queue","key":"fake-queue","value":{"rev":"7-d6970de6141c1345c6ad3cd1586cfe7b"}}, -{"id":"fakedb","key":"fakedb","value":{"rev":"34-889fb5c9fa328b536f9deb138ff125b1"}}, -{"id":"fakeweb","key":"fakeweb","value":{"rev":"3-7fb1394b4bac70f9ab26e60b1864b41f"}}, -{"id":"fanfeedr","key":"fanfeedr","value":{"rev":"22-de3d485ad60c8642eda260afe5620973"}}, -{"id":"fantomex","key":"fantomex","value":{"rev":"3-79b26bcf9aa365485ed8131c474bf6f8"}}, -{"id":"far","key":"far","value":{"rev":"19-c8d9f1e8bc12a31cb27bef3ed44759ce"}}, -{"id":"farm","key":"farm","value":{"rev":"31-ab77f7f48b24bf6f0388b926d2ac370b"}}, -{"id":"fast-detective","key":"fast-detective","value":{"rev":"5-b0b6c8901458f3f07044d4266db0aa52"}}, -{"id":"fast-msgpack-rpc","key":"fast-msgpack-rpc","value":{"rev":"7-b2dfd3d331459382fe1e8166288ffef6"}}, -{"id":"fast-or-slow","key":"fast-or-slow","value":{"rev":"13-4118190cd6a0185af8ea9b381ee2bc98"}}, -{"id":"fast-stats","key":"fast-stats","value":{"rev":"3-15cdd56d9efa38f08ff20ca731867d4d"}}, -{"id":"fastcgi-stream","key":"fastcgi-stream","value":{"rev":"5-99c0c4dfc7a874e1af71e5ef3ac95ba4"}}, -{"id":"faye","key":"faye","value":{"rev":"30-49b7d05534c35527972a4d5e07ac8895"}}, -{"id":"faye-service","key":"faye-service","value":{"rev":"3-bad8bf6722461627eac7d0141e09b3f7"}}, -{"id":"fe-fu","key":"fe-fu","value":{"rev":"21-f3cb04870621ce40da8ffa009686bdeb"}}, -{"id":"feed-tables","key":"feed-tables","value":{"rev":"9-4410bad138f4df570e7be37bb17209b3"}}, -{"id":"feedBum","key":"feedBum","value":{"rev":"3-b4ff9edffb0c5c33c4ed40f60a12611a"}}, -{"id":"feedparser","key":"feedparser","value":{"rev":"5-eb2c32e00832ed7036eb1b87d2eea33e"}}, -{"id":"feral","key":"feral","value":{"rev":"19-0b512b6301a26ca5502710254bd5a9ba"}}, -{"id":"fermata","key":"fermata","value":{"rev":"25-eeafa3e5b769a38b8a1065c0a66e0653"}}, -{"id":"ferret","key":"ferret","value":{"rev":"9-7ab6b29cb0cad9855d927855c2a27bff"}}, -{"id":"ffmpeg-node","key":"ffmpeg-node","value":{"rev":"3-e55011ecb147f599475a12b10724a583"}}, -{"id":"ffmpeg2theora","key":"ffmpeg2theora","value":{"rev":"13-05d2f83dbbb90e832176ebb7fdc2ae2e"}}, -{"id":"fiberize","key":"fiberize","value":{"rev":"5-dfb978d6b88db702f68a13e363fb21af"}}, -{"id":"fibers","key":"fibers","value":{"rev":"71-4b22dbb449839723ed9b0d533339c764"}}, -{"id":"fibers-promise","key":"fibers-promise","value":{"rev":"9-3a9977528f8df079969d4ae48db7a0a7"}}, -{"id":"fidel","key":"fidel","value":{"rev":"37-370838ed9984cfe6807114b5fef789e6"}}, -{"id":"fig","key":"fig","value":{"rev":"7-24acf90e7d06dc8b83adb02b5776de3c"}}, -{"id":"file","key":"file","value":{"rev":"6-1131008db6855f20969413be7cc2e968"}}, -{"id":"file-api","key":"file-api","value":{"rev":"9-a9cc8f3de14eef5bba86a80f6705651c"}}, -{"id":"fileify","key":"fileify","value":{"rev":"17-50603c037d5e3a0a405ff4af3e71211f"}}, -{"id":"filepad","key":"filepad","value":{"rev":"23-8c4b2c04151723033523369c42144cc9"}}, -{"id":"filerepl","key":"filerepl","value":{"rev":"5-94999cc91621e08f96ded7423ed6d6f0"}}, -{"id":"fileset","key":"fileset","value":{"rev":"3-ea6a9f45aaa5e65279463041ee629dbe"}}, -{"id":"filestore","key":"filestore","value":{"rev":"9-6cce7c9cd2b2b11d12905885933ad25a"}}, -{"id":"filesystem-composer","key":"filesystem-composer","value":{"rev":"34-f1d04d711909f3683c1d00cd4ab7ca47"}}, -{"id":"fileutils","key":"fileutils","value":{"rev":"3-88876b61c9d0a915f95ce0f258e5ce51"}}, -{"id":"filter","key":"filter","value":{"rev":"3-4032087a5cf2de3dd164c95454a2ab05"}}, -{"id":"filter-chain","key":"filter-chain","value":{"rev":"5-c522429dc83ccc7dde4eaf5409070332"}}, -{"id":"fin","key":"fin","value":{"rev":"23-77cf12e84eb62958b40aa08fdcbb259d"}}, -{"id":"fin-id","key":"fin-id","value":{"rev":"3-9f85ee1e426d4bdad5904002a6d9342c"}}, -{"id":"finance","key":"finance","value":{"rev":"3-cf97ddb6af3f6601bfb1e49a600f56af"}}, -{"id":"finder","key":"finder","value":{"rev":"13-65767fe51799a397ddd9b348ead12ed2"}}, -{"id":"findit","key":"findit","value":{"rev":"15-435e4168208548a2853f6efcd4529de3"}}, -{"id":"fingerprint","key":"fingerprint","value":{"rev":"3-c40e2169260010cac472e688c392ea3d"}}, -{"id":"finjector","key":"finjector","value":{"rev":"5-646da199b0b336d20e421ef6ad613e90"}}, -{"id":"firebird","key":"firebird","value":{"rev":"5-7e7ec03bc00e562f5f7afc7cad76da77"}}, -{"id":"firmata","key":"firmata","value":{"rev":"20-f3cbde43ce2677a208bcf3599af5b670"}}, -{"id":"first","key":"first","value":{"rev":"3-c647f6fc1353a1c7b49f5e6cd1905b1e"}}, -{"id":"fishback","key":"fishback","value":{"rev":"19-27a0fdc8c3abe4d61fff9c7a098f3fd9"}}, -{"id":"fitbit-js","key":"fitbit-js","value":{"rev":"3-62fe0869ddefd2949d8c1e568f994c93"}}, -{"id":"fix","key":"fix","value":{"rev":"17-4a79db9924922da010df71e5194bcac6"}}, -{"id":"flagpoll","key":"flagpoll","value":{"rev":"3-0eb7b98e2a0061233aa5228eb7348dff"}}, -{"id":"flags","key":"flags","value":{"rev":"3-594f0ec2e903ac74556d1c1f7c6cca3b"}}, -{"id":"flexcache","key":"flexcache","value":{"rev":"11-e1e4eeaa0793d95056a857bec04282ae"}}, -{"id":"flickr-conduit","key":"flickr-conduit","value":{"rev":"7-d3b2b610171589db68809c3ec3bf2bcb"}}, -{"id":"flickr-js","key":"flickr-js","value":{"rev":"5-66c8e8a00ad0a906f632ff99cf490163"}}, -{"id":"flickr-reflection","key":"flickr-reflection","value":{"rev":"6-3c34c3ac904b6d6f26182807fbb95c5e"}}, -{"id":"flo","key":"flo","value":{"rev":"3-ce440035f0ec9a10575b1c8fab0c77da"}}, -{"id":"flow","key":"flow","value":{"rev":"6-95841a07c96f664d49d1af35373b3dbc"}}, -{"id":"flowcontrol","key":"flowcontrol","value":{"rev":"3-093bbbc7496072d9ecb136a826680366"}}, -{"id":"flowjs","key":"flowjs","value":{"rev":"3-403fc9e107ec70fe06236c27e70451c7"}}, -{"id":"fluent-ffmpeg","key":"fluent-ffmpeg","value":{"rev":"33-5982779d5f55a5915f0f8b0353f1fe2a"}}, -{"id":"flume-rpc","key":"flume-rpc","value":{"rev":"7-4214a2db407a3e64f036facbdd34df91"}}, -{"id":"flux","key":"flux","value":{"rev":"3-1ad83106af7ee83547c797246bd2c8b1"}}, -{"id":"fly","key":"fly","value":{"rev":"9-0a45b1b97f56ba0faf4af4777b473fad"}}, -{"id":"fn","key":"fn","value":{"rev":"5-110bab5d623b3628e413d972e040ed26"}}, -{"id":"fnProxy","key":"fnProxy","value":{"rev":"3-db1c90e5a06992ed290c679ac6dbff6a"}}, -{"id":"follow","key":"follow","value":{"rev":"3-44256c802b4576fcbae1264e9b824e6a"}}, -{"id":"fomatto","key":"fomatto","value":{"rev":"7-31ce5c9eba7f084ccab2dc5994796f2d"}}, -{"id":"foounit","key":"foounit","value":{"rev":"20-caf9cd90d6c94d19be0b3a9c9cb33ee0"}}, -{"id":"forEachAsync","key":"forEachAsync","value":{"rev":"3-d9cd8021ea9d5014583327752a9d01c4"}}, -{"id":"forever","key":"forever","value":{"rev":"99-90060d5d1754b1bf749e5278a2a4516b"}}, -{"id":"forge","key":"forge","value":{"rev":"9-0d9d59fd2d47a804e600aaef538ebbbf"}}, -{"id":"fork","key":"fork","value":{"rev":"13-f355105e07608de5ae2f3e7c0817af52"}}, -{"id":"forker","key":"forker","value":{"rev":"11-9717e2e3fa60b46df08261d936d9e5d7"}}, -{"id":"form-data","key":"form-data","value":{"rev":"3-5750e73f7a0902ec2fafee1db6d2e6f6"}}, -{"id":"form-validator","key":"form-validator","value":{"rev":"25-7d016b35895dc58ffd0bbe54fd9be241"}}, -{"id":"form2json","key":"form2json","value":{"rev":"8-7501dd9b43b9fbb7194b94e647816e5e"}}, -{"id":"formaline","key":"formaline","value":{"rev":"3-2d45fbb3e83b7e77bde0456607e6f1e3"}}, -{"id":"format","key":"format","value":{"rev":"7-5dddc67c10de521ef06a7a07bb3f7e2e"}}, -{"id":"formatdate","key":"formatdate","value":{"rev":"3-6d522e3196fe3b438fcc4aed0f7cf690"}}, -{"id":"formidable","key":"formidable","value":{"rev":"87-d27408b00793fee36f6632a895372590"}}, -{"id":"forms","key":"forms","value":{"rev":"6-253e032f07979b79c2e7dfa01be085dc"}}, -{"id":"forrst","key":"forrst","value":{"rev":"3-ef553ff1b6383bab0f81f062cdebac53"}}, -{"id":"fortumo","key":"fortumo","value":{"rev":"6-def3d146b29b6104019c513ce20bb61f"}}, -{"id":"foss-credits","key":"foss-credits","value":{"rev":"3-c824326e289e093406b2de4efef70cb7"}}, -{"id":"foss-credits-collection","key":"foss-credits-collection","value":{"rev":"17-de4ffca51768a36c8fb1b9c2bc66c80f"}}, -{"id":"foursquareonnode","key":"foursquareonnode","value":{"rev":"5-a4f0a1ed5d3be3056f10f0e9517efa83"}}, -{"id":"fraggle","key":"fraggle","value":{"rev":"7-b9383baf96bcdbd4022b4b887e4a3729"}}, -{"id":"framework","key":"framework","value":{"rev":"3-afb19a9598a0d50320b4f1faab1ae2c6"}}, -{"id":"frameworkjs","key":"frameworkjs","value":{"rev":"7-cd418da3272c1e8349126e442ed15dbd"}}, -{"id":"frank","key":"frank","value":{"rev":"12-98031fb56f1c89dfc7888f5d8ca7f0a9"}}, -{"id":"freakset","key":"freakset","value":{"rev":"21-ba60d0840bfa3da2c8713c3c2e6856a0"}}, -{"id":"freckle","key":"freckle","value":{"rev":"3-8e2e9a07b2650fbbd0a598b948ef993b"}}, -{"id":"freebase","key":"freebase","value":{"rev":"7-a1daf1cc2259b886f574f5c902eebcf4"}}, -{"id":"freecontrol","key":"freecontrol","value":{"rev":"6-7a51776b8764f406573d5192bab36adf"}}, -{"id":"freestyle","key":"freestyle","value":{"rev":"9-100f9e9d3504d6e1c6a2d47651c70f51"}}, -{"id":"frenchpress","key":"frenchpress","value":{"rev":"9-306d6ac21837879b8040d7f9aa69fc20"}}, -{"id":"fs-boot","key":"fs-boot","value":{"rev":"20-72b44b403767aa486bf1dc987c750733"}}, -{"id":"fs-ext","key":"fs-ext","value":{"rev":"10-3360831c3852590a762f8f82525c025e"}}, -{"id":"fsevents","key":"fsevents","value":{"rev":"6-bb994f41842e144cf43249fdf6bf51e1"}}, -{"id":"fsext","key":"fsext","value":{"rev":"9-a1507d84e91ddf26ffaa76016253b4fe"}}, -{"id":"fsh","key":"fsh","value":{"rev":"5-1e3784b2df1c1a28b81f27907945f48b"}}, -{"id":"fsm","key":"fsm","value":{"rev":"5-b113be7b30b2a2c9089edcb6fa4c15d3"}}, -{"id":"fswatch","key":"fswatch","value":{"rev":"11-287eea565c9562161eb8969d765bb191"}}, -{"id":"ftp","key":"ftp","value":{"rev":"5-751e312520c29e76f7d79c648248c56c"}}, -{"id":"ftp-get","key":"ftp-get","value":{"rev":"27-1e908bd075a0743dbb1d30eff06485e2"}}, -{"id":"fugue","key":"fugue","value":{"rev":"81-0c08e67e8deb4b5b677fe19f8362dbd8"}}, -{"id":"fullauto","key":"fullauto","value":{"rev":"9-ef915156026dabded5a4a76c5a751916"}}, -{"id":"fun","key":"fun","value":{"rev":"12-8396e3583e206dbf90bbea4316976f66"}}, -{"id":"functional","key":"functional","value":{"rev":"5-955979028270f5d3749bdf86b4d2c925"}}, -{"id":"functools","key":"functools","value":{"rev":"5-42ba84ce365bf8c0aaf3e5e6c369920b"}}, -{"id":"funk","key":"funk","value":{"rev":"14-67440a9b2118d8f44358bf3b17590243"}}, -{"id":"fusion","key":"fusion","value":{"rev":"19-64983fc6e5496c836be26e5fbc8527d1"}}, -{"id":"fusker","key":"fusker","value":{"rev":"48-58f05561c65ad288a78fa7210f146ba1"}}, -{"id":"future","key":"future","value":{"rev":"3-0ca60d8ae330e40ef6cf8c17a421d668"}}, -{"id":"futures","key":"futures","value":{"rev":"44-8a2aaf0f40cf84c9475824d9cec006ad"}}, -{"id":"fuzzy_file_finder","key":"fuzzy_file_finder","value":{"rev":"8-ee555aae1d433e60166d2af1d72ac6b9"}}, -{"id":"fuzzylogic","key":"fuzzylogic","value":{"rev":"8-596a8f4744d1dabcb8eb6466d9980fca"}}, -{"id":"fxs","key":"fxs","value":{"rev":"3-d3cb81151b0ddd9a4a5934fb63ffff75"}}, -{"id":"g","key":"g","value":{"rev":"3-55742a045425a9b4c9fe0e8925fad048"}}, -{"id":"g.raphael","key":"g.raphael","value":{"rev":"4-190d0235dc08f783dda77b3ecb60b11a"}}, -{"id":"ga","key":"ga","value":{"rev":"3-c47d516ac5e6de8ef7ef9d16fabcf6c7"}}, -{"id":"galletita","key":"galletita","value":{"rev":"3-aa7a01c3362a01794f36e7aa9664b850"}}, -{"id":"game","key":"game","value":{"rev":"3-0f1539e4717a2780205d98ef6ec0886d"}}, -{"id":"gamina","key":"gamina","value":{"rev":"15-871f4970f1e87b7c8ad361456001c76f"}}, -{"id":"gang-bang","key":"gang-bang","value":{"rev":"6-f565cb7027a8ca109481df49a6d41114"}}, -{"id":"gapserver","key":"gapserver","value":{"rev":"9-b25eb0eefc21e407cba596a0946cb3a0"}}, -{"id":"garbage","key":"garbage","value":{"rev":"3-80f4097d5f1f2c75f509430a11c8a15e"}}, -{"id":"gaseous","key":"gaseous","value":{"rev":"3-8021582ab9dde42d235193e6067be72d"}}, -{"id":"gaudium","key":"gaudium","value":{"rev":"11-7d612f1c5d921180ccf1c162fe2c7446"}}, -{"id":"gauss","key":"gauss","value":{"rev":"3-8fd18b2d7a223372f190797e4270a535"}}, -{"id":"gcli","key":"gcli","value":{"rev":"3-210404347cc643e924cec678d0195099"}}, -{"id":"gcw2html","key":"gcw2html","value":{"rev":"3-2aff7bff7981f2f9800c5f65812aa0a6"}}, -{"id":"gd","key":"gd","value":{"rev":"4-ac5a662e709a2993ed1fd1cbf7c4d7b4"}}, -{"id":"gdata","key":"gdata","value":{"rev":"3-c6b3a95064a1e1e0bb74f248ab4e73c4"}}, -{"id":"gdata-js","key":"gdata-js","value":{"rev":"17-0959500a4000d7058d8116af1e01b0d9"}}, -{"id":"gearman","key":"gearman","value":{"rev":"8-ac9fb7af75421ca2988d6098dbfd4c7c"}}, -{"id":"gearnode","key":"gearnode","value":{"rev":"7-8e40ec257984e887e2ff5948a6dde04e"}}, -{"id":"geck","key":"geck","value":{"rev":"161-c8117106ef58a6d7d21920df80159eab"}}, -{"id":"geddy","key":"geddy","value":{"rev":"13-da16f903aca1ec1f47086fa250b58abb"}}, -{"id":"gen","key":"gen","value":{"rev":"3-849005c8b8294c2a811ff4eccdedf436"}}, -{"id":"generic-function","key":"generic-function","value":{"rev":"5-dc046f58f96119225efb17ea5334a60f"}}, -{"id":"generic-pool","key":"generic-pool","value":{"rev":"18-65ff988620293fe7ffbd0891745c3ded"}}, -{"id":"genji","key":"genji","value":{"rev":"49-4c72bcaa57572ad0d43a1b7e9e5a963a"}}, -{"id":"genstatic","key":"genstatic","value":{"rev":"19-4278d0766226af4db924bb0f6b127699"}}, -{"id":"gently","key":"gently","value":{"rev":"24-c9a3ba6b6fd183ee1b5dda569122e978"}}, -{"id":"genx","key":"genx","value":{"rev":"7-f0c0ff65e08e045e8dd1bfcb25ca48d4"}}, -{"id":"geo","key":"geo","value":{"rev":"7-fa2a79f7260b849c277735503a8622e9"}}, -{"id":"geo-distance","key":"geo-distance","value":{"rev":"7-819a30e9b4776e4416fe9510ca79cd93"}}, -{"id":"geocoder","key":"geocoder","value":{"rev":"15-736e627571ad8dba3a9d0da1ae019c35"}}, -{"id":"geohash","key":"geohash","value":{"rev":"6-b9e62c804abe565425a8e6a01354407a"}}, -{"id":"geoip","key":"geoip","value":{"rev":"231-e5aa7acd5fb44833a67f96476b4fac49"}}, -{"id":"geoip-lite","key":"geoip-lite","value":{"rev":"9-efd916135c056406ede1ad0fe15534fa"}}, -{"id":"geojs","key":"geojs","value":{"rev":"35-b0f97b7c72397d6eb714602dc1121183"}}, -{"id":"geolib","key":"geolib","value":{"rev":"3-923a8622d1bd97c22f71ed6537ba5062"}}, -{"id":"geonode","key":"geonode","value":{"rev":"35-c2060653af72123f2f9994fca1c86d70"}}, -{"id":"geoutils","key":"geoutils","value":{"rev":"6-2df101fcbb01849533b2fbc80dc0eb7a"}}, -{"id":"gerbil","key":"gerbil","value":{"rev":"3-b5961044bda490a34085ca826aeb3022"}}, -{"id":"gerenuk","key":"gerenuk","value":{"rev":"13-4e45a640bcbadc3112e105ec5b60b907"}}, -{"id":"get","key":"get","value":{"rev":"18-dd215d673f19bbd8b321a7dd63e004e8"}}, -{"id":"getopt","key":"getopt","value":{"rev":"3-454354e4557d5e7205410acc95c9baae"}}, -{"id":"getrusage","key":"getrusage","value":{"rev":"8-d6ef24793b8e4c46f3cdd14937cbabe1"}}, -{"id":"gettext","key":"gettext","value":{"rev":"3-4c12268a4cab64ec4ef3ac8c9ec7912b"}}, -{"id":"getz","key":"getz","value":{"rev":"9-f3f43934139c9af6ddfb8b91e9a121ba"}}, -{"id":"gevorg.me","key":"gevorg.me","value":{"rev":"33-700502b8ca7041bf8d29368069cac365"}}, -{"id":"gex","key":"gex","value":{"rev":"3-105824d7a3f9c2ac7313f284c3f81d22"}}, -{"id":"gexode","key":"gexode","value":{"rev":"3-4a3552eae4ff3ba4443f9371a1ab4b2e"}}, -{"id":"gfx","key":"gfx","value":{"rev":"8-1f6c90bc3819c3b237e8d1f28ad1b136"}}, -{"id":"gherkin","key":"gherkin","value":{"rev":"77-6e835c8107bb4c7c8ad1fa072ac12c20"}}, -{"id":"ghm","key":"ghm","value":{"rev":"3-c440ae39832a575087ff1920b33c275b"}}, -{"id":"gif","key":"gif","value":{"rev":"14-e65638621d05b99ffe71b18097f29134"}}, -{"id":"gimme","key":"gimme","value":{"rev":"7-caab8354fe257fc307f8597e34ede547"}}, -{"id":"gist","key":"gist","value":{"rev":"11-eea7ea1adf3cde3a0804d2e1b0d6f7d6"}}, -{"id":"gista","key":"gista","value":{"rev":"23-48b8c374cfb8fc4e8310f3469cead6d5"}}, -{"id":"gisty","key":"gisty","value":{"rev":"5-1a898d0816f4129ab9a0d3f03ff9feb4"}}, -{"id":"git","key":"git","value":{"rev":"39-1f77df3ebeec9aae47ae8df56de6757f"}}, -{"id":"git-fs","key":"git-fs","value":{"rev":"14-7d365cddff5029a9d11fa8778a7296d2"}}, -{"id":"gitProvider","key":"gitProvider","value":{"rev":"9-c704ae702ef27bb57c0efd279a464e28"}}, -{"id":"github","key":"github","value":{"rev":"16-9345138ca7507c12be4a817b1abfeef6"}}, -{"id":"github-flavored-markdown","key":"github-flavored-markdown","value":{"rev":"3-f12043eb2969aff51db742b13d329446"}}, -{"id":"gitteh","key":"gitteh","value":{"rev":"39-88b00491fd4ce3294b8cdf61b9708383"}}, -{"id":"gitter","key":"gitter","value":{"rev":"16-88d7ef1ab6a7e751ca2cf6b50894deb4"}}, -{"id":"gittyup","key":"gittyup","value":{"rev":"37-ed6030c1acdd8b989ac34cd10d6dfd1e"}}, -{"id":"gitweb","key":"gitweb","value":{"rev":"9-5331e94c6df9ee7724cde3738a0c6230"}}, -{"id":"gitwiki","key":"gitwiki","value":{"rev":"9-0f167a3a87bce7f3e941136a06e91810"}}, -{"id":"gizmo","key":"gizmo","value":{"rev":"5-1da4da8d66690457c0bf743473b755f6"}}, -{"id":"gleak","key":"gleak","value":{"rev":"17-d44a968b32e4fdc7d27bacb146391422"}}, -{"id":"glob","key":"glob","value":{"rev":"203-4a79e232cf6684a48ccb9134a6ce938c"}}, -{"id":"glob-trie.js","key":"glob-trie.js","value":{"rev":"7-bff534e3aba8f6333fa5ea871b070de2"}}, -{"id":"global","key":"global","value":{"rev":"3-f15b0c9ae0ea9508890bff25c8e0f795"}}, -{"id":"globalize","key":"globalize","value":{"rev":"5-33d10c33fb24af273104f66098e246c4"}}, -{"id":"glossary","key":"glossary","value":{"rev":"3-5e143d09d22a01eb2ee742ceb3e18f6e"}}, -{"id":"glossy","key":"glossy","value":{"rev":"9-f31e00844e8be49e5812fe64a6f1e1cc"}}, -{"id":"gm","key":"gm","value":{"rev":"28-669722d34a3dc29c8c0b27abd73493a1"}}, -{"id":"gnarly","key":"gnarly","value":{"rev":"3-796f5df3483f304cb404cc7ac7702512"}}, -{"id":"gnomenotify","key":"gnomenotify","value":{"rev":"9-bc066c0556ad4a20e7a7ae58cdc4cf91"}}, -{"id":"gofer","key":"gofer","value":{"rev":"15-3fc77ce34e95ffecd12d3854a1bb2da9"}}, -{"id":"goo.gl","key":"goo.gl","value":{"rev":"37-eac7c44d33cc42c618372f0bdd4365c2"}}, -{"id":"goodreads","key":"goodreads","value":{"rev":"5-acd9fe24139aa8b81b26431dce9954aa"}}, -{"id":"goog","key":"goog","value":{"rev":"13-c964ecfcef4d20c8c7d7526323257c04"}}, -{"id":"googl","key":"googl","value":{"rev":"8-2d4d80ef0c5f93400ec2ec8ef80de433"}}, -{"id":"google-openid","key":"google-openid","value":{"rev":"19-380884ba97e3d6fc48c8c7db3dc0e91b"}}, -{"id":"google-spreadsheets","key":"google-spreadsheets","value":{"rev":"3-f640ef136c4b5e90210c2d5d43102b38"}}, -{"id":"google-voice","key":"google-voice","value":{"rev":"37-2e1c3cba3455852f26b0ccaf1fed7125"}}, -{"id":"googleanalytics","key":"googleanalytics","value":{"rev":"8-1d3e470ce4aacadb0418dd125887813d"}}, -{"id":"googleclientlogin","key":"googleclientlogin","value":{"rev":"23-5de8ee62c0ddbc63a001a36a6afe730e"}}, -{"id":"googlediff","key":"googlediff","value":{"rev":"3-438a2f0758e9770a157ae4cce9b6f49e"}}, -{"id":"googlemaps","key":"googlemaps","value":{"rev":"18-bc939560c587711f3d96f3caadd65a7f"}}, -{"id":"googleplus-scraper","key":"googleplus-scraper","value":{"rev":"7-598ea99bd64f4ad69cccb74095abae59"}}, -{"id":"googlereaderauth","key":"googlereaderauth","value":{"rev":"5-cd0eb8ca36ea78620af0fce270339a7b"}}, -{"id":"googlesets","key":"googlesets","value":{"rev":"5-1b2e597e903c080182b3306d63278fd9"}}, -{"id":"googleweather","key":"googleweather","value":{"rev":"3-6bfdaaeedb8a712ee3e89a8ed27508eb"}}, -{"id":"gopostal.node","key":"gopostal.node","value":{"rev":"3-14ff3a655dc3680c9e8e2751ebe294bc"}}, -{"id":"gowallan","key":"gowallan","value":{"rev":"3-23adc9c01a6b309eada47602fdc8ed90"}}, -{"id":"gowiththeflow","key":"gowiththeflow","value":{"rev":"3-52bb6cf6294f67ba5a892db4666d3790"}}, -{"id":"gpg","key":"gpg","value":{"rev":"5-0ca2b5af23e108a4f44f367992a75fed"}}, -{"id":"graceful-fs","key":"graceful-fs","value":{"rev":"3-01e9f7d1c0f6e6a611a60ee84de1f5cc"}}, -{"id":"gracie","key":"gracie","value":{"rev":"3-aa0f7c01a33c7c1e9a49b86886ef5255"}}, -{"id":"graff","key":"graff","value":{"rev":"7-5ab558cb24e30abd67f2a1dbf47cd639"}}, -{"id":"graft","key":"graft","value":{"rev":"3-7419de38b249b891bf7998bcdd2bf557"}}, -{"id":"grain","key":"grain","value":{"rev":"3-e57cbf02121970da230964ddbfd31432"}}, -{"id":"grainstore","key":"grainstore","value":{"rev":"19-5f9c5bb13b2c9ac4e6a05aec33aeb7c5"}}, -{"id":"graph","key":"graph","value":{"rev":"7-909d2fefcc84b5dd1512b60d631ea4e5"}}, -{"id":"graphquire","key":"graphquire","value":{"rev":"27-246e798f80b3310419644302405d68ad"}}, -{"id":"graphviz","key":"graphviz","value":{"rev":"8-3b79341eaf3f67f91bce7c88c08b9f0d"}}, -{"id":"grasshopper","key":"grasshopper","value":{"rev":"45-4002406990476b74dac5108bd19c4274"}}, -{"id":"gravatar","key":"gravatar","value":{"rev":"11-0164b7ac97e8a477b4e8791eae2e7fea"}}, -{"id":"grave","key":"grave","value":{"rev":"3-136f6378b956bc5dd9773250f8813038"}}, -{"id":"gravity","key":"gravity","value":{"rev":"5-dd40fcee1a769ce786337e9536d24244"}}, -{"id":"graylog","key":"graylog","value":{"rev":"5-abcff9cd91ff20e36f8a70a3f2de658b"}}, -{"id":"greg","key":"greg","value":{"rev":"5-ececb0a3bb552b6da4f66b8bf6f75cf0"}}, -{"id":"gridcentric","key":"gridcentric","value":{"rev":"4-4378e1c280e18b5aaabd23038b80d76c"}}, -{"id":"gridly","key":"gridly","value":{"rev":"3-86e878756b493da8f66cbd633a15f821"}}, -{"id":"grinder","key":"grinder","value":{"rev":"9-0aaeecf0c81b1c9c93a924c5eb0bff45"}}, -{"id":"grir.am","key":"grir.am","value":{"rev":"3-3ec153c764af1c26b50fefa437318c5a"}}, -{"id":"groundcrew","key":"groundcrew","value":{"rev":"3-9e9ed9b1c70c00c432f36bb853fa21a0"}}, -{"id":"groupie","key":"groupie","value":{"rev":"6-b5e3f0891a7e8811d6112b24bd5a46b4"}}, -{"id":"groupon","key":"groupon","value":{"rev":"21-8b74723c153695f4ed4917575abcca8f"}}, -{"id":"growing-file","key":"growing-file","value":{"rev":"7-995b233a1add5b9ea80aec7ac3f60dc5"}}, -{"id":"growl","key":"growl","value":{"rev":"10-4be41ae10ec96e1334dccdcdced12fe3"}}, -{"id":"gsl","key":"gsl","value":{"rev":"49-3367acfb521b30d3ddb9b80305009553"}}, -{"id":"gss","key":"gss","value":{"rev":"3-e4cffbbbc4536d952d13d46376d899b7"}}, -{"id":"guards","key":"guards","value":{"rev":"8-d7318d3d9dc842ab41e6ef5b88f9d37f"}}, -{"id":"guardtime","key":"guardtime","value":{"rev":"3-5a2942efabab100ffb3dc0fa3b581b7a"}}, -{"id":"guava","key":"guava","value":{"rev":"11-d9390d298b503f0ffb8e3ba92eeb9759"}}, -{"id":"guid","key":"guid","value":{"rev":"16-d99e725bbbf97a326833858767b7ed08"}}, -{"id":"gumbo","key":"gumbo","value":{"rev":"31-727cf5a3b7d8590fff871f27da114d9d"}}, -{"id":"gunther","key":"gunther","value":{"rev":"9-f95c89128412208d16acd3e615844115"}}, -{"id":"gzbz2","key":"gzbz2","value":{"rev":"3-e1844b1b3a7881a0c8dc0dd4edcc11ca"}}, -{"id":"gzip","key":"gzip","value":{"rev":"17-37afa05944f055d6f43ddc87c1b163c2"}}, -{"id":"gzip-stack","key":"gzip-stack","value":{"rev":"8-cf455d60277832c60ee622d198c0c51a"}}, -{"id":"gzippo","key":"gzippo","value":{"rev":"15-6416c13ecbbe1c5cd3e30adf4112ead7"}}, -{"id":"h5eb","key":"h5eb","value":{"rev":"3-11ed2566fa4b8a01ff63a720c94574cd"}}, -{"id":"hack","key":"hack","value":{"rev":"3-70f536dd46719e8201a6ac5cc96231f6"}}, -{"id":"hack.io","key":"hack.io","value":{"rev":"18-128305614e7fd6b461248bf3bfdd7ab7"}}, -{"id":"hacktor","key":"hacktor","value":{"rev":"3-51b438df35ba8a955d434ab25a4dad67"}}, -{"id":"haibu","key":"haibu","value":{"rev":"99-b29b8c37be42f90985c6d433d53c8679"}}, -{"id":"haibu-carapace","key":"haibu-carapace","value":{"rev":"22-9a89b2f495e533d0f93e4ee34121e48c"}}, -{"id":"haibu-nginx","key":"haibu-nginx","value":{"rev":"7-e176128dc6dbb0d7f5f33369edf1f7ee"}}, -{"id":"halfstreamxml","key":"halfstreamxml","value":{"rev":"7-5c0f3defa6ba921f8edb564584553df4"}}, -{"id":"ham","key":"ham","value":{"rev":"3-1500dc495cade7334f6a051f2758f748"}}, -{"id":"haml","key":"haml","value":{"rev":"15-a93e7762c7d43469a06519472497fd93"}}, -{"id":"haml-edge","key":"haml-edge","value":{"rev":"5-c4e44a73263ac9b7e632375de7e43d7c"}}, -{"id":"hamljs","key":"hamljs","value":{"rev":"10-a01c7214b69992352bde44938418ebf4"}}, -{"id":"hamljs-coffee","key":"hamljs-coffee","value":{"rev":"3-c2733c8ff38f5676075b84cd7f3d8684"}}, -{"id":"handlebars","key":"handlebars","value":{"rev":"4-0e21906b78605f7a1d5ec7cb4c7d35d7"}}, -{"id":"hanging-gardens","key":"hanging-gardens","value":{"rev":"27-3244e37f08bea0e31759e9f38983f59a"}}, -{"id":"hanging_gardens_registry","key":"hanging_gardens_registry","value":{"rev":"17-d87aa3a26f91dc314f02c686672a5ec6"}}, -{"id":"hapi","key":"hapi","value":{"rev":"3-ed721fe9aae4a459fe0945dabd7d680a"}}, -{"id":"harmony","key":"harmony","value":{"rev":"3-d6c9d6acc29d29c97c75c77f7c8e1390"}}, -{"id":"hascan","key":"hascan","value":{"rev":"13-a7ab15c72f464b013cbc55dc426543ca"}}, -{"id":"hash_ring","key":"hash_ring","value":{"rev":"12-0f072b1dd1fd93ae2f2b79f5ea72074d"}}, -{"id":"hashbangify","key":"hashbangify","value":{"rev":"5-738e0cf99649d41c19d3449c0e9a1cbf"}}, -{"id":"hashish","key":"hashish","value":{"rev":"9-62c5e74355458e1ead819d87151b7d38"}}, -{"id":"hashkeys","key":"hashkeys","value":{"rev":"3-490809bdb61f930f0d9f370eaadf36ea"}}, -{"id":"hashlib","key":"hashlib","value":{"rev":"7-1f19c9d6062ff22ed2e963204a1bd405"}}, -{"id":"hashring","key":"hashring","value":{"rev":"11-4c9f2b1ba7931c8bab310f4ecaf91419"}}, -{"id":"hashtable","key":"hashtable","value":{"rev":"7-2aaf2667cbdb74eb8da61e2e138059ca"}}, -{"id":"hat","key":"hat","value":{"rev":"9-6f37874d9703eab62dc875e2373837a8"}}, -{"id":"hbase","key":"hbase","value":{"rev":"20-7ca92712de26ffb18d275a21696aa263"}}, -{"id":"hbase-thrift","key":"hbase-thrift","value":{"rev":"7-39afb33a4e61cc2b3dc94f0c7fd32c65"}}, -{"id":"hbs","key":"hbs","value":{"rev":"29-aa2676e6790c5716f84f128dcd03e797"}}, -{"id":"header-stack","key":"header-stack","value":{"rev":"13-7ad1ccf3c454d77029c000ceb18ce5ab"}}, -{"id":"headers","key":"headers","value":{"rev":"13-04f8f5f25e2dd9890f6b2f120adf297a"}}, -{"id":"healthety","key":"healthety","value":{"rev":"60-07c67c22ee2a13d0ad675739d1814a6d"}}, -{"id":"heatmap","key":"heatmap","value":{"rev":"9-c53f4656d9517f184df7aea9226c1765"}}, -{"id":"heavy-flow","key":"heavy-flow","value":{"rev":"5-0b9188334339e7372b364a7fc730c639"}}, -{"id":"heckle","key":"heckle","value":{"rev":"13-b462abef7b9d1471ed8fb8f23af463e0"}}, -{"id":"helium","key":"helium","value":{"rev":"3-4d6ce9618c1be522268944240873f53e"}}, -{"id":"hello-world","key":"hello-world","value":{"rev":"3-e87f287308a209491c011064a87100b7"}}, -{"id":"hello.io","key":"hello.io","value":{"rev":"3-39b78278fa638495522edc7a84f6a52e"}}, -{"id":"helloworld","key":"helloworld","value":{"rev":"3-8f163aebdcf7d8761709bdbb634c3689"}}, -{"id":"helpers","key":"helpers","value":{"rev":"3-67d75b1c8e5ad2a268dd4ea191d4754b"}}, -{"id":"helpful","key":"helpful","value":{"rev":"41-e11bed25d5a0ca7e7ad116d5a339ec2a"}}, -{"id":"hem","key":"hem","value":{"rev":"27-042fc9d4b96f20112cd943e019e54d20"}}, -{"id":"hempwick","key":"hempwick","value":{"rev":"11-de1f6f0f23937d9f33286e12ee877540"}}, -{"id":"heritable","key":"heritable","value":{"rev":"13-1468ff92063251a037bbe80ee987a9c3"}}, -{"id":"hermes-raw-client","key":"hermes-raw-client","value":{"rev":"11-5d143c371cb8353612badc72be1917ff"}}, -{"id":"heru","key":"heru","value":{"rev":"3-d124a20939e30e2a3c08f7104b2a1a5c"}}, -{"id":"hexdump","key":"hexdump","value":{"rev":"3-c455710ca80662969ccbca3acc081cb8"}}, -{"id":"hexy","key":"hexy","value":{"rev":"16-5142b0461622436daa2e476d252770f2"}}, -{"id":"highlight","key":"highlight","value":{"rev":"9-4b172b7aef6f40d768f022b2ba4e6748"}}, -{"id":"highlight.js","key":"highlight.js","value":{"rev":"5-16c1ebd28d5f2e781e666c6ee013c30c"}}, -{"id":"hiker","key":"hiker","value":{"rev":"9-89d1ce978b349f1f0df262655299d83c"}}, -{"id":"hipchat","key":"hipchat","value":{"rev":"3-73118782367d474af0f6410290df5f7f"}}, -{"id":"hipchat-js","key":"hipchat-js","value":{"rev":"3-253b83875d3e18e9c89333bc377183c3"}}, -{"id":"hiredis","key":"hiredis","value":{"rev":"46-29ceb03860efbd4b3b995247f27f78b9"}}, -{"id":"hive","key":"hive","value":{"rev":"15-40a4c6fcfa3b80007a18ef4ede80075b"}}, -{"id":"hive-cache","key":"hive-cache","value":{"rev":"3-36b10607b68586fccbfeb856412bd6bf"}}, -{"id":"hoard","key":"hoard","value":{"rev":"13-75d4c484095e2e38ac63a65bd9fd7f4b"}}, -{"id":"hook","key":"hook","value":{"rev":"7-2f1e375058e2b1fa61d3651f6d57a6f8"}}, -{"id":"hook.io","key":"hook.io","value":{"rev":"63-9fac4fb8337d1953963d47144f806f72"}}, -{"id":"hook.io-browser","key":"hook.io-browser","value":{"rev":"3-7e04347d80adc03eb5637b7e4b8ca58b"}}, -{"id":"hook.io-couch","key":"hook.io-couch","value":{"rev":"3-ce0eb281d1ba21aa1caca3a52553a07b"}}, -{"id":"hook.io-cron","key":"hook.io-cron","value":{"rev":"15-50deedc2051ce65bca8a42048154139c"}}, -{"id":"hook.io-helloworld","key":"hook.io-helloworld","value":{"rev":"23-ef5cf0cec9045d28d846a7b0872874e4"}}, -{"id":"hook.io-irc","key":"hook.io-irc","value":{"rev":"5-39c7ac5e192aef34b87af791fa77ee04"}}, -{"id":"hook.io-logger","key":"hook.io-logger","value":{"rev":"13-9e3208ea8eacfe5378cd791f2377d06d"}}, -{"id":"hook.io-mailer","key":"hook.io-mailer","value":{"rev":"9-d9415d53dc086102024cf7400fdfb7a2"}}, -{"id":"hook.io-pinger","key":"hook.io-pinger","value":{"rev":"17-860ab3a892284b91999f86c3882e2ff5"}}, -{"id":"hook.io-repl","key":"hook.io-repl","value":{"rev":"13-c0d430ccdfd197e4746c46d2814b6d92"}}, -{"id":"hook.io-request","key":"hook.io-request","value":{"rev":"13-f0e8d167d59917d90266f921e3ef7c64"}}, -{"id":"hook.io-sitemonitor","key":"hook.io-sitemonitor","value":{"rev":"8-725ea7deb9cb1031eabdc4fd798308ff"}}, -{"id":"hook.io-twilio","key":"hook.io-twilio","value":{"rev":"11-6b2e231307f6174861aa5dcddad264b3"}}, -{"id":"hook.io-twitter","key":"hook.io-twitter","value":{"rev":"3-59296395b22e661e7e5c141c4c7be46d"}}, -{"id":"hook.io-webhook","key":"hook.io-webhook","value":{"rev":"15-b27e51b63c8ec70616c66061d949f388"}}, -{"id":"hook.io-webserver","key":"hook.io-webserver","value":{"rev":"29-eb6bff70736648427329eba08b5f55c3"}}, -{"id":"hook.io-ws","key":"hook.io-ws","value":{"rev":"4-a85578068b54560ef663a7ecfea2731f"}}, -{"id":"hooks","key":"hooks","value":{"rev":"33-6640fb0c27903af6b6ae7b7c41d79e01"}}, -{"id":"hoptoad-notifier","key":"hoptoad-notifier","value":{"rev":"16-8249cb753a3626f2bf2664024ae7a5ee"}}, -{"id":"horaa","key":"horaa","value":{"rev":"5-099e5d6486d10944e10b584eb3f6e924"}}, -{"id":"hornet","key":"hornet","value":{"rev":"22-8c40d7ba4ca832b951e6d5db165f3305"}}, -{"id":"horseman","key":"horseman","value":{"rev":"11-7228e0f84c2036669a218710c22f72c0"}}, -{"id":"hostify","key":"hostify","value":{"rev":"11-8c1a2e73f8b9474a6c26121688c28dc7"}}, -{"id":"hostinfo","key":"hostinfo","value":{"rev":"5-c8d638f40ccf94f4083430966d25e787"}}, -{"id":"hostip","key":"hostip","value":{"rev":"3-d4fd628b94e1f913d97ec1746d96f2a0"}}, -{"id":"hostname","key":"hostname","value":{"rev":"7-55fefb3c37990bbcad3d98684d17f38f"}}, -{"id":"hotnode","key":"hotnode","value":{"rev":"16-d7dad5de3ffc2ca6a04f74686aeb0e4b"}}, -{"id":"howmuchtime","key":"howmuchtime","value":{"rev":"3-351ce870ae6e2c21a798169d074e2a3f"}}, -{"id":"hstore","key":"hstore","value":{"rev":"3-55ab4d359c2fc8725829038e3adb7571"}}, -{"id":"hsume2-socket.io","key":"hsume2-socket.io","value":{"rev":"5-4b537247ae9999c285c802cc36457598"}}, -{"id":"htdoc","key":"htdoc","value":{"rev":"3-80ef9e3202b0d96b79435a2bc90bc899"}}, -{"id":"html","key":"html","value":{"rev":"3-92c4af7de329c92ff2e0be5c13020e78"}}, -{"id":"html-minifier","key":"html-minifier","value":{"rev":"7-2441ed004e2a6e7f1c42003ec03277ec"}}, -{"id":"html-sourcery","key":"html-sourcery","value":{"rev":"11-7ce1d4aa2e1d319fa108b02fb294d4ce"}}, -{"id":"html2coffeekup","key":"html2coffeekup","value":{"rev":"13-bae4a70411f6f549c281c69835fe3276"}}, -{"id":"html2coffeekup-bal","key":"html2coffeekup-bal","value":{"rev":"5-0663ac1339d72932004130b668c949f0"}}, -{"id":"html2jade","key":"html2jade","value":{"rev":"11-e50f504c5c847d7ffcde7328c2ade4fb"}}, -{"id":"html5","key":"html5","value":{"rev":"46-ca85ea99accaf1dc9ded4e2e3aa429c6"}}, -{"id":"html5edit","key":"html5edit","value":{"rev":"10-0383296c33ada4d356740f29121eeb9f"}}, -{"id":"htmlKompressor","key":"htmlKompressor","value":{"rev":"13-95a3afe7f7cfe02e089e41588b937fb1"}}, -{"id":"htmlkup","key":"htmlkup","value":{"rev":"27-5b0115636f38886ae0a40e5f52e2bfdd"}}, -{"id":"htmlparser","key":"htmlparser","value":{"rev":"14-52b2196c1456d821d47bb1d2779b2433"}}, -{"id":"htmlparser2","key":"htmlparser2","value":{"rev":"3-9bc0b807acd913999dfc949b3160a3db"}}, -{"id":"htracr","key":"htracr","value":{"rev":"27-384d0522328e625978b97d8eae8d942d"}}, -{"id":"http","key":"http","value":{"rev":"3-f197d1b599cb9da720d3dd58d9813ace"}}, -{"id":"http-agent","key":"http-agent","value":{"rev":"10-1715dd3a7adccf55bd6637d78bd345d1"}}, -{"id":"http-auth","key":"http-auth","value":{"rev":"3-21636d4430be18a5c6c42e5cb622c2e0"}}, -{"id":"http-basic-auth","key":"http-basic-auth","value":{"rev":"6-0a77e99ce8e31558d5917bd684fa2c9a"}}, -{"id":"http-browserify","key":"http-browserify","value":{"rev":"3-4f720b4af628ed8b5fb22839c1f91f4d"}}, -{"id":"http-console","key":"http-console","value":{"rev":"43-a20cbefed77bcae7de461922286a1f04"}}, -{"id":"http-digest","key":"http-digest","value":{"rev":"6-e0164885dcad21ab6150d537af0edd92"}}, -{"id":"http-digest-auth","key":"http-digest-auth","value":{"rev":"7-613ac841b808fd04e272e050fd5a45ac"}}, -{"id":"http-get","key":"http-get","value":{"rev":"39-b7cfeb2b572d4ecf695493e0886869f4"}}, -{"id":"http-load","key":"http-load","value":{"rev":"3-8c64f4972ff59e89fee041adde99b8ba"}}, -{"id":"http-proxy","key":"http-proxy","value":{"rev":"97-5b8af88886c8c047a9862bf62f6b9294"}}, -{"id":"http-proxy-backward","key":"http-proxy-backward","value":{"rev":"2-4433b04a41e8adade3f6b6b2b939df4b"}}, -{"id":"http-proxy-glimpse","key":"http-proxy-glimpse","value":{"rev":"3-a3e9791d4d9bfef5929ca55d874df18b"}}, -{"id":"http-proxy-no-line-184-error","key":"http-proxy-no-line-184-error","value":{"rev":"3-7e20a990820976d8c6d27c312cc5a67c"}}, -{"id":"http-proxy-selective","key":"http-proxy-selective","value":{"rev":"12-6e273fcd008afeceb6737345c46e1024"}}, -{"id":"http-recorder","key":"http-recorder","value":{"rev":"3-26dd0bc4f5c0bf922db1875e995d025f"}}, -{"id":"http-request-provider","key":"http-request-provider","value":{"rev":"6-436b69971dd1735ac3e41571375f2d15"}}, -{"id":"http-server","key":"http-server","value":{"rev":"21-1b80b6558692afd08c36629b0ecdc18c"}}, -{"id":"http-signature","key":"http-signature","value":{"rev":"9-49ca63427b535f2d18182d92427bc5b6"}}, -{"id":"http-stack","key":"http-stack","value":{"rev":"9-51614060741d6c85a7fd4c714ed1a9b2"}}, -{"id":"http-status","key":"http-status","value":{"rev":"5-1ec72fecc62a41d6f180d15c95e81270"}}, -{"id":"http_compat","key":"http_compat","value":{"rev":"3-88244d4b0fd08a3140fa1b2e8b1b152c"}}, -{"id":"http_router","key":"http_router","value":{"rev":"23-ad52b58b6bfc96d6d4e8215e0c31b294"}}, -{"id":"http_trace","key":"http_trace","value":{"rev":"7-d8024b5e41540e4240120ffefae523e4"}}, -{"id":"httpd","key":"httpd","value":{"rev":"3-9e2a19f007a6a487cdb752f4b8249657"}}, -{"id":"httpmock","key":"httpmock","value":{"rev":"3-b6966ba8ee2c31b0e7729fc59bb00ccf"}}, -{"id":"https-proxied","key":"https-proxied","value":{"rev":"5-f63a4c663d372502b0dcd4997e759e66"}}, -{"id":"httpu","key":"httpu","value":{"rev":"5-88a5b2bac8391d91673fc83d4cfd32df"}}, -{"id":"hungarian-magic","key":"hungarian-magic","value":{"rev":"4-9eae750ac6f30b6687d9a031353f5217"}}, -{"id":"huntergatherer","key":"huntergatherer","value":{"rev":"9-5c9d833a134cfaa901d89dce93f5b013"}}, -{"id":"hxp","key":"hxp","value":{"rev":"8-1f52ba766491826bdc6517c6cc508b2c"}}, -{"id":"hyde","key":"hyde","value":{"rev":"3-5763db65cab423404752b1a6354a7a6c"}}, -{"id":"hydra","key":"hydra","value":{"rev":"8-8bb4ed249fe0f9cdb8b11e492b646b88"}}, -{"id":"hyperpublic","key":"hyperpublic","value":{"rev":"11-5738162f3dbf95803dcb3fb28efd8740"}}, -{"id":"i18n","key":"i18n","value":{"rev":"7-f0d6b3c72ecd34dde02d805041eca996"}}, -{"id":"ical","key":"ical","value":{"rev":"13-baf448be48ab83ec9b3fb8bf83fbb9a1"}}, -{"id":"icalendar","key":"icalendar","value":{"rev":"5-78dd8fd8ed2c219ec56ad26a0727cf76"}}, -{"id":"icecap","key":"icecap","value":{"rev":"9-88d6865078a5e6e1ff998e2e73e593f3"}}, -{"id":"icecapdjs","key":"icecapdjs","value":{"rev":"11-d8e3c718a230d49caa3b5f76cfff7ce9"}}, -{"id":"icecast-stack","key":"icecast-stack","value":{"rev":"9-13b8da6ae373152ab0c8560e2f442af0"}}, -{"id":"ichabod","key":"ichabod","value":{"rev":"19-d0f02ffba80661398ceb80a7e0cbbfe6"}}, -{"id":"icing","key":"icing","value":{"rev":"11-84815e78828190fbaa52d6b93c75cb4f"}}, -{"id":"ico","key":"ico","value":{"rev":"3-5727a35c1df453bfdfa6a03e49725adf"}}, -{"id":"iconv","key":"iconv","value":{"rev":"18-5f5b3193268f1fa099e0112b3e033ffc"}}, -{"id":"iconv-jp","key":"iconv-jp","value":{"rev":"3-660b8f2def930263d2931cae2dcc401d"}}, -{"id":"id3","key":"id3","value":{"rev":"8-afe68aede872cae7b404aaa01c0108a5"}}, -{"id":"idea","key":"idea","value":{"rev":"9-a126c0e52206c51dcf972cf53af0bc32"}}, -{"id":"idiomatic-console","key":"idiomatic-console","value":{"rev":"25-67696c16bf79d1cc8caf4df62677c3ec"}}, -{"id":"idiomatic-stdio","key":"idiomatic-stdio","value":{"rev":"15-9d74c9a8872b1f7c41d6c671d7a14b7d"}}, -{"id":"iglob","key":"iglob","value":{"rev":"6-b8a3518cb67cad20c89f37892a2346a5"}}, -{"id":"ignite","key":"ignite","value":{"rev":"19-06daa730a70f69dc3a0d6d4984905c61"}}, -{"id":"iles-forked-irc-js","key":"iles-forked-irc-js","value":{"rev":"7-eb446f4e0db856e00351a5da2fa20616"}}, -{"id":"image","key":"image","value":{"rev":"8-5f7811db33c210eb38e1880f7cc433f2"}}, -{"id":"imageable","key":"imageable","value":{"rev":"61-9f7e03d3d990d34802f1e9c8019dbbfa"}}, -{"id":"imageinfo","key":"imageinfo","value":{"rev":"11-9bde1a1f0801d94539a4b70b61614849"}}, -{"id":"imagemagick","key":"imagemagick","value":{"rev":"10-b1a1ea405940fecf487da94b733e8c29"}}, -{"id":"imagick","key":"imagick","value":{"rev":"3-21d51d8a265a705881dadbc0c9f7c016"}}, -{"id":"imap","key":"imap","value":{"rev":"13-6a59045496c80b474652d2584edd4acb"}}, -{"id":"imbot","key":"imbot","value":{"rev":"11-0d8075eff5e5ec354683f396378fd101"}}, -{"id":"imdb","key":"imdb","value":{"rev":"7-2bba884d0e8804f4a7e0883abd47b0a7"}}, -{"id":"imgur","key":"imgur","value":{"rev":"3-30c0e5fddc1be3398ba5f7eee1a251d7"}}, -{"id":"impact","key":"impact","value":{"rev":"7-d3390690f11c6f9dcca9f240a7bedfef"}}, -{"id":"imsi","key":"imsi","value":{"rev":"3-0aa9a01c9c79b17afae3684b7b920ced"}}, -{"id":"index","key":"index","value":{"rev":"13-ad5d8d7dfad64512a12db4d820229c07"}}, -{"id":"indexer","key":"indexer","value":{"rev":"9-b0173ce9ad9fa1b80037fa8e33a8ce12"}}, -{"id":"inflect","key":"inflect","value":{"rev":"17-9e5ea2826fe08bd950cf7e22d73371bd"}}, -{"id":"inflectjs","key":"inflectjs","value":{"rev":"3-c59db027b72be720899b4a280ac2518f"}}, -{"id":"inflector","key":"inflector","value":{"rev":"3-191ff29d3b5ed8ef6877032a1d01d864"}}, -{"id":"inheritance","key":"inheritance","value":{"rev":"3-450a1e68bd2d8f16abe7001491abb6a8"}}, -{"id":"inherits","key":"inherits","value":{"rev":"3-284f97a7ae4f777bfabe721b66de07fa"}}, -{"id":"ini","key":"ini","value":{"rev":"5-142c8f9125fbace57689e2837deb1883"}}, -{"id":"iniparser","key":"iniparser","value":{"rev":"14-1053c59ef3d50a46356be45576885c49"}}, -{"id":"inireader","key":"inireader","value":{"rev":"15-9cdc485b18bff6397f5fec45befda402"}}, -{"id":"init","key":"init","value":{"rev":"5-b81610ad72864417dab49f7a3f29cc9f"}}, -{"id":"inject","key":"inject","value":{"rev":"5-82bddb6b4f21ddaa0137fedc8913d60e"}}, -{"id":"inliner","key":"inliner","value":{"rev":"45-8a1c3e8f78438f06865b3237d6c5339a"}}, -{"id":"inode","key":"inode","value":{"rev":"7-118ffafc62dcef5bbeb14e4328c68ab3"}}, -{"id":"inotify","key":"inotify","value":{"rev":"18-03d7b1a318bd283e0185b414b48dd602"}}, -{"id":"inotify-plusplus","key":"inotify-plusplus","value":{"rev":"10-0e0ce9065a62e5e21ee5bb53fac61a6d"}}, -{"id":"inspect","key":"inspect","value":{"rev":"5-b5f18717e29caec3399abe5e4ce7a269"}}, -{"id":"instagram","key":"instagram","value":{"rev":"5-decddf3737a1764518b6a7ce600d720d"}}, -{"id":"instagram-node-lib","key":"instagram-node-lib","value":{"rev":"13-8be77f1180b6afd9066834b3f5ee8de5"}}, -{"id":"instant-styleguide","key":"instant-styleguide","value":{"rev":"9-66c02118993621376ad0b7396db435b3"}}, -{"id":"intercept","key":"intercept","value":{"rev":"9-f5622744c576405516a427b4636ee864"}}, -{"id":"interface","key":"interface","value":{"rev":"10-13806252722402bd18d88533056a863b"}}, -{"id":"interleave","key":"interleave","value":{"rev":"25-69bc136937604863748a029fb88e3605"}}, -{"id":"interstate","key":"interstate","value":{"rev":"3-3bb4a6c35ca765f88a10b9fab6307c59"}}, -{"id":"intervals","key":"intervals","value":{"rev":"21-89b71bd55b8d5f6b670d69fc5b9f847f"}}, -{"id":"intestine","key":"intestine","value":{"rev":"3-66a5531e06865ed9c966d95437ba1371"}}, -{"id":"ios7crypt","key":"ios7crypt","value":{"rev":"7-a2d309a2c074e5c1c456e2b56cbcfd17"}}, -{"id":"iostat","key":"iostat","value":{"rev":"11-f0849c0072e76701b435aa769a614e82"}}, -{"id":"ip2cc","key":"ip2cc","value":{"rev":"9-2c282606fd08d469184a272a2108639c"}}, -{"id":"ipaddr.js","key":"ipaddr.js","value":{"rev":"5-1017fd5342840745614701476ed7e6c4"}}, -{"id":"iptables","key":"iptables","value":{"rev":"7-23e56ef5d7bf0ee8f5bd0e38bde8aae3"}}, -{"id":"iptrie","key":"iptrie","value":{"rev":"4-10317b0e073befe9601e9dc308dc361a"}}, -{"id":"ipv6","key":"ipv6","value":{"rev":"6-85e937f3d79e44dbb76264c7aaaa140f"}}, -{"id":"iqengines","key":"iqengines","value":{"rev":"3-8bdbd32e9dc35b77d80a31edae235178"}}, -{"id":"irc","key":"irc","value":{"rev":"8-ed30964f57b99b1b2f2104cc5e269618"}}, -{"id":"irc-colors","key":"irc-colors","value":{"rev":"9-7ddb19db9a553567aae86bd97f1dcdfc"}}, -{"id":"irc-js","key":"irc-js","value":{"rev":"58-1c898cea420aee60283edb4fadceb90e"}}, -{"id":"ircat.js","key":"ircat.js","value":{"rev":"6-f25f20953ce96697c033315d250615d0"}}, -{"id":"ircbot","key":"ircbot","value":{"rev":"9-85a4a6f88836fc031855736676b10dec"}}, -{"id":"irccd","key":"irccd","value":{"rev":"3-bf598ae8b6af63be41852ae8199416f4"}}, -{"id":"ircd","key":"ircd","value":{"rev":"7-3ba7fc2183d32ee1e58e63092d7e82bb"}}, -{"id":"ircdjs","key":"ircdjs","value":{"rev":"15-8fcdff2bf29cf24c3bbc4b461e6cbe9f"}}, -{"id":"irclog","key":"irclog","value":{"rev":"3-79a99bd8048dd98a93c747a1426aabde"}}, -{"id":"ircrpc","key":"ircrpc","value":{"rev":"5-278bec6fc5519fdbd152ea4fa35dc58c"}}, -{"id":"irrklang","key":"irrklang","value":{"rev":"3-65936dfabf7777027069343c2e72b32e"}}, -{"id":"isaacs","key":"isaacs","value":{"rev":"7-c55a41054056f502bc580bc6819d9d1f"}}, -{"id":"isbn","key":"isbn","value":{"rev":"3-51e784ded2e3ec9ef9b382fecd1c26a1"}}, -{"id":"iscroll","key":"iscroll","value":{"rev":"4-4f6635793806507665503605e7c180f0"}}, -{"id":"isodate","key":"isodate","value":{"rev":"7-ea4b1f77e9557b153264f68fd18a9f23"}}, -{"id":"it-is","key":"it-is","value":{"rev":"14-7617f5831c308d1c4ef914bc5dc30fa7"}}, -{"id":"iterator","key":"iterator","value":{"rev":"3-e6f70367a55cabbb89589f2a88be9ab0"}}, -{"id":"itunes","key":"itunes","value":{"rev":"7-47d151c372d70d0bc311141749c84d5a"}}, -{"id":"iws","key":"iws","value":{"rev":"3-dc7b4d18565b79d3e14aa691e5e632f4"}}, -{"id":"jQuery","key":"jQuery","value":{"rev":"29-f913933259b4ec5f4c5ea63466a4bb08"}}, -{"id":"jWorkflow","key":"jWorkflow","value":{"rev":"7-582cd7aa62085ec807117138b6439550"}}, -{"id":"jaCodeMap","key":"jaCodeMap","value":{"rev":"7-28efcbf4146977bdf1e594e0982ec097"}}, -{"id":"jaaulde-cookies","key":"jaaulde-cookies","value":{"rev":"3-d5b5a75f9cabbebb2804f0b4ae93d0c5"}}, -{"id":"jacker","key":"jacker","value":{"rev":"3-888174c7e3e2a5d241f2844257cf1b10"}}, -{"id":"jade","key":"jade","value":{"rev":"144-318a9d9f63906dc3da1ef7c1ee6420b5"}}, -{"id":"jade-browser","key":"jade-browser","value":{"rev":"9-0ae6b9e321cf04e3ca8fbfe0e38f4d9e"}}, -{"id":"jade-client-connect","key":"jade-client-connect","value":{"rev":"5-96dbafafa31187dd7f829af54432de8e"}}, -{"id":"jade-ext","key":"jade-ext","value":{"rev":"9-aac9a58a4e07d82bc496bcc4241d1be0"}}, -{"id":"jade-i18n","key":"jade-i18n","value":{"rev":"23-76a21a41b5376e10c083672dccf7fc62"}}, -{"id":"jade-serial","key":"jade-serial","value":{"rev":"3-5ec712e1d8cd8d5af20ae3e62ee92854"}}, -{"id":"jadedown","key":"jadedown","value":{"rev":"11-0d16ce847d6afac2939eebcb24a7216c"}}, -{"id":"jadeify","key":"jadeify","value":{"rev":"17-4322b68bb5a7e81e839edabbc8c405a4"}}, -{"id":"jadevu","key":"jadevu","value":{"rev":"15-1fd8557a6db3c23f267de76835f9ee65"}}, -{"id":"jah","key":"jah","value":{"rev":"3-f29704037a1cffe2b08abb4283bee4a4"}}, -{"id":"jake","key":"jake","value":{"rev":"36-5cb64b1c5a89ac53eb4d09d66a5b10e1"}}, -{"id":"jammit-express","key":"jammit-express","value":{"rev":"6-e3dfa928114a2721fe9b8882d284f759"}}, -{"id":"janrain","key":"janrain","value":{"rev":"5-9554501be76fb3a472076858d1abbcd5"}}, -{"id":"janrain-api","key":"janrain-api","value":{"rev":"3-f45a65c695f4c72fdd1bf3593d8aa796"}}, -{"id":"jaque","key":"jaque","value":{"rev":"32-7f269a70c67beefc53ba1684bff5a57b"}}, -{"id":"jar","key":"jar","value":{"rev":"3-7fe0ab4aa3a2ccc5d50853f118e7aeb5"}}, -{"id":"jarvis","key":"jarvis","value":{"rev":"3-fb203b29b397a0b12c1ae56240624e3d"}}, -{"id":"jarvis-test","key":"jarvis-test","value":{"rev":"5-9537ddae8291e6dad03bc0e6acc9ac80"}}, -{"id":"jasbin","key":"jasbin","value":{"rev":"25-ae22f276406ac8bb4293d78595ce02ad"}}, -{"id":"jasmine-dom","key":"jasmine-dom","value":{"rev":"17-686de4c573f507c30ff72c6671dc3d93"}}, -{"id":"jasmine-jquery","key":"jasmine-jquery","value":{"rev":"7-86c077497a367bcd9ea96d5ab8137394"}}, -{"id":"jasmine-node","key":"jasmine-node","value":{"rev":"27-4c544c41c69d2b3cb60b9953d1c46d54"}}, -{"id":"jasmine-reporters","key":"jasmine-reporters","value":{"rev":"3-21ba522ae38402848d5a66d3d4d9a2b3"}}, -{"id":"jasmine-runner","key":"jasmine-runner","value":{"rev":"23-7458777b7a6785efc878cfd40ccb99d8"}}, -{"id":"jasminy","key":"jasminy","value":{"rev":"3-ce76023bac40c5f690cba59d430fd083"}}, -{"id":"jason","key":"jason","value":{"rev":"15-394a59963c579ed5db37fada4d082b5c"}}, -{"id":"javiary","key":"javiary","value":{"rev":"5-661be61fd0f47c9609b7d148e298e2fc"}}, -{"id":"jazz","key":"jazz","value":{"rev":"12-d11d602c1240b134b0593425911242fc"}}, -{"id":"jdoc","key":"jdoc","value":{"rev":"3-0c61fdd6b367a9acac710e553927b290"}}, -{"id":"jeesh","key":"jeesh","value":{"rev":"13-23b4e1ecf9ca76685bf7f1bfc6c076f1"}}, -{"id":"jellyfish","key":"jellyfish","value":{"rev":"25-7fef81f9b5ef5d4abbcecb030a433a72"}}, -{"id":"jen","key":"jen","value":{"rev":"3-ab1b07453318b7e0254e1dadbee7868f"}}, -{"id":"jerk","key":"jerk","value":{"rev":"34-e31f26d5e3b700d0a3e5f5a5acf0d381"}}, -{"id":"jessie","key":"jessie","value":{"rev":"19-829b932e57204f3b7833b34f75d6bf2a"}}, -{"id":"jezebel","key":"jezebel","value":{"rev":"15-b67c259e160390064da69a512382e06f"}}, -{"id":"jimi","key":"jimi","value":{"rev":"10-cc4a8325d6b847362a422304a0057231"}}, -{"id":"jinjs","key":"jinjs","value":{"rev":"37-38fcf1989f1b251a35e4ff725118f55e"}}, -{"id":"jinkies","key":"jinkies","value":{"rev":"30-73fec0e854aa31bcbf3ae1ca04462b22"}}, -{"id":"jison","key":"jison","value":{"rev":"52-d03c6f5e2bdd7624d39d93ec5e88c383"}}, -{"id":"jitsu","key":"jitsu","value":{"rev":"164-95083f8275f0bf2834f62027569b4da2"}}, -{"id":"jitter","key":"jitter","value":{"rev":"16-3f7b183aa7922615f4b5b2fb46653477"}}, -{"id":"jj","key":"jj","value":{"rev":"21-1b3f97e9725e1241c96a884c85dc4e30"}}, -{"id":"jjw","key":"jjw","value":{"rev":"13-835c632dfc5df7dd37860bd0b2c1cb38"}}, -{"id":"jkwery","key":"jkwery","value":{"rev":"11-212429c9c9e1872d4e278da055b5ae0a"}}, -{"id":"jmen","key":"jmen","value":{"rev":"3-a0b67d5b84a077061d3fed2ddbf2c6a8"}}, -{"id":"jobmanager","key":"jobmanager","value":{"rev":"15-1a589ede5f10d1ea2f33f1bb91f9b3aa"}}, -{"id":"jobs","key":"jobs","value":{"rev":"12-3072b6164c5dca8fa9d24021719048ff"}}, -{"id":"jobvite","key":"jobvite","value":{"rev":"56-3d69b0e6d91722ef4908b4fe26bb5432"}}, -{"id":"jodoc","key":"jodoc","value":{"rev":"3-7b05c6d7b4c9a9fa85d3348948d2d52d"}}, -{"id":"johnny-mnemonic","key":"johnny-mnemonic","value":{"rev":"3-e8749d4be597f002aae720011b7c9273"}}, -{"id":"join","key":"join","value":{"rev":"5-ab92491dc83b5e8ed5f0cc49e306d5d5"}}, -{"id":"jolokia-client","key":"jolokia-client","value":{"rev":"26-1f93cb53f4a870b94540cdbf7627b1c4"}}, -{"id":"joo","key":"joo","value":{"rev":"11-e0d4a97eceacdd13769bc5f56e059aa7"}}, -{"id":"jools","key":"jools","value":{"rev":"3-9da332d524a117c4d72a58bb45fa34fd"}}, -{"id":"joose","key":"joose","value":{"rev":"22-ef8a1895680ad2f9c1cd73cd1afbb58e"}}, -{"id":"joosex-attribute","key":"joosex-attribute","value":{"rev":"18-119df97dba1ba2631c94d49e3142bbd7"}}, -{"id":"joosex-bridge-ext","key":"joosex-bridge-ext","value":{"rev":"20-5ad2168291aad2cf021df0a3eb103538"}}, -{"id":"joosex-class-simpleconstructor","key":"joosex-class-simpleconstructor","value":{"rev":"6-f71e02e44f611550374ad9f5d0c37fdf"}}, -{"id":"joosex-class-singleton","key":"joosex-class-singleton","value":{"rev":"6-3ba6b8644722b29febe384a368c18aab"}}, -{"id":"joosex-cps","key":"joosex-cps","value":{"rev":"20-493c65faf1ec59416bae475529c51cd4"}}, -{"id":"joosex-meta-lazy","key":"joosex-meta-lazy","value":{"rev":"13-ef8bc4e57006cfcecd72a344d8dc9da6"}}, -{"id":"joosex-namespace-depended","key":"joosex-namespace-depended","value":{"rev":"22-8a38a21f8564470b96082177e81f3db6"}}, -{"id":"joosex-observable","key":"joosex-observable","value":{"rev":"7-52e7018931e5465920bb6feab88aa468"}}, -{"id":"joosex-role-parameterized","key":"joosex-role-parameterized","value":{"rev":"6-65aa4fa4967c4fbe06357ccda5e6f810"}}, -{"id":"joosex-simplerequest","key":"joosex-simplerequest","value":{"rev":"10-12d105b60b8b3ca3a3626ca0ec53892d"}}, -{"id":"josp","key":"josp","value":{"rev":"3-c4fa8445a0d96037e00fe96d007bcf0c"}}, -{"id":"jot","key":"jot","value":{"rev":"3-8fab571ce3ad993f3594f3c2e0fc6915"}}, -{"id":"journey","key":"journey","value":{"rev":"40-efe1fa6c8d735592077c9a24b3b56a03"}}, -{"id":"jpeg","key":"jpeg","value":{"rev":"8-ab437fbaf88f32a7fb625a0b27521292"}}, -{"id":"jq","key":"jq","value":{"rev":"3-9d83287aa9e6aab25590fac9adbab968"}}, -{"id":"jqNode","key":"jqNode","value":{"rev":"3-fcaf2c47aba5637a4a23c64b6fc778cf"}}, -{"id":"jqbuild","key":"jqbuild","value":{"rev":"3-960edcea36784aa9ca135cd922e0cb9b"}}, -{"id":"jqserve","key":"jqserve","value":{"rev":"3-39272c5479aabaafe66ffa26a6eb3bb5"}}, -{"id":"jqtpl","key":"jqtpl","value":{"rev":"54-ce2b62ced4644d5fe24c3a8ebcb4d528"}}, -{"id":"jquajax","key":"jquajax","value":{"rev":"3-a079cb8f3a686faaafe420760e77a330"}}, -{"id":"jquery","key":"jquery","value":{"rev":"27-60fd58bba99d044ffe6e140bafd72595"}}, -{"id":"jquery-browserify","key":"jquery-browserify","value":{"rev":"9-a4e9afd657f3c632229afa356382f6a4"}}, -{"id":"jquery-deferred","key":"jquery-deferred","value":{"rev":"5-0fd0cec51f7424a50f0dba3cbe74fd58"}}, -{"id":"jquery-drive","key":"jquery-drive","value":{"rev":"3-8474f192fed5c5094e56bc91f5e8a0f8"}}, -{"id":"jquery-mousewheel","key":"jquery-mousewheel","value":{"rev":"3-cff81086cf651e52377a8d5052b09d64"}}, -{"id":"jquery-placeholdize","key":"jquery-placeholdize","value":{"rev":"3-7acc3fbda1b8daabce18876d2b4675e3"}}, -{"id":"jquery-tmpl-jst","key":"jquery-tmpl-jst","value":{"rev":"13-575031eb2f2b1e4c5562e195fce0bc93"}}, -{"id":"jquery.effects.blind","key":"jquery.effects.blind","value":{"rev":"3-5f3bec5913edf1bfcee267891f6204e2"}}, -{"id":"jquery.effects.bounce","key":"jquery.effects.bounce","value":{"rev":"3-245b2e7d9a1295dd0f7d568b8087190d"}}, -{"id":"jquery.effects.clip","key":"jquery.effects.clip","value":{"rev":"3-7aa63a590b6d90d5ea20e21c8dda675d"}}, -{"id":"jquery.effects.core","key":"jquery.effects.core","value":{"rev":"3-dd2fa270d8aea21104c2c92d6b06500d"}}, -{"id":"jquery.effects.drop","key":"jquery.effects.drop","value":{"rev":"3-8d0e30016e99460063a9a9000ce7b032"}}, -{"id":"jquery.effects.explode","key":"jquery.effects.explode","value":{"rev":"3-3d5e3bb2fb451f7eeaeb72b6743b6e6c"}}, -{"id":"jquery.effects.fade","key":"jquery.effects.fade","value":{"rev":"3-f362c762053eb278b5db5f92e248c3a5"}}, -{"id":"jquery.effects.fold","key":"jquery.effects.fold","value":{"rev":"3-c7d823c2b25c4f1e6a1801f4b1bc7a2c"}}, -{"id":"jquery.effects.highlight","key":"jquery.effects.highlight","value":{"rev":"3-44ef3c62a6b829382bffa6393cd31ed9"}}, -{"id":"jquery.effects.pulsate","key":"jquery.effects.pulsate","value":{"rev":"3-3cad87635cecc2602d40682cf669d2fe"}}, -{"id":"jquery.effects.scale","key":"jquery.effects.scale","value":{"rev":"3-2c8df02eeed343088e2253d84064a219"}}, -{"id":"jquery.effects.shake","key":"jquery.effects.shake","value":{"rev":"3-d63ab567d484311744d848b520a720c7"}}, -{"id":"jquery.effects.slide","key":"jquery.effects.slide","value":{"rev":"3-9eb5d1075d67045a8fa305e596981934"}}, -{"id":"jquery.effects.transfer","key":"jquery.effects.transfer","value":{"rev":"3-371bc87350ede6da53a40468b63200a9"}}, -{"id":"jquery.tmpl","key":"jquery.tmpl","value":{"rev":"5-75efd6c8c0ce030f2da12b984f9dfe6c"}}, -{"id":"jquery.ui.accordion","key":"jquery.ui.accordion","value":{"rev":"3-964ee7d6c50f31e7db6631da28e2261a"}}, -{"id":"jquery.ui.autocomplete","key":"jquery.ui.autocomplete","value":{"rev":"3-950d240629d142eab5e07c2776e39bcc"}}, -{"id":"jquery.ui.button","key":"jquery.ui.button","value":{"rev":"3-a1c7f3eeb9298ac0c116d75a176a6d17"}}, -{"id":"jquery.ui.core","key":"jquery.ui.core","value":{"rev":"3-b7ba340b7304a304f85c4d13438d1195"}}, -{"id":"jquery.ui.datepicker","key":"jquery.ui.datepicker","value":{"rev":"3-5b76579057f1b870959a06ab833f1972"}}, -{"id":"jquery.ui.dialog","key":"jquery.ui.dialog","value":{"rev":"3-0c314cee86bf67298759efcfd47246f6"}}, -{"id":"jquery.ui.draggable","key":"jquery.ui.draggable","value":{"rev":"3-b7a15d2bdbcdc6f0f3cd6e4522f9f1f3"}}, -{"id":"jquery.ui.droppable","key":"jquery.ui.droppable","value":{"rev":"3-86d8a1558f5e9383b271b4d968ba081d"}}, -{"id":"jquery.ui.mouse","key":"jquery.ui.mouse","value":{"rev":"3-ccb88d773c452c778c694f9f551cb816"}}, -{"id":"jquery.ui.position","key":"jquery.ui.position","value":{"rev":"3-c49c13b38592a363585600b7af54d977"}}, -{"id":"jquery.ui.progressbar","key":"jquery.ui.progressbar","value":{"rev":"3-b28dfadab64f9548b828c42bf870fcc9"}}, -{"id":"jquery.ui.resizable","key":"jquery.ui.resizable","value":{"rev":"3-aa356230544cbe8ab8dc5fab08cc0fa7"}}, -{"id":"jquery.ui.selectable","key":"jquery.ui.selectable","value":{"rev":"3-6b11846c104d580556e40eb5194c45f2"}}, -{"id":"jquery.ui.slider","key":"jquery.ui.slider","value":{"rev":"3-e8550b76bf58a9cbeca9ea91eb763257"}}, -{"id":"jquery.ui.sortable","key":"jquery.ui.sortable","value":{"rev":"3-1ddd981bd720f055fbd5bb1d06df55ad"}}, -{"id":"jquery.ui.tabs","key":"jquery.ui.tabs","value":{"rev":"3-e0514383f4d920b9dc23ef7a7ea4d8af"}}, -{"id":"jquery.ui.widget","key":"jquery.ui.widget","value":{"rev":"3-3a0800fa067c12d013168f74acf21e6d"}}, -{"id":"jqueryify","key":"jqueryify","value":{"rev":"3-2655cf6a45795a8bd138a464e6c18f04"}}, -{"id":"jrep","key":"jrep","value":{"rev":"3-edbcf6931b8a2b3f550727d8b839acc3"}}, -{"id":"js-beautify-node","key":"js-beautify-node","value":{"rev":"3-401cd1c130aaec2c090b578fe8db6290"}}, -{"id":"js-class","key":"js-class","value":{"rev":"5-a63fbb0136dcd602feee72e70674d5db"}}, -{"id":"js-jango","key":"js-jango","value":{"rev":"3-af4e4a7844791617e66a40a1c403bb98"}}, -{"id":"js-loader","key":"js-loader","value":{"rev":"13-8d9729495c1692e47d2cd923e839b4c8"}}, -{"id":"js-manager","key":"js-manager","value":{"rev":"5-6d384a2ce4737f13d417f85689c3c372"}}, -{"id":"js-nts","key":"js-nts","value":{"rev":"3-7d921611b567d2d890bc983c343558ef"}}, -{"id":"js-openstack","key":"js-openstack","value":{"rev":"11-d56996be276fbe6162573575932b1cba"}}, -{"id":"js-select","key":"js-select","value":{"rev":"9-9d20f6d86d9e6f8a84191346288b76ed"}}, -{"id":"js.io","key":"js.io","value":{"rev":"3-c5e16e13372ba592ccf2ac86ee007a1f"}}, -{"id":"js2","key":"js2","value":{"rev":"35-2dc694e48b67252d8787f5e889a07430"}}, -{"id":"js2coffee","key":"js2coffee","value":{"rev":"19-8eeafa894dcc0dc306b02e728543511e"}}, -{"id":"jsDAV","key":"jsDAV","value":{"rev":"11-4ab1935d98372503439b054daef2e78e"}}, -{"id":"jsDump","key":"jsDump","value":{"rev":"5-32d6e4032bd114245356970f0b76a58a"}}, -{"id":"jsSourceCodeParser","key":"jsSourceCodeParser","value":{"rev":"3-78c5e8624ab25fca99a7bb6cd9be402b"}}, -{"id":"jsapp","key":"jsapp","value":{"rev":"3-6758eb2743cc22f723a6612b34c8d943"}}, -{"id":"jscc-node","key":"jscc-node","value":{"rev":"3-5f52dc20dc2a188bc32e7219c9d2f225"}}, -{"id":"jscheckstyle","key":"jscheckstyle","value":{"rev":"5-82021f06a1bd824ac195e0ab8a3b598c"}}, -{"id":"jsclass","key":"jsclass","value":{"rev":"9-2a0656b9497c5a8208a0fefa5aae3350"}}, -{"id":"jsconfig","key":"jsconfig","value":{"rev":"3-b1afef99468f81eff319453623135a56"}}, -{"id":"jscssp","key":"jscssp","value":{"rev":"6-413ad0701e6dbb412e8a01aadb6672c4"}}, -{"id":"jsdata","key":"jsdata","value":{"rev":"5-53f8b26f28291dccfdff8f14e7f4c44c"}}, -{"id":"jsdeferred","key":"jsdeferred","value":{"rev":"8-bc238b921a1fa465503722756a98e9b7"}}, -{"id":"jsdoc","key":"jsdoc","value":{"rev":"3-386eb47a2761a1ad025996232751fba9"}}, -{"id":"jsdog","key":"jsdog","value":{"rev":"11-d4a523898a7c474b5c7b8cb8b24bafe8"}}, -{"id":"jsdom","key":"jsdom","value":{"rev":"63-86bc6b9d8bfdb99b793ac959e126f7ff"}}, -{"id":"jsftp","key":"jsftp","value":{"rev":"35-89cd772521d7ac3cead71c602ddeb819"}}, -{"id":"jsgi","key":"jsgi","value":{"rev":"20-dbef9d8dfb5c9bf1a3b6014159bb305a"}}, -{"id":"jsgi-node","key":"jsgi-node","value":{"rev":"1-8ec0892e521754aaf88684714d306af9"}}, -{"id":"jsgrep","key":"jsgrep","value":{"rev":"7-be19445481acdbbb684fdc2425d88d08"}}, -{"id":"jshelpers","key":"jshelpers","value":{"rev":"11-9509dcdd48bc494de76cae66217ebedb"}}, -{"id":"jshint","key":"jshint","value":{"rev":"34-ed2e7ea0e849126bd9821b86f23b7314"}}, -{"id":"jshint-autofix","key":"jshint-autofix","value":{"rev":"9-abbb3622aa8a47a8890dbbaab0009b6d"}}, -{"id":"jshint-mode","key":"jshint-mode","value":{"rev":"5-06ec066819b93c7ae6782c755a0e2125"}}, -{"id":"jshint-runner","key":"jshint-runner","value":{"rev":"7-6fc8a15e387a4e81e300a54a86a3a240"}}, -{"id":"jshtml","key":"jshtml","value":{"rev":"5-d3e96c31cf1cd2fcf7743defc1631c3a"}}, -{"id":"jsinc","key":"jsinc","value":{"rev":"9-0e4dc3ba04b440085a79d6001232abfc"}}, -{"id":"jslint","key":"jslint","value":{"rev":"10-ab451352333b5f3d29c6cdbab49187dd"}}, -{"id":"jslint-core","key":"jslint-core","value":{"rev":"3-1f874d8cca07b6f007bc80c23ba15e2e"}}, -{"id":"jslint-strict","key":"jslint-strict","value":{"rev":"8-3d694a0f3079691da1866de16f290ea2"}}, -{"id":"jslinux","key":"jslinux","value":{"rev":"13-033cb60c7867aae599863323a97f45c0"}}, -{"id":"jslitmus","key":"jslitmus","value":{"rev":"6-d3f3f82ea1a376acc2b24c69da003409"}}, -{"id":"jsmeter","key":"jsmeter","value":{"rev":"5-7838bb9b970cbaa29a48802c508fd091"}}, -{"id":"jsmin","key":"jsmin","value":{"rev":"6-002ad1b385915e60f895b5e52492fb94"}}, -{"id":"json","key":"json","value":{"rev":"39-1d24fb8c3bdf0ac533bfc52e74420adc"}}, -{"id":"json-browser","key":"json-browser","value":{"rev":"6-883f051c1297cf631adba1c855ff2e13"}}, -{"id":"json-builder","key":"json-builder","value":{"rev":"5-e7a996ff1ef89114ce2ab6de9b653af8"}}, -{"id":"json-command","key":"json-command","value":{"rev":"16-8239cb65563720c42da5562d3a031b09"}}, -{"id":"json-fu","key":"json-fu","value":{"rev":"5-7933c35711cb9d7673d7514fe495c56d"}}, -{"id":"json-line-protocol","key":"json-line-protocol","value":{"rev":"7-98de63467d154b40a029391af8a26042"}}, -{"id":"json-object","key":"json-object","value":{"rev":"7-534cd9680c386c5b9800848755698f2b"}}, -{"id":"json-ref","key":"json-ref","value":{"rev":"3-cd09776d166c3f77013e429737c7e1e9"}}, -{"id":"json-san","key":"json-san","value":{"rev":"7-8683abde23232c1d84266e7a2d5c4527"}}, -{"id":"json-schema","key":"json-schema","value":{"rev":"1-2f323062e7ec80d2ff765da43c7aaa7d"}}, -{"id":"json-sockets","key":"json-sockets","value":{"rev":"26-bfef71c0d9fb4d56010b05f47f142748"}}, -{"id":"json-storage","key":"json-storage","value":{"rev":"3-46139e3a54c0a27e67820df2c7e87dbf"}}, -{"id":"json-storage-model","key":"json-storage-model","value":{"rev":"3-8b77044e192791613cf92b2f3317357f"}}, -{"id":"json-streamify","key":"json-streamify","value":{"rev":"5-d98cd72265fba652481eef6baa980f46"}}, -{"id":"json-streams","key":"json-streams","value":{"rev":"3-e07fc5ca24b33145c8aacf9995d46723"}}, -{"id":"json-tables","key":"json-tables","value":{"rev":"3-37a652b54880487e66ffeee6822b945b"}}, -{"id":"json-template","key":"json-template","value":{"rev":"3-9ee3a101c60ea682fb88759b2df837e4"}}, -{"id":"json2","key":"json2","value":{"rev":"12-bc3d411db772e0947ca58a54c2084073"}}, -{"id":"json2ify","key":"json2ify","value":{"rev":"3-c2d6677cc35e4668c97cf6800a4728d8"}}, -{"id":"json2xml","key":"json2xml","value":{"rev":"3-e955b994479362685e2197b39909dea2"}}, -{"id":"json_req","key":"json_req","value":{"rev":"15-14520bc890cbb0ab4c142b59bf21c9f1"}}, -{"id":"jsonapi","key":"jsonapi","value":{"rev":"11-2b27aaca5643d6a5b3ab38721cf6342f"}}, -{"id":"jsonconfig","key":"jsonconfig","value":{"rev":"5-0072bb54cb0ae5b13eee4f1657ba6a29"}}, -{"id":"jsond","key":"jsond","value":{"rev":"13-7c3622aeb147dae4698608ee32d81b45"}}, -{"id":"jsondate","key":"jsondate","value":{"rev":"3-1da5d30ee1cf7c6d9605a446efd91478"}}, -{"id":"jsonds","key":"jsonds","value":{"rev":"9-af2867869a46787e58c337e700dbf0dd"}}, -{"id":"jsonds2","key":"jsonds2","value":{"rev":"3-e7ed9647cc1ba72e59b625840358c7ca"}}, -{"id":"jsonfiles","key":"jsonfiles","value":{"rev":"3-5e643ba75c401f653f505e7938540d83"}}, -{"id":"jsonify","key":"jsonify","value":{"rev":"3-91207fd1bc11668be7906f74992de6bb"}}, -{"id":"jsonize","key":"jsonize","value":{"rev":"3-4881031480a5326d9f5966189170db25"}}, -{"id":"jsonlint","key":"jsonlint","value":{"rev":"11-88d3c1c395846e7687f410e0dc405469"}}, -{"id":"jsonml","key":"jsonml","value":{"rev":"3-9990d9515fa554b5c7ff8bf8c7bb3308"}}, -{"id":"jsonparse","key":"jsonparse","value":{"rev":"3-569962847a5fd9d65fdf91af9e3e87a5"}}, -{"id":"jsonpointer","key":"jsonpointer","value":{"rev":"5-0310a11e82e9e22a4e5239dee2bc2213"}}, -{"id":"jsonprettify","key":"jsonprettify","value":{"rev":"3-173ae677f2110dfff8cb17dd2b4c68de"}}, -{"id":"jsonreq","key":"jsonreq","value":{"rev":"5-84b47d8c528ea7efa9aae113e5ff53cf"}}, -{"id":"jsonrpc","key":"jsonrpc","value":{"rev":"10-e40ff49715537320cbbbde67378f099e"}}, -{"id":"jsonrpc-ws","key":"jsonrpc-ws","value":{"rev":"7-73c385f3d35dadbdc87927f6a751e3ca"}}, -{"id":"jsonrpc2","key":"jsonrpc2","value":{"rev":"13-71efdea4f551d3a2550fcf5355ea8c8c"}}, -{"id":"jsontool","key":"jsontool","value":{"rev":"14-44bc979d3a8dc9295c825def01e533b4"}}, -{"id":"jsontoxml","key":"jsontoxml","value":{"rev":"8-2640fd26237ab4a45450748d392dd2d2"}}, -{"id":"jsontry","key":"jsontry","value":{"rev":"3-adb3f32f86419ac4b589ce41ab253952"}}, -{"id":"jsorm-i18n","key":"jsorm-i18n","value":{"rev":"3-54347174039512616ed76cc9a37605ea"}}, -{"id":"jsorm-utilities","key":"jsorm-utilities","value":{"rev":"3-187fc9f86ed8d32ebcb6c451fa7cc3c4"}}, -{"id":"jspack","key":"jspack","value":{"rev":"3-84955792d8b57fc301968daf674bace7"}}, -{"id":"jspkg","key":"jspkg","value":{"rev":"5-f5471c37554dad3492021490a70a1190"}}, -{"id":"jspp","key":"jspp","value":{"rev":"8-7607018fa48586f685dda17d77d0999b"}}, -{"id":"jss","key":"jss","value":{"rev":"20-4517b1daeda4f878debddc9f23347f00"}}, -{"id":"jst","key":"jst","value":{"rev":"27-8372bf5c052b6bd6e28f5d2c89b47e49"}}, -{"id":"jstestdriver","key":"jstestdriver","value":{"rev":"3-d26b172af33d6c45fc3dc96b96865714"}}, -{"id":"jstoxml","key":"jstoxml","value":{"rev":"15-c26b77ed5228500238c7b21a3dbdbbb7"}}, -{"id":"jsup","key":"jsup","value":{"rev":"3-54eb8598ae1a49bd1540e482a44a6abc"}}, -{"id":"jthon","key":"jthon","value":{"rev":"5-d578940ac32497839ff48d3f6205e9e2"}}, -{"id":"juggernaut","key":"juggernaut","value":{"rev":"20-15d33218943b9ec64b642e2a4a05e4b8"}}, -{"id":"juggernaut-yoomee","key":"juggernaut-yoomee","value":{"rev":"7-a58d429e46aac76260e236c64d20ff02"}}, -{"id":"jump","key":"jump","value":{"rev":"19-d47e23c31dc623b54e60004b08f6f624"}}, -{"id":"jumprope","key":"jumprope","value":{"rev":"5-98d4e2452f14d3b0996f04882b07d674"}}, -{"id":"junction","key":"junction","value":{"rev":"3-2b73ea17d862b1e95039141e98e53268"}}, -{"id":"jus-config","key":"jus-config","value":{"rev":"5-d2da00317dceb712d82dbfc776122dbe"}}, -{"id":"jus-i18n","key":"jus-i18n","value":{"rev":"3-d146cfc5f3c9aee769390ed921836b6e"}}, -{"id":"jus-task","key":"jus-task","value":{"rev":"13-d127de2a102eef2eb0d1b67810ecd558"}}, -{"id":"justtest","key":"justtest","value":{"rev":"17-467ee4ca606f0447a0c458550552fd0a"}}, -{"id":"jute","key":"jute","value":{"rev":"99-158d262e9126de5026bbfeb3168d9277"}}, -{"id":"jwt","key":"jwt","value":{"rev":"3-4cb8a706d1bc3c300bdadeba781c7bc4"}}, -{"id":"kaffeine","key":"kaffeine","value":{"rev":"47-261825b8d8cdf168387c6a275682dd0b"}}, -{"id":"kafka","key":"kafka","value":{"rev":"9-7465d4092e6322d0b744f017be8ffcea"}}, -{"id":"kahan","key":"kahan","value":{"rev":"5-107bb2dcdb51faaa00aef1e37eff91eb"}}, -{"id":"kahve-ansi","key":"kahve-ansi","value":{"rev":"5-a86d9a3ea56362fa81c8ee9f1ef8f2ef"}}, -{"id":"kahve-cake","key":"kahve-cake","value":{"rev":"3-873b4e553c4ba417c888aadce3b800f6"}}, -{"id":"kahve-classmethod","key":"kahve-classmethod","value":{"rev":"3-08e0a5786edc15539cc6746fe6c65bec"}}, -{"id":"kahve-exception","key":"kahve-exception","value":{"rev":"3-fb9d839cfdc069271cbc10fa27a87f3c"}}, -{"id":"kahve-progress","key":"kahve-progress","value":{"rev":"3-d2fcdd99793a0c3c3a314afb067a3701"}}, -{"id":"kanso","key":"kanso","value":{"rev":"41-2b18ab56cc86313daa840b7b3f63b318"}}, -{"id":"kaph","key":"kaph","value":{"rev":"7-c24622e38cf23bac67459bfe5a0edd63"}}, -{"id":"karait","key":"karait","value":{"rev":"9-a4abc4bc11c747448c4884cb714737c9"}}, -{"id":"kasabi","key":"kasabi","value":{"rev":"3-36cb65aef11d181c532f4549d58944e6"}}, -{"id":"kassit","key":"kassit","value":{"rev":"27-6fafe5122a4dda542a34ba18dddfc9ea"}}, -{"id":"kdtree","key":"kdtree","value":{"rev":"9-177bf5018be1f177d302af1d746b0462"}}, -{"id":"keeper","key":"keeper","value":{"rev":"13-43ce24b6e1fb8ac23c58a78e3e92d137"}}, -{"id":"kestrel","key":"kestrel","value":{"rev":"3-1303ae0617ed1076eed022176c78b0c4"}}, -{"id":"kettle","key":"kettle","value":{"rev":"3-385c10c43df484666148e796840e72c7"}}, -{"id":"keyed_list","key":"keyed_list","value":{"rev":"5-c98d8bc8619300da1a09098bb298bf16"}}, -{"id":"keyframely","key":"keyframely","value":{"rev":"5-586380d2258a099d8fa4748f2688b571"}}, -{"id":"keygrip","key":"keygrip","value":{"rev":"18-4178954fb4f0e26407851104876f1a03"}}, -{"id":"keyjson","key":"keyjson","value":{"rev":"5-96ab1d8b6fa77864883b657360070af4"}}, -{"id":"keymaster","key":"keymaster","value":{"rev":"8-e7eb722489b02991943e9934b8155162"}}, -{"id":"keys","key":"keys","value":{"rev":"12-8b34b8f593667f0c23f1841edb5b6fa3"}}, -{"id":"keysym","key":"keysym","value":{"rev":"13-ec57906511f8f2f896a9e81dc206ea77"}}, -{"id":"keyx","key":"keyx","value":{"rev":"3-80dc49b56e3ba1d280298c36afa2a82c"}}, -{"id":"khronos","key":"khronos","value":{"rev":"3-1a3772db2725c4c3098d5cf4ca2189a4"}}, -{"id":"kindred","key":"kindred","value":{"rev":"5-99c7f4f06e4a47e476f9d75737f719d7"}}, -{"id":"kiokujs","key":"kiokujs","value":{"rev":"8-4b96a9bc1866f58bb263b310e64df403"}}, -{"id":"kiokujs-backend-batch","key":"kiokujs-backend-batch","value":{"rev":"3-4739de0f2e0c01581ce0b02638d3df02"}}, -{"id":"kiokujs-backend-couchdb","key":"kiokujs-backend-couchdb","value":{"rev":"8-53e830e0a7e8ea810883c00ce79bfeef"}}, -{"id":"kiss.js","key":"kiss.js","value":{"rev":"11-7c9b1d7e2faee25ade6f1cad1bb261d9"}}, -{"id":"kissy","key":"kissy","value":{"rev":"8-3f8f7c169a3e84df6a7f68315f13b3ba"}}, -{"id":"kitkat","key":"kitkat","value":{"rev":"41-5f2600e4e1c503f63702c74195ff3361"}}, -{"id":"kitkat-express","key":"kitkat-express","value":{"rev":"3-91ef779ed9acdad1ca6f776e10a70246"}}, -{"id":"kizzy","key":"kizzy","value":{"rev":"5-f281b9e4037eda414f918ec9021e28c9"}}, -{"id":"kjs","key":"kjs","value":{"rev":"3-2ee03262f843e497161f1aef500dd229"}}, -{"id":"kju","key":"kju","value":{"rev":"5-0a7de1cd26864c85a22c7727c660d441"}}, -{"id":"klass","key":"klass","value":{"rev":"39-61491ef3824772d5ef33f7ea04219461"}}, -{"id":"klout-js","key":"klout-js","value":{"rev":"8-8d99f6dad9c21cb5da0d64fefef8c6d6"}}, -{"id":"knid","key":"knid","value":{"rev":"7-2cbfae088155da1044b568584cd296df"}}, -{"id":"knox","key":"knox","value":{"rev":"19-3c42553bd201b23a6bc15fdd073dad17"}}, -{"id":"knox-stream","key":"knox-stream","value":{"rev":"17-e40275f926b6ed645e4ef04caf8e5df4"}}, -{"id":"kns","key":"kns","value":{"rev":"9-5da1a89ad8c08f4b10cd715036200da3"}}, -{"id":"ko","key":"ko","value":{"rev":"9-9df2853d0e9ed9f7740f53291d0035dd"}}, -{"id":"koala","key":"koala","value":{"rev":"8-9e3fea91917f6d8cfb5aae22115e132f"}}, -{"id":"kohai","key":"kohai","value":{"rev":"3-1721a193589459fa077fea809fd7c9a9"}}, -{"id":"koku","key":"koku","value":{"rev":"5-414736980e0e70d90cd7f29b175fb18c"}}, -{"id":"komainu","key":"komainu","value":{"rev":"5-0f1a8f132fe58385e989dd4f93aefa26"}}, -{"id":"komodo-scheme","key":"komodo-scheme","value":{"rev":"3-97d1bd27f069684c491012e079fd82c4"}}, -{"id":"konphyg","key":"konphyg","value":{"rev":"7-e5fc03d6ddf39f2e0723291800bf0d43"}}, -{"id":"kranium","key":"kranium","value":{"rev":"3-4a78d2eb28e949a55b0dbd2ab00cecaf"}}, -{"id":"kue","key":"kue","value":{"rev":"21-053b32204d89a3067c5a90ca62ede08c"}}, -{"id":"kyatchi","key":"kyatchi","value":{"rev":"21-8dfbbe498f3740a2869c82e4ab4522d1"}}, -{"id":"kyoto","key":"kyoto","value":{"rev":"15-b9acdad89d56c71b6f427a443c16f85f"}}, -{"id":"kyoto-client","key":"kyoto-client","value":{"rev":"11-7fb392ee23ce64a48ae5638d713f4fbd"}}, -{"id":"kyoto-tycoon","key":"kyoto-tycoon","value":{"rev":"18-81ece8df26dbd9986efe1d97d935bec2"}}, -{"id":"kyuri","key":"kyuri","value":{"rev":"9-bedd4c087bd7bf612bde5e862d8b91bb"}}, -{"id":"labBuilder","key":"labBuilder","value":{"rev":"11-37f85b5325f1ccf25193c8b737823185"}}, -{"id":"laconic","key":"laconic","value":{"rev":"3-f5b7b9ac113fe7d32cbf4cb0d01c3052"}}, -{"id":"languagedetect","key":"languagedetect","value":{"rev":"3-ac487c034a3470ebd47b54614ea848f9"}}, -{"id":"lastfm","key":"lastfm","value":{"rev":"52-5af213489ca6ecdf2afc851c4642b082"}}, -{"id":"layers","key":"layers","value":{"rev":"7-62cd47d9645faa588c635dab2fbd2ef0"}}, -{"id":"lazy","key":"lazy","value":{"rev":"18-9b5ccdc9c3a970ec4c2b63b6f882da6a"}}, -{"id":"lazy-image","key":"lazy-image","value":{"rev":"5-34a6bc95017c50b3cb69981c7343e5da"}}, -{"id":"lazyBum","key":"lazyBum","value":{"rev":"15-03da6d744ba8cce7efca88ccb7e18c4d"}}, -{"id":"lazyprop","key":"lazyprop","value":{"rev":"14-82b4bcf318094a7950390f03e2fec252"}}, -{"id":"ldapjs","key":"ldapjs","value":{"rev":"11-e2b28e11a0aebe37b758d8f1ed61dd57"}}, -{"id":"ldapjs-riak","key":"ldapjs-riak","value":{"rev":"7-005413a1d4e371663626a3cca200c7e0"}}, -{"id":"ldifgrep","key":"ldifgrep","value":{"rev":"3-e4f06821a3444abbcd3c0c26300dcdda"}}, -{"id":"leaf","key":"leaf","value":{"rev":"8-0ccf5cdd1b59717b53375fe4bf044ec3"}}, -{"id":"lean","key":"lean","value":{"rev":"3-32dbbc771a3f1f6697c21c5d6c516967"}}, -{"id":"leche","key":"leche","value":{"rev":"7-0f5e19052ae1e3cb25ff2aa73271ae4f"}}, -{"id":"leche.spice.io","key":"leche.spice.io","value":{"rev":"3-07db415fdb746873f211e8155ecdf232"}}, -{"id":"less","key":"less","value":{"rev":"37-160fe5ea5dba44f02defdb8ec8c647d5"}}, -{"id":"less-bal","key":"less-bal","value":{"rev":"3-d50532c7c46013a62d06a0e54f8846ce"}}, -{"id":"less4clients","key":"less4clients","value":{"rev":"5-343d2973a166801681c856558d975ddf"}}, -{"id":"lessup","key":"lessup","value":{"rev":"9-a2e7627ef1b493fe82308d019ae481ac"}}, -{"id":"lessweb","key":"lessweb","value":{"rev":"9-e21794e578884c228dbed7c5d6128a41"}}, -{"id":"leveldb","key":"leveldb","value":{"rev":"11-3809e846a7a5ff883d17263288664195"}}, -{"id":"levenshtein","key":"levenshtein","value":{"rev":"6-44d27b6a6bc407772cafc29af485854f"}}, -{"id":"lib","key":"lib","value":{"rev":"5-a95272f11e927888c8b711503fce670b"}}, -{"id":"libdtrace","key":"libdtrace","value":{"rev":"8-4d4f72b2349154da514700f576e34564"}}, -{"id":"liberator","key":"liberator","value":{"rev":"15-b702710ccb3b45e41e9e2f3ebb6375ae"}}, -{"id":"libirc","key":"libirc","value":{"rev":"3-05b125de0c179dd311129aac2e1c8047"}}, -{"id":"liblzg","key":"liblzg","value":{"rev":"5-445ed45dc3cd166a299f85f6149aa098"}}, -{"id":"libnotify","key":"libnotify","value":{"rev":"10-c6723206898865e4828e963f5acc005e"}}, -{"id":"libxml-to-js","key":"libxml-to-js","value":{"rev":"33-64d3152875d33d6feffd618152bc41df"}}, -{"id":"libxmlext","key":"libxmlext","value":{"rev":"3-6a896dacba6f25fbca9b79d4143aaa9a"}}, -{"id":"libxmljs","key":"libxmljs","value":{"rev":"17-4b2949b53d9ecde79a99361774c1144b"}}, -{"id":"libxpm","key":"libxpm","value":{"rev":"3-c03efe75832c4416ceee5d72be12a8ef"}}, -{"id":"libyaml","key":"libyaml","value":{"rev":"5-f279bde715345a4e81d43c1d798ee608"}}, -{"id":"lift","key":"lift","value":{"rev":"21-61dcb771e5e0dc03fa327120d440ccda"}}, -{"id":"light-traits","key":"light-traits","value":{"rev":"26-b35c49550f9380fd462d57c64d51540f"}}, -{"id":"lightnode","key":"lightnode","value":{"rev":"3-ce37ccbf6a6546d4fa500e0eff84e882"}}, -{"id":"limestone","key":"limestone","value":{"rev":"3-d6f76ae98e4189db4ddfa8e15b4cdea9"}}, -{"id":"limited-file","key":"limited-file","value":{"rev":"3-c1d78250965b541836a70d3e867c694f"}}, -{"id":"lin","key":"lin","value":{"rev":"17-0a26ea2a603df0d14a9c40aad96bfb5e"}}, -{"id":"line-parser","key":"line-parser","value":{"rev":"7-84047425699f5a8a8836f4f2e63777bc"}}, -{"id":"line-reader","key":"line-reader","value":{"rev":"9-d2a7cb3a9793149e643490dc16a1eb50"}}, -{"id":"linebuffer","key":"linebuffer","value":{"rev":"12-8e79075aa213ceb49b28e0af7b3f3861"}}, -{"id":"lines","key":"lines","value":{"rev":"9-01a0565f47c3816919ca75bf77539df5"}}, -{"id":"lines-adapter","key":"lines-adapter","value":{"rev":"23-f287561e42a841c00bbf94bc8741bebc"}}, -{"id":"linestream","key":"linestream","value":{"rev":"5-18c2be87653ecf20407ed70eeb601ae7"}}, -{"id":"lingo","key":"lingo","value":{"rev":"10-b3d62b203c4af108feeaf0e32b2a4186"}}, -{"id":"link","key":"link","value":{"rev":"15-7570cea23333dbe3df11fd71171e6226"}}, -{"id":"linkedin-js","key":"linkedin-js","value":{"rev":"22-1bb1f392a9838684076b422840cf98eb"}}, -{"id":"linkscape","key":"linkscape","value":{"rev":"5-7272f50a54b1db015ce6d1e79eeedad7"}}, -{"id":"linkshare","key":"linkshare","value":{"rev":"3-634c4a18a217f77ccd6b89a9a2473d2a"}}, -{"id":"linode-api","key":"linode-api","value":{"rev":"13-2b43281ec86206312a2c387c9fc2c49f"}}, -{"id":"lint","key":"lint","value":{"rev":"49-fb76fddeb3ca609e5cac75fb0b0ec216"}}, -{"id":"linter","key":"linter","value":{"rev":"18-0fc884c96350f860cf2695f615572dba"}}, -{"id":"lintnode","key":"lintnode","value":{"rev":"8-b70bca986d7bde759521d0693dbc28b8"}}, -{"id":"linux-util","key":"linux-util","value":{"rev":"9-d049e8375e9c50b7f2b6268172d79734"}}, -{"id":"liquid","key":"liquid","value":{"rev":"3-353fa3c93ddf1951e3a75d60e6e8757b"}}, -{"id":"liquor","key":"liquor","value":{"rev":"3-4ee78e69a4a400a4de3491b0954947e7"}}, -{"id":"listener","key":"listener","value":{"rev":"5-02b5858d36aa99dcc5fc03c9274c94ee"}}, -{"id":"litmus","key":"litmus","value":{"rev":"9-7e403d052483301d025e9d09b4e7a9dd"}}, -{"id":"littering","key":"littering","value":{"rev":"5-9026438311ffc18d369bfa886c120bcd"}}, -{"id":"live-twitter-map","key":"live-twitter-map","value":{"rev":"3-45a40054bbab23374a4f1743c8bd711d"}}, -{"id":"livereload","key":"livereload","value":{"rev":"5-11ff486b4014ec1998705dbd396e96f2"}}, -{"id":"load","key":"load","value":{"rev":"7-2fff87aeb91d74bc57c134ee2cf0d65b"}}, -{"id":"loadbuilder","key":"loadbuilder","value":{"rev":"9-fa9c5cb13b3af03f9d9fbf5064fa0e0f"}}, -{"id":"loadit","key":"loadit","value":{"rev":"3-51bee062ed0d985757c6ae24929fa74e"}}, -{"id":"local-cdn","key":"local-cdn","value":{"rev":"9-9c2931766a559cf036318583455456e6"}}, -{"id":"localStorage","key":"localStorage","value":{"rev":"3-455fbe195db27131789b5d59db4504b0"}}, -{"id":"locales","key":"locales","value":{"rev":"5-bee452772e2070ec07af0dd86d6dbc41"}}, -{"id":"localhose","key":"localhose","value":{"rev":"9-3a2f63ecbed2e31400ca7515fd020a77"}}, -{"id":"localhost","key":"localhost","value":{"rev":"3-c6c4f6b5688cbe62865010099c9f461f"}}, -{"id":"localhostapp","key":"localhostapp","value":{"rev":"3-17884c4847c549e07e0c881fdf60d01f"}}, -{"id":"localize","key":"localize","value":{"rev":"7-1f83adb6d1eefcf7222a05f489b5db10"}}, -{"id":"location","key":"location","value":{"rev":"3-cc6fbf77b4ade80312bd95fde4e00015"}}, -{"id":"lockfile","key":"lockfile","value":{"rev":"3-4b4b79c2b0f09cc516db1a9d581c5038"}}, -{"id":"lode","key":"lode","value":{"rev":"15-5062a9a0863770d172097c5074a2bdae"}}, -{"id":"log","key":"log","value":{"rev":"12-0aa7922459ff8397764956c56a106930"}}, -{"id":"log-buddy","key":"log-buddy","value":{"rev":"3-64c6d4927d1d235d927f09c16c874e06"}}, -{"id":"log-watcher","key":"log-watcher","value":{"rev":"3-70f8727054c8e4104f835930578f4ee1"}}, -{"id":"log4js","key":"log4js","value":{"rev":"38-137b28e6e96515da7a6399cae86795dc"}}, -{"id":"log4js-amqp","key":"log4js-amqp","value":{"rev":"3-90530c28ef63d4598c12dfcf450929c0"}}, -{"id":"log5","key":"log5","value":{"rev":"17-920e3765dcfdc31bddf13de6895122b3"}}, -{"id":"logbot","key":"logbot","value":{"rev":"3-234eedc70b5474c713832e642f4dc3b4"}}, -{"id":"logger","key":"logger","value":{"rev":"3-5eef338fb5e845a81452fbb22e582aa7"}}, -{"id":"logging","key":"logging","value":{"rev":"22-99d320792c5445bd04699c4cf19edd89"}}, -{"id":"logging-system","key":"logging-system","value":{"rev":"5-5eda9d0b1d04256f5f44abe51cd14626"}}, -{"id":"loggly","key":"loggly","value":{"rev":"49-944a404e188327431a404e5713691a8c"}}, -{"id":"login","key":"login","value":{"rev":"44-7c450fe861230a5121ff294bcd6f97c9"}}, -{"id":"logly","key":"logly","value":{"rev":"7-832fe9af1cd8bfed84a065822cec398a"}}, -{"id":"logmagic","key":"logmagic","value":{"rev":"11-5d2c7dd32ba55e5ab85127be09723ef8"}}, -{"id":"logmonger","key":"logmonger","value":{"rev":"3-07a101d795f43f7af668210660274a7b"}}, -{"id":"lokki","key":"lokki","value":{"rev":"3-f6efcce38029ea0b4889707764088540"}}, -{"id":"long-stack-traces","key":"long-stack-traces","value":{"rev":"7-4b2fe23359b29e188cb2b8936b63891a"}}, -{"id":"loom","key":"loom","value":{"rev":"3-6348ab890611154da4881a0b351b0cb5"}}, -{"id":"loop","key":"loop","value":{"rev":"3-a56e9a6144f573092bb441106b370e0c"}}, -{"id":"looseleaf","key":"looseleaf","value":{"rev":"57-46ef6f055a40c34c714e3e9b9fe5d4cd"}}, -{"id":"lovely","key":"lovely","value":{"rev":"21-f577923512458f02f48ef59eebe55176"}}, -{"id":"lpd","key":"lpd","value":{"rev":"3-433711ae25002f67aa339380668fd491"}}, -{"id":"lpd-printers","key":"lpd-printers","value":{"rev":"3-47060e6c05fb4aad227d36f6e7941227"}}, -{"id":"lru-cache","key":"lru-cache","value":{"rev":"10-23c5e7423fe315745ef924f58c36e119"}}, -{"id":"ls-r","key":"ls-r","value":{"rev":"7-a769b11a06fae8ff439fe7eeb0806b5e"}}, -{"id":"lsof","key":"lsof","value":{"rev":"5-82aa3bcf23b8026a95e469b6188938f9"}}, -{"id":"ltx","key":"ltx","value":{"rev":"21-89ca85a9ce0c9fc13b20c0f1131168b0"}}, -{"id":"lucky-server","key":"lucky-server","value":{"rev":"3-a50d87239166f0ffc374368463f96b07"}}, -{"id":"lunapark","key":"lunapark","value":{"rev":"3-841d197f404da2e63d69b0c2132d87db"}}, -{"id":"lunchbot","key":"lunchbot","value":{"rev":"3-5d8984bef249e3d9e271560b5753f4cf"}}, -{"id":"lw-nun","key":"lw-nun","value":{"rev":"3-b686f89361b7b405e4581db6c60145ed"}}, -{"id":"lw-sass","key":"lw-sass","value":{"rev":"3-e46f90e0c8eab0c8c5d5eb8cf2a9a6da"}}, -{"id":"lwes","key":"lwes","value":{"rev":"3-939bb87efcbede1c1a70de881686fbce"}}, -{"id":"lwink","key":"lwink","value":{"rev":"3-1c432fafe4809e8d4a7e6214123ae452"}}, -{"id":"lzma","key":"lzma","value":{"rev":"3-31dc39414531e329b42b3a4ea0292c43"}}, -{"id":"m1node","key":"m1node","value":{"rev":"11-b34d55bdbc6f65b1814e77fab4a7e823"}}, -{"id":"m1test","key":"m1test","value":{"rev":"3-815ce56949e41e120082632629439eac"}}, -{"id":"m2node","key":"m2node","value":{"rev":"7-f50ec5578d995dd6a0a38e1049604bfc"}}, -{"id":"m2pdb","key":"m2pdb","value":{"rev":"3-ee798ac17c8c554484aceae2f77a826b"}}, -{"id":"m3u","key":"m3u","value":{"rev":"5-7ca6d768e0aed5b88dd45c943ca9ffa0"}}, -{"id":"mac","key":"mac","value":{"rev":"21-db5883c390108ff9ba46660c78b18b6c"}}, -{"id":"macchiato","key":"macchiato","value":{"rev":"5-0df1c87029e6005577fd8fd5cdb25947"}}, -{"id":"macgyver","key":"macgyver","value":{"rev":"3-f517699102b7bd696d8197d7ce57afb9"}}, -{"id":"macros","key":"macros","value":{"rev":"3-8356bcc0d1b1bd3879eeb880b2f3330b"}}, -{"id":"macrotest","key":"macrotest","value":{"rev":"10-2c6ceffb38f8ce5b0f382dbb02720d70"}}, -{"id":"maddy","key":"maddy","value":{"rev":"9-93d59c65c3f44aa6ed43dc986dd73ca5"}}, -{"id":"madmimi-node","key":"madmimi-node","value":{"rev":"11-257e1b1bd5ee5194a7052542952b8b7a"}}, -{"id":"maga","key":"maga","value":{"rev":"24-c69734f9fc138788db741b862f889583"}}, -{"id":"magic","key":"magic","value":{"rev":"34-aed787cc30ab86c95f547b9555d6a381"}}, -{"id":"magic-templates","key":"magic-templates","value":{"rev":"3-89546e9a038150cf419b4b15a84fd2aa"}}, -{"id":"magickal","key":"magickal","value":{"rev":"3-e9ed74bb90df0a52564d47aed0451ce7"}}, -{"id":"mai","key":"mai","value":{"rev":"5-f3561fe6de2bd25201250ddb6dcf9f01"}}, -{"id":"mail","key":"mail","value":{"rev":"14-9ae558552e6a7c11017f118a71c072e9"}}, -{"id":"mail-stack","key":"mail-stack","value":{"rev":"5-c82567203540076cf4878ea1ab197b52"}}, -{"id":"mailbox","key":"mailbox","value":{"rev":"12-0b582e127dd7cf669de16ec36f8056a4"}}, -{"id":"mailchimp","key":"mailchimp","value":{"rev":"23-3d9328ee938b7940322351254ea54877"}}, -{"id":"mailer","key":"mailer","value":{"rev":"40-7b251b758f9dba4667a3127195ea0380"}}, -{"id":"mailer-bal","key":"mailer-bal","value":{"rev":"3-fc8265b1905ea37638309d7c10852050"}}, -{"id":"mailer-fixed","key":"mailer-fixed","value":{"rev":"13-3004df43c62eb64ed5fb0306b019fe66"}}, -{"id":"mailgun","key":"mailgun","value":{"rev":"25-29de1adb355636822dc21fef51f37aed"}}, -{"id":"mailparser","key":"mailparser","value":{"rev":"14-7142e4168046418afc4a76d1b330f302"}}, -{"id":"mailto-parser","key":"mailto-parser","value":{"rev":"3-f8dea7b60c0e993211f81a86dcf5b18d"}}, -{"id":"makeerror","key":"makeerror","value":{"rev":"17-ceb9789357d80467c9ae75caa64ca8ac"}}, -{"id":"malt","key":"malt","value":{"rev":"7-e5e76a842eb0764a5ebe57290b629097"}}, -{"id":"mango","key":"mango","value":{"rev":"7-6224e74a3132e54f294f62998ed9127f"}}, -{"id":"map-reduce","key":"map-reduce","value":{"rev":"11-a81d8bdc6dae7e7b76d5df74fff40ae1"}}, -{"id":"mapnik","key":"mapnik","value":{"rev":"64-693f5b957b7faf361c2cc2a22747ebf7"}}, -{"id":"maptail","key":"maptail","value":{"rev":"14-8334618ddc20006a5f77ff35b172c152"}}, -{"id":"marak","key":"marak","value":{"rev":"3-27be187af00fc97501035dfb97a11ecf"}}, -{"id":"markdoc","key":"markdoc","value":{"rev":"13-23becdeda44b26ee54c9aaa31457e4ba"}}, -{"id":"markdom","key":"markdom","value":{"rev":"10-3c0df12e4f4a2e675d0f0fde48aa425f"}}, -{"id":"markdown","key":"markdown","value":{"rev":"19-88e02c28ce0179be900bf9e6aadc070f"}}, -{"id":"markdown-js","key":"markdown-js","value":{"rev":"6-964647c2509850358f70f4e23670fbeb"}}, -{"id":"markdown-wiki","key":"markdown-wiki","value":{"rev":"6-ce35fb0612a463db5852c5d3dcc7fdd3"}}, -{"id":"markdown2html","key":"markdown2html","value":{"rev":"3-549babe5d9497785fa8b9305c81d7214"}}, -{"id":"marked","key":"marked","value":{"rev":"21-9371df65f63131c9f24e8805db99a7d9"}}, -{"id":"markov","key":"markov","value":{"rev":"13-9ab795448c54ef87851f1392d6f3671a"}}, -{"id":"maryjane","key":"maryjane","value":{"rev":"3-e2e6cce443850b5df1554bf851d16760"}}, -{"id":"massagist","key":"massagist","value":{"rev":"11-cac3a103aecb4ff3f0f607aca2b1d3fb"}}, -{"id":"masson","key":"masson","value":{"rev":"10-87a5e6fd05bd4b8697fa3fa636238c20"}}, -{"id":"masstransit","key":"masstransit","value":{"rev":"11-74898c746e541ff1a00438017ee66d4a"}}, -{"id":"matchmaker","key":"matchmaker","value":{"rev":"3-192db6fb162bdf84fa3e858092fd3e20"}}, -{"id":"math","key":"math","value":{"rev":"5-16a74d8639e44a5ccb265ab1a3b7703b"}}, -{"id":"math-lexer","key":"math-lexer","value":{"rev":"19-54b42374b0090eeee50f39cb35f2eb40"}}, -{"id":"matrices","key":"matrices","value":{"rev":"43-06d64271a5148f89d649645712f8971f"}}, -{"id":"matrix","key":"matrix","value":{"rev":"3-77cff57242445cf3d76313b72bbc38f4"}}, -{"id":"matrixlib","key":"matrixlib","value":{"rev":"11-b3c105a5e5be1835183e7965d04825d9"}}, -{"id":"matterhorn","key":"matterhorn","value":{"rev":"9-a310dba2ea054bdce65e6df2f6ae85e5"}}, -{"id":"matterhorn-dust","key":"matterhorn-dust","value":{"rev":"3-2fb311986d62cf9f180aa76038ebf7b3"}}, -{"id":"matterhorn-gui","key":"matterhorn-gui","value":{"rev":"3-7921b46c9bff3ee82e4b32bc0a0a977d"}}, -{"id":"matterhorn-prng","key":"matterhorn-prng","value":{"rev":"3-c33fd59c1f1d24fb423553ec242e444b"}}, -{"id":"matterhorn-standard","key":"matterhorn-standard","value":{"rev":"13-0aaab6ecf55cdad6f773736da968afba"}}, -{"id":"matterhorn-state","key":"matterhorn-state","value":{"rev":"3-0ba8fd8a4c644b18aff34f1aef95db33"}}, -{"id":"matterhorn-user","key":"matterhorn-user","value":{"rev":"17-e42dc37a5cb24710803b3bd8dee7484d"}}, -{"id":"matterhorn-view","key":"matterhorn-view","value":{"rev":"3-b39042d665f5912d02e724d33d129a97"}}, -{"id":"mbtiles","key":"mbtiles","value":{"rev":"41-b92035d0ec8f47850734c4bb995baf7d"}}, -{"id":"mcast","key":"mcast","value":{"rev":"8-559b2b09cfa34cb88c16ae72ec90d28a"}}, -{"id":"md5","key":"md5","value":{"rev":"3-43d600c70f6442d3878c447585bf43bf"}}, -{"id":"mdgram","key":"mdgram","value":{"rev":"15-4d65cf0d5edef976de9a612c0cde0907"}}, -{"id":"mdns","key":"mdns","value":{"rev":"11-8b6789c3779fce7f019f9f10c625147a"}}, -{"id":"mecab-binding","key":"mecab-binding","value":{"rev":"3-3395763d23a3f8e3e00ba75cb988f9b4"}}, -{"id":"mechanize","key":"mechanize","value":{"rev":"5-94b72f43e270aa24c00e283fa52ba398"}}, -{"id":"mediatags","key":"mediatags","value":{"rev":"3-d5ea41e140fbbc821590cfefdbd016a5"}}, -{"id":"mediator","key":"mediator","value":{"rev":"3-42aac2225b47f72f97001107a3d242f5"}}, -{"id":"memcache","key":"memcache","value":{"rev":"5-aebcc4babe11b654afd3cede51e945ec"}}, -{"id":"memcached","key":"memcached","value":{"rev":"9-7c46464425c78681a8e6767ef9993c4c"}}, -{"id":"memcouchd","key":"memcouchd","value":{"rev":"3-b57b9fb4f6c60604f616c2f70456b4d6"}}, -{"id":"meme","key":"meme","value":{"rev":"11-53fcb51e1d8f8908b95f0fa12788e9aa"}}, -{"id":"memo","key":"memo","value":{"rev":"9-3a9ca97227ed19cacdacf10ed193ee8b"}}, -{"id":"memoize","key":"memoize","value":{"rev":"15-44bdd127c49035c8bd781a9299c103c2"}}, -{"id":"memoizer","key":"memoizer","value":{"rev":"9-d9a147e8c8a58fd7e8f139dc902592a6"}}, -{"id":"memorystream","key":"memorystream","value":{"rev":"9-6d0656067790e158f3c4628968ed70d3"}}, -{"id":"memstore","key":"memstore","value":{"rev":"5-03dcac59882c8a434e4c2fe2ac354941"}}, -{"id":"mercury","key":"mercury","value":{"rev":"3-147af865af6f7924f44f14f4b5c14dac"}}, -{"id":"mersenne","key":"mersenne","value":{"rev":"7-d8ae550eb8d0deaa1fd60f86351cb548"}}, -{"id":"meryl","key":"meryl","value":{"rev":"23-2c0e3fad99005109c584530e303bc5bf"}}, -{"id":"mesh","key":"mesh","value":{"rev":"5-f3ea4aef5b3f169eab8b518e5044c950"}}, -{"id":"meta-promise","key":"meta-promise","value":{"rev":"5-0badf85ab432341e6256252463468b89"}}, -{"id":"meta-test","key":"meta-test","value":{"rev":"49-92df2922499960ac750ce96d861ddd7e"}}, -{"id":"meta_code","key":"meta_code","value":{"rev":"7-9b4313c0c52a09c788464f1fea05baf7"}}, -{"id":"metamanager","key":"metamanager","value":{"rev":"5-dbb0312dad15416d540eb3d860fbf205"}}, -{"id":"metaweblog","key":"metaweblog","value":{"rev":"3-d3ab090ec27242e220412d6413e388ee"}}, -{"id":"metric","key":"metric","value":{"rev":"3-8a706db5b518421ad640a75e65cb4be9"}}, -{"id":"metrics","key":"metrics","value":{"rev":"13-62e5627c1ca5e6d3b3bde8d17e675298"}}, -{"id":"metrics-broker","key":"metrics-broker","value":{"rev":"15-0fdf57ea4ec84aa1f905f53b4975e72d"}}, -{"id":"mhash","key":"mhash","value":{"rev":"3-f00d65dc939474a5c508d37a327e5074"}}, -{"id":"micro","key":"micro","value":{"rev":"17-882c0ecf34ddaef5c673c547ae80b80b"}}, -{"id":"microcache","key":"microcache","value":{"rev":"3-ef75e04bc6e86d14f93ad9c429503bd9"}}, -{"id":"microevent","key":"microevent","value":{"rev":"3-9c0369289b62873ef6e8624eef724d15"}}, -{"id":"microtest","key":"microtest","value":{"rev":"11-11afdadfb15c1db030768ce52f34de1a"}}, -{"id":"microtime","key":"microtime","value":{"rev":"20-5f75e87316cbb5f7a4be09142cd755e5"}}, -{"id":"middlefiddle","key":"middlefiddle","value":{"rev":"13-bb94c05d75c24bdeb23a4637c7ecf55e"}}, -{"id":"middleware","key":"middleware","value":{"rev":"5-80937a4c620fcc2a5532bf064ec0837b"}}, -{"id":"midi","key":"midi","value":{"rev":"9-96da6599a84a761430adfd41deb3969a"}}, -{"id":"midi-js","key":"midi-js","value":{"rev":"11-1d174af1352e3d37f6ec0df32d56ce1a"}}, -{"id":"migrate","key":"migrate","value":{"rev":"13-7493879fb60a31b9e2a9ad19e94bfef6"}}, -{"id":"mikronode","key":"mikronode","value":{"rev":"31-1edae4ffbdb74c43ea584a7757dacc9b"}}, -{"id":"milk","key":"milk","value":{"rev":"21-81fb117817ed2e4c19e16dc310c09735"}}, -{"id":"millstone","key":"millstone","value":{"rev":"29-73d54de4b4de313b0fec4edfaec741a4"}}, -{"id":"mime","key":"mime","value":{"rev":"33-de72b641474458cb21006dea6a524ceb"}}, -{"id":"mime-magic","key":"mime-magic","value":{"rev":"13-2df6b966d7f29d5ee2dd2e1028d825b1"}}, -{"id":"mimelib","key":"mimelib","value":{"rev":"9-7994cf0fe3007329b9397f4e08481487"}}, -{"id":"mimelib-noiconv","key":"mimelib-noiconv","value":{"rev":"5-c84995d4b2bbe786080c9b54227b5bb4"}}, -{"id":"mimeograph","key":"mimeograph","value":{"rev":"37-bead083230f48f354f3ccac35e11afc0"}}, -{"id":"mimeparse","key":"mimeparse","value":{"rev":"8-5ca7e6702fe7f1f37ed31b05e82f4a87"}}, -{"id":"mingy","key":"mingy","value":{"rev":"19-09b19690c55abc1e940374e25e9a0d26"}}, -{"id":"mini-lzo-wrapper","key":"mini-lzo-wrapper","value":{"rev":"4-d751d61f481363a2786ac0312893dfca"}}, -{"id":"miniee","key":"miniee","value":{"rev":"5-be0833a9f15382695f861a990f3d6108"}}, -{"id":"minifyjs","key":"minifyjs","value":{"rev":"13-f255df8c7567440bc4c0f8eaf04a18c6"}}, -{"id":"minimal","key":"minimal","value":{"rev":"5-6be6b3454d30c59a30f9ee8af0ee606c"}}, -{"id":"minimal-test","key":"minimal-test","value":{"rev":"15-65dca2c1ee27090264577cc8b93983cb"}}, -{"id":"minimatch","key":"minimatch","value":{"rev":"11-449e570c76f4e6015c3dc90f080f8c47"}}, -{"id":"minirpc","key":"minirpc","value":{"rev":"10-e85b92273a97fa86e20faef7a3b50518"}}, -{"id":"ministore","key":"ministore","value":{"rev":"11-f131868141ccd0851bb91800c86dfff1"}}, -{"id":"minitest","key":"minitest","value":{"rev":"13-c92e32499a25ff2d7e484fbbcabe1081"}}, -{"id":"miniweb","key":"miniweb","value":{"rev":"3-e8c413a77e24891138eaa9e73cb08715"}}, -{"id":"minj","key":"minj","value":{"rev":"9-ccf50caf8e38b0fc2508f01a63f80510"}}, -{"id":"minotaur","key":"minotaur","value":{"rev":"29-6d048956b26e8a213f6ccc96027bacde"}}, -{"id":"mirror","key":"mirror","value":{"rev":"21-01bdd78ff03ca3f8f99fce104baab9f9"}}, -{"id":"misao-chan","key":"misao-chan","value":{"rev":"13-f032690f0897fc4a1dc12f1e03926627"}}, -{"id":"mite.node","key":"mite.node","value":{"rev":"13-0bfb15c4a6f172991756660b29869dd4"}}, -{"id":"mixable","key":"mixable","value":{"rev":"3-bc518ab862a6ceacc48952b9bec7d61a"}}, -{"id":"mixin","key":"mixin","value":{"rev":"3-3a7ae89345d21ceaf545d93b20caf2f2"}}, -{"id":"mixinjs","key":"mixinjs","value":{"rev":"3-064173d86b243316ef1b6c5743a60bf9"}}, -{"id":"mixpanel","key":"mixpanel","value":{"rev":"7-f742248bfbfc480658c4c46f7ab7a74a"}}, -{"id":"mixpanel-api","key":"mixpanel-api","value":{"rev":"5-61a3fa28921887344d1af339917e147a"}}, -{"id":"mixpanel_api","key":"mixpanel_api","value":{"rev":"3-11939b6fd20b80bf9537380875bf3996"}}, -{"id":"mjoe","key":"mjoe","value":{"rev":"3-8b3549cd6edcc03112217370b071b076"}}, -{"id":"mjsunit.runner","key":"mjsunit.runner","value":{"rev":"12-94c779b555069ca5fb0bc9688515673e"}}, -{"id":"mkdir","key":"mkdir","value":{"rev":"3-e8fd61b35638f1f3a65d36f09344ff28"}}, -{"id":"mkdirp","key":"mkdirp","value":{"rev":"15-c8eacf17b336ea98d1d9960f02362cbf"}}, -{"id":"mmap","key":"mmap","value":{"rev":"16-df335eb3257dfbd2fb0de341970d2656"}}, -{"id":"mmikulicic-thrift","key":"mmikulicic-thrift","value":{"rev":"3-f4a9f7a97bf50e966d1184fba423a07f"}}, -{"id":"mmmodel","key":"mmmodel","value":{"rev":"7-00d61723742a325aaaa6955ba52cef60"}}, -{"id":"mmodel","key":"mmodel","value":{"rev":"3-717309af27d6c5d98ed188c9c9438a37"}}, -{"id":"mmseg","key":"mmseg","value":{"rev":"17-794d553e67d6023ca3d58dd99fe1da15"}}, -{"id":"mobilize","key":"mobilize","value":{"rev":"25-8a657ec0accf8db2e8d7b935931ab77b"}}, -{"id":"mock","key":"mock","value":{"rev":"3-d8805bff4796462750071cddd3f75ea7"}}, -{"id":"mock-request","key":"mock-request","value":{"rev":"7-4ac4814c23f0899b1100d5f0617e40f4"}}, -{"id":"mock-request-response","key":"mock-request-response","value":{"rev":"5-fe1566c9881039a92a80e0e82a95f096"}}, -{"id":"mocket","key":"mocket","value":{"rev":"13-9001879cd3cb6f52f3b2d85fb14b8f9b"}}, -{"id":"modbus-stack","key":"modbus-stack","value":{"rev":"7-50c56e74d9cb02c5d936b0b44c54f621"}}, -{"id":"model","key":"model","value":{"rev":"3-174181c2f314f35fc289b7a921ba4d39"}}, -{"id":"models","key":"models","value":{"rev":"8-6cc2748edfd96679f9bb3596864874a9"}}, -{"id":"modestmaps","key":"modestmaps","value":{"rev":"8-79265968137a2327f98bfc6943a84da9"}}, -{"id":"modjewel","key":"modjewel","value":{"rev":"3-73efc7b9dc24d82cab1de249896193fd"}}, -{"id":"modlr","key":"modlr","value":{"rev":"17-ccf16db98ab6ccb95e005b3bb76dba64"}}, -{"id":"module-grapher","key":"module-grapher","value":{"rev":"19-b6ba30b41e29fc01d4b679a643f030e5"}}, -{"id":"modulr","key":"modulr","value":{"rev":"15-8e8ffd75c6c6149206de4ce0c2aefad7"}}, -{"id":"mogile","key":"mogile","value":{"rev":"5-79a8af20dbe6bff166ac2197a3998b0c"}}, -{"id":"mojo","key":"mojo","value":{"rev":"25-1d9c26d6afd6ea77253f220d86d60307"}}, -{"id":"monad","key":"monad","value":{"rev":"10-cf20354900b7e67d94c342feb06a1eb9"}}, -{"id":"mongeese","key":"mongeese","value":{"rev":"3-f4b319d98f9f73fb17cd3ebc7fc86412"}}, -{"id":"mongo-pool","key":"mongo-pool","value":{"rev":"3-215481828e69fd874b5938a79a7e0934"}}, -{"id":"mongodb","key":"mongodb","value":{"rev":"147-3dc09965e762787f34131a8739297383"}}, -{"id":"mongodb-async","key":"mongodb-async","value":{"rev":"7-ba9097bdc86b72885fa5a9ebb49a64d0"}}, -{"id":"mongodb-provider","key":"mongodb-provider","value":{"rev":"5-5523643b403e969e0b80c57db08cb9d3"}}, -{"id":"mongodb-rest","key":"mongodb-rest","value":{"rev":"36-60b4abc4a22f31de09407cc7cdd0834f"}}, -{"id":"mongodb-wrapper","key":"mongodb-wrapper","value":{"rev":"13-7a6c5eaff36ede45211aa80f3a506cfe"}}, -{"id":"mongodb_heroku","key":"mongodb_heroku","value":{"rev":"3-05947c1e06e1f8860c7809b063a8d1a0"}}, -{"id":"mongode","key":"mongode","value":{"rev":"11-faa14f050da4a165e2568d413a6b8bc0"}}, -{"id":"mongojs","key":"mongojs","value":{"rev":"26-a628eb51534ffcdd97c1a940d460a52c"}}, -{"id":"mongolia","key":"mongolia","value":{"rev":"76-711c39de0e152e224d4118c9b0de834f"}}, -{"id":"mongolian","key":"mongolian","value":{"rev":"44-3773671b31c406a18cb9f5a1764ebee4"}}, -{"id":"mongoose","key":"mongoose","value":{"rev":"181-03a8aa7f691cbd987995bf6e3354e0f5"}}, -{"id":"mongoose-admin","key":"mongoose-admin","value":{"rev":"7-59078ad5a345e9e66574346d3e70f9ad"}}, -{"id":"mongoose-auth","key":"mongoose-auth","value":{"rev":"49-87c79f3a6164c438a53b7629be87ae5d"}}, -{"id":"mongoose-autoincr","key":"mongoose-autoincr","value":{"rev":"3-9c4dd7c3fdcd8621166665a68fccb602"}}, -{"id":"mongoose-closures","key":"mongoose-closures","value":{"rev":"3-2ff9cff790f387f2236a2c7382ebb55b"}}, -{"id":"mongoose-crypt","key":"mongoose-crypt","value":{"rev":"3-d77ffbf250e39fcc290ad37824fe2236"}}, -{"id":"mongoose-dbref","key":"mongoose-dbref","value":{"rev":"29-02090b9904fd6f5ce72afcfa729f7c96"}}, -{"id":"mongoose-flatmatcher","key":"mongoose-flatmatcher","value":{"rev":"5-4f0565901e8b588cc562ae457ad975a6"}}, -{"id":"mongoose-helpers","key":"mongoose-helpers","value":{"rev":"3-3a57e9819e24c9b0f5b5eabe41037092"}}, -{"id":"mongoose-joins","key":"mongoose-joins","value":{"rev":"3-9bae444730a329473421f50cba1c86a7"}}, -{"id":"mongoose-misc","key":"mongoose-misc","value":{"rev":"3-bcd7f3f450cf6ed233d042ac574409ce"}}, -{"id":"mongoose-relationships","key":"mongoose-relationships","value":{"rev":"9-6155a276b162ec6593b8542f0f769024"}}, -{"id":"mongoose-rest","key":"mongoose-rest","value":{"rev":"29-054330c035adf842ab34423215995113"}}, -{"id":"mongoose-spatial","key":"mongoose-spatial","value":{"rev":"3-88660dabd485edcaa29a2ea01afb90bd"}}, -{"id":"mongoose-temporal","key":"mongoose-temporal","value":{"rev":"3-1dd736395fe9be95498e588df502b7bb"}}, -{"id":"mongoose-types","key":"mongoose-types","value":{"rev":"13-8126458b91ef1bf46e582042f5dbd015"}}, -{"id":"mongoose-units","key":"mongoose-units","value":{"rev":"3-5fcdb7aedb1d5cff6e18ee1352c3d0f7"}}, -{"id":"mongoq","key":"mongoq","value":{"rev":"11-2060d674d5f8a964e800ed4470b92587"}}, -{"id":"mongoskin","key":"mongoskin","value":{"rev":"13-5a7bfacd9e9b95ec469f389751e7e435"}}, -{"id":"mongous","key":"mongous","value":{"rev":"3-4d98b4a4bfdd6d9f46342002a69d8d3a"}}, -{"id":"mongrel2","key":"mongrel2","value":{"rev":"3-93156356e478f30fc32455054e384b80"}}, -{"id":"monguava","key":"monguava","value":{"rev":"9-69ec50128220aba3e16128a4be2799c0"}}, -{"id":"mongueue","key":"mongueue","value":{"rev":"9-fc8d9df5bf15f5a25f68cf58866f11fe"}}, -{"id":"moniker","key":"moniker","value":{"rev":"5-a139616b725ddfdd1db6a376fb6584f7"}}, -{"id":"monitor","key":"monitor","value":{"rev":"56-44d2b8b7dec04b3f320f7dc4a1704c53"}}, -{"id":"monome","key":"monome","value":{"rev":"3-2776736715cbfc045bf7b42e70ccda9c"}}, -{"id":"monomi","key":"monomi","value":{"rev":"6-b6b745441f157cc40c846d23cd14297a"}}, -{"id":"moof","key":"moof","value":{"rev":"13-822b4ebf873b720bd4c7e16fcbbbbb3d"}}, -{"id":"moonshado","key":"moonshado","value":{"rev":"3-b54de1aef733c8fa118fa7cf6af2fb9b"}}, -{"id":"moose","key":"moose","value":{"rev":"5-e11c8b7c09826e3431ed3408ee874779"}}, -{"id":"mootools","key":"mootools","value":{"rev":"9-39f5535072748ccd3cf0212ef4c3d4fa"}}, -{"id":"mootools-array","key":"mootools-array","value":{"rev":"3-d1354704a9fe922d969c2bf718e0dc53"}}, -{"id":"mootools-browser","key":"mootools-browser","value":{"rev":"3-ce0946b357b6ddecc128febef2c5d720"}}, -{"id":"mootools-class","key":"mootools-class","value":{"rev":"3-0ea815d28b61f3880087e3f4b8668354"}}, -{"id":"mootools-class-extras","key":"mootools-class-extras","value":{"rev":"3-575796745bd169c35f4fc0019bb36b76"}}, -{"id":"mootools-client","key":"mootools-client","value":{"rev":"3-b658c331f629f80bfe17c3e6ed44c525"}}, -{"id":"mootools-cookie","key":"mootools-cookie","value":{"rev":"3-af93588531e5a52c76a8e7a4eac3612a"}}, -{"id":"mootools-core","key":"mootools-core","value":{"rev":"3-01b1678fc56d94d29566b7853ad56059"}}, -{"id":"mootools-domready","key":"mootools-domready","value":{"rev":"3-0fc6620e2c8f7d107816cace9c099633"}}, -{"id":"mootools-element","key":"mootools-element","value":{"rev":"3-bac857c1701c91207d1ec6d1eb002d07"}}, -{"id":"mootools-element-dimensions","key":"mootools-element-dimensions","value":{"rev":"3-d82df62b3e97122ad0a7668efb7ba776"}}, -{"id":"mootools-element-event","key":"mootools-element-event","value":{"rev":"3-a30380151989ca31851cf751fcd55e9a"}}, -{"id":"mootools-element-style","key":"mootools-element-style","value":{"rev":"3-6103fa8551a21dc592e410dc7df647f8"}}, -{"id":"mootools-event","key":"mootools-event","value":{"rev":"3-7327279ec157de8c47f3ee24615ead95"}}, -{"id":"mootools-function","key":"mootools-function","value":{"rev":"3-eb3ee17acf40d6cc05463cb88edc6f5e"}}, -{"id":"mootools-fx","key":"mootools-fx","value":{"rev":"3-757ab6c8423e8c434d1ee783ea28cdb5"}}, -{"id":"mootools-fx-css","key":"mootools-fx-css","value":{"rev":"3-8eb0cf468c826b9c485835fab94837e7"}}, -{"id":"mootools-fx-morph","key":"mootools-fx-morph","value":{"rev":"3-b91310f8a81221592970fe7632bd9f7a"}}, -{"id":"mootools-fx-transitions","key":"mootools-fx-transitions","value":{"rev":"3-a1ecde35dfbb80f3a6062005758bb934"}}, -{"id":"mootools-fx-tween","key":"mootools-fx-tween","value":{"rev":"3-39497defbffdf463932cc9f00cde8d5d"}}, -{"id":"mootools-json","key":"mootools-json","value":{"rev":"3-69deb6679a5d1d49f22e19834ae07c32"}}, -{"id":"mootools-more","key":"mootools-more","value":{"rev":"3-d8f46ce319ca0e3deb5fc04ad5f73cb9"}}, -{"id":"mootools-number","key":"mootools-number","value":{"rev":"3-9f4494883ac39f93734fea9af6ef2fc5"}}, -{"id":"mootools-object","key":"mootools-object","value":{"rev":"3-c9632dfa793ab4d9ad4b68a2e27f09fc"}}, -{"id":"mootools-request","key":"mootools-request","value":{"rev":"3-663e5472f351eea3b7488ee441bc6a61"}}, -{"id":"mootools-request-html","key":"mootools-request-html","value":{"rev":"3-0ab9576c11a564d44b3c3ca3ef3dc240"}}, -{"id":"mootools-request-json","key":"mootools-request-json","value":{"rev":"3-c0359201c94ba1684ea6336e35cd70c2"}}, -{"id":"mootools-server","key":"mootools-server","value":{"rev":"3-98e89499f6eab137bbab053a3932a526"}}, -{"id":"mootools-slick-finder","key":"mootools-slick-finder","value":{"rev":"3-9a5820e90d6ea2d797268f3c60a9f177"}}, -{"id":"mootools-slick-parser","key":"mootools-slick-parser","value":{"rev":"3-d4e6b1673e6e2a6bcc66bf4988b2994d"}}, -{"id":"mootools-string","key":"mootools-string","value":{"rev":"3-2fda1c7915295df62e547018a7f05916"}}, -{"id":"mootools-swiff","key":"mootools-swiff","value":{"rev":"3-f0edeead85f3d48cf2af2ca35a4e67a5"}}, -{"id":"mootools.js","key":"mootools.js","value":{"rev":"3-085e50e3529d19e1d6ad630027ba51dc"}}, -{"id":"morestreams","key":"morestreams","value":{"rev":"7-3d0145c2cfb9429dfdcfa872998c9fe8"}}, -{"id":"morpheus","key":"morpheus","value":{"rev":"45-04335640f709335d1828523425a87909"}}, -{"id":"morton","key":"morton","value":{"rev":"11-abd787350e21bef65c1c6776e40a0753"}}, -{"id":"mothermayi","key":"mothermayi","value":{"rev":"5-2c46f9873efd19f543def5eeda0a05f1"}}, -{"id":"mountable-proxy","key":"mountable-proxy","value":{"rev":"7-3b91bd0707447885676727ad183bb051"}}, -{"id":"move","key":"move","value":{"rev":"69-ce11c235c78de6d6184a86aaa93769eb"}}, -{"id":"moviesearch","key":"moviesearch","value":{"rev":"3-72e77965a44264dfdd5af23e4a36d2ce"}}, -{"id":"mp","key":"mp","value":{"rev":"3-47899fb2bdaf21dda16abd037b325c3b"}}, -{"id":"mpdsocket","key":"mpdsocket","value":{"rev":"3-2dd4c9bb019f3f491c55364be7a56229"}}, -{"id":"mrcolor","key":"mrcolor","value":{"rev":"3-4695b11798a65c61714b8f236a40936c"}}, -{"id":"msgbus","key":"msgbus","value":{"rev":"27-a5d861b55c933842226d4e536820ec99"}}, -{"id":"msgme","key":"msgme","value":{"rev":"3-d1968af1234a2059eb3d84eb76cdaa4e"}}, -{"id":"msgpack","key":"msgpack","value":{"rev":"9-ecf7469392d87460ddebef2dd369b0e5"}}, -{"id":"msgpack-0.4","key":"msgpack-0.4","value":{"rev":"3-5d509ddba6c53ed6b8dfe4afb1d1661d"}}, -{"id":"msgpack2","key":"msgpack2","value":{"rev":"4-63b8f3ccf35498eb5c8bd9b8d683179b"}}, -{"id":"mu","key":"mu","value":{"rev":"7-7a8ce1cba5d6d98e696c4e633aa081fa"}}, -{"id":"mu2","key":"mu2","value":{"rev":"3-4ade1c5b1496c720312beae1822da9de"}}, -{"id":"mud","key":"mud","value":{"rev":"66-56e1b1a1e5af14c3df0520c58358e7cd"}}, -{"id":"muffin","key":"muffin","value":{"rev":"22-210c45a888fe1f095becdcf11876a2bc"}}, -{"id":"multi-node","key":"multi-node","value":{"rev":"1-224161d875f0e1cbf4b1e249603c670a"}}, -{"id":"multicast-eventemitter","key":"multicast-eventemitter","value":{"rev":"13-ede3e677d6e21bbfe42aad1b549a137c"}}, -{"id":"multimeter","key":"multimeter","value":{"rev":"7-847f45a6f592a8410a77d3e5efb5cbf3"}}, -{"id":"multipart-stack","key":"multipart-stack","value":{"rev":"9-85aaa2ed2180d3124d1dcd346955b672"}}, -{"id":"muse","key":"muse","value":{"rev":"3-d6bbc06df2e359d6ef285f9da2bd0efd"}}, -{"id":"musicmetadata","key":"musicmetadata","value":{"rev":"21-957bf986aa9d0db02175ea1d79293909"}}, -{"id":"mustache","key":"mustache","value":{"rev":"6-7f8458f2b52de5b37004b105c0f39e62"}}, -{"id":"mustachio","key":"mustachio","value":{"rev":"9-6ed3f41613f886128acd18b73b55439f"}}, -{"id":"mutex","key":"mutex","value":{"rev":"3-de95bdff3dd00271361067b5d70ea03b"}}, -{"id":"muzak","key":"muzak","value":{"rev":"9-5ff968ffadebe957b72a8b77b538b71c"}}, -{"id":"mvc","key":"mvc","value":{"rev":"52-7c954b6c3b90b1b734d8e8c3d2d34f5e"}}, -{"id":"mvc.coffee","key":"mvc.coffee","value":{"rev":"3-f203564ed70c0284455e7f96ea61fdb7"}}, -{"id":"mypackage","key":"mypackage","value":{"rev":"3-49cc95fb2e5ac8ee3dbbab1de451c0d1"}}, -{"id":"mypakege","key":"mypakege","value":{"rev":"3-e74d7dc2c2518304ff1700cf295eb823"}}, -{"id":"myrtle-parser","key":"myrtle-parser","value":{"rev":"3-9089c1a2f3c3a24f0bce3941bc1d534d"}}, -{"id":"mysql","key":"mysql","value":{"rev":"30-a8dc68eb056cb6f69fae2423c1337474"}}, -{"id":"mysql-activerecord","key":"mysql-activerecord","value":{"rev":"17-9d21d0b10a5c84f6cacfd8d2236f9887"}}, -{"id":"mysql-client","key":"mysql-client","value":{"rev":"5-cc877218864c319d17f179e49bf58c99"}}, -{"id":"mysql-helper","key":"mysql-helper","value":{"rev":"3-c6f3b9f00cd9fee675aa2a9942cc336a"}}, -{"id":"mysql-libmysqlclient","key":"mysql-libmysqlclient","value":{"rev":"38-51c08e24257b99bf5591232016ada8ab"}}, -{"id":"mysql-native","key":"mysql-native","value":{"rev":"12-0592fbf66c55e6e9db6a75c97be088c3"}}, -{"id":"mysql-native-prerelease","key":"mysql-native-prerelease","value":{"rev":"7-b1a6f3fc41f6c152f3b178e13f91b5c4"}}, -{"id":"mysql-oil","key":"mysql-oil","value":{"rev":"9-70c07b9c552ff592be8ca89ea6efa408"}}, -{"id":"mysql-pool","key":"mysql-pool","value":{"rev":"15-41f510c45174b6c887856120ce3d5a3b"}}, -{"id":"mysql-simple","key":"mysql-simple","value":{"rev":"13-7ee13f035e8ebcbc27f6fe910058aee9"}}, -{"id":"n","key":"n","value":{"rev":"31-bfaed5022beae2177a090c4c8fce82a4"}}, -{"id":"n-ext","key":"n-ext","value":{"rev":"3-5ad67a300f8e88ef1dd58983c9061bc1"}}, -{"id":"n-pubsub","key":"n-pubsub","value":{"rev":"3-af990bcbf9f94554365788b81715d3b4"}}, -{"id":"n-rest","key":"n-rest","value":{"rev":"7-42f1d92f9229f126a1b063ca27bfc85b"}}, -{"id":"n-util","key":"n-util","value":{"rev":"6-d0c59c7412408bc94e20de4d22396d79"}}, -{"id":"nMemcached","key":"nMemcached","value":{"rev":"3-be350fd46624a1cac0052231101e0594"}}, -{"id":"nStoreSession","key":"nStoreSession","value":{"rev":"3-a3452cddd2b9ff8edb6d46999fa5b0eb"}}, -{"id":"nTPL","key":"nTPL","value":{"rev":"41-16a54848286364d894906333b0c1bb2c"}}, -{"id":"nTunes","key":"nTunes","value":{"rev":"18-76bc566a504100507056316fe8d3cc35"}}, -{"id":"nabe","key":"nabe","value":{"rev":"13-dc93f35018e84a23ace4d5114fa1bb28"}}, -{"id":"nack","key":"nack","value":{"rev":"118-f629c8c208c76fa0c2ce66d21f927ee4"}}, -{"id":"nagari","key":"nagari","value":{"rev":"11-cb200690c6d606d8597178e492b54cde"}}, -{"id":"nailplate","key":"nailplate","value":{"rev":"11-e1532c42d9d83fc32942dec0b87df587"}}, -{"id":"nails","key":"nails","value":{"rev":"12-f472bf005c4a4c2b49fb0118b109bef1"}}, -{"id":"nake","key":"nake","value":{"rev":"11-250933df55fbe7bb19e34a84ed23ca3e"}}, -{"id":"named-routes","key":"named-routes","value":{"rev":"6-ffbdd4caa74a30e87aa6dbb36f2b967c"}}, -{"id":"namespace","key":"namespace","value":{"rev":"7-89e2850e14206af13f26441e75289878"}}, -{"id":"namespaces","key":"namespaces","value":{"rev":"11-7a9b3d2537438211021a472035109f3c"}}, -{"id":"nami","key":"nami","value":{"rev":"29-3d44b1338222a4d994d4030868a94ea8"}}, -{"id":"nano","key":"nano","value":{"rev":"105-50efc49a8f6424706af554872002c014"}}, -{"id":"nanostate","key":"nanostate","value":{"rev":"9-1664d985e8cdbf16e150ba6ba4d79ae5"}}, -{"id":"narcissus","key":"narcissus","value":{"rev":"3-46581eeceff566bd191a14dec7b337f6"}}, -{"id":"nariya","key":"nariya","value":{"rev":"13-d83b8b6162397b154a4b59553be225e9"}}, -{"id":"narrativ","key":"narrativ","value":{"rev":"9-ef215eff6bf222425f73d23e507f7ff3"}}, -{"id":"narrow","key":"narrow","value":{"rev":"5-c6963048ba02adaf819dc51815fa0015"}}, -{"id":"narwhal","key":"narwhal","value":{"rev":"6-13bf3f87e6cfb1e57662cc3e3be450fc"}}, -{"id":"narwhal-lib","key":"narwhal-lib","value":{"rev":"6-4722d9b35fed59a2e8f7345a1eb6769d"}}, -{"id":"nat","key":"nat","value":{"rev":"3-da0906c08792043546f98ace8ce59a78"}}, -{"id":"native2ascii","key":"native2ascii","value":{"rev":"3-9afd51209d67303a8ee807ff862e31fc"}}, -{"id":"nativeUtil","key":"nativeUtil","value":{"rev":"7-6e3e9757b436ebcee35a20e633c08d60"}}, -{"id":"natives","key":"natives","value":{"rev":"24-6c4269c9c7cfb52571bd2c94fa26efc6"}}, -{"id":"natural","key":"natural","value":{"rev":"110-fc92701ad8525f45fbdb5863959ca03c"}}, -{"id":"naturalsort","key":"naturalsort","value":{"rev":"3-4321f5e432aee224af0fee9e4fb901ff"}}, -{"id":"nave","key":"nave","value":{"rev":"29-79baa66065fa9075764cc3e5da2edaef"}}, -{"id":"navigator","key":"navigator","value":{"rev":"3-f2f4f5376afb10753006f40bd49689c3"}}, -{"id":"nbs-api","key":"nbs-api","value":{"rev":"3-94949b1f0797369abc0752482268ef08"}}, -{"id":"nbt","key":"nbt","value":{"rev":"3-b711b9db76f64449df7f43c659ad8e7f"}}, -{"id":"nclosure","key":"nclosure","value":{"rev":"9-042b39740a39f0556d0dc2c0990b7fa8"}}, -{"id":"nclosureultimate","key":"nclosureultimate","value":{"rev":"3-61ff4bc480239304c459374c9a5f5754"}}, -{"id":"nconf","key":"nconf","value":{"rev":"65-8d8c0d2c6d5d9d526b8a3f325f68eca1"}}, -{"id":"nconf-redis","key":"nconf-redis","value":{"rev":"5-21ae138633b20cb29ed49b9fcd425e10"}}, -{"id":"ncp","key":"ncp","value":{"rev":"23-6441091c6c27ecb5b99f5781299a2192"}}, -{"id":"ncss","key":"ncss","value":{"rev":"9-1d2330e0fdbc40f0810747c2b156ecf2"}}, -{"id":"ncurses","key":"ncurses","value":{"rev":"12-bb059ea6fee12ca77f1fbb7bb6dd9447"}}, -{"id":"ndb","key":"ndb","value":{"rev":"15-b3e826f68a57095413666e9fe74589da"}}, -{"id":"ndistro","key":"ndistro","value":{"rev":"3-fcda3c018d11000b2903ad7104b60b35"}}, -{"id":"ndns","key":"ndns","value":{"rev":"5-1aeaaca119be44af7a83207d76f263fc"}}, -{"id":"nebulog","key":"nebulog","value":{"rev":"3-1863b0ce17cc0f07a50532a830194254"}}, -{"id":"neco","key":"neco","value":{"rev":"43-e830913302b52012ab63177ecf292822"}}, -{"id":"ned","key":"ned","value":{"rev":"15-4230c69fb52dfddfd65526dcfe5c4ec6"}}, -{"id":"nedis","key":"nedis","value":{"rev":"7-d49e329dca586d1a3569266f0595c9ad"}}, -{"id":"neko","key":"neko","value":{"rev":"60-13aa87d2278c3a734733cff2a34a7970"}}, -{"id":"neo4j","key":"neo4j","value":{"rev":"7-dde7066eac32a405df95ccf9c50c8ae7"}}, -{"id":"nerve","key":"nerve","value":{"rev":"3-2c47b79586d7930aabf9325ca88ad7e8"}}, -{"id":"nest","key":"nest","value":{"rev":"23-560d67971e9acddacf087608306def24"}}, -{"id":"nestableflow","key":"nestableflow","value":{"rev":"5-ee8af667a84d333fcc8092c89f4189c3"}}, -{"id":"nestor","key":"nestor","value":{"rev":"3-f1affbc37be3bf4e337365bd172578dc"}}, -{"id":"net","key":"net","value":{"rev":"3-895103ee532ef31396d9c06764df1ed8"}}, -{"id":"netiface","key":"netiface","value":{"rev":"3-885c94284fd3a9601afe291ab68aca84"}}, -{"id":"netpool","key":"netpool","value":{"rev":"3-dadfd09b9eb7ef73e2bff34a381de207"}}, -{"id":"netstring","key":"netstring","value":{"rev":"9-d26e7bf4a3ce5eb91bb1889d362f71e6"}}, -{"id":"neuron","key":"neuron","value":{"rev":"11-edaed50492368ff39eaf7d2004d7f4d8"}}, -{"id":"new","key":"new","value":{"rev":"3-7789b37104d8161b7ccf898a9cda1fc6"}}, -{"id":"newforms","key":"newforms","value":{"rev":"9-2a87cb74477d210fcb1d0c3e3e236f03"}}, -{"id":"nexpect","key":"nexpect","value":{"rev":"15-e7127f41b9f3ec45185ede7bab7b4acd"}}, -{"id":"next","key":"next","value":{"rev":"13-de5e62125b72e48ea142a55a3817589c"}}, -{"id":"nextrip","key":"nextrip","value":{"rev":"5-1ac8103552967af98d3de452ef81a94f"}}, -{"id":"nexttick","key":"nexttick","value":{"rev":"9-c7ec279e713ea8483d33c31871aea0db"}}, -{"id":"ngen","key":"ngen","value":{"rev":"9-972980a439c34851d67e4f61a96c2632"}}, -{"id":"ngen-basicexample","key":"ngen-basicexample","value":{"rev":"3-897763c230081d320586bcadfa84499f"}}, -{"id":"ngeohash","key":"ngeohash","value":{"rev":"5-9ca0c06066bc798e934db35cad99453e"}}, -{"id":"ngist","key":"ngist","value":{"rev":"7-592c24e72708219ed1eb078ddff95ab6"}}, -{"id":"ngram","key":"ngram","value":{"rev":"5-00e6b24dc178bdeb49b1ac8cb09f6e77"}}, -{"id":"ngrep","key":"ngrep","value":{"rev":"3-49c1a3839b12083280475177c1a16e38"}}, -{"id":"nhp-body-restreamer","key":"nhp-body-restreamer","value":{"rev":"1-8a4e5e23ae681a3f8be9afb613648230"}}, -{"id":"nhttpd","key":"nhttpd","value":{"rev":"3-cdc73384e1a1a4666e813ff52f2f5e4f"}}, -{"id":"nib","key":"nib","value":{"rev":"25-d67d5a294ba5b8953472cf936b97e13d"}}, -{"id":"nicetime","key":"nicetime","value":{"rev":"3-39fdba269d712064dc1e02a7ab846821"}}, -{"id":"nicknack","key":"nicknack","value":{"rev":"5-7b5477b63f782d0a510b0c15d2824f20"}}, -{"id":"nide","key":"nide","value":{"rev":"9-74f642fced47c934f9bae29f04d17a46"}}, -{"id":"nih-op","key":"nih-op","value":{"rev":"3-6e649b45964f84cb04340ab7f0a36a1c"}}, -{"id":"nimble","key":"nimble","value":{"rev":"5-867b808dd80eab33e5f22f55bb5a7376"}}, -{"id":"ninjs","key":"ninjs","value":{"rev":"3-f59997cc4bacb2d9d9852f955d15199e"}}, -{"id":"ninotify","key":"ninotify","value":{"rev":"3-a0f3c7cbbe7ccf5d547551aa062cc8b5"}}, -{"id":"nirc","key":"nirc","value":{"rev":"3-28197984656939a5a93a77c0a1605406"}}, -{"id":"nithub","key":"nithub","value":{"rev":"3-eaa85e6ac6668a304e4e4a565c54f57d"}}, -{"id":"nix","key":"nix","value":{"rev":"12-7b338b03c0e110aeb348551b14796ff1"}}, -{"id":"nko","key":"nko","value":{"rev":"39-2bf94b2bc279b8cf847bfc7668029d37"}}, -{"id":"nlog","key":"nlog","value":{"rev":"3-ae469820484ca33f346001dcb7b63a2d"}}, -{"id":"nlog4js","key":"nlog4js","value":{"rev":"3-bc17a61a9023d64e192d249144e69f02"}}, -{"id":"nlogger","key":"nlogger","value":{"rev":"11-1e48fc9a5a4214d9e56db6c6b63f1eeb"}}, -{"id":"nmd","key":"nmd","value":{"rev":"27-2dcb60d0258a9cea838f7cc4e0922f90"}}, -{"id":"nntp","key":"nntp","value":{"rev":"5-c86b189e366b9a6a428f9a2ee88dccf1"}}, -{"id":"no.de","key":"no.de","value":{"rev":"10-0dc855fd6b0b36a710b473b2720b22c0"}}, -{"id":"nobj","key":"nobj","value":{"rev":"3-0b4a46b91b70117306a9888202117223"}}, -{"id":"noblemachine","key":"noblemachine","value":{"rev":"3-06fec410fe0c7328e06eec50b4fa5d9a"}}, -{"id":"noblerecord","key":"noblerecord","value":{"rev":"5-22f24c4285bd405785588480bb2bc324"}}, -{"id":"nock","key":"nock","value":{"rev":"5-f94423d37dbdf41001ec097f20635271"}}, -{"id":"nocr-mongo","key":"nocr-mongo","value":{"rev":"5-ce6335ed276187cc38c30cb5872d3d83"}}, -{"id":"nodast","key":"nodast","value":{"rev":"3-1c563107f2d77b79a8f0d0b8ba7041f5"}}, -{"id":"node-api","key":"node-api","value":{"rev":"3-b69cefec93d9f73256acf9fb9edeebd6"}}, -{"id":"node-apidoc","key":"node-apidoc","value":{"rev":"6-cd26945e959403fcbee8ba542e14e667"}}, -{"id":"node-app-reloader","key":"node-app-reloader","value":{"rev":"5-e08cac7656afd6c124f8e2a9b9d6fdd3"}}, -{"id":"node-arse","key":"node-arse","value":{"rev":"9-b643c828541739a5fa972c801f81b212"}}, -{"id":"node-assert-extras","key":"node-assert-extras","value":{"rev":"3-3498e17b996ffc42a29d46c9699a3b52"}}, -{"id":"node-assert-lint-free","key":"node-assert-lint-free","value":{"rev":"5-852130ba6bafc703657b833343bc5646"}}, -{"id":"node-asset","key":"node-asset","value":{"rev":"18-f7cf59be8e0d015a43d05807a1ed9c0c"}}, -{"id":"node-awesm","key":"node-awesm","value":{"rev":"3-539c10145541ac5efc4dd295767b2abc"}}, -{"id":"node-backbone-couch","key":"node-backbone-couch","value":{"rev":"19-c4d8e93436b60e098c81cc0fe50f960c"}}, -{"id":"node-base64","key":"node-base64","value":{"rev":"11-da10a7157fd9e139b48bc8d9e44a98fa"}}, -{"id":"node-bj","key":"node-bj","value":{"rev":"3-5cd21fa259199870d1917574cd167396"}}, -{"id":"node-bosh-stress-tool","key":"node-bosh-stress-tool","value":{"rev":"3-36afc4b47e570964b7f8d705e1d47732"}}, -{"id":"node-brainfuck","key":"node-brainfuck","value":{"rev":"5-c7a6f703a97a409670005cab52664629"}}, -{"id":"node-build","key":"node-build","value":{"rev":"10-4f2f137fb4ef032f9dca3e3c64c15270"}}, -{"id":"node-casa","key":"node-casa","value":{"rev":"3-3f80a478aa47620bfc0c64cc6f140d98"}}, -{"id":"node-ccl","key":"node-ccl","value":{"rev":"13-00498b820cc4cadce8cc5b7b76e30b0f"}}, -{"id":"node-chain","key":"node-chain","value":{"rev":"6-b543f421ac63eeedc667b3395e7b8971"}}, -{"id":"node-child-process-manager","key":"node-child-process-manager","value":{"rev":"36-befb1a0eeac02ad400e2aaa8a076a053"}}, -{"id":"node-chirpstream","key":"node-chirpstream","value":{"rev":"10-f20e404f9ae5d43dfb6bcee15bd9affe"}}, -{"id":"node-clone","key":"node-clone","value":{"rev":"5-5ace5d51179d0e642bf9085b3bbf999b"}}, -{"id":"node-cloudwatch","key":"node-cloudwatch","value":{"rev":"3-7f9d1e075fcc3bd3e7849acd893371d5"}}, -{"id":"node-combine","key":"node-combine","value":{"rev":"3-51891c3c7769ff11a243c89c7e537907"}}, -{"id":"node-compat","key":"node-compat","value":{"rev":"9-24fce8e15eed3e193832b1c93a482d15"}}, -{"id":"node-config","key":"node-config","value":{"rev":"6-8821f6b46347e57258e62e1be841c186"}}, -{"id":"node-crocodoc","key":"node-crocodoc","value":{"rev":"5-ad4436f633f37fe3248dce93777fc26e"}}, -{"id":"node-csv","key":"node-csv","value":{"rev":"10-cd15d347b595f1d9d1fd30b483c52724"}}, -{"id":"node-date","key":"node-date","value":{"rev":"3-a5b41cab3247e12f2beaf1e0b1ffadfa"}}, -{"id":"node-dbi","key":"node-dbi","value":{"rev":"27-96e1df6fdefbae77bfa02eda64c3e3b9"}}, -{"id":"node-debug-proxy","key":"node-debug-proxy","value":{"rev":"9-c00a14832cdd5ee4d489eb41a3d0d621"}}, -{"id":"node-dep","key":"node-dep","value":{"rev":"15-378dedd3f0b3e54329c00c675b19401c"}}, -{"id":"node-dev","key":"node-dev","value":{"rev":"48-6a98f38078fe5678d6c2fb48aec3c1c3"}}, -{"id":"node-downloader","key":"node-downloader","value":{"rev":"3-a541126c56c48681571e5e998c481343"}}, -{"id":"node-evented","key":"node-evented","value":{"rev":"6-a6ce8ab39e01cc0262c80d4bf08fc333"}}, -{"id":"node-exception-notifier","key":"node-exception-notifier","value":{"rev":"3-cebc02c45dace4852f8032adaa4e3c9c"}}, -{"id":"node-expat","key":"node-expat","value":{"rev":"33-261d85273a0a551e7815f835a933d5eb"}}, -{"id":"node-expect","key":"node-expect","value":{"rev":"7-5ba4539adfd3ba95dab21bb5bc0a5193"}}, -{"id":"node-express-boilerplate","key":"node-express-boilerplate","value":{"rev":"3-972f51d1ff9493e48d7cf508461f1114"}}, -{"id":"node-extjs","key":"node-extjs","value":{"rev":"7-33143616b4590523b4e1549dd8ffa991"}}, -{"id":"node-extjs4","key":"node-extjs4","value":{"rev":"3-8e5033aed477629a6fb9812466a90cfd"}}, -{"id":"node-fakeweb","key":"node-fakeweb","value":{"rev":"5-f01377fa6d03461cbe77f41b73577cf4"}}, -{"id":"node-fb","key":"node-fb","value":{"rev":"3-bc5f301a60e475de7c614837d3f9f35a"}}, -{"id":"node-fb-signed-request","key":"node-fb-signed-request","value":{"rev":"3-33c8f043bb947b63a84089d633d68f8e"}}, -{"id":"node-fects","key":"node-fects","value":{"rev":"3-151b7b895b74b24a87792fac34735814"}}, -{"id":"node-ffi","key":"node-ffi","value":{"rev":"22-25cf229f0ad4102333b2b13e03054ac5"}}, -{"id":"node-filter","key":"node-filter","value":{"rev":"3-0e6a86b4abb65df3594e5c93ab04bd31"}}, -{"id":"node-foursquare","key":"node-foursquare","value":{"rev":"25-549bbb0c2b4f96b2c5e6a5f642e8481d"}}, -{"id":"node-fs","key":"node-fs","value":{"rev":"5-14050cbc3887141f6b0e1e7d62736a63"}}, -{"id":"node-fs-synchronize","key":"node-fs-synchronize","value":{"rev":"11-6341e79f3391a9e1daa651a5932c8795"}}, -{"id":"node-gd","key":"node-gd","value":{"rev":"11-2ede7f4af38f062b86cc32bb0125e1bf"}}, -{"id":"node-geocode","key":"node-geocode","value":{"rev":"6-505af45c7ce679ac6738b495cc6b03c2"}}, -{"id":"node-get","key":"node-get","value":{"rev":"9-906945005a594ea1f05d4ad23170a83f"}}, -{"id":"node-gettext","key":"node-gettext","value":{"rev":"5-532ea4b528108b4c8387ddfc8fa690b2"}}, -{"id":"node-gist","key":"node-gist","value":{"rev":"11-3495a499c9496d01235676f429660424"}}, -{"id":"node-glbse","key":"node-glbse","value":{"rev":"5-69a537189610c69cc549f415431b181a"}}, -{"id":"node-google-sql","key":"node-google-sql","value":{"rev":"7-bfe20d25a4423651ecdff3f5054a6946"}}, -{"id":"node-gravatar","key":"node-gravatar","value":{"rev":"6-8265fc1ad003fd8a7383244c92abb346"}}, -{"id":"node-handlersocket","key":"node-handlersocket","value":{"rev":"16-f1dc0246559748a842dd0e1919c569ae"}}, -{"id":"node-hdfs","key":"node-hdfs","value":{"rev":"3-d460fba8ff515660de34cb216223c569"}}, -{"id":"node-hipchat","key":"node-hipchat","value":{"rev":"3-9d16738bf70f9e37565727e671ffe551"}}, -{"id":"node-hive","key":"node-hive","value":{"rev":"31-5eef1fa77a39e4bdacd8fa85ec2ce698"}}, -{"id":"node-html-encoder","key":"node-html-encoder","value":{"rev":"3-75f92e741a3b15eb56e3c4513feaca6d"}}, -{"id":"node-i3","key":"node-i3","value":{"rev":"3-5c489f43aeb06054b02ad3706183599c"}}, -{"id":"node-indextank","key":"node-indextank","value":{"rev":"5-235a17fce46c73c8b5abc4cf5f964385"}}, -{"id":"node-inherit","key":"node-inherit","value":{"rev":"3-099c0acf9c889eea94faaf64067bfc52"}}, -{"id":"node-inspector","key":"node-inspector","value":{"rev":"34-ca9fa856cf32a737d1ecccb759aaf5e1"}}, -{"id":"node-int64","key":"node-int64","value":{"rev":"11-50b92b5b65adf17e673b4d15df643ed4"}}, -{"id":"node-ip-lib","key":"node-ip-lib","value":{"rev":"3-2fe72f7b78cbc1739c71c7cfaec9fbcd"}}, -{"id":"node-iplookup","key":"node-iplookup","value":{"rev":"10-ba8474624dd852a46303d32ff0556883"}}, -{"id":"node-jdownloader","key":"node-jdownloader","value":{"rev":"3-b015035cfb8540568da5deb55b35248c"}}, -{"id":"node-jslint-all","key":"node-jslint-all","value":{"rev":"5-582f4a31160d3700731fa39771702896"}}, -{"id":"node-jsonengine","key":"node-jsonengine","value":{"rev":"3-6e429c32e42b205f3ed1ea1f48d67cbc"}}, -{"id":"node-khtml","key":"node-khtml","value":{"rev":"39-db8e8eea569657fc7de6300172a6a8a7"}}, -{"id":"node-linkshare","key":"node-linkshare","value":{"rev":"35-acc18a5d584b828bb2bd4f32bbcde98c"}}, -{"id":"node-log","key":"node-log","value":{"rev":"17-79cecc66227b4fb3a2ae04b7dac17cc2"}}, -{"id":"node-logentries","key":"node-logentries","value":{"rev":"3-0f640d5ff489a6904f4a8c18fb5f7e9c"}}, -{"id":"node-logger","key":"node-logger","value":{"rev":"3-75084f98359586bdd254e57ea5915d37"}}, -{"id":"node-logging","key":"node-logging","value":{"rev":"15-af01bc2b6128150787c85c8df1dae642"}}, -{"id":"node-mailer","key":"node-mailer","value":{"rev":"5-5b88675f05efe2836126336c880bd841"}}, -{"id":"node-mailgun","key":"node-mailgun","value":{"rev":"5-4bcfb7bf5163748b87c1b9ed429ed178"}}, -{"id":"node-markdown","key":"node-markdown","value":{"rev":"6-67137da4014f22f656aaefd9dfa2801b"}}, -{"id":"node-mdbm","key":"node-mdbm","value":{"rev":"22-3006800b042cf7d4b0b391c278405143"}}, -{"id":"node-minify","key":"node-minify","value":{"rev":"13-e853813d4b6519b168965979b8ccccdd"}}, -{"id":"node-mug","key":"node-mug","value":{"rev":"3-f7567ffac536bfa7eb5a7e3da7a0efa0"}}, -{"id":"node-mvc","key":"node-mvc","value":{"rev":"3-74f7c07b2991fcddb27afd2889b6db4e"}}, -{"id":"node-mwire","key":"node-mwire","value":{"rev":"26-79d7982748f42b9e07ab293447b167ec"}}, -{"id":"node-mynix-feed","key":"node-mynix-feed","value":{"rev":"3-59d4a624b3831bbab6ee99be2f84e568"}}, -{"id":"node-nether","key":"node-nether","value":{"rev":"3-0fbefe710fe0d74262bfa25f6b4e1baf"}}, -{"id":"node-nude","key":"node-nude","value":{"rev":"3-600abb219646299ac602fa51fa260f37"}}, -{"id":"node-nxt","key":"node-nxt","value":{"rev":"3-8ce48601c2b0164e2b125259a0c97d45"}}, -{"id":"node-oauth","key":"node-oauth","value":{"rev":"3-aa6cd61f44d74118bafa5408900c4984"}}, -{"id":"node-opencalais","key":"node-opencalais","value":{"rev":"13-a3c0b882aca7207ce36f107e40a0ce50"}}, -{"id":"node-props","key":"node-props","value":{"rev":"7-e400cee08cc9abdc1f1ce4f262a04b05"}}, -{"id":"node-proxy","key":"node-proxy","value":{"rev":"20-ce722bf45c84a7d925b8b7433e786ed6"}}, -{"id":"node-pusher","key":"node-pusher","value":{"rev":"3-7cc7cd5bffaf3b11c44438611beeba98"}}, -{"id":"node-putio","key":"node-putio","value":{"rev":"3-8a1fc6362fdcf16217cdb6846e419b4c"}}, -{"id":"node-raphael","key":"node-raphael","value":{"rev":"25-e419d98a12ace18a40d94a9e8e32cdd4"}}, -{"id":"node-rapleaf","key":"node-rapleaf","value":{"rev":"11-c849c8c8635e4eb2f81bd7810b7693fd"}}, -{"id":"node-rats","key":"node-rats","value":{"rev":"3-dca544587f3121148fe02410032cf726"}}, -{"id":"node-rdf2json","key":"node-rdf2json","value":{"rev":"3-bde382dc2fcb40986c5ac41643d44543"}}, -{"id":"node-recurly","key":"node-recurly","value":{"rev":"11-79cab9ccee7c1ddb83791e8de41c72f5"}}, -{"id":"node-redis","key":"node-redis","value":{"rev":"13-12adf3a3e986675637fa47b176f527e3"}}, -{"id":"node-redis-mapper","key":"node-redis-mapper","value":{"rev":"5-53ba8f67cc82dbf1d127fc7359353f32"}}, -{"id":"node-redis-monitor","key":"node-redis-monitor","value":{"rev":"3-79bcba76241d7c7dbc4b18d90a9d59e3"}}, -{"id":"node-restclient","key":"node-restclient","value":{"rev":"6-5844eba19bc465a8f75b6e94c061350f"}}, -{"id":"node-restclient2","key":"node-restclient2","value":{"rev":"5-950de911f7bde7900dfe5b324f49818c"}}, -{"id":"node-runner","key":"node-runner","value":{"rev":"3-e9a9e6bd10d2ab1aed8b401b04fadc7b"}}, -{"id":"node-sc-setup","key":"node-sc-setup","value":{"rev":"3-e89c496e03c48d8574ccaf61c9ed4fca"}}, -{"id":"node-schedule","key":"node-schedule","value":{"rev":"9-ae12fa59226f1c9b7257b8a2d71373b4"}}, -{"id":"node-sdlmixer","key":"node-sdlmixer","value":{"rev":"8-489d85278d6564b6a4e94990edcb0527"}}, -{"id":"node-secure","key":"node-secure","value":{"rev":"3-73673522a4bb5f853d55e535f0934803"}}, -{"id":"node-sendgrid","key":"node-sendgrid","value":{"rev":"9-4662c31304ca4ee4e702bd3a54ea7824"}}, -{"id":"node-sizzle","key":"node-sizzle","value":{"rev":"6-c08c24d9d769d3716e5c4e3441740eb2"}}, -{"id":"node-soap-client","key":"node-soap-client","value":{"rev":"9-35ff34a4a5af569de6a2e89d1b35b69a"}}, -{"id":"node-spec","key":"node-spec","value":{"rev":"9-92e99ca74b9a09a8ae2eb7382ef511ef"}}, -{"id":"node-static","key":"node-static","value":{"rev":"10-11b0480fcd416db3d3d4041f43a55290"}}, -{"id":"node-static-maccman","key":"node-static-maccman","value":{"rev":"3-49e256728b14c85776b74f2bd912eb42"}}, -{"id":"node-statsd","key":"node-statsd","value":{"rev":"5-08d3e6b4b2ed1d0b7916e9952f55573c"}}, -{"id":"node-statsd-instrument","key":"node-statsd-instrument","value":{"rev":"3-c3cd3315e1edcc91096830392f439305"}}, -{"id":"node-std","key":"node-std","value":{"rev":"3-f99be0f03be4175d546823799bb590d3"}}, -{"id":"node-store","key":"node-store","value":{"rev":"3-7cb6bf13de9550b869c768f464fd0f65"}}, -{"id":"node-stringprep","key":"node-stringprep","value":{"rev":"13-9b08baa97042f71c5c8e9e2fdcc2c300"}}, -{"id":"node-synapse","key":"node-synapse","value":{"rev":"3-c46c47099eb2792f4a57fdfd789520ca"}}, -{"id":"node-syslog","key":"node-syslog","value":{"rev":"23-34f7df06ba88d9f897b7e00404db7187"}}, -{"id":"node-t","key":"node-t","value":{"rev":"3-042225eff3208ba9add61a9f79d90871"}}, -{"id":"node-taobao","key":"node-taobao","value":{"rev":"7-c988ace74806b2e2f55e162f54ba1a2c"}}, -{"id":"node-term-ui","key":"node-term-ui","value":{"rev":"5-210310014b19ce26c5e3e840a8a0549e"}}, -{"id":"node-tiny","key":"node-tiny","value":{"rev":"7-df05ab471f25ca4532d80c83106944d7"}}, -{"id":"node-tmpl","key":"node-tmpl","value":{"rev":"3-6fcfa960da8eb72a5e3087559d3fe206"}}, -{"id":"node-twilio","key":"node-twilio","value":{"rev":"11-af69e600109d38c77eadbcec4bee4782"}}, -{"id":"node-twitter-mailer","key":"node-twitter-mailer","value":{"rev":"7-f915b76d834cb162c91816abc30cee5f"}}, -{"id":"node-usb","key":"node-usb","value":{"rev":"3-0c3837307f86a80427800f1b45aa5862"}}, -{"id":"node-uuid","key":"node-uuid","value":{"rev":"6-642efa619ad8a6476a44a5c6158e7a36"}}, -{"id":"node-vapor.js","key":"node-vapor.js","value":{"rev":"3-d293284cc415b2906533e91db13ee748"}}, -{"id":"node-version","key":"node-version","value":{"rev":"3-433b1529a6aa3d619314e461e978d2b6"}}, -{"id":"node-webapp","key":"node-webapp","value":{"rev":"11-65411bfd8eaf19d3539238360d904d43"}}, -{"id":"node-wiki","key":"node-wiki","value":{"rev":"5-22b0177c9a5e4dc1f72d36bb83c746d0"}}, -{"id":"node-wkhtml","key":"node-wkhtml","value":{"rev":"5-a8fa203720442b443d558670c9750548"}}, -{"id":"node-xerces","key":"node-xerces","value":{"rev":"3-de6d82ec712af997b7aae451277667f0"}}, -{"id":"node-xml","key":"node-xml","value":{"rev":"3-e14a52dcd04302aea7dd6943cf6dd886"}}, -{"id":"node-xmpp","key":"node-xmpp","value":{"rev":"36-031eb5e830ed2e2027ee4ee7f861cf81"}}, -{"id":"node-xmpp-bosh","key":"node-xmpp-bosh","value":{"rev":"85-f7f8b699b6fda74fc27c621466915bd1"}}, -{"id":"node-xmpp-via-bosh","key":"node-xmpp-via-bosh","value":{"rev":"3-5f5fee9e42ae8ce8f42d55c31808c969"}}, -{"id":"node.io","key":"node.io","value":{"rev":"224-e99561d454a7676d10875e1b06ba44c7"}}, -{"id":"node.io-min","key":"node.io-min","value":{"rev":"3-e8389bdcfa55c68ae9698794d9089ce4"}}, -{"id":"node.isbn","key":"node.isbn","value":{"rev":"3-76aa84f3c49a54b6c901f440af35192d"}}, -{"id":"node.uptime","key":"node.uptime","value":{"rev":"5-cfc2c1c1460d000eab4e1a28506e6d29"}}, -{"id":"node3p","key":"node3p","value":{"rev":"14-b1931b8aa96227854d78965cc4301168"}}, -{"id":"node3p-web","key":"node3p-web","value":{"rev":"12-bc783ee1e493e80b7e7a3c2fce39f55e"}}, -{"id":"nodeBase","key":"nodeBase","value":{"rev":"39-4d9ae0f18e0bca7192901422d85e85c7"}}, -{"id":"nodeCgi","key":"nodeCgi","value":{"rev":"9-bb65e71ee63551e519f49434f2ae1cd7"}}, -{"id":"nodeDocs","key":"nodeDocs","value":{"rev":"3-0c6e714d3e6d5c2cc9482444680fb3ca"}}, -{"id":"nodePhpSessions","key":"nodePhpSessions","value":{"rev":"3-5063b38582deaca9cacdc029db97c2b1"}}, -{"id":"node_bsdiff","key":"node_bsdiff","value":{"rev":"5-e244ef36755a2b6534ce50fa1ee5ee6e"}}, -{"id":"node_hash","key":"node_hash","value":{"rev":"3-cdce2fcc2c18fcd25e16be8e52add891"}}, -{"id":"node_util","key":"node_util","value":{"rev":"3-cde723ee2311cf48f7cf0a3bc3484f9a"}}, -{"id":"node_xslt","key":"node_xslt","value":{"rev":"3-f12035155aee31d1749204fdca2aee10"}}, -{"id":"nodec","key":"nodec","value":{"rev":"3-dba2af2d5b98a71964abb4328512b9e1"}}, -{"id":"nodefm","key":"nodefm","value":{"rev":"3-c652a95d30318a371736515feab649f9"}}, -{"id":"nodegit","key":"nodegit","value":{"rev":"31-92a2cea0d1c92086c920bc007f5a3f16"}}, -{"id":"nodeib","key":"nodeib","value":{"rev":"3-e67d779007817597ca36e8b821f38e6a"}}, -{"id":"nodeinfo","key":"nodeinfo","value":{"rev":"53-61bf0f48662dc2e04cde38a2b897c211"}}, -{"id":"nodejitsu-client","key":"nodejitsu-client","value":{"rev":"3-4fa613f888ebe249aff7b03aa9b8d7ef"}}, -{"id":"nodejs-intro","key":"nodejs-intro","value":{"rev":"4-c75f03e80b597f734f4466e62ecebfeb"}}, -{"id":"nodejs-tvrage","key":"nodejs-tvrage","value":{"rev":"9-88bb3b5d23652ebdb7186a30bc3be43f"}}, -{"id":"nodejs.be-cli","key":"nodejs.be-cli","value":{"rev":"3-d8f23777f9b18101f2d2dc5aa618a703"}}, -{"id":"nodeler","key":"nodeler","value":{"rev":"9-00760d261ea75164a5709109011afb25"}}, -{"id":"nodelint","key":"nodelint","value":{"rev":"8-31502553d4bb099ba519fb331cccdd63"}}, -{"id":"nodeload","key":"nodeload","value":{"rev":"12-f02626475b59ebe67a864a114c99ff9b"}}, -{"id":"nodemachine","key":"nodemachine","value":{"rev":"8-5342324502e677e35aefef17dc08c8db"}}, -{"id":"nodemailer","key":"nodemailer","value":{"rev":"63-d39a5143b06fa79edcb81252d6329861"}}, -{"id":"nodemock","key":"nodemock","value":{"rev":"33-7095334209b39c8e1482374bee1b712a"}}, -{"id":"nodemon","key":"nodemon","value":{"rev":"42-4f40ba2299ef4ae613a384a48e4045fa"}}, -{"id":"nodepad","key":"nodepad","value":{"rev":"5-93718cc67e97c89f45b753c1caef07e4"}}, -{"id":"nodepal","key":"nodepal","value":{"rev":"5-e53372a5081b3753993ee98299ecd550"}}, -{"id":"nodepie","key":"nodepie","value":{"rev":"21-a44a6d3575758ed591e13831a5420758"}}, -{"id":"nodepress","key":"nodepress","value":{"rev":"3-f17616b9ae61e15d1d219cb87ac5a63a"}}, -{"id":"noderelict","key":"noderelict","value":{"rev":"23-0ca0997e3ef112e9393ae8ccef63f1ee"}}, -{"id":"noderpc","key":"noderpc","value":{"rev":"27-7efb6365916b403c3aa4e1c766de75a2"}}, -{"id":"nodespec","key":"nodespec","value":{"rev":"3-69f357577e52e9fd096ac88a1e7e3445"}}, -{"id":"nodespy","key":"nodespy","value":{"rev":"3-ad33e14db2bcaf61bf99d3e8915da5ee"}}, -{"id":"nodestalker","key":"nodestalker","value":{"rev":"5-080eba88a3625ecf7935ec5e9d2db6e9"}}, -{"id":"nodester-api","key":"nodester-api","value":{"rev":"39-52046dbcdf4447bbb85aecc92086ae1d"}}, -{"id":"nodester-cli","key":"nodester-cli","value":{"rev":"89-6de3d724a974c1dd3b632417f8b01267"}}, -{"id":"nodetk","key":"nodetk","value":{"rev":"11-265d267335e7603249e1af9441700f2f"}}, -{"id":"nodeunit","key":"nodeunit","value":{"rev":"40-d1cc6c06f878fb0b86779186314bc193"}}, -{"id":"nodeunit-coverage","key":"nodeunit-coverage","value":{"rev":"3-29853918351e75e3f6f93acd97e2942f"}}, -{"id":"nodeunit-dsl","key":"nodeunit-dsl","value":{"rev":"6-91be44077bc80c942f86f0ac28a69c5e"}}, -{"id":"nodevlc","key":"nodevlc","value":{"rev":"3-e151577d3e1ba2f58db465d94ebcb1c1"}}, -{"id":"nodevore","key":"nodevore","value":{"rev":"3-ac73b3bc33e2f934776dda359869ddcf"}}, -{"id":"nodewatch","key":"nodewatch","value":{"rev":"9-267bfe1324c51993865dc41b09aee6dc"}}, -{"id":"nodewii","key":"nodewii","value":{"rev":"9-716b3faa8957c1aea337540402ae7f43"}}, -{"id":"nodie","key":"nodie","value":{"rev":"3-cc29702a2e7e295cfe583a05fb77b530"}}, -{"id":"nodify","key":"nodify","value":{"rev":"10-87fadf6bf262882bd71ab7e759b29949"}}, -{"id":"nodrrr","key":"nodrrr","value":{"rev":"3-75937f4ffb722a67d6c5a67663366854"}}, -{"id":"nodules","key":"nodules","value":{"rev":"8-2c6ec430f26ff7ef171e80b7b5e990c2"}}, -{"id":"nodysentary","key":"nodysentary","value":{"rev":"3-7574fc8e12b1271c2eb1c66026f702cb"}}, -{"id":"nohm","key":"nohm","value":{"rev":"45-09dcf4df92734b3c51c8df3c3b374b0b"}}, -{"id":"noid","key":"noid","value":{"rev":"5-ac31e001806789e80a7ffc64f2914eb4"}}, -{"id":"nolife","key":"nolife","value":{"rev":"7-cfd4fe84b1062303cefb83167ea48bba"}}, -{"id":"nolog","key":"nolog","value":{"rev":"9-6e82819b801f5d7ec6773596d5d2efb2"}}, -{"id":"nomnom","key":"nomnom","value":{"rev":"34-bf66753d1d155820cfacfc7fa7a830c9"}}, -{"id":"nomplate","key":"nomplate","value":{"rev":"9-6ea21ee9568421a60cb80637c4c6cb48"}}, -{"id":"nonogo","key":"nonogo","value":{"rev":"5-8307413f9a3da913f9818c4f2d951519"}}, -{"id":"noode","key":"noode","value":{"rev":"7-454df50a7cbd03c46a9951cb1ddbe1c6"}}, -{"id":"noodle","key":"noodle","value":{"rev":"7-163745527770de0de8e7e9d59fc3888c"}}, -{"id":"noop","key":"noop","value":{"rev":"5-ed9fd66573ed1186e66b4c2bc16192cb"}}, -{"id":"nope","key":"nope","value":{"rev":"3-7088ffb62b8e06261527cbfa69cb94c5"}}, -{"id":"nopro","key":"nopro","value":{"rev":"11-6c4aeafe6329821b2259ef11414481dd"}}, -{"id":"nopt","key":"nopt","value":{"rev":"23-cce441940b6f129cab94a359ddb8b3e4"}}, -{"id":"norm","key":"norm","value":{"rev":"9-2bf26c3803fdc3bb6319e490cae3b625"}}, -{"id":"norq","key":"norq","value":{"rev":"3-b1a80ad1aa4ccc493ac25da22b0f0697"}}, -{"id":"norris","key":"norris","value":{"rev":"3-a341286d9e83fa392c1ce6b764d0aace"}}, -{"id":"norris-ioc","key":"norris-ioc","value":{"rev":"15-d022f159229d89ce60fc2a15d71eac59"}}, -{"id":"norris-tester","key":"norris-tester","value":{"rev":"3-fc2f34c9373bbdf5a1cd9cfbaff21f83"}}, -{"id":"northwatcher","key":"northwatcher","value":{"rev":"13-edab28a123f0100e12f96c9828428a8a"}}, -{"id":"nosey","key":"nosey","value":{"rev":"4-10a22f27dd9f2a40acf035a7d250c661"}}, -{"id":"nosql-thin","key":"nosql-thin","value":{"rev":"6-604169cacf303b5278064f68b884090b"}}, -{"id":"notch","key":"notch","value":{"rev":"3-5b720089f0f9cfdbbbea8677216eeee5"}}, -{"id":"notes","key":"notes","value":{"rev":"3-5dfbd6ec33c69c0f1b619dd65d9e7a56"}}, -{"id":"nothing","key":"nothing","value":{"rev":"3-8b44e10efd7d6504755c0c4bd1043814"}}, -{"id":"notifications","key":"notifications","value":{"rev":"3-a68448bca7ea2d3d3ce43e4d03cd76c6"}}, -{"id":"notifo","key":"notifo","value":{"rev":"8-0bc13ea6135adfa80c5fac497a2ddeda"}}, -{"id":"notify","key":"notify","value":{"rev":"3-da00942576bcb5fab594186f80d4575a"}}, -{"id":"notify-send","key":"notify-send","value":{"rev":"7-89f5c6bc656d51577e3997b9f90d0454"}}, -{"id":"nova","key":"nova","value":{"rev":"3-4e136f35b7d5b85816c17496c6c0e382"}}, -{"id":"now","key":"now","value":{"rev":"84-dbfde18b3f6fe79dd3637b6da34b78cf"}}, -{"id":"now-bal","key":"now-bal","value":{"rev":"3-c769bcdd45a93095f68c2de54f35543f"}}, -{"id":"nowpad","key":"nowpad","value":{"rev":"51-8d90c49031f79a9d31eb4ed6f39609b6"}}, -{"id":"nowww","key":"nowww","value":{"rev":"3-541994af2e579b376d2037f4e34f31d8"}}, -{"id":"noxmox","key":"noxmox","value":{"rev":"9-4ac8b1529dced329cac0976b9ca9eed0"}}, -{"id":"nozzle","key":"nozzle","value":{"rev":"23-e60444326d11a5b57c208de548c325e8"}}, -{"id":"npm","key":"npm","value":{"rev":"665-71d13d024c846b2ee85ed054fcfcb242"}}, -{"id":"npm-deploy","key":"npm-deploy","value":{"rev":"23-751e9d3c2edac0fd9916b0e886414ef2"}}, -{"id":"npm-dev-install","key":"npm-dev-install","value":{"rev":"3-7a08e11a59758329ba8dc4e781ea9993"}}, -{"id":"npm-docsite","key":"npm-docsite","value":{"rev":"3-5ed4f1ffea02487ab9ea24cfa0196f76"}}, -{"id":"npm-github-service","key":"npm-github-service","value":{"rev":"8-6891bc055b499e088fc79a7f94b6a4ec"}}, -{"id":"npm-intro-slides","key":"npm-intro-slides","value":{"rev":"8-e95f28475662cb8f70f4cb48baaa9d27"}}, -{"id":"npm-monitor","key":"npm-monitor","value":{"rev":"7-4e3209ea893fe37c0e516fe21de2d8ad"}}, -{"id":"npm-remapper","key":"npm-remapper","value":{"rev":"3-69163475ee93f32faac3f934e772b6c7"}}, -{"id":"npm-tweets","key":"npm-tweets","value":{"rev":"9-86064412a8aa02d813b20d2e49d78d84"}}, -{"id":"npm-wrapper","key":"npm-wrapper","value":{"rev":"3-59c4d372b84f6e91dbe48a220511dfd5"}}, -{"id":"npm2debian","key":"npm2debian","value":{"rev":"3-3cf2f471f3bfbc613176c7c780a6aad6"}}, -{"id":"npmcount","key":"npmcount","value":{"rev":"5-59c55b09d9c2cc7da217cab3b0ea642c"}}, -{"id":"npmdep","key":"npmdep","value":{"rev":"9-78184ad3b841e5c91bbfa29ff722778a"}}, -{"id":"npmtop","key":"npmtop","value":{"rev":"19-2754af894829f22d6edb3a17a64cdf1e"}}, -{"id":"nquery","key":"nquery","value":{"rev":"9-461fb0c9bcc3c15e0696dc2e99807c98"}}, -{"id":"nrecipe","key":"nrecipe","value":{"rev":"15-a96b6b0134a7625eb4eb236b4bf3fbf3"}}, -{"id":"nserver","key":"nserver","value":{"rev":"5-ea895373c340dd8d9119f3f549990048"}}, -{"id":"nserver-util","key":"nserver-util","value":{"rev":"5-5e14eb0bc9f7ab0eac04c5699c6bb328"}}, -{"id":"nssocket","key":"nssocket","value":{"rev":"51-6aac1d5dd0aa7629b3619b3085d63c04"}}, -{"id":"nstore","key":"nstore","value":{"rev":"28-6e2639829539b7315040487dfa5c79af"}}, -{"id":"nstore-cache","key":"nstore-cache","value":{"rev":"3-453ed78dcbe68b31ff675f4d94b47c4a"}}, -{"id":"nstore-query","key":"nstore-query","value":{"rev":"3-39f46992dd278824db641a37ec5546f5"}}, -{"id":"ntodo","key":"ntodo","value":{"rev":"7-e214da8bbed2d3e40bdaec77d7a49831"}}, -{"id":"ntp","key":"ntp","value":{"rev":"5-5ee2b25e8f3bca06d1cc4ce3b25cac42"}}, -{"id":"nts","key":"nts","value":{"rev":"7-ecaf47f8af1f77de791d1d1fa9bab88e"}}, -{"id":"nttpd","key":"nttpd","value":{"rev":"21-cda7aa0f1db126428f6ca01d44b4d209"}}, -{"id":"ntwitter","key":"ntwitter","value":{"rev":"11-732c6f34137c942bc98967170b2f83fc"}}, -{"id":"nub","key":"nub","value":{"rev":"3-932ecf56889fa43584687dbb2cf4aa91"}}, -{"id":"nubnub","key":"nubnub","value":{"rev":"6-93a5267209e1aa869521a5952cbb1828"}}, -{"id":"null","key":"null","value":{"rev":"3-ae8247cfa9553d23a229993cfc8436c5"}}, -{"id":"numb","key":"numb","value":{"rev":"5-594cd9e8e8e4262ddb3ddd80e8084b62"}}, -{"id":"nun","key":"nun","value":{"rev":"8-3bd8b37ed85c1a5da211bd0d5766848e"}}, -{"id":"nunz","key":"nunz","value":{"rev":"3-040f033943158be495f6b0da1a0c0344"}}, -{"id":"nurl","key":"nurl","value":{"rev":"11-6c4ee6fc5c5119c56f2fd8ad8a0cb928"}}, -{"id":"nutil","key":"nutil","value":{"rev":"3-7785a1d4651dcfe78c874848f41d1348"}}, -{"id":"nutils","key":"nutils","value":{"rev":"13-889624db0c155fc2f0b501bba47e55ec"}}, -{"id":"nuvem","key":"nuvem","value":{"rev":"23-054b9b1240f4741f561ef0bb3197bdf8"}}, -{"id":"nvm","key":"nvm","value":{"rev":"28-251b7eb3429a00099b37810d05accd47"}}, -{"id":"nwm","key":"nwm","value":{"rev":"3-fe9274106aac9e67eea734159477acaf"}}, -{"id":"nx","key":"nx","value":{"rev":"55-7ad32fcb34ec25f841ddd0e5857375c7"}}, -{"id":"nx-core","key":"nx-core","value":{"rev":"33-a7bc62348591bae89fff82057bede1ab"}}, -{"id":"nx-daemon","key":"nx-daemon","value":{"rev":"3-7b86a87654c9e32746a4d36d7c527182"}}, -{"id":"nyaatorrents","key":"nyaatorrents","value":{"rev":"5-8600707a1e84f617bd5468b5c9179202"}}, -{"id":"nyala","key":"nyala","value":{"rev":"17-23c908297a37c47f9f09977f4cf101ff"}}, -{"id":"nyam","key":"nyam","value":{"rev":"17-697b5f17fe67630bc9494184146c12f1"}}, -{"id":"nyancat","key":"nyancat","value":{"rev":"13-84c18d007db41b40e9145bdc049b0a00"}}, -{"id":"nymph","key":"nymph","value":{"rev":"5-3a5d7a75d32f7a71bf4ec131f71484d8"}}, -{"id":"o3-xml","key":"o3-xml","value":{"rev":"3-cc4df881333805600467563f80b5216c"}}, -{"id":"oahu","key":"oahu","value":{"rev":"3-e789fc2098292518cb33606c73bfeca4"}}, -{"id":"oauth","key":"oauth","value":{"rev":"38-36b99063db7dc302b70d932e9bbafc24"}}, -{"id":"oauth-client","key":"oauth-client","value":{"rev":"12-ae097c9580ddcd5ca938b169486a63c6"}}, -{"id":"oauth-server","key":"oauth-server","value":{"rev":"7-ea931e31eaffaa843be61ffc89f29da7"}}, -{"id":"oauth2","key":"oauth2","value":{"rev":"3-4fce73fdc95580f397afeaf1bbd596bb"}}, -{"id":"oauth2-client","key":"oauth2-client","value":{"rev":"7-b5bd019159112384abc2087b2f8cb4f7"}}, -{"id":"oauth2-provider","key":"oauth2-provider","value":{"rev":"3-acd8f23b8c1c47b19838424b64618c70"}}, -{"id":"oauth2-server","key":"oauth2-server","value":{"rev":"11-316baa7e754053d0153086d0748b07c5"}}, -{"id":"obj_diff","key":"obj_diff","value":{"rev":"3-9289e14caaec4bb6aa64aa1be547db3b"}}, -{"id":"object-additions","key":"object-additions","value":{"rev":"3-11f03ae5afe00ad2be034fb313ce71a9"}}, -{"id":"object-proxy","key":"object-proxy","value":{"rev":"3-4d531308fc97bac6f6f9acd1e8f5b53a"}}, -{"id":"object-sync","key":"object-sync","value":{"rev":"5-6628fff49d65c96edc9d7a2e13db8d6d"}}, -{"id":"observer","key":"observer","value":{"rev":"3-a48052671a59b1c7874b4462e375664d"}}, -{"id":"octo.io","key":"octo.io","value":{"rev":"7-5692104396299695416ecb8548e53541"}}, -{"id":"octopus","key":"octopus","value":{"rev":"3-0a286abf59ba7232210e24a371902e7b"}}, -{"id":"odbc","key":"odbc","value":{"rev":"3-8550f0b183b229e41f3cb947bad9b059"}}, -{"id":"odot","key":"odot","value":{"rev":"13-3954b69c1a560a71fe58ab0c5c1072ba"}}, -{"id":"offliner","key":"offliner","value":{"rev":"3-9b58041cbd7b0365e04fec61c192c9b2"}}, -{"id":"ofxer","key":"ofxer","value":{"rev":"11-f8a79e1f27c92368ca1198ad37fbe83e"}}, -{"id":"ogre","key":"ogre","value":{"rev":"35-ea9c78c1d5b1761f059bb97ea568b23d"}}, -{"id":"oi.tekcos","key":"oi.tekcos","value":{"rev":"5-fdca9adb54acea3f91567082b107dde9"}}, -{"id":"oktest","key":"oktest","value":{"rev":"3-3b40312743a3eb1d8541ceee3ecfeace"}}, -{"id":"omcc","key":"omcc","value":{"rev":"3-19718e77bf82945c3ca7a3cdfb91188c"}}, -{"id":"omegle","key":"omegle","value":{"rev":"3-507ba8a51afbe2ff078e3e96712b7286"}}, -{"id":"ometa","key":"ometa","value":{"rev":"10-457fa17de89e1012ce812af3a53f4035"}}, -{"id":"ometa-highlighter","key":"ometa-highlighter","value":{"rev":"21-d18470d6d9a93bc7383c7d8ace22ad1d"}}, -{"id":"ometajs","key":"ometajs","value":{"rev":"20-c7e8c32926f2523e40e4a7ba2297192c"}}, -{"id":"onion","key":"onion","value":{"rev":"3-b46c000c8ff0b06f5f0028d268bc5c94"}}, -{"id":"onvalid","key":"onvalid","value":{"rev":"3-090bc1cf1418545b84db0fceb0846293"}}, -{"id":"oo","key":"oo","value":{"rev":"7-2297a18cdbcf29ad4867a2159912c04e"}}, -{"id":"oop","key":"oop","value":{"rev":"7-45fab8bae343e805d0c1863149dc20df"}}, -{"id":"op","key":"op","value":{"rev":"13-4efb059757caaecc18d5110b44266b35"}}, -{"id":"open-uri","key":"open-uri","value":{"rev":"21-023a00f26ecd89e278136fbb417ae9c3"}}, -{"id":"open.core","key":"open.core","value":{"rev":"35-f578db4e41dd4ae9128e3be574cf7b14"}}, -{"id":"open311","key":"open311","value":{"rev":"13-bb023a45d3c3988022d2fef809de8d98"}}, -{"id":"openid","key":"openid","value":{"rev":"29-b3c8a0e76d99ddb80c98d2aad5586771"}}, -{"id":"openlayers","key":"openlayers","value":{"rev":"3-602c34468c9be326e95be327b58d599b"}}, -{"id":"opentok","key":"opentok","value":{"rev":"5-5f4749f1763d45141d0272c1dbe6249a"}}, -{"id":"opentsdb-dashboard","key":"opentsdb-dashboard","value":{"rev":"3-2e0c5ccf3c9cfce17c20370c93283707"}}, -{"id":"opower-jobs","key":"opower-jobs","value":{"rev":"16-1602139f92e58d88178f21f1b3e0939f"}}, -{"id":"optimist","key":"optimist","value":{"rev":"64-ca3e5085acf135169d79949c25d84690"}}, -{"id":"optparse","key":"optparse","value":{"rev":"6-0200c34395f982ae3b80f4d18cb14483"}}, -{"id":"opts","key":"opts","value":{"rev":"8-ce2a0e31de55a1e02d5bbff66c4e8794"}}, -{"id":"orchestra","key":"orchestra","value":{"rev":"9-52ca98cddb51a2a43ec02338192c44fc"}}, -{"id":"orchid","key":"orchid","value":{"rev":"49-af9635443671ed769e4efa691b8ca84a"}}, -{"id":"orderly","key":"orderly","value":{"rev":"3-9ccc42d45b64278c9ffb1e64fc4f0d62"}}, -{"id":"orgsync.live","key":"orgsync.live","value":{"rev":"3-4dffc8ac43931364f59b9cb534acbaef"}}, -{"id":"orm","key":"orm","value":{"rev":"21-f3e7d89239364559d306110580bbb08f"}}, -{"id":"ormnomnom","key":"ormnomnom","value":{"rev":"15-0aacfbb5b7b580d76e9ecf5214a1d5ed"}}, -{"id":"orona","key":"orona","value":{"rev":"8-62d4ba1bf49098a140a2b85f80ebb103"}}, -{"id":"osc4node","key":"osc4node","value":{"rev":"3-0910613e78065f78b61142b35986e8b3"}}, -{"id":"oscar","key":"oscar","value":{"rev":"3-f5d2d39a67c67441bc2135cdaf2b47f8"}}, -{"id":"osrandom","key":"osrandom","value":{"rev":"3-026016691a5ad068543503e5e7ce6a84"}}, -{"id":"ossp-uuid","key":"ossp-uuid","value":{"rev":"10-8b7e1fba847d7cc9aa4f4c8813ebe6aa"}}, -{"id":"ostatus","key":"ostatus","value":{"rev":"3-76e0ec8c61c6df15c964197b722e24e7"}}, -{"id":"ostrich","key":"ostrich","value":{"rev":"3-637e0821e5ccfd0f6b1261b22c168c8d"}}, -{"id":"otk","key":"otk","value":{"rev":"5-2dc24e159cc618f43e573561286c4dcd"}}, -{"id":"ourl","key":"ourl","value":{"rev":"5-a3945e59e33faac96c75b508ef7fa1fb"}}, -{"id":"oursql","key":"oursql","value":{"rev":"21-bc53ab462155fa0aedbe605255fb9988"}}, -{"id":"out","key":"out","value":{"rev":"5-eb261f940b6382e2689210a58bc1b440"}}, -{"id":"overload","key":"overload","value":{"rev":"10-b88919e5654bef4922029afad4f1d519"}}, -{"id":"ox","key":"ox","value":{"rev":"3-0ca445370b4f76a93f2181ad113956d9"}}, -{"id":"pachube","key":"pachube","value":{"rev":"10-386ac6be925bab307b5d545516fb18ef"}}, -{"id":"pachube-stream","key":"pachube-stream","value":{"rev":"13-176dadcc5c516420fb3feb1f964739e0"}}, -{"id":"pack","key":"pack","value":{"rev":"29-8f8c511d95d1fb322c1a6d7965ef8f29"}}, -{"id":"packagebohrer","key":"packagebohrer","value":{"rev":"3-507358253a945a74c49cc169ad0bf5a2"}}, -{"id":"packer","key":"packer","value":{"rev":"9-23410d893d47418731e236cfcfcfbf03"}}, -{"id":"packet","key":"packet","value":{"rev":"8-1b366f97d599c455dcbbe4339da7cf9e"}}, -{"id":"pacote-sam-egenial","key":"pacote-sam-egenial","value":{"rev":"3-b967db1b9fceb9a937f3520efd89f479"}}, -{"id":"pacoteegenial","key":"pacoteegenial","value":{"rev":"3-9cfe8518b885bfd9a44ed38814f7d623"}}, -{"id":"pact","key":"pact","value":{"rev":"7-82996c1a0c8e9a5e9df959d4ad37085e"}}, -{"id":"pad","key":"pad","value":{"rev":"3-eef6147f09b662cff95c946f2b065da5"}}, -{"id":"paddle","key":"paddle","value":{"rev":"3-fedd0156b9a0dadb5e9b0f1cfab508fd"}}, -{"id":"padlock","key":"padlock","value":{"rev":"9-3a9e378fbe8e3817da7999f675af227e"}}, -{"id":"pagen","key":"pagen","value":{"rev":"9-9aac56724039c38dcdf7f6d5cbb4911c"}}, -{"id":"paginate-js","key":"paginate-js","value":{"rev":"5-995269155152db396662c59b67e9e93d"}}, -{"id":"pairtree","key":"pairtree","value":{"rev":"3-0361529e6c91271e2a61f3d7fd44366e"}}, -{"id":"palsu-app","key":"palsu-app","value":{"rev":"3-73f1fd9ae35e3769efc9c1aa25ec6da7"}}, -{"id":"pam","key":"pam","value":{"rev":"3-77b5bd15962e1c8be1980b33fd3b9737"}}, -{"id":"panache","key":"panache","value":{"rev":"25-749d2034f7f9179c2266cf896bb4abb0"}}, -{"id":"panic","key":"panic","value":{"rev":"7-068b22be54ca8ae7b03eb153c2ea849a"}}, -{"id":"pantry","key":"pantry","value":{"rev":"33-3896f0fc165092f6cabb2949be3952c4"}}, -{"id":"paper-keys","key":"paper-keys","value":{"rev":"3-729378943040ae01d59f07bb536309b7"}}, -{"id":"paperboy","key":"paperboy","value":{"rev":"8-db2d51c2793b4ffc82a1ae928c813aae"}}, -{"id":"paperserve","key":"paperserve","value":{"rev":"6-8509fb68217199a3eb74f223b1e2bee5"}}, -{"id":"parall","key":"parall","value":{"rev":"5-279d7105a425e136f6101250e8f81a14"}}, -{"id":"parallel","key":"parallel","value":{"rev":"14-f1294b3b840cfb26095107110b6720ec"}}, -{"id":"paramon","key":"paramon","value":{"rev":"3-37e599e924beb509c894c992cf72791b"}}, -{"id":"parannus","key":"parannus","value":{"rev":"7-7541f1ed13553261330b9e1c4706f112"}}, -{"id":"parasite","key":"parasite","value":{"rev":"13-83c26181bb92cddb8ff76bc154a50210"}}, -{"id":"parrot","key":"parrot","value":{"rev":"3-527d1cb4b5be0e252dc92a087d380f17"}}, -{"id":"parseUri","key":"parseUri","value":{"rev":"3-3b60b1fd6d8109279b5d0cfbdb89b343"}}, -{"id":"parseopt","key":"parseopt","value":{"rev":"10-065f1acaf02c94f0684f75fefc2fd1ec"}}, -{"id":"parser","key":"parser","value":{"rev":"5-f661f0b7ede9b6d3e0de259ed20759b1"}}, -{"id":"parser_email","key":"parser_email","value":{"rev":"12-63333860c62f2a9c9d6b0b7549bf1cdc"}}, -{"id":"parstream","key":"parstream","value":{"rev":"3-ef7e8ffc8ce1e7d951e37f85bfd445ab"}}, -{"id":"parted","key":"parted","value":{"rev":"9-250e4524994036bc92915b6760d62d8a"}}, -{"id":"partial","key":"partial","value":{"rev":"7-208411e6191275a4193755ee86834716"}}, -{"id":"party","key":"party","value":{"rev":"5-9337d8dc5e163f0300394f533ab1ecdf"}}, -{"id":"pashua","key":"pashua","value":{"rev":"3-b752778010f4e20f662a3d8f0f57b18b"}}, -{"id":"pass","key":"pass","value":{"rev":"3-66a2d55d93eae8535451f12965578db8"}}, -{"id":"passthru","key":"passthru","value":{"rev":"9-3c8f0b20f1a16976f3645a6f7411b56a"}}, -{"id":"passwd","key":"passwd","value":{"rev":"19-44ac384382a042faaa1f3b111786c831"}}, -{"id":"password","key":"password","value":{"rev":"9-0793f6a8d09076f25cde7c9e528eddec"}}, -{"id":"password-hash","key":"password-hash","value":{"rev":"9-590c62e275ad577c6f8ddbf5ba4579cc"}}, -{"id":"path","key":"path","value":{"rev":"3-3ec064cf3f3a85cb59528654c5bd938f"}}, -{"id":"pathjs","key":"pathjs","value":{"rev":"5-d5e1b1a63e711cae3ac79a3b1033b609"}}, -{"id":"pathname","key":"pathname","value":{"rev":"9-16f2c1473454900ce18a217b2ea52c57"}}, -{"id":"paths","key":"paths","value":{"rev":"3-fa47b7c1d533a7d9f4bbaffc5fb89905"}}, -{"id":"patr","key":"patr","value":{"rev":"7-7bcd37586389178b9f23d33c1d7a0292"}}, -{"id":"pattern","key":"pattern","value":{"rev":"36-3ded826185c384af535dcd428af3f626"}}, -{"id":"payment-paypal-payflowpro","key":"payment-paypal-payflowpro","value":{"rev":"14-d8814a1d8bba57a6ecf8027064adc7ad"}}, -{"id":"paynode","key":"paynode","value":{"rev":"16-16084e61db66ac18fdbf95a51d31c09a"}}, -{"id":"payos","key":"payos","value":{"rev":"3-373695bd80c454b32b83a5eba6044261"}}, -{"id":"paypal-ipn","key":"paypal-ipn","value":{"rev":"5-ef32291f9f8371b20509db3acee722f6"}}, -{"id":"pcap","key":"pcap","value":{"rev":"46-8ae9e919221102581d6bb848dc67b84b"}}, -{"id":"pd","key":"pd","value":{"rev":"7-82146739c4c0eb4e49e40aa80a29cc0a"}}, -{"id":"pdf","key":"pdf","value":{"rev":"6-5c6b6a133e1b3ce894ebb1a49090216c"}}, -{"id":"pdfcrowd","key":"pdfcrowd","value":{"rev":"5-026b4611b50374487bfd64fd3e0d562c"}}, -{"id":"pdfkit","key":"pdfkit","value":{"rev":"13-2fd34c03225a87dfd8057c85a83f3c50"}}, -{"id":"pdflatex","key":"pdflatex","value":{"rev":"3-bbbf61f09ebe4c49ca0aff8019611660"}}, -{"id":"pdl","key":"pdl","value":{"rev":"3-4c41bf12e901ee15bdca468db8c89102"}}, -{"id":"peanut","key":"peanut","value":{"rev":"55-b797121dbbcba1219934284ef56abb8a"}}, -{"id":"pebble","key":"pebble","value":{"rev":"21-3cd08362123260a2e96d96d80e723805"}}, -{"id":"pecode","key":"pecode","value":{"rev":"3-611f5e8c61bbf4467b84da954ebdd521"}}, -{"id":"pegjs","key":"pegjs","value":{"rev":"11-091040d16433014d1da895e32ac0f6a9"}}, -{"id":"per-second","key":"per-second","value":{"rev":"5-e1593b3f7008ab5e1c3cae86f39ba3f3"}}, -{"id":"permafrost","key":"permafrost","value":{"rev":"9-494cbc9a2f43a60b57f23c5f5b12270d"}}, -{"id":"perry","key":"perry","value":{"rev":"41-15aed7a778fc729ad62fdfb231c50774"}}, -{"id":"persistencejs","key":"persistencejs","value":{"rev":"20-2585af3f15f0a4a7395e937237124596"}}, -{"id":"pg","key":"pg","value":{"rev":"142-48de452fb8a84022ed7cae8ec2ebdaf6"}}, -{"id":"phonetap","key":"phonetap","value":{"rev":"7-2cc7d3c2a09518ad9b0fe816c6a99125"}}, -{"id":"php-autotest","key":"php-autotest","value":{"rev":"3-04470b38b259187729af574dd3dc1f97"}}, -{"id":"phpass","key":"phpass","value":{"rev":"3-66f4bec659bf45b312022bb047b18696"}}, -{"id":"piano","key":"piano","value":{"rev":"3-0bab6b5409e4305c87a775e96a2b7ad3"}}, -{"id":"picard","key":"picard","value":{"rev":"5-7676e6ad6d5154fdc016b001465891f3"}}, -{"id":"picardForTynt","key":"picardForTynt","value":{"rev":"3-09d205b790bd5022b69ec4ad54bad770"}}, -{"id":"pid","key":"pid","value":{"rev":"3-0ba7439d599b9d613461794c3892d479"}}, -{"id":"pieshop","key":"pieshop","value":{"rev":"12-7851afe1bbc20de5d054fe93b071f849"}}, -{"id":"pig","key":"pig","value":{"rev":"3-8e6968a7b64635fed1bad12c39d7a46a"}}, -{"id":"pigeons","key":"pigeons","value":{"rev":"53-8df70420d3c845cf0159b3f25d0aab90"}}, -{"id":"piles","key":"piles","value":{"rev":"3-140cb1e83b5a939ecd429b09886132ef"}}, -{"id":"pillar","key":"pillar","value":{"rev":"6-83c81550187f6d00e11dd9955c1c94b7"}}, -{"id":"pilot","key":"pilot","value":{"rev":"3-073ed1a083cbd4c2aa2561f19e5935ea"}}, -{"id":"pinboard","key":"pinboard","value":{"rev":"3-1020cab02a1183acdf82e1f7620dc1e0"}}, -{"id":"pinf-loader-js","key":"pinf-loader-js","value":{"rev":"5-709ba9c86fb4de906bd7bbca53771f0f"}}, -{"id":"pinf-loader-js-demos-npmpackage","key":"pinf-loader-js-demos-npmpackage","value":{"rev":"3-860569d98c83e59185cff356e56b10a6"}}, -{"id":"pingback","key":"pingback","value":{"rev":"5-5d0a05d65a14f6837b0deae16c550bec"}}, -{"id":"pingdom","key":"pingdom","value":{"rev":"11-f299d6e99122a9fa1497bfd166dadd02"}}, -{"id":"pintpay","key":"pintpay","value":{"rev":"3-eba9c4059283adec6b1ab017284c1f17"}}, -{"id":"pipe","key":"pipe","value":{"rev":"5-d202bf317c10a52ac817b5c1a4ce4c88"}}, -{"id":"pipe_utils","key":"pipe_utils","value":{"rev":"13-521857c99eb76bba849a22240308e584"}}, -{"id":"pipegram","key":"pipegram","value":{"rev":"3-1449333c81dd658d5de9eebf36c07709"}}, -{"id":"pipeline-surveyor","key":"pipeline-surveyor","value":{"rev":"11-464db89b17e7b44800088ec4a263d92e"}}, -{"id":"pipes","key":"pipes","value":{"rev":"99-8320636ff840a61d82d9c257a2e0ed48"}}, -{"id":"pipes-cellar","key":"pipes-cellar","value":{"rev":"27-e035e58a3d82e50842d766bb97ea3ed9"}}, -{"id":"pipes-cohort","key":"pipes-cohort","value":{"rev":"9-88fc0971e01516873396e44974874903"}}, -{"id":"piton-entity","key":"piton-entity","value":{"rev":"31-86254212066019f09d67dfd58524bd75"}}, -{"id":"piton-http-utils","key":"piton-http-utils","value":{"rev":"3-6cf6aa0c655ff6118d53e62e3b970745"}}, -{"id":"piton-mixin","key":"piton-mixin","value":{"rev":"3-7b7737004e53e04f7f95ba5850eb5e70"}}, -{"id":"piton-pipe","key":"piton-pipe","value":{"rev":"3-8d7df4e53f620ef2f24e9fc8b24f0238"}}, -{"id":"piton-simplate","key":"piton-simplate","value":{"rev":"3-9ac00835d3de59d535cdd2347011cdc9"}}, -{"id":"piton-string-utils","key":"piton-string-utils","value":{"rev":"3-ecab73993d764dfb378161ea730dbbd5"}}, -{"id":"piton-validity","key":"piton-validity","value":{"rev":"13-1766651d69e3e075bf2c66b174b66026"}}, -{"id":"pixel-ping","key":"pixel-ping","value":{"rev":"11-38d717c927e13306e8ff9032785b50f2"}}, -{"id":"pixelcloud","key":"pixelcloud","value":{"rev":"7-0897d734157b52dece8f86cde7be19d4"}}, -{"id":"pixiedust","key":"pixiedust","value":{"rev":"3-6b932dee4b6feeed2f797de5d0066f8a"}}, -{"id":"pkginfo","key":"pkginfo","value":{"rev":"13-3ee42503d6672812960a965d4f3a1bc2"}}, -{"id":"pksqlite","key":"pksqlite","value":{"rev":"13-095e7d7d0258b71491c39d0e8c4f19be"}}, -{"id":"plants.js","key":"plants.js","value":{"rev":"3-e3ef3a16f637787e84c100a9b9ec3b08"}}, -{"id":"plate","key":"plate","value":{"rev":"20-92ba0729b2edc931f28870fe7f2ca95a"}}, -{"id":"platform","key":"platform","value":{"rev":"4-be465a1d21be066c96e30a42b8602177"}}, -{"id":"platformjs","key":"platformjs","value":{"rev":"35-5c510fa0c90492fd1d0f0fc078460018"}}, -{"id":"platoon","key":"platoon","value":{"rev":"28-e0e0c5f852eadacac5a652860167aa11"}}, -{"id":"play","key":"play","value":{"rev":"5-17f7cf7cf5d1c21c7392f3c43473098d"}}, -{"id":"plist","key":"plist","value":{"rev":"10-2a23864923aeed93fb8e25c4b5b2e97e"}}, -{"id":"png","key":"png","value":{"rev":"14-9cc7aeaf0c036c9a880bcee5cd46229a"}}, -{"id":"png-guts","key":"png-guts","value":{"rev":"5-a29c7c686f9d08990ce29632bf59ef90"}}, -{"id":"policyfile","key":"policyfile","value":{"rev":"21-4a9229cca4bcac10f730f296f7118548"}}, -{"id":"polla","key":"polla","value":{"rev":"27-9af5a575961a4dddb6bef482c168c756"}}, -{"id":"poly","key":"poly","value":{"rev":"3-7f7fe29d9f0ec4fcbf8481c797b20455"}}, -{"id":"polyglot","key":"polyglot","value":{"rev":"3-9306e246d1f8b954b41bef76e3e81291"}}, -{"id":"pool","key":"pool","value":{"rev":"10-f364b59aa8a9076a17cd94251dd013ab"}}, -{"id":"poolr","key":"poolr","value":{"rev":"5-cacfbeaa7aaca40c1a41218e8ac8b732"}}, -{"id":"pop","key":"pop","value":{"rev":"41-8edd9ef2f34a90bf0ec5e8eb0e51e644"}}, -{"id":"pop-disqus","key":"pop-disqus","value":{"rev":"3-4a8272e6a8453ed2d754397dc8b349bb"}}, -{"id":"pop-ga","key":"pop-ga","value":{"rev":"3-5beaf7b355d46b3872043b97696ee693"}}, -{"id":"pop-gallery","key":"pop-gallery","value":{"rev":"3-1a88920ff930b8ce51cd50fcfe62675e"}}, -{"id":"pop3-client","key":"pop3-client","value":{"rev":"3-be8c314b0479d9d98384e2ff36d7f207"}}, -{"id":"poplib","key":"poplib","value":{"rev":"7-ab64c5c35269aee897b0904b4548096b"}}, -{"id":"porter-stemmer","key":"porter-stemmer","value":{"rev":"5-724a7b1d635b95a14c9ecd9d2f32487d"}}, -{"id":"portfinder","key":"portfinder","value":{"rev":"5-cdf36d1c666bbdae500817fa39b9c2bd"}}, -{"id":"portscanner","key":"portscanner","value":{"rev":"3-773c1923b6f3b914bd801476efcfdf64"}}, -{"id":"pos","key":"pos","value":{"rev":"3-1c1a27020560341ecd1b54d0e3cfaf2a"}}, -{"id":"posix-getopt","key":"posix-getopt","value":{"rev":"3-819b69724575b65fe25cf1c768e1b1c6"}}, -{"id":"postageapp","key":"postageapp","value":{"rev":"9-f5735237f7e6f0b467770e28e84c56db"}}, -{"id":"postal","key":"postal","value":{"rev":"19-dd70aeab4ae98ccf3d9f203dff9ccf37"}}, -{"id":"posterous","key":"posterous","value":{"rev":"3-6f8a9e7cae8a26f021653f2c27b0c67f"}}, -{"id":"postgres","key":"postgres","value":{"rev":"6-e8844a47c83ff3ef0a1ee7038b2046b2"}}, -{"id":"postgres-js","key":"postgres-js","value":{"rev":"3-bbe27a49ee9f8ae8789660e178d6459d"}}, -{"id":"postman","key":"postman","value":{"rev":"5-548538583f2e7ad448adae27f9a801e5"}}, -{"id":"postmark","key":"postmark","value":{"rev":"24-a6c61b346329e499d4a4a37dbfa446a2"}}, -{"id":"postmark-api","key":"postmark-api","value":{"rev":"3-79973af301aa820fc18c2c9d418adcd7"}}, -{"id":"postmessage","key":"postmessage","value":{"rev":"5-854bdb27c2a1af5b629b01f7d69691fe"}}, -{"id":"postpie","key":"postpie","value":{"rev":"10-88527e2731cd07a3b8ddec2608682700"}}, -{"id":"postprocess","key":"postprocess","value":{"rev":"5-513ecd54bf8df0ae73d2a50c717fd939"}}, -{"id":"potato","key":"potato","value":{"rev":"3-0f4cab343859692bf619e79cd9cc5be1"}}, -{"id":"pour","key":"pour","value":{"rev":"7-272bee63c5f19d12102198a23a4af902"}}, -{"id":"pow","key":"pow","value":{"rev":"22-58b557cd71ec0e95eef51dfd900e4736"}}, -{"id":"precious","key":"precious","value":{"rev":"19-b370292b258bcbca02c5d8861ebee0bb"}}, -{"id":"predicate","key":"predicate","value":{"rev":"3-1c6d1871fe71bc61457483793eecf7f9"}}, -{"id":"prefer","key":"prefer","value":{"rev":"11-236b9d16cd019e1d9af41e745bfed754"}}, -{"id":"prenup","key":"prenup","value":{"rev":"3-4c56ddf1ee22cd90c85963209736bc75"}}, -{"id":"pretty-json","key":"pretty-json","value":{"rev":"5-2dbb22fc9573c19e64725ac331a8d59c"}}, -{"id":"prettyfy","key":"prettyfy","value":{"rev":"3-fc7e39aad63a42533d4ac6d6bfa32325"}}, -{"id":"prick","key":"prick","value":{"rev":"10-71a02e1be02df2af0e6a958099be565a"}}, -{"id":"printf","key":"printf","value":{"rev":"5-2896b8bf90df19d4a432153211ca3a7e"}}, -{"id":"pro","key":"pro","value":{"rev":"5-e98adaf2f741e00953bbb942bbeb14d2"}}, -{"id":"probe_couchdb","key":"probe_couchdb","value":{"rev":"28-86f8918a3e64608f8009280fb28a983d"}}, -{"id":"process","key":"process","value":{"rev":"3-6865fc075d8083afd8e2aa266512447c"}}, -{"id":"procfile","key":"procfile","value":{"rev":"3-22dbb2289f5fb3060a8f7833b50116a4"}}, -{"id":"profile","key":"profile","value":{"rev":"29-5afee07fe4c334d9836fda1df51e1f2d"}}, -{"id":"profilejs","key":"profilejs","value":{"rev":"9-128c2b0e09624ee69a915cff20cdf359"}}, -{"id":"profiler","key":"profiler","value":{"rev":"13-4f1582fad93cac11daad5d5a67565e4f"}}, -{"id":"progress","key":"progress","value":{"rev":"7-bba60bc39153fa0fbf5e909b6df213b0"}}, -{"id":"progress-bar","key":"progress-bar","value":{"rev":"5-616721d3856b8e5a374f247404d6ab29"}}, -{"id":"progressify","key":"progressify","value":{"rev":"5-0379cbed5adc2c3f3ac6adf0307ec11d"}}, -{"id":"proj4js","key":"proj4js","value":{"rev":"5-7d209ce230f6a2d5931800acef436a06"}}, -{"id":"projectwatch","key":"projectwatch","value":{"rev":"15-d0eca46ffc3d9e18a51db2d772fa2778"}}, -{"id":"promise","key":"promise","value":{"rev":"3-1409350eb10aa9055ed13a5b59f0abc3"}}, -{"id":"promised-fs","key":"promised-fs","value":{"rev":"28-1d3e0dd1884e1c39a5d5e2d35bb1f911"}}, -{"id":"promised-http","key":"promised-http","value":{"rev":"8-3f8d560c800ddd44a617bf7d7c688392"}}, -{"id":"promised-io","key":"promised-io","value":{"rev":"11-e9a280e85c021cd8b77e524aac50fafb"}}, -{"id":"promised-traits","key":"promised-traits","value":{"rev":"14-62d0ac59d4ac1c6db99c0273020565ea"}}, -{"id":"promised-utils","key":"promised-utils","value":{"rev":"20-0c2488685eb8999c40ee5e7cfa4fd75d"}}, -{"id":"prompt","key":"prompt","value":{"rev":"32-d52a524c147e34c1258facab69660cc2"}}, -{"id":"props","key":"props","value":{"rev":"17-8c4c0bf1b69087510612c8d5ccbfbfeb"}}, -{"id":"proserver","key":"proserver","value":{"rev":"3-4b0a001404171eb0f6f3e5d73a35fcb1"}}, -{"id":"protege","key":"protege","value":{"rev":"150-9790c23d7b7eb5fb94cd5b8048bdbf10"}}, -{"id":"proto","key":"proto","value":{"rev":"6-29fe2869f34e2737b0cc2a0dbba8e397"}}, -{"id":"proto-list","key":"proto-list","value":{"rev":"3-0f64ff29a4a410d5e03a57125374b87b"}}, -{"id":"protobuf-stream","key":"protobuf-stream","value":{"rev":"3-950e621ce7eef306eff5f932a9c4cbae"}}, -{"id":"protodiv","key":"protodiv","value":{"rev":"9-ed8d84033943934eadf5d95dfd4d8eca"}}, -{"id":"proton","key":"proton","value":{"rev":"19-8ad32d57a3e71df786ff41ef8c7281f2"}}, -{"id":"protoparse","key":"protoparse","value":{"rev":"3-9fbcc3b26220f974d4b9c9c883a0260b"}}, -{"id":"prototype","key":"prototype","value":{"rev":"5-2a672703595e65f5d731a967b43655a7"}}, -{"id":"prowl","key":"prowl","value":{"rev":"5-ec480caa5a7db4f1ec2ce22d5eb1dad8"}}, -{"id":"prowler","key":"prowler","value":{"rev":"3-09747704f78c7c123fb1c719c4996924"}}, -{"id":"prox","key":"prox","value":{"rev":"5-0ac5f893b270a819d91f0c6581aca2a8"}}, -{"id":"proxify","key":"proxify","value":{"rev":"3-d24a979b708645328476bd42bd5aaba8"}}, -{"id":"proxino","key":"proxino","value":{"rev":"7-894cc6d453af00e5e39ebc8f0b0abe3a"}}, -{"id":"proxio","key":"proxio","value":{"rev":"55-a1b2744054b3dc3adc2f7f67d2c026a4"}}, -{"id":"proxy","key":"proxy","value":{"rev":"3-c6dd1a8b58e0ed7ac983c89c05ee987d"}}, -{"id":"proxy-by-url","key":"proxy-by-url","value":{"rev":"5-acfcf47f3575cea6594513ff459c5f2c"}}, -{"id":"pseudo","key":"pseudo","value":{"rev":"11-4d894a335036d96cdb9bb19f7b857293"}}, -{"id":"psk","key":"psk","value":{"rev":"17-375055bf6315476a37b5fadcdcb6b149"}}, -{"id":"pty","key":"pty","value":{"rev":"8-0b3ea0287fd23f882da27dabce4e3230"}}, -{"id":"pub-mix","key":"pub-mix","value":{"rev":"3-2c455b249167cbf6b1a6ea761bf119f4"}}, -{"id":"pubjs","key":"pubjs","value":{"rev":"3-a0ceab8bc6ec019dfcf9a8e16756bea0"}}, -{"id":"publicsuffix","key":"publicsuffix","value":{"rev":"8-1592f0714595c0ca0433272c60afc733"}}, -{"id":"publisher","key":"publisher","value":{"rev":"13-f2c8722f14732245d3ca8842fe5b7661"}}, -{"id":"pubnub-client","key":"pubnub-client","value":{"rev":"8-6e511a6dd2b7feb6cefe410facd61f53"}}, -{"id":"pubsub","key":"pubsub","value":{"rev":"11-6c6270bf95af417fb766c05f66b2cc9e"}}, -{"id":"pubsub.io","key":"pubsub.io","value":{"rev":"24-9686fe9ae3356966dffee99f53eaad2c"}}, -{"id":"pubsubd","key":"pubsubd","value":{"rev":"3-b1ff2fa958bd450933735162e9615449"}}, -{"id":"pulley","key":"pulley","value":{"rev":"13-f81ed698175ffd0b5b19357a623b8f15"}}, -{"id":"pulse","key":"pulse","value":{"rev":"9-da4bdabb6d7c189d05c8d6c64713e4ac"}}, -{"id":"pulverizr","key":"pulverizr","value":{"rev":"16-ffd4db4d2b1bfbd0b6ac794dca9e728e"}}, -{"id":"pulverizr-bal","key":"pulverizr-bal","value":{"rev":"5-dba279d07f3ed72990d10f11c5d10792"}}, -{"id":"punycode","key":"punycode","value":{"rev":"3-c0df35bb32d1490a4816161974610682"}}, -{"id":"puppy","key":"puppy","value":{"rev":"3-355fb490dba55efdf8840e2769cb7f41"}}, -{"id":"pure","key":"pure","value":{"rev":"7-b2da0d64ea12cea63bed940222bb36df"}}, -{"id":"purpose","key":"purpose","value":{"rev":"3-ef30ac479535bd603954c27ecb5d564a"}}, -{"id":"push-it","key":"push-it","value":{"rev":"35-2640be8ca8938768836520ce5fc7fff2"}}, -{"id":"pusher","key":"pusher","value":{"rev":"5-eb363d1e0ea2c59fd92a07ea642c5d03"}}, -{"id":"pusher-pipe","key":"pusher-pipe","value":{"rev":"11-11ab87d1288a8c7d11545fdab56616f6"}}, -{"id":"pushinator","key":"pushinator","value":{"rev":"15-6b2c37931bc9438e029a6af0cf97091c"}}, -{"id":"put","key":"put","value":{"rev":"12-4b05a7cdfdb24a980597b38781457cf5"}}, -{"id":"put-selector","key":"put-selector","value":{"rev":"1-1a9b3b8b5a44485b93966503370978aa"}}, -{"id":"putio","key":"putio","value":{"rev":"3-973b65e855e1cd0d3cc685542263cc55"}}, -{"id":"pwilang","key":"pwilang","value":{"rev":"43-49ad04f5abbdd9c5b16ec0271ab17520"}}, -{"id":"py","key":"py","value":{"rev":"3-aade832559d0fab88116aa794e3a9f35"}}, -{"id":"pygments","key":"pygments","value":{"rev":"3-2b2c96f39bdcb9ff38eb7d4bac7c90ba"}}, -{"id":"python","key":"python","value":{"rev":"15-706af811b5544a4aacc6ad1e9863e369"}}, -{"id":"q","key":"q","value":{"rev":"80-fd2397ad465750240d0f22a0abc53de5"}}, -{"id":"q-comm","key":"q-comm","value":{"rev":"17-972994947f097fdcffcfcb2277c966ce"}}, -{"id":"q-fs","key":"q-fs","value":{"rev":"68-958b01dd5bdc4da5ba3c1cd02c85fc0e"}}, -{"id":"q-http","key":"q-http","value":{"rev":"26-42a7db91b650386d920f52afe3e9161f"}}, -{"id":"q-io","key":"q-io","value":{"rev":"20-79f7b3d43bcbd53cc57b6531426738e2"}}, -{"id":"q-io-buffer","key":"q-io-buffer","value":{"rev":"5-05528d9a527da73357991bec449a1b76"}}, -{"id":"q-require","key":"q-require","value":{"rev":"12-e3fc0388e4d3e6d8a15274c3cc239712"}}, -{"id":"q-util","key":"q-util","value":{"rev":"10-94e0c392e70fec942aee0f024e5c090f"}}, -{"id":"qbox","key":"qbox","value":{"rev":"17-88f9148881ede94ae9dcbf4e1980aa69"}}, -{"id":"qfi","key":"qfi","value":{"rev":"3-a6052f02aec10f17085b09e4f9da1ce0"}}, -{"id":"qjscl","key":"qjscl","value":{"rev":"11-def1631b117a53cab5fd38ffec28d727"}}, -{"id":"qooxdoo","key":"qooxdoo","value":{"rev":"5-720d33ec2de3623d6535b3bdc8041d81"}}, -{"id":"qoper8","key":"qoper8","value":{"rev":"11-48fa2ec116bec46d64161e35b0f0cd86"}}, -{"id":"qq","key":"qq","value":{"rev":"23-6f7a5f158364bbf2e90a0c6eb1fbf8a9"}}, -{"id":"qqwry","key":"qqwry","value":{"rev":"10-bf0d6cc2420bdad92a1104c184e7e045"}}, -{"id":"qr","key":"qr","value":{"rev":"11-0a0120b7ec22bbcf76ff1d78fd4a7689"}}, -{"id":"qrcode","key":"qrcode","value":{"rev":"11-b578b6a76bffe996a0390e3d886b79bb"}}, -{"id":"qs","key":"qs","value":{"rev":"23-3da45c8c8a5eb33d45360d92b6072d37"}}, -{"id":"quack-array","key":"quack-array","value":{"rev":"5-6b676aa6273e4515ab5e7bfee1c331e0"}}, -{"id":"quadprog","key":"quadprog","value":{"rev":"7-c0ceeeb12735f334e8c7940ac1f0a896"}}, -{"id":"quadraticon","key":"quadraticon","value":{"rev":"66-1da88ea871e6f90967b9f65c0204309d"}}, -{"id":"quasi","key":"quasi","value":{"rev":"3-6fe0faa91d849938d8c92f91b0828395"}}, -{"id":"query","key":"query","value":{"rev":"13-635ff8d88c6a3f9d92f9ef465b14fb82"}}, -{"id":"query-engine","key":"query-engine","value":{"rev":"21-66feaee07df9fa1f625ac797e8f6b90b"}}, -{"id":"querystring","key":"querystring","value":{"rev":"5-2b509239fafba56319137bfbe1e9eeb7"}}, -{"id":"queue","key":"queue","value":{"rev":"3-5c4af574e5056f7e6ceb9bfefc1c632d"}}, -{"id":"queuelib","key":"queuelib","value":{"rev":"61-87c2abc94a5ad40af8193fac9a1d9f7e"}}, -{"id":"quickcheck","key":"quickcheck","value":{"rev":"7-64e6c1e9efc08a89abe3d01c414d1411"}}, -{"id":"quickserve","key":"quickserve","value":{"rev":"3-9c19f8ad7daf06182f42b8c7063b531f"}}, -{"id":"quip","key":"quip","value":{"rev":"8-0624055f5056f72bc719340c95e5111a"}}, -{"id":"qunit","key":"qunit","value":{"rev":"37-6e7fefdaffab8fc5fb92a391da227c38"}}, -{"id":"qunit-tap","key":"qunit-tap","value":{"rev":"22-0266cd1b5bb7cbab89fa52642f0e8277"}}, -{"id":"qwery","key":"qwery","value":{"rev":"66-29f9b44da544a3a9b4537a85ceace7c8"}}, -{"id":"qwery-mobile","key":"qwery-mobile","value":{"rev":"5-182264ca68c30519bf0d29cf1e15854b"}}, -{"id":"raZerdummy","key":"raZerdummy","value":{"rev":"7-1fa549e0cff60795b49cbd3732f32175"}}, -{"id":"rabbit.js","key":"rabbit.js","value":{"rev":"3-dbcd5cd590576673c65b34c44ff06bec"}}, -{"id":"rabblescay","key":"rabblescay","value":{"rev":"5-3fea196ffd581a842a24ab7bb2118fe2"}}, -{"id":"racer","key":"racer","value":{"rev":"51-41c65689a335d70fa6b55b9706b9c0fe"}}, -{"id":"radcouchdb","key":"radcouchdb","value":{"rev":"3-64ccb4d0acb2b11cbb1d3fcef5f9a68e"}}, -{"id":"radio-stream","key":"radio-stream","value":{"rev":"6-c5f80a0bef7bbaacdd22d92da3d09244"}}, -{"id":"railway","key":"railway","value":{"rev":"74-5ce92a45c7d11540b0e2b5a8455361ce"}}, -{"id":"railway-mailer","key":"railway-mailer","value":{"rev":"3-8df2fbe4af4d3b1f12557d8397bf0548"}}, -{"id":"railway-twitter","key":"railway-twitter","value":{"rev":"3-df984f182bb323052e36876e8e3a066c"}}, -{"id":"rand","key":"rand","value":{"rev":"11-abb69107c390e2a6dcec64cb72f36096"}}, -{"id":"random","key":"random","value":{"rev":"7-32550b221f3549b67f379c1c2dbc5c57"}}, -{"id":"random-data","key":"random-data","value":{"rev":"5-ae651ea36724105b8677ae489082ab4d"}}, -{"id":"range","key":"range","value":{"rev":"3-1d3925f30ffa6b5f3494d507fcef3aa1"}}, -{"id":"ranger","key":"ranger","value":{"rev":"17-6135a9a9d83cbd3945f1ce991f276cb8"}}, -{"id":"rap-battle","key":"rap-battle","value":{"rev":"3-6960516c0d27906bb9343805a5eb0e45"}}, -{"id":"raphael","key":"raphael","value":{"rev":"7-012f159593a82e4587ea024a5d4fbe41"}}, -{"id":"raphael-zoom","key":"raphael-zoom","value":{"rev":"3-aaab74bebbeb4241cade4f4d3c9b130e"}}, -{"id":"rapid","key":"rapid","value":{"rev":"8-ae0b05388c7904fc88c743e3dcde1d9d"}}, -{"id":"rasputin","key":"rasputin","value":{"rev":"3-87cdd9bd591606f4b8439e7a76681c7b"}}, -{"id":"rate-limiter","key":"rate-limiter","value":{"rev":"3-24cd20fef83ce02f17dd383b72f5f125"}}, -{"id":"rats","key":"rats","value":{"rev":"3-1ff1efb311451a17789da910eaf59fb6"}}, -{"id":"raydash","key":"raydash","value":{"rev":"7-96c345beb3564d2789d209d1fe695857"}}, -{"id":"rbytes","key":"rbytes","value":{"rev":"13-cf09d91347a646f590070e516f0c9bc9"}}, -{"id":"rdf","key":"rdf","value":{"rev":"3-9a5012d1fc10da762dbe285d0b317499"}}, -{"id":"rdf-raptor-parser","key":"rdf-raptor-parser","value":{"rev":"11-25c61e4d57cf67ee8a5afb6dfcf193e3"}}, -{"id":"rdfstore","key":"rdfstore","value":{"rev":"41-4499a73efc48ad07234e56fd4e27e4e0"}}, -{"id":"rdio","key":"rdio","value":{"rev":"5-fa20a8ab818a6150e38e9bb7744968f9"}}, -{"id":"rdx","key":"rdx","value":{"rev":"3-e1db5ee3aad06edd9eadcdaa8aaba149"}}, -{"id":"rea","key":"rea","value":{"rev":"3-f17ceeb35337bc9ccf9cb440d5c4dfaf"}}, -{"id":"read-files","key":"read-files","value":{"rev":"3-e08fac4abcdbc7312beb0362ff4427b4"}}, -{"id":"readability","key":"readability","value":{"rev":"3-475601a3d99d696763872c52bce6a155"}}, -{"id":"readabilitySAX","key":"readabilitySAX","value":{"rev":"19-83277777f3f721be26aca28c66227b01"}}, -{"id":"ready.js","key":"ready.js","value":{"rev":"39-8e309b8b274722c051c67f90885571e8"}}, -{"id":"readyjslint","key":"readyjslint","value":{"rev":"3-0a3742129bfbe07d47fcfb9ff67d39b2"}}, -{"id":"recaptcha","key":"recaptcha","value":{"rev":"8-8895926476be014fbe08b301294bf37b"}}, -{"id":"recaptcha-async","key":"recaptcha-async","value":{"rev":"9-3033260389f8afdb5351974119b78ca2"}}, -{"id":"recline","key":"recline","value":{"rev":"189-b56ab8c7791201dccf4aea2532189f1d"}}, -{"id":"recon","key":"recon","value":{"rev":"13-79cbddefb00fec6895342d18609cadb1"}}, -{"id":"reconf","key":"reconf","value":{"rev":"5-0596988db2cf9bf5921502a2aab24ade"}}, -{"id":"redback","key":"redback","value":{"rev":"37-03b390f69cacf42a46e393b7cf297d09"}}, -{"id":"rede","key":"rede","value":{"rev":"3-ee74c2fd990c7780dc823e22a9c3bef2"}}, -{"id":"redecard","key":"redecard","value":{"rev":"13-7dec5a50c34132a2f20f0f143d6b5215"}}, -{"id":"redim","key":"redim","value":{"rev":"15-91c9fd560d1ce87d210b461c52a6d258"}}, -{"id":"redis","key":"redis","value":{"rev":"98-ec237259e8ef5c42a76ff260be50f8fd"}}, -{"id":"redis-channels","key":"redis-channels","value":{"rev":"3-8efc40a25fd18c1c9c41bbaeedb0b22f"}}, -{"id":"redis-client","key":"redis-client","value":{"rev":"3-3376054236e651e7dfcf91be8632fd0e"}}, -{"id":"redis-completer","key":"redis-completer","value":{"rev":"11-9e5bf1f8d37df681e7896252809188d3"}}, -{"id":"redis-keyspace","key":"redis-keyspace","value":{"rev":"25-245f2375741eb3e574dfce9f2da2b687"}}, -{"id":"redis-lua","key":"redis-lua","value":{"rev":"7-81f3dd3a4601271818f15278f495717a"}}, -{"id":"redis-namespace","key":"redis-namespace","value":{"rev":"3-ddf52a172db190fe788aad4116b1cb29"}}, -{"id":"redis-node","key":"redis-node","value":{"rev":"24-7a1e9098d8b5a42a99ca71a01b0d7672"}}, -{"id":"redis-queue","key":"redis-queue","value":{"rev":"3-9896587800c4b98ff291b74210c16b6e"}}, -{"id":"redis-session-store","key":"redis-session-store","value":{"rev":"3-2229501ecf817f9ca60ff2c7721ddd73"}}, -{"id":"redis-tag","key":"redis-tag","value":{"rev":"9-6713e8e91a38613cfef09d7b40f4df71"}}, -{"id":"redis-url","key":"redis-url","value":{"rev":"5-f53545a0039b512a2f7afd4ba2e08773"}}, -{"id":"redis-user","key":"redis-user","value":{"rev":"11-a8c0f6d40cbfbb6183a46e121f31ec06"}}, -{"id":"redis2json","key":"redis2json","value":{"rev":"5-dd96f78f8db0bf695346c95c2ead1307"}}, -{"id":"redis_objects","key":"redis_objects","value":{"rev":"3-499fe6dd07e7a3839111b1892b97f54c"}}, -{"id":"redisev","key":"redisev","value":{"rev":"3-8e857dbe2341292c6e170a7bfe3fa81b"}}, -{"id":"redisfs","key":"redisfs","value":{"rev":"69-d9c90256d32348fdca7a4e646ab4d551"}}, -{"id":"redisify","key":"redisify","value":{"rev":"3-03fce3095b4129e71280d278f11121ba"}}, -{"id":"rediskit","key":"rediskit","value":{"rev":"5-6a0324708f45d884a492cbc408137059"}}, -{"id":"redisql","key":"redisql","value":{"rev":"6-b31802eb37910cb74bd3c9f7b477c025"}}, -{"id":"redmark","key":"redmark","value":{"rev":"5-8724ab00513b6bd7ddfdcd3cc2e0a4e8"}}, -{"id":"redmess","key":"redmess","value":{"rev":"13-14f58666444993ce899cd2260cdc9140"}}, -{"id":"redobj","key":"redobj","value":{"rev":"7-7ebbeffc306f4f7ff9b53ee57e1a250e"}}, -{"id":"redpack","key":"redpack","value":{"rev":"73-58b3fb3bcadf7d80fbe97d9e82d4928b"}}, -{"id":"reds","key":"reds","value":{"rev":"9-baebb36b92887d93fd79785a8c1e6355"}}, -{"id":"reed","key":"reed","value":{"rev":"45-5580f319dc3b5bfb66612ed5c7e17337"}}, -{"id":"reflect","key":"reflect","value":{"rev":"18-b590003cd55332160a5e5327e806e851"}}, -{"id":"reflect-builder","key":"reflect-builder","value":{"rev":"3-453d618b263f9452c0b6bbab0a701f49"}}, -{"id":"reflect-next","key":"reflect-next","value":{"rev":"9-4f2b27a38985d81e906e824321af7713"}}, -{"id":"reflect-tree-builder","key":"reflect-tree-builder","value":{"rev":"5-5f801f53e126dc8a72e13b1417904ce6"}}, -{"id":"reflect-unbuilder","key":"reflect-unbuilder","value":{"rev":"5-f36fd4182fd465a743198b5188697db9"}}, -{"id":"reflectjs","key":"reflectjs","value":{"rev":"3-e03bdb411ffcdd901b896a1cf43eea69"}}, -{"id":"reflex","key":"reflex","value":{"rev":"3-e8bb6b6de906265114b22036832ef650"}}, -{"id":"refmate","key":"refmate","value":{"rev":"3-7d44c45a2eb39236ad2071c84dc0fbba"}}, -{"id":"regext","key":"regext","value":{"rev":"4-97ca5c25fd2f3dc4bd1f3aa821d06f0f"}}, -{"id":"reid-yui3","key":"reid-yui3","value":{"rev":"5-cab8f6e22dfa9b9c508a5dd312bf56b0"}}, -{"id":"rel","key":"rel","value":{"rev":"7-f447870ac7a078f742e4295896646241"}}, -{"id":"relative-date","key":"relative-date","value":{"rev":"5-d0fa11f8100da888cbcce6e96d76b2e4"}}, -{"id":"reloadOnUpdate","key":"reloadOnUpdate","value":{"rev":"9-e7d4c215578b779b2f888381d398bd79"}}, -{"id":"reloaded","key":"reloaded","value":{"rev":"3-dba828b9ab73fc7ce8e47f98068bce8c"}}, -{"id":"remap","key":"remap","value":{"rev":"5-825ac1783df84aba3255c1d39f32ac00"}}, -{"id":"remedial","key":"remedial","value":{"rev":"17-9bb17db015e96db3c833f84d9dbd972a"}}, -{"id":"remote-console","key":"remote-console","value":{"rev":"6-104bae3ba9e4b0a8f772d0b8dc37007e"}}, -{"id":"remote_js","key":"remote_js","value":{"rev":"3-6c0e3058c33113346c037c59206ac0ec"}}, -{"id":"render","key":"render","value":{"rev":"27-fc8be4e9c50e49fb42df83e9446a1f58"}}, -{"id":"renode","key":"renode","value":{"rev":"11-107a3e15a987393157b47125487af296"}}, -{"id":"reparse","key":"reparse","value":{"rev":"10-210ec92e82f5a8515f45d20c7fa2f164"}}, -{"id":"repl","key":"repl","value":{"rev":"3-295279fe20b9ac54b2a235a6bc7013aa"}}, -{"id":"repl-edit","key":"repl-edit","value":{"rev":"18-eb2e604ab8bb65685376459beb417a31"}}, -{"id":"repl-utils","key":"repl-utils","value":{"rev":"7-fc31547ecb53e7e36610cdb68bcec582"}}, -{"id":"replace","key":"replace","value":{"rev":"17-a8976fcdbeb08e27ee2f0fc69ccd7c9d"}}, -{"id":"replica","key":"replica","value":{"rev":"3-f9dae960f91e8dc594f43b004f516d5f"}}, -{"id":"replicate","key":"replicate","value":{"rev":"3-3d6e52af6ff36c02139f619c7e5599c6"}}, -{"id":"replique","key":"replique","value":{"rev":"5-72d990b7d9ce9ff107d96be17490226a"}}, -{"id":"req2","key":"req2","value":{"rev":"3-712151f335b25b5bdef428982d77d0e0"}}, -{"id":"reqhooks","key":"reqhooks","value":{"rev":"17-2f0f0b73545bb1936f449a1ec4a28011"}}, -{"id":"request","key":"request","value":{"rev":"55-0d0b00eecde877ca5cd4ad9e0badc4d1"}}, -{"id":"require","key":"require","value":{"rev":"15-59e9fa05a9de52ee2a818c045736452b"}}, -{"id":"require-analyzer","key":"require-analyzer","value":{"rev":"72-f759f0cdc352df317df29791bfe451f1"}}, -{"id":"require-kiss","key":"require-kiss","value":{"rev":"5-f7ef9d7beda584e9c95635a281a01587"}}, -{"id":"require-like","key":"require-like","value":{"rev":"7-29d5de79e7ff14bb02da954bd9a2ee33"}}, -{"id":"requireincontext","key":"requireincontext","value":{"rev":"5-988ff7c27a21e527ceeb50cbedc8d1b0"}}, -{"id":"requirejs","key":"requirejs","value":{"rev":"3-e609bc91d12d698a17aa51bb50a50509"}}, -{"id":"requirejson","key":"requirejson","value":{"rev":"3-2b8173e58d08034a53a3226c464b1dc8"}}, -{"id":"reqwest","key":"reqwest","value":{"rev":"57-5aa2c1ed17b1e3630859bcad85559e6a"}}, -{"id":"resig-class","key":"resig-class","value":{"rev":"3-16b1a2cdb3224f2043708436dbac4395"}}, -{"id":"resistance","key":"resistance","value":{"rev":"9-9cacbf5fa8318419b4751034a511b8c1"}}, -{"id":"resmin","key":"resmin","value":{"rev":"17-a9c8ded5073118748d765784ca4ea069"}}, -{"id":"resolve","key":"resolve","value":{"rev":"11-bba3470bc93a617ccf9fb6c12097c793"}}, -{"id":"resource-router","key":"resource-router","value":{"rev":"13-7b2991958da4d7701c51537192ca756c"}}, -{"id":"resourcer","key":"resourcer","value":{"rev":"3-4e8b5493d6fcdf147f53d3aaa731a509"}}, -{"id":"response","key":"response","value":{"rev":"3-c5cadf4e5dd90dc1022b92a67853b0f8"}}, -{"id":"resque","key":"resque","value":{"rev":"12-e2f5e1bc3e53ac0a992d1a7da7da0d14"}}, -{"id":"rest-in-node","key":"rest-in-node","value":{"rev":"3-41d1ba925857302211bd0bf9d19975f9"}}, -{"id":"rest-mongo","key":"rest-mongo","value":{"rev":"3-583d2a4b672d6d7e7ad26d0b6df20b45"}}, -{"id":"rest.node","key":"rest.node","value":{"rev":"3-2ed59ba9dcc97123632dfdfaea2559ed"}}, -{"id":"restalytics","key":"restalytics","value":{"rev":"11-5fb3cd8e95b37f1725922fa6fbb146e0"}}, -{"id":"restarter","key":"restarter","value":{"rev":"52-ab0a4fe59128b8848ffd88f9756d0049"}}, -{"id":"restartr","key":"restartr","value":{"rev":"12-d3b86e43e7df7697293db65bb1a1ae65"}}, -{"id":"restify","key":"restify","value":{"rev":"132-054bdc85bebc6221a07dda186238b4c3"}}, -{"id":"restler","key":"restler","value":{"rev":"13-f5392d9dd22e34ce3bcc307c51c889b3"}}, -{"id":"restler-aaronblohowiak","key":"restler-aaronblohowiak","value":{"rev":"8-28b231eceb667153e10effcb1ebeb989"}}, -{"id":"restmvc.js","key":"restmvc.js","value":{"rev":"25-d57b550754437580c447adf612c87d9a"}}, -{"id":"resware","key":"resware","value":{"rev":"9-a5ecbc53fefb280c5d1e3efd822704ff"}}, -{"id":"retrie","key":"retrie","value":{"rev":"7-28ea803ad6b119928ac792cbc8f475c9"}}, -{"id":"retro","key":"retro","value":{"rev":"3-94c3aec940e28869554cbb8449d9369e"}}, -{"id":"retry","key":"retry","value":{"rev":"19-89f3ef664c6fa48ff33a0b9f7e798f15"}}, -{"id":"reut","key":"reut","value":{"rev":"23-d745dd7f8606275848a299ad7c38ceb7"}}, -{"id":"rewrite","key":"rewrite","value":{"rev":"3-5cb91fd831d0913e89354f53b875137d"}}, -{"id":"rex","key":"rex","value":{"rev":"39-59025e6947e5f197f124d24a5393865f"}}, -{"id":"rfb","key":"rfb","value":{"rev":"34-db6e684ac9366a0e3658a508a2187ae1"}}, -{"id":"rhyme","key":"rhyme","value":{"rev":"7-27347762f3f5bfa07307da4e476c2d52"}}, -{"id":"riak-js","key":"riak-js","value":{"rev":"55-11d4ee4beb566946f3968abdf1c4b0ef"}}, -{"id":"riakqp","key":"riakqp","value":{"rev":"7-83f562e6907431fcee56a9408ac6d2c1"}}, -{"id":"rightjs","key":"rightjs","value":{"rev":"9-d53ae4c4f5af3bbbe18d7c879e5bdd1b"}}, -{"id":"rimraf","key":"rimraf","value":{"rev":"17-3ddc3f3f36618712e5f4f27511836e7a"}}, -{"id":"rio","key":"rio","value":{"rev":"11-7c6249c241392b51b9142ca1b228dd4e"}}, -{"id":"ristretto","key":"ristretto","value":{"rev":"3-beb22d7a575e066781f1fd702c4572d7"}}, -{"id":"roast","key":"roast","value":{"rev":"32-17cb066823afab1656196a2fe81246cb"}}, -{"id":"robb","key":"robb","value":{"rev":"5-472ed7ba7928131d86a05fcae89b9f93"}}, -{"id":"robots","key":"robots","value":{"rev":"9-afac82b944045c82acb710cc98c7311d"}}, -{"id":"robotskirt","key":"robotskirt","value":{"rev":"63-29a66420951812d421bf6728f67e710c"}}, -{"id":"robotstxt","key":"robotstxt","value":{"rev":"25-1e01cac90f4570d35ab20232feaeebfa"}}, -{"id":"rocket","key":"rocket","value":{"rev":"27-b0f1ff02e70b237bcf6a5b46aa9b74df"}}, -{"id":"roil","key":"roil","value":{"rev":"48-6b00c09b576fe195546bd031763c0d79"}}, -{"id":"roll","key":"roll","value":{"rev":"5-d3fed9271132eb6c954b3ac6c7ffccf0"}}, -{"id":"rollin","key":"rollin","value":{"rev":"3-bd461bc810c12cfcea94109ba9a2ab39"}}, -{"id":"ron","key":"ron","value":{"rev":"5-913645180d29f377506bcd5292d3cb49"}}, -{"id":"rondo","key":"rondo","value":{"rev":"3-9bed539bbaa0cb978f5c1b711d70cd50"}}, -{"id":"ronn","key":"ronn","value":{"rev":"12-b1b1a1d47376fd11053e2b81fe772c4c"}}, -{"id":"rot13","key":"rot13","value":{"rev":"10-a41e8b581812f02ca1a593f6da0c52dc"}}, -{"id":"router","key":"router","value":{"rev":"26-a7883048759715134710d68f179da18b"}}, -{"id":"routes","key":"routes","value":{"rev":"3-d841826cfd365d8f383a9c4f4288933c"}}, -{"id":"rpc","key":"rpc","value":{"rev":"5-5896f380115a7a606cd7cbbc6d113f05"}}, -{"id":"rpc-socket","key":"rpc-socket","value":{"rev":"17-8743dc1a1f5ba391fc5c7d432cc6eeba"}}, -{"id":"rq","key":"rq","value":{"rev":"7-ba263671c3a3b52851dc7d5e6bd4ef8c"}}, -{"id":"rql","key":"rql","value":{"rev":"1-ac5ec10ed5e41a10a289f26aff4def5a"}}, -{"id":"rqueue","key":"rqueue","value":{"rev":"12-042898704386874c70d0ffaeea6ebc78"}}, -{"id":"rrd","key":"rrd","value":{"rev":"9-488adf135cf29cd4725865a8f25a57ba"}}, -{"id":"rsa","key":"rsa","value":{"rev":"8-7d6f981d72322028c3bebb7141252e98"}}, -{"id":"rss","key":"rss","value":{"rev":"3-0a97b20a0a9051876d779af7663880bd"}}, -{"id":"rssee","key":"rssee","value":{"rev":"9-da2599eae68e50c1695fd7f8fcba2b30"}}, -{"id":"rumba","key":"rumba","value":{"rev":"3-7a3827fa6eca2d02d3189cbad38dd6ca"}}, -{"id":"run","key":"run","value":{"rev":"9-0145abb61e6107a3507624928db461da"}}, -{"id":"runforcover","key":"runforcover","value":{"rev":"3-a36b00ea747c98c7cd7afebf1e1b203c"}}, -{"id":"runlol","key":"runlol","value":{"rev":"3-3c97684baaa3d5b31ca404e8a616fe41"}}, -{"id":"runner","key":"runner","value":{"rev":"11-b7ceeedf7b0dde19c809642f1537723a"}}, -{"id":"runways","key":"runways","value":{"rev":"5-f216f5fa6af7ccc7566cdd06cf424980"}}, -{"id":"rw-translate","key":"rw-translate","value":{"rev":"3-16d2beb17a27713e10459ce368c5d087"}}, -{"id":"rx","key":"rx","value":{"rev":"5-ea2a04ecf38963f8a99b7a408b45af31"}}, -{"id":"rzr","key":"rzr","value":{"rev":"4-6a137fa752709531f2715de5a213b326"}}, -{"id":"s-tpl","key":"s-tpl","value":{"rev":"3-1533cf9657cfe669a25da96b6a655f5c"}}, -{"id":"s3-post","key":"s3-post","value":{"rev":"9-ad3b268bc6754852086b50c2f465c02c"}}, -{"id":"safis","key":"safis","value":{"rev":"3-f1494d0dae2b7dfd60beba5a72412ad2"}}, -{"id":"saiga","key":"saiga","value":{"rev":"22-0c67e8cf8f4b6e8ea30552ffc57d222a"}}, -{"id":"sailthru-client","key":"sailthru-client","value":{"rev":"7-1c9c236050868fb8dec4a34ded2436d3"}}, -{"id":"saimonmoore-cradle","key":"saimonmoore-cradle","value":{"rev":"3-5059616ab0f0f10e1c2d164f686e127e"}}, -{"id":"salesforce","key":"salesforce","value":{"rev":"7-f88cbf517b1fb900358c97b2c049960f"}}, -{"id":"sam","key":"sam","value":{"rev":"7-d7e24d2e94411a17cbedfbd8083fd878"}}, -{"id":"sandbox","key":"sandbox","value":{"rev":"10-0b51bed24e0842f99744dcf5d79346a6"}}, -{"id":"sandboxed-module","key":"sandboxed-module","value":{"rev":"15-bf8fa69d15ae8416d534e3025a16d87d"}}, -{"id":"sanitizer","key":"sanitizer","value":{"rev":"32-6ea8f4c77cd17253c27d0d87e0790678"}}, -{"id":"sapnwrfc","key":"sapnwrfc","value":{"rev":"3-0bc717109ffcd5265ae24f00416a0281"}}, -{"id":"sardines","key":"sardines","value":{"rev":"7-82712731b5af112ca43b9e3fe9975bb0"}}, -{"id":"sargam","key":"sargam","value":{"rev":"3-6b4c70f4b2bcd2add43704bf40c44507"}}, -{"id":"sasl","key":"sasl","value":{"rev":"4-44a6e12b561b112a574ec9e0c4a8843f"}}, -{"id":"sass","key":"sass","value":{"rev":"14-46bcee5423a1efe22f039e116bb7a77c"}}, -{"id":"satisfic","key":"satisfic","value":{"rev":"3-c6e9a2e65a0e55868cea708bcf7b11cf"}}, -{"id":"sax","key":"sax","value":{"rev":"30-58c5dd2c3367522974406bbf29204a40"}}, -{"id":"say","key":"say","value":{"rev":"10-95f31672af6166ea9099d92706c49ed1"}}, -{"id":"sayndo","key":"sayndo","value":{"rev":"51-fd93715c5ff0fcaa68e4e13c2b51ba61"}}, -{"id":"sc-handlebars","key":"sc-handlebars","value":{"rev":"3-b424c3a66fd0e538b068c6046f404084"}}, -{"id":"scgi-server","key":"scgi-server","value":{"rev":"9-3364b5c39985ea8f3468b6abb53d5ea6"}}, -{"id":"scheduler","key":"scheduler","value":{"rev":"25-72bc526bb49b0dd42ad5917d38ea3b18"}}, -{"id":"schema","key":"schema","value":{"rev":"21-166410ae972449965dfa1ce615971168"}}, -{"id":"schema-builder","key":"schema-builder","value":{"rev":"3-bce4612e1e5e6a8a85f16326d3810145"}}, -{"id":"schema-org","key":"schema-org","value":{"rev":"15-59b3b654de0380669d0dcd7573c3b7a1"}}, -{"id":"scone","key":"scone","value":{"rev":"15-85ed2dd4894e896ca1c942322753b76b"}}, -{"id":"scooj","key":"scooj","value":{"rev":"3-1be2074aeba4df60594c03f3e59c7734"}}, -{"id":"scope","key":"scope","value":{"rev":"65-9d7eb8c5fc6c54d8e2c49f4b4b4f5166"}}, -{"id":"scope-provider","key":"scope-provider","value":{"rev":"22-2c25a0b260fd18236d5245c8250d990e"}}, -{"id":"scoped-http-client","key":"scoped-http-client","value":{"rev":"3-afa954fe6d1c8b64a1240b77292d99b5"}}, -{"id":"scottbot","key":"scottbot","value":{"rev":"3-d812ddb4af49976c391f14aeecf93180"}}, -{"id":"scraper","key":"scraper","value":{"rev":"19-e2166b3de2b33d7e6baa04c704887fa6"}}, -{"id":"scrapinode","key":"scrapinode","value":{"rev":"15-ae5bf5085d8c4d5390f7c313b0ad13d2"}}, -{"id":"scrappy-do","key":"scrappy-do","value":{"rev":"3-868f5d299da401112e3ed9976194f1ee"}}, -{"id":"scrapr","key":"scrapr","value":{"rev":"3-d700714a56e8f8b8e9b3bc94274f4a24"}}, -{"id":"scrawl","key":"scrawl","value":{"rev":"3-a70a2905b9a1d2f28eb379c14363955f"}}, -{"id":"scribe","key":"scribe","value":{"rev":"5-4cefaaf869ba8e6ae0257e5705532fbe"}}, -{"id":"scriptTools","key":"scriptTools","value":{"rev":"7-1b66b7f02f2f659ae224057afac60bcf"}}, -{"id":"scriptbroadcast","key":"scriptbroadcast","value":{"rev":"10-3cdc4dae471445b7e08e6fc37c2481e6"}}, -{"id":"scriptjs","key":"scriptjs","value":{"rev":"38-9a522df4f0707d47c904f6781fd97ff6"}}, -{"id":"scrowser","key":"scrowser","value":{"rev":"3-a76938b1f84db0793941dba1f84f4c2f"}}, -{"id":"scss","key":"scss","value":{"rev":"10-49a4ad40eca3c797add57986c74e100b"}}, -{"id":"scylla","key":"scylla","value":{"rev":"10-2c5a1efed63c0ac3a3e75861ee323af4"}}, -{"id":"sdl","key":"sdl","value":{"rev":"40-3df0824da620098c0253b5330c6b0c5c"}}, -{"id":"sdlmixer","key":"sdlmixer","value":{"rev":"4-91455739802a98a5549f6c2b8118758d"}}, -{"id":"search","key":"search","value":{"rev":"9-8f696da412a6ccd07c3b8f22cec315cb"}}, -{"id":"searchjs","key":"searchjs","value":{"rev":"3-59418ce307d41de5649dfc158be51adf"}}, -{"id":"searchparser","key":"searchparser","value":{"rev":"3-a84719692ee33c88f3419f033b839f7a"}}, -{"id":"sechash","key":"sechash","value":{"rev":"11-20db8651628dcf6e8cbbc9bf9b2c4f12"}}, -{"id":"secret","key":"secret","value":{"rev":"7-ac44b38fa32b3f5ebc8fd03b02ec69ec"}}, -{"id":"seedrandom","key":"seedrandom","value":{"rev":"3-becb92de803208672887fc22a1a33694"}}, -{"id":"seek","key":"seek","value":{"rev":"3-d778b8d56582e15d409e2346b86caa53"}}, -{"id":"sel","key":"sel","value":{"rev":"19-94c8bc0872d2da7eab2b35daff7a3b5d"}}, -{"id":"select","key":"select","value":{"rev":"5-43593bfec39caaf1a0bc1fedc96d0dce"}}, -{"id":"selenium","key":"selenium","value":{"rev":"3-8ae8ac7a491b813fd011671e0d494f20"}}, -{"id":"selfish","key":"selfish","value":{"rev":"17-827856c3f3b9a3fdd1758477a24bf706"}}, -{"id":"selleck","key":"selleck","value":{"rev":"13-b8325fcdb383397041e4a408b40d708c"}}, -{"id":"semver","key":"semver","value":{"rev":"25-b2aea0cc920a9981cd429442a3fd62f6"}}, -{"id":"sendgrid","key":"sendgrid","value":{"rev":"3-047e2ad730390bac7cf72b7fc3856c1c"}}, -{"id":"sendgrid-api","key":"sendgrid-api","value":{"rev":"5-6e951b0d60a1b7c778fbf548d4e3aed8"}}, -{"id":"sendgrid-web","key":"sendgrid-web","value":{"rev":"3-dc77d2dbcedfcbe4e497958a2a070cfd"}}, -{"id":"sentry","key":"sentry","value":{"rev":"7-57af332354cbd37ce1c743b424b27dd0"}}, -{"id":"seq","key":"seq","value":{"rev":"77-33a8f54017402835c8542945a5c0a443"}}, -{"id":"sequelize","key":"sequelize","value":{"rev":"63-4c28ad13b73549aad7edc57378b21854"}}, -{"id":"sequence","key":"sequence","value":{"rev":"3-914f8010dc12aec0749ddb719f5ac82d"}}, -{"id":"sequencer","key":"sequencer","value":{"rev":"7-d83e687509678c0f5bcf15e5297677c0"}}, -{"id":"sequent","key":"sequent","value":{"rev":"3-cc6f26ab708c7681fa7d9e3bc15d19c0"}}, -{"id":"serializer","key":"serializer","value":{"rev":"7-a0d13120e2d5cfaa6e453b085280fa08"}}, -{"id":"serialport","key":"serialport","value":{"rev":"32-dc365d057a4f46e9f140dc36d6cc825a"}}, -{"id":"serialportify","key":"serialportify","value":{"rev":"3-1bf4ad9c5ebb5d96ca91fc03a10b5443"}}, -{"id":"serialq","key":"serialq","value":{"rev":"3-5897fcd0fca7d8312e61dbcb93790a71"}}, -{"id":"series","key":"series","value":{"rev":"11-0374191f646c277c51602ebe73033b6a"}}, -{"id":"serve","key":"serve","value":{"rev":"11-560c0c1bdeb3348c7a7d18265d27988e"}}, -{"id":"servedir","key":"servedir","value":{"rev":"18-17cffd8d8326b26e7d9319c79d601dda"}}, -{"id":"server-backbone-redis","key":"server-backbone-redis","value":{"rev":"13-c56419457002aa4fa23b142634882594"}}, -{"id":"server-tracker","key":"server-tracker","value":{"rev":"21-f620e295079a8b0acd29fa1a1469100c"}}, -{"id":"service","key":"service","value":{"rev":"11-07533f9e5e854248c0a1d99e911fa419"}}, -{"id":"sesame","key":"sesame","value":{"rev":"19-1e7ad5d030566f4c67027cc5925a2bdb"}}, -{"id":"sesh","key":"sesh","value":{"rev":"4-1682b3ced38e95f2a11a2f545a820bd5"}}, -{"id":"session","key":"session","value":{"rev":"6-a798bf4cd7d127d0111da7cdc3e058a4"}}, -{"id":"session-mongoose","key":"session-mongoose","value":{"rev":"3-b089c8d365d7de3e659cfa7080697dba"}}, -{"id":"sessionvoc-client","key":"sessionvoc-client","value":{"rev":"23-0f9ed8cd4af55f2aae17cb841247b818"}}, -{"id":"set","key":"set","value":{"rev":"3-a285b30a9c1545b427ebd882bc53d8b2"}}, -{"id":"setInterval","key":"setInterval","value":{"rev":"3-0557f666d05223391466547f52cfff42"}}, -{"id":"setTimeout","key":"setTimeout","value":{"rev":"3-e3c059c93763967ddff5974471f227f8"}}, -{"id":"setochka","key":"setochka","value":{"rev":"3-d559e24618b4fc2d5fc4ef44bccb68be"}}, -{"id":"settings","key":"settings","value":{"rev":"5-4af85bb564a330886c79682d2f1d927c"}}, -{"id":"sexy","key":"sexy","value":{"rev":"7-e57fa6bca5d89be86467786fb9f9b997"}}, -{"id":"sexy-args","key":"sexy-args","value":{"rev":"3-715d7d57234220bd79c78772d2566355"}}, -{"id":"sfaClient","key":"sfaClient","value":{"rev":"3-5d9ddd6ea05d7ef366dbf4f66dd4f642"}}, -{"id":"sfml","key":"sfml","value":{"rev":"10-766c876cd1cc220f776e2fa3c1d9efbb"}}, -{"id":"sh","key":"sh","value":{"rev":"5-3ce779be28550e831cf3c0140477376c"}}, -{"id":"sha1","key":"sha1","value":{"rev":"3-66d4b67ace9c65ae8f03d6dd0647ff6b"}}, -{"id":"sha1_file","key":"sha1_file","value":{"rev":"7-eb25e9c5f470a1b80c1697a952a1c5ed"}}, -{"id":"shadows","key":"shadows","value":{"rev":"5-d6a1a21871c733f34495592307ab7961"}}, -{"id":"share","key":"share","value":{"rev":"15-ef81a004f0e115040dcc1510f6302fa9"}}, -{"id":"shared-views","key":"shared-views","value":{"rev":"11-2c83145e6deb3493e44805c92b58929e"}}, -{"id":"sharedjs","key":"sharedjs","value":{"rev":"9-d43a861b02aa88ae22810f9771d774ec"}}, -{"id":"shell","key":"shell","value":{"rev":"39-7e2042bd6f485b827d53f5f727164d6f"}}, -{"id":"shelld","key":"shelld","value":{"rev":"3-118a62ff31d85e61b78bbd97333a7330"}}, -{"id":"shimify","key":"shimify","value":{"rev":"3-dde4d45bcbd2f6f7faaeb7f8c31d5e8b"}}, -{"id":"ship","key":"ship","value":{"rev":"3-5f294fc3841c901d6cea7f3862625d95"}}, -{"id":"shmakowiki","key":"shmakowiki","value":{"rev":"15-079ae4595d1ddf019d22d3d0ac49a188"}}, -{"id":"shorten","key":"shorten","value":{"rev":"3-ed1395b35faf4639e25dacbb038cf237"}}, -{"id":"shorttag","key":"shorttag","value":{"rev":"5-21d15e4cb8b62aeefe23edc99ff768ec"}}, -{"id":"shorturl","key":"shorturl","value":{"rev":"5-58f78b2a5318ec7da8a5f88739f2796b"}}, -{"id":"shorty","key":"shorty","value":{"rev":"9-17f804ff6e94295549cca6fd534b89de"}}, -{"id":"shotenjin","key":"shotenjin","value":{"rev":"3-91a7864d216a931095e9999133d3c41f"}}, -{"id":"should","key":"should","value":{"rev":"19-ed561071d434f319080fa5d0f647dd93"}}, -{"id":"shovel","key":"shovel","value":{"rev":"5-0168a02a8fa8d7856a5f4a5c18706724"}}, -{"id":"showdown","key":"showdown","value":{"rev":"3-7be5479804451db3faed968fa428af56"}}, -{"id":"shredder","key":"shredder","value":{"rev":"3-93e12ab8822ba5fe86d662f124a8ad1a"}}, -{"id":"shrtn","key":"shrtn","value":{"rev":"19-5883692283903e3166b478b98bcad999"}}, -{"id":"shuffle","key":"shuffle","value":{"rev":"3-71c96da1843abb468649ab0806e6b9d3"}}, -{"id":"sibilant","key":"sibilant","value":{"rev":"18-4dcb400eb9ed9cb1c7826d155807f6d0"}}, -{"id":"sideline","key":"sideline","value":{"rev":"15-84f284a9277718bf90f68dc9351500ae"}}, -{"id":"siesta","key":"siesta","value":{"rev":"5-ff99a009e6e5897c6322237c51d0a142"}}, -{"id":"sign","key":"sign","value":{"rev":"3-2cf70313707c6a046a6ceca61431ea5e"}}, -{"id":"signals","key":"signals","value":{"rev":"7-c756190260cd3ea43e6d44e4722164cb"}}, -{"id":"signature","key":"signature","value":{"rev":"3-fb7552c27ace0f9321ec7438057a37bf"}}, -{"id":"signed-request","key":"signed-request","value":{"rev":"13-9f1563535dcc1a83338a7375d8240f35"}}, -{"id":"signer","key":"signer","value":{"rev":"5-32c9909da2c4dfb284b858164c03cfe0"}}, -{"id":"simple-class","key":"simple-class","value":{"rev":"3-92c6eea4b3a6169db9d62b12f66268cb"}}, -{"id":"simple-ffmpeg","key":"simple-ffmpeg","value":{"rev":"9-b6dd4fe162803e6db434d71035637993"}}, -{"id":"simple-logger","key":"simple-logger","value":{"rev":"5-52b4c957b3671375547d623c6a9444be"}}, -{"id":"simple-mime","key":"simple-mime","value":{"rev":"9-34e4b1dcc26047b64459d924abab65cc"}}, -{"id":"simple-proxy","key":"simple-proxy","value":{"rev":"9-ad6cd76215717527dc6b226e1219e98e"}}, -{"id":"simple-rest-client","key":"simple-rest-client","value":{"rev":"3-8331b3ae49b52720adf2b72d5da0353d"}}, -{"id":"simple-schedule","key":"simple-schedule","value":{"rev":"7-432d3803e1cf9ab5830923a30fd312e0"}}, -{"id":"simple-server","key":"simple-server","value":{"rev":"25-d4d8ba53d3829f4ca51545a3c23a1244"}}, -{"id":"simple-settings","key":"simple-settings","value":{"rev":"3-497d7c5422f764f3738b3ef303ff9737"}}, -{"id":"simple-static","key":"simple-static","value":{"rev":"3-64c9cf84e5140d4285e451357ac83df5"}}, -{"id":"simple-xml-writer","key":"simple-xml-writer","value":{"rev":"3-d1ca18252c341b4430ab6e1240b5f571"}}, -{"id":"simple-xmpp","key":"simple-xmpp","value":{"rev":"11-b4c10de5e4e12a81c4486206d7fb6b40"}}, -{"id":"simple_pubsub","key":"simple_pubsub","value":{"rev":"9-22ae79856ca25b152f104e5d8bc93f12"}}, -{"id":"simpledb","key":"simpledb","value":{"rev":"13-6bf111aa18bffd86e65fd996525a6113"}}, -{"id":"simplegeo","key":"simplegeo","value":{"rev":"8-eb684eea019ae7e5fa0c087a9747367e"}}, -{"id":"simplegeo-client","key":"simplegeo-client","value":{"rev":"7-b2c976bbf8c145c6b0e1744630548084"}}, -{"id":"simplegeo-thrift","key":"simplegeo-thrift","value":{"rev":"3-bf6ddf40c020889fe28630217f38a442"}}, -{"id":"simplelogger","key":"simplelogger","value":{"rev":"3-36634d2543faecdeccc962422d149ffc"}}, -{"id":"simplesets","key":"simplesets","value":{"rev":"26-48fc18f94744c9b288945844b7cc9196"}}, -{"id":"simplesmtp","key":"simplesmtp","value":{"rev":"6-0952f0c5f43a8e94b11355774bbbe9e8"}}, -{"id":"simplydb","key":"simplydb","value":{"rev":"5-34659bf97bbb40f0ec4a3af14107dc31"}}, -{"id":"sin","key":"sin","value":{"rev":"6-0e8bd66b3e2c8c91efef14a3ddc79c53"}}, -{"id":"sink","key":"sink","value":{"rev":"8-4c49709009dfb5719935dba568a3398e"}}, -{"id":"sink-test","key":"sink-test","value":{"rev":"18-411afcb398102f245e92f2ce91897d3e"}}, -{"id":"sinon","key":"sinon","value":{"rev":"19-fa38010bb1bbed437273e1296660d598"}}, -{"id":"sinon-buster","key":"sinon-buster","value":{"rev":"5-a456f0e21b3edb647ad11179cd02354b"}}, -{"id":"sinon-nodeunit","key":"sinon-nodeunit","value":{"rev":"7-d60aa76cc41a6c9d9db4e8ae268b7b3c"}}, -{"id":"sip","key":"sip","value":{"rev":"17-02be6fb014d41fe66ab22ff2ae60a5b8"}}, -{"id":"sitemap","key":"sitemap","value":{"rev":"13-a6d1c830fdc8942c317c1ebe00efbb6d"}}, -{"id":"sizlate","key":"sizlate","value":{"rev":"3-a86c680c681299045f9aabecb99dc161"}}, -{"id":"sizzle","key":"sizzle","value":{"rev":"5-f00e18a80fb8a4f6bdbf11735e265720"}}, -{"id":"sk","key":"sk","value":{"rev":"33-b0b894d02b0211dae08baadfd84b46c2"}}, -{"id":"skeleton","key":"skeleton","value":{"rev":"5-3559721c222b99cd3f56acaaf706992f"}}, -{"id":"skillet","key":"skillet","value":{"rev":"3-0d6bbe21952f85967a5e12425691ee50"}}, -{"id":"skull.io","key":"skull.io","value":{"rev":"3-082e9d58f24ac59144fc130f6b54927e"}}, -{"id":"slang","key":"slang","value":{"rev":"7-3cd6390e3421f677e4e1b00fdf2d3ee1"}}, -{"id":"sleepless","key":"sleepless","value":{"rev":"5-1482568719534caf17f12daf0130ae0d"}}, -{"id":"sleepylib","key":"sleepylib","value":{"rev":"3-60e851f120e34b0726eb50a38b1e27e2"}}, -{"id":"sleight","key":"sleight","value":{"rev":"3-a0f16b17befee698b172074f84daf44c"}}, -{"id":"slick","key":"slick","value":{"rev":"3-596b7b7cf7b8881c55327e8bcf373700"}}, -{"id":"slickback","key":"slickback","value":{"rev":"9-c036e7393d0f9a463a263f287f3bcefd"}}, -{"id":"slide","key":"slide","value":{"rev":"14-83ade7490da699cf0ed99cec818ce3cd"}}, -{"id":"slippers","key":"slippers","value":{"rev":"5-0d657ed5fca4c0ed8b51c6d7f6eac08a"}}, -{"id":"slug","key":"slug","value":{"rev":"3-046a5bd74cc1edce30faa3b6ab239652"}}, -{"id":"slugr","key":"slugr","value":{"rev":"39-ac346964f547433fe34e637de682f81a"}}, -{"id":"smartdc","key":"smartdc","value":{"rev":"31-8c9db85e4548007a0ef87b7286229952"}}, -{"id":"smoosh","key":"smoosh","value":{"rev":"34-ba1c140a173ff8d1f9cdbe5e5addcc43"}}, -{"id":"smores","key":"smores","value":{"rev":"17-1aef1fa2e1675093c5aaf33436d83f5a"}}, -{"id":"smpp","key":"smpp","value":{"rev":"5-9be31b75aee4db09cfe5a2ceef4bea13"}}, -{"id":"smsified","key":"smsified","value":{"rev":"13-bb97eae0bbb6f4d5c4f2f391cd20e891"}}, -{"id":"smtp","key":"smtp","value":{"rev":"20-c3de67c5d0b3c4493293d9f55adb21ad"}}, -{"id":"smtpc","key":"smtpc","value":{"rev":"11-7c4e1207be6eb06350221af0134e8bd7"}}, -{"id":"smtpclient","key":"smtpclient","value":{"rev":"3-ba61ad5f0fd3fdd382e505abcde8c24e"}}, -{"id":"snake","key":"snake","value":{"rev":"15-384892bf8a5ebf222f6fe0ae321aaaa4"}}, -{"id":"snappy","key":"snappy","value":{"rev":"11-94f2d59347c10cc41b6f4a2dd2b0f15e"}}, -{"id":"sng","key":"sng","value":{"rev":"41-a1d3c6253dec5da8b3134ba3505924f5"}}, -{"id":"snip","key":"snip","value":{"rev":"3-cc51d232fff6a7d7b24588bd98e5613b"}}, -{"id":"snipes","key":"snipes","value":{"rev":"3-12af12ca83e15d056969ec76a3cc2ef0"}}, -{"id":"snippets","key":"snippets","value":{"rev":"13-d19c8a99287ec721d56ef9efdf3ce729"}}, -{"id":"snorkel","key":"snorkel","value":{"rev":"11-bc7ba5d1465c7d1ba71479087292615e"}}, -{"id":"snowball","key":"snowball","value":{"rev":"3-76cfbdb9f379ac635874b76d7ee2fd3b"}}, -{"id":"snpp","key":"snpp","value":{"rev":"8-4f10a9f2bff48e348303d8a143afaa6c"}}, -{"id":"snsclient","key":"snsclient","value":{"rev":"3-302ce1c7132a36ef909ce534a509e27f"}}, -{"id":"soap","key":"soap","value":{"rev":"7-10f361a406dfee3074adac0cea127d87"}}, -{"id":"socket-push","key":"socket-push","value":{"rev":"22-196553953d58d92c288678b1dcd49ba7"}}, -{"id":"socket-twitchat","key":"socket-twitchat","value":{"rev":"11-9b159a4610ea444eaae39baa3bf05280"}}, -{"id":"socket.io","key":"socket.io","value":{"rev":"95-c29c929613dd95aa5aea8a5e14f2573f"}}, -{"id":"socket.io-client","key":"socket.io-client","value":{"rev":"33-a3c79d917bb038f0ca72f9cb27180a66"}}, -{"id":"socket.io-cluster","key":"socket.io-cluster","value":{"rev":"5-83bdaf79d2243eaf3a59b45fc604dc1a"}}, -{"id":"socket.io-connect","key":"socket.io-connect","value":{"rev":"17-62f00efc3bff3a1b549cc5e346da996f"}}, -{"id":"socket.io-context","key":"socket.io-context","value":{"rev":"42-a029996765557776d72690db1f14c1fa"}}, -{"id":"socket.io-ender","key":"socket.io-ender","value":{"rev":"9-c4523af5f5cc815ee69c325c1e29ede4"}}, -{"id":"socket.io-juggernaut","key":"socket.io-juggernaut","value":{"rev":"6-b8b97b2df2c186f24487e027278ec975"}}, -{"id":"socket.io-sessions","key":"socket.io-sessions","value":{"rev":"11-2151ee14eb29543811a9e567bcf6811a"}}, -{"id":"socketstream","key":"socketstream","value":{"rev":"29-b198d27ad6a3c4f9b63bc467e85a54a3"}}, -{"id":"sockjs","key":"sockjs","value":{"rev":"21-a8d6534c55e8b3e33cf06516b59aa408"}}, -{"id":"socksified","key":"socksified","value":{"rev":"3-92350ec9889b8db9c3d34bdbc41b1f7b"}}, -{"id":"soda","key":"soda","value":{"rev":"24-04987191e2c4241fbfaf78263c83d121"}}, -{"id":"soda-runner","key":"soda-runner","value":{"rev":"5-da4e8078a7666404d2a5ab3267a5ef75"}}, -{"id":"sodn","key":"sodn","value":{"rev":"3-3ee6350723c54aad792c769947c6b05e"}}, -{"id":"sofa","key":"sofa","value":{"rev":"7-2f8ffd47ce19e6fb7e1ea2e02076955d"}}, -{"id":"solder","key":"solder","value":{"rev":"10-8f7ad0a60c2716ce65658047c4ae5361"}}, -{"id":"solr","key":"solr","value":{"rev":"11-56a295dff56d9f2a4a7293257ca793a4"}}, -{"id":"solr-client","key":"solr-client","value":{"rev":"7-a296273d32224eb241343cb98ded7b82"}}, -{"id":"sones","key":"sones","value":{"rev":"3-9ddbbdc44f3501917e701d3304eb91a5"}}, -{"id":"song","key":"song","value":{"rev":"7-967aa3a58702b3470996cd8e63b1b18d"}}, -{"id":"sorted","key":"sorted","value":{"rev":"3-47b6ec0f744aa04929d48a7d3d10f581"}}, -{"id":"sosumi","key":"sosumi","value":{"rev":"10-8c3980beb3d7c48d4cccf44a8d1d5ff7"}}, -{"id":"soundcloud","key":"soundcloud","value":{"rev":"7-9ee76aecd3d1946731a1173185796864"}}, -{"id":"soupselect","key":"soupselect","value":{"rev":"12-5fea60f4e52117a8212aa7add6c34278"}}, -{"id":"source","key":"source","value":{"rev":"7-57d6cae0530c7cba4a3932f0df129f20"}}, -{"id":"source-map","key":"source-map","value":{"rev":"6-7da8d2ccc104fa30a93ee165975f28e8"}}, -{"id":"spacesocket","key":"spacesocket","value":{"rev":"6-d1679084b0917f86d6c4e3ac89a89809"}}, -{"id":"spark","key":"spark","value":{"rev":"12-64d44ebde2a4b48aed3bc7814c63e773"}}, -{"id":"spark2","key":"spark2","value":{"rev":"28-918548a309f0d18eebd5c64966376959"}}, -{"id":"sparql","key":"sparql","value":{"rev":"3-8eec87fe9fcb4d07aef214858eada777"}}, -{"id":"sparql-orm","key":"sparql-orm","value":{"rev":"3-b2a7efa5622b0b478fdca3f9050800cc"}}, -{"id":"spatial","key":"spatial","value":{"rev":"3-d09d40af02a9c9e5150500cc66d75f8d"}}, -{"id":"spawn","key":"spawn","value":{"rev":"3-f882c01cf1bb538f5f4be78769e1b097"}}, -{"id":"spdy","key":"spdy","value":{"rev":"13-1fbf077bbb8bc87d5058648c0c66288b"}}, -{"id":"spec","key":"spec","value":{"rev":"15-1074d3a8b8332fcc1059fbb5c4f69a7a"}}, -{"id":"speck","key":"speck","value":{"rev":"21-652b0670953ba79e548f4e5d9ce3d923"}}, -{"id":"spectrum","key":"spectrum","value":{"rev":"28-21fb9eeffe2e63a5383371a44a58a1ad"}}, -{"id":"speller","key":"speller","value":{"rev":"6-91e03f89b09338cf8f38d2e64c1778ce"}}, -{"id":"sphericalmercator","key":"sphericalmercator","value":{"rev":"9-3affc61ae0d64854d77829da5414bbc5"}}, -{"id":"spider","key":"spider","value":{"rev":"3-cd04679891875dfb2bf67613514238eb"}}, -{"id":"spider-tdd","key":"spider-tdd","value":{"rev":"3-d95b6d680d053a063e6fab3fdae16261"}}, -{"id":"spine","key":"spine","value":{"rev":"9-2a5cd4733be1d78376814e78966d885a"}}, -{"id":"spine.app","key":"spine.app","value":{"rev":"43-1044b31d4c53ff5c741a16d49291b321"}}, -{"id":"spine.mobile","key":"spine.mobile","value":{"rev":"19-220f64c212a5f22b27d597e299263490"}}, -{"id":"split_er","key":"split_er","value":{"rev":"3-3419662807bf16f7b5b53998a4759246"}}, -{"id":"spludo","key":"spludo","value":{"rev":"14-d41915fcd1b50553f5b9e706b41d2894"}}, -{"id":"spm","key":"spm","value":{"rev":"9-28d6699288d580807091aafdf78dd479"}}, -{"id":"spore","key":"spore","value":{"rev":"44-1c50fb0e6f7c3447f34b1927c976201f"}}, -{"id":"spork","key":"spork","value":{"rev":"3-e90976749b649b88ab83b59785dba101"}}, -{"id":"spotify","key":"spotify","value":{"rev":"3-90c74506a69e08a41feeb23541ac0b4f"}}, -{"id":"spotify-metadata","key":"spotify-metadata","value":{"rev":"3-a546d3e59e40ec0be5d8524f3a1e7a60"}}, -{"id":"spotlight","key":"spotlight","value":{"rev":"3-bead50ac8f53311d539a420c74ea23e2"}}, -{"id":"spread","key":"spread","value":{"rev":"3-ad7bf6d948043fc6dd47a6fcec7da294"}}, -{"id":"spreadsheet","key":"spreadsheet","value":{"rev":"11-94030e23cc9c8e515c1f340656aea031"}}, -{"id":"spreadsheets","key":"spreadsheets","value":{"rev":"3-6563c479735b1b6599bf9602fa65ff38"}}, -{"id":"sprintf","key":"sprintf","value":{"rev":"10-56c5bc7a19ecf8dd92e24d4dca081059"}}, -{"id":"spruce","key":"spruce","value":{"rev":"7-1ea45ef3c5412dd2a6c1fe7b2a083d68"}}, -{"id":"spy","key":"spy","value":{"rev":"3-f5546fdbbec80ba97756d0d1fefa7923"}}, -{"id":"sql","key":"sql","value":{"rev":"5-6c41452f684418ba521666e977f46e54"}}, -{"id":"sqlite","key":"sqlite","value":{"rev":"9-18761259920b497360f581ff8051dcbb"}}, -{"id":"sqlite3","key":"sqlite3","value":{"rev":"51-f9c99537afd9826819c5f40105e50987"}}, -{"id":"sqlmw","key":"sqlmw","value":{"rev":"17-b05b0b089c0f3b1185f96dc19bf61cf5"}}, -{"id":"squeeze","key":"squeeze","value":{"rev":"6-5e517be339d9aa409cedfcc11d1883b1"}}, -{"id":"squish","key":"squish","value":{"rev":"15-2334d8412df59ddd2fce60c1f77954c7"}}, -{"id":"sqwish","key":"sqwish","value":{"rev":"28-cc159dd5fd420432a7724c46456f4958"}}, -{"id":"srand","key":"srand","value":{"rev":"16-22f98b1b1a208c22dfbe95aa889cd08e"}}, -{"id":"srcds","key":"srcds","value":{"rev":"3-bd79da47d36662609c0c75c713874fd1"}}, -{"id":"srs","key":"srs","value":{"rev":"32-c8c961ea10fc60fc428bddff133a8aba"}}, -{"id":"sserve","key":"sserve","value":{"rev":"3-957457395e2c61c20bcb727fc19fc4d4"}}, -{"id":"ssh","key":"ssh","value":{"rev":"3-c7dda694daa7ca1e264b494400edfa18"}}, -{"id":"ssh-agent","key":"ssh-agent","value":{"rev":"3-dbc87102ed1f17b7253a1901976dfa9d"}}, -{"id":"sshmq","key":"sshmq","value":{"rev":"3-052f36ca47cddf069a1700fc79a08930"}}, -{"id":"stache","key":"stache","value":{"rev":"11-9bb0239153147939a25fd20184f20fc6"}}, -{"id":"stack","key":"stack","value":{"rev":"7-e18abdce80008ac9e2feb66f3407fe67"}}, -{"id":"stack-trace","key":"stack-trace","value":{"rev":"13-9fe20c5a3e34a5e4472c6f4fdea86efc"}}, -{"id":"stack.static","key":"stack.static","value":{"rev":"7-ad064faf6255a632cefa71a6ff3c47f3"}}, -{"id":"stack2","key":"stack2","value":{"rev":"3-e5f8ea94c0dd2b4c7f5d3941d689622b"}}, -{"id":"stackedy","key":"stackedy","value":{"rev":"25-f988787b9b5720dece8ae3cb83a2bc12"}}, -{"id":"stage","key":"stage","value":{"rev":"7-d2931fcb473f63320067c3e75638924e"}}, -{"id":"stalker","key":"stalker","value":{"rev":"19-ece35be8695846fc766a71c0022d4ff7"}}, -{"id":"startupify","key":"startupify","value":{"rev":"11-3c87ef5e9ee33122cf3515a63b22c52a"}}, -{"id":"stash","key":"stash","value":{"rev":"10-41239a1df74b69fe7bb3e360f9a35ad1"}}, -{"id":"statechart","key":"statechart","value":{"rev":"6-97e6947b5bbaf14bdb55efa6dfa5e19c"}}, -{"id":"stately","key":"stately","value":{"rev":"6-f8a257cd9fdd84947ff2cf7357afc88b"}}, -{"id":"stathat","key":"stathat","value":{"rev":"3-b79b7bd50bb1e4dcc1301424104a5b36"}}, -{"id":"station","key":"station","value":{"rev":"5-92e6387138b1ee10976bd92dd48ea818"}}, -{"id":"statistics","key":"statistics","value":{"rev":"3-a1c3a03d833c6f02fde403950790e9b4"}}, -{"id":"stats","key":"stats","value":{"rev":"13-fe513ea6b3b5b6b31935fd3464ec5d3b"}}, -{"id":"std","key":"std","value":{"rev":"55-58a4f182c3f51996a0d60a6f575cfefd"}}, -{"id":"steam","key":"steam","value":{"rev":"5-bffdf677d2d1ae3e8236892e68a3dd66"}}, -{"id":"stem","key":"stem","value":{"rev":"36-4f1c38eff671ede0241038017a810132"}}, -{"id":"step","key":"step","value":{"rev":"8-048d7707a45af3a7824a478d296cc467"}}, -{"id":"stepc","key":"stepc","value":{"rev":"3-be85de2c02f4889fdf77fda791feefea"}}, -{"id":"stepper","key":"stepper","value":{"rev":"9-cc54000dc973835c38e139b30cbb10cc"}}, -{"id":"steps","key":"steps","value":{"rev":"5-3561591b425e1fff52dc397f9688feae"}}, -{"id":"stextile","key":"stextile","value":{"rev":"29-9a8b6de917df01d322847f112dcadadf"}}, -{"id":"stitch","key":"stitch","value":{"rev":"13-8a50e4a4f015d1afe346aa6b6c8646bd"}}, -{"id":"stitchup","key":"stitchup","value":{"rev":"7-fe14604e3a8b82f62c38d0cb3ccce61e"}}, -{"id":"stomp","key":"stomp","value":{"rev":"15-e0430c0be74cd20c5204b571999922f7"}}, -{"id":"stopwords","key":"stopwords","value":{"rev":"3-2dd9fade030cfcce85848c5b3b4116fc"}}, -{"id":"store","key":"store","value":{"rev":"9-5537cc0f4827044504e8dae9617c9347"}}, -{"id":"store.js","key":"store.js","value":{"rev":"22-116c9a6194703ea98512d89ec5865e3d"}}, -{"id":"stories","key":"stories","value":{"rev":"11-244ca52d0a41f70bc4dfa0aca0f82a40"}}, -{"id":"storify","key":"storify","value":{"rev":"5-605b197219e916df561dd7722af97e2e"}}, -{"id":"storify-templates","key":"storify-templates","value":{"rev":"3-0960756aa963cee21b679a59cef114a1"}}, -{"id":"storm","key":"storm","value":{"rev":"3-9052e6af8528d1bc0d96021dfa21dd3e"}}, -{"id":"stove","key":"stove","value":{"rev":"17-01c9f0e87398e6bfa03a764e89295e00"}}, -{"id":"str.js","key":"str.js","value":{"rev":"9-301f54edeebde3c5084c3a8071e2aa09"}}, -{"id":"strack","key":"strack","value":{"rev":"10-5acf78ae6a417a82b49c221d606b8fed"}}, -{"id":"strappy","key":"strappy","value":{"rev":"3-fb63a899ff82c0f1142518cc263dd632"}}, -{"id":"strata","key":"strata","value":{"rev":"31-de615eccbda796e2bea405c2806ec792"}}, -{"id":"stream-buffers","key":"stream-buffers","value":{"rev":"7-d8fae628da43d377dd4e982f5bf7b09b"}}, -{"id":"stream-handler","key":"stream-handler","value":{"rev":"7-333eb7dcf2aeb550f948ee2162b21be2"}}, -{"id":"stream-stack","key":"stream-stack","value":{"rev":"22-a70979df042e2ff760b2d900259c84a1"}}, -{"id":"streamer","key":"streamer","value":{"rev":"17-dd16e62ada55311a793fbf7963a920f3"}}, -{"id":"streamlib","key":"streamlib","value":{"rev":"3-5125b1e6a92290f8d7f5fdad71e13fc2"}}, -{"id":"streamline","key":"streamline","value":{"rev":"152-0931f5697340c62e05dcd1a741afd38f"}}, -{"id":"streamline-streams","key":"streamline-streams","value":{"rev":"3-3224030ecfbf5a8ac5d218ab56dee545"}}, -{"id":"streamline-util","key":"streamline-util","value":{"rev":"3-a8047ecf37b985ec836c552fd2bcbf78"}}, -{"id":"streamlogger","key":"streamlogger","value":{"rev":"3-43f93a109774591f1409b0b86c363623"}}, -{"id":"streamlogger-fixed","key":"streamlogger-fixed","value":{"rev":"3-6e48de9e269b4f5bf979c560190b0680"}}, -{"id":"strftime","key":"strftime","value":{"rev":"25-74130d5c9cbf91025ce91f0463a9b1b5"}}, -{"id":"string-color","key":"string-color","value":{"rev":"3-9f336bf06bd80b2d2338c216099421c7"}}, -{"id":"strscan","key":"strscan","value":{"rev":"8-3e0d182a8d0c786754c555c0ac12e9d9"}}, -{"id":"strtok","key":"strtok","value":{"rev":"8-a1a1da7946d62fabb6cca56fc218654b"}}, -{"id":"struct","key":"struct","value":{"rev":"3-ff0f9cb336df73a5a19a38e17633583c"}}, -{"id":"structr","key":"structr","value":{"rev":"21-69b3672dab234d0effec5a72a2b1791c"}}, -{"id":"sty","key":"sty","value":{"rev":"9-ce5691388abc3ccaff23030bff190914"}}, -{"id":"style","key":"style","value":{"rev":"7-342569887fb53caddc60d745706cd66e"}}, -{"id":"style-compile","key":"style-compile","value":{"rev":"5-6f8b86c94c5344ec280a28f025691996"}}, -{"id":"styleless","key":"styleless","value":{"rev":"5-c236b81c38193ad71d7ed7c5b571995d"}}, -{"id":"stylewriter","key":"stylewriter","value":{"rev":"3-25a3f83252b220d8db0aa70c8fc1da4f"}}, -{"id":"stylus","key":"stylus","value":{"rev":"135-8b69084f50a95c297d1044e48b39a6c9"}}, -{"id":"stylus-blueprint","key":"stylus-blueprint","value":{"rev":"5-50ec59a9fa161ca68dac765f2281c13e"}}, -{"id":"stylus-sprite","key":"stylus-sprite","value":{"rev":"27-db597a75467baaad94de287494e9c21e"}}, -{"id":"styout","key":"styout","value":{"rev":"9-9d9460bb9bfa253ed0b5fbeb27f7710a"}}, -{"id":"sugar","key":"sugar","value":{"rev":"5-2722426edc51a7703f5c37306b03a8c4"}}, -{"id":"sugardoll","key":"sugardoll","value":{"rev":"16-cfadf4e7108357297be180a3868130db"}}, -{"id":"suger-pod","key":"suger-pod","value":{"rev":"5-c812b763cf6cdd218c6a18e1a4e2a4ac"}}, -{"id":"sunny","key":"sunny","value":{"rev":"3-c26b62eef1eeeeef58a7ea9373df3b39"}}, -{"id":"superagent","key":"superagent","value":{"rev":"3-1b32cc8372b7713f973bb1e044e6a86f"}}, -{"id":"supermarket","key":"supermarket","value":{"rev":"20-afa8a26ecec3069717c8ca7e5811cc31"}}, -{"id":"supershabam-websocket","key":"supershabam-websocket","value":{"rev":"7-513117fb37b3ab7cdaeeae31589e212e"}}, -{"id":"supervisor","key":"supervisor","value":{"rev":"16-2c6c141d018ef8927acee79f31d466ff"}}, -{"id":"supervisord","key":"supervisord","value":{"rev":"7-359ba115e5e10b5c95ef1a7562ad7a45"}}, -{"id":"svg2jadepartial","key":"svg2jadepartial","value":{"rev":"9-4a6260dd5d7c14801e8012e3ba7510f5"}}, -{"id":"swake","key":"swake","value":{"rev":"5-6f780362f0317427752d87cc5c640021"}}, -{"id":"swarm","key":"swarm","value":{"rev":"43-f1a963a0aeb043bf69529a82798b3afc"}}, -{"id":"sweet","key":"sweet","value":{"rev":"5-333f4d3529f65ce53b037cc282e3671d"}}, -{"id":"swig","key":"swig","value":{"rev":"29-53294b9d4f350192cf65817692092bfa"}}, -{"id":"switchback","key":"switchback","value":{"rev":"3-e117371d415f4a3d4ad30e78f5ec28bf"}}, -{"id":"switchboard","key":"switchboard","value":{"rev":"3-504d6c1e45165c54fbb1d3025d5120d7"}}, -{"id":"swiz","key":"swiz","value":{"rev":"82-cfb7840376b57896fba469e5c6ff3786"}}, -{"id":"swizec-bitly","key":"swizec-bitly","value":{"rev":"3-a705807238b8ef3ff2d008910bc350c3"}}, -{"id":"sws","key":"sws","value":{"rev":"5-bc5e8558bde6c2ae971abdd448a006d2"}}, -{"id":"symbie","key":"symbie","value":{"rev":"5-3184f869ed386341a4cdc35d85efb62a"}}, -{"id":"symbox","key":"symbox","value":{"rev":"5-eed33350cbb763726335ef1df74a6591"}}, -{"id":"synapse","key":"synapse","value":{"rev":"3-a9672d5159c0268babbfb94d7554d4bb"}}, -{"id":"sync","key":"sync","value":{"rev":"65-89fa6b8ab2df135d57e0bba4e921ad3b"}}, -{"id":"synchro","key":"synchro","value":{"rev":"21-6a881704308298f1894509a5b59287ae"}}, -{"id":"synchronous","key":"synchronous","value":{"rev":"7-bf89d61f001d994429e0fd12c26c2676"}}, -{"id":"syncler","key":"syncler","value":{"rev":"2-12870522e069945fc12f7d0f612700ee"}}, -{"id":"syncrepl","key":"syncrepl","value":{"rev":"5-e9234a1d8a529bc0d1b01c3b77c69c30"}}, -{"id":"synct","key":"synct","value":{"rev":"3-3664581b69e6f40dabc90525217f46cd"}}, -{"id":"syndicate","key":"syndicate","value":{"rev":"7-1db2b05d6b3e55fa622c3c26df7f9cad"}}, -{"id":"syslog","key":"syslog","value":{"rev":"5-d52fbc739505a2a194faf9a32da39d23"}}, -{"id":"syslog-node","key":"syslog-node","value":{"rev":"15-039177b9c516fd8d0b31faf92aa73f6f"}}, -{"id":"system","key":"system","value":{"rev":"18-33152371e0696a853ddb8b2234a6dfea"}}, -{"id":"taazr-uglify","key":"taazr-uglify","value":{"rev":"7-5c63dc75aa7c973df102c298291be8a5"}}, -{"id":"table","key":"table","value":{"rev":"9-a8a46ddf3a7cab63a0228303305cc32e"}}, -{"id":"tache.io","key":"tache.io","value":{"rev":"7-5639c70dc56b0a6333b568af377bb216"}}, -{"id":"taco","key":"taco","value":{"rev":"3-97cfbd54b4053c9e01e18af7c3902d1a"}}, -{"id":"tad","key":"tad","value":{"rev":"3-529ebda7291e24ae020d5c2931ba22cd"}}, -{"id":"tafa-misc-util","key":"tafa-misc-util","value":{"rev":"19-52984b66029c7d5cc78d3e2ae88c98d6"}}, -{"id":"tag","key":"tag","value":{"rev":"3-80b0d526b10a26f41fe73978843a07b9"}}, -{"id":"taglib","key":"taglib","value":{"rev":"3-efd2e6bc818bf3b385df40dfae506fa5"}}, -{"id":"tail","key":"tail","value":{"rev":"21-09bce80ad6aa4b01c6a70825fd141fd4"}}, -{"id":"tails","key":"tails","value":{"rev":"14-3ba6976831b1388e14235622ab001681"}}, -{"id":"tamejs","key":"tamejs","value":{"rev":"39-9a3657941df3bd24c43b5473e9f3b4c8"}}, -{"id":"taobao-js-api","key":"taobao-js-api","value":{"rev":"7-d46c8b48364b823dabf808f2b30e1eb8"}}, -{"id":"tap","key":"tap","value":{"rev":"35-1b8e553cf848f5ab27711efa0e74a033"}}, -{"id":"tap-assert","key":"tap-assert","value":{"rev":"19-f2960c64bcfa6ce4ed73e870d8d9e3fa"}}, -{"id":"tap-consumer","key":"tap-consumer","value":{"rev":"3-3e38aafb6d2d840bdb20818efbc75df4"}}, -{"id":"tap-global-harness","key":"tap-global-harness","value":{"rev":"3-f32589814daf8c1816c1f5a24de4ad12"}}, -{"id":"tap-harness","key":"tap-harness","value":{"rev":"7-a5af01384152c452abc11d4e641e6157"}}, -{"id":"tap-producer","key":"tap-producer","value":{"rev":"3-2db67a9541c37c912d4de2576bb3caa0"}}, -{"id":"tap-results","key":"tap-results","value":{"rev":"5-b8800525438965e38dc586e6b5cb142d"}}, -{"id":"tap-runner","key":"tap-runner","value":{"rev":"11-3975c0f5044530b61158a029899f4c03"}}, -{"id":"tap-test","key":"tap-test","value":{"rev":"5-0a3bba26b6b94dae8b7f59712335ee98"}}, -{"id":"tar","key":"tar","value":{"rev":"6-94226dd7add6ae6a1e68088360a466e4"}}, -{"id":"tar-async","key":"tar-async","value":{"rev":"37-d6579d43c1ee2f41205f28b0cde5da23"}}, -{"id":"tar-js","key":"tar-js","value":{"rev":"5-6826f2aad965fb532c7403964ce80d85"}}, -{"id":"task","key":"task","value":{"rev":"3-81f72759a5b64dff88a01a4838cc4a23"}}, -{"id":"task-extjs","key":"task-extjs","value":{"rev":"14-c9ba76374805425c332e0c66725e885c"}}, -{"id":"task-joose-nodejs","key":"task-joose-nodejs","value":{"rev":"20-6b8e4d24323d3240d5ee790d00c0d96a"}}, -{"id":"task-joose-stable","key":"task-joose-stable","value":{"rev":"32-026eada52cd5dd17a680359daec4917a"}}, -{"id":"tasks","key":"tasks","value":{"rev":"5-84e8f83d0c6ec27b4f05057c48063d62"}}, -{"id":"tav","key":"tav","value":{"rev":"3-da9899817edd20f0c73ad09bdf540cc6"}}, -{"id":"taxman","key":"taxman","value":{"rev":"5-9b9c68db8a1c8efedad800026cb23ae4"}}, -{"id":"tbone","key":"tbone","value":{"rev":"3-5789b010d0b1f1c663750c894fb5c570"}}, -{"id":"tcp-proxy","key":"tcp-proxy","value":{"rev":"3-118c6dc26d11537cf157fe2f28b05af5"}}, -{"id":"teamgrowl","key":"teamgrowl","value":{"rev":"8-3d13200b3bfeeace0787f9f9f027216d"}}, -{"id":"teamgrowl-server","key":"teamgrowl-server","value":{"rev":"8-a14dc4a26c2c06a4d9509eaff6e24735"}}, -{"id":"telehash","key":"telehash","value":{"rev":"6-4fae3629c1e7e111ba3e486b39a29913"}}, -{"id":"telemail","key":"telemail","value":{"rev":"3-60928460428265fc8002ca61c7f23abe"}}, -{"id":"telemetry","key":"telemetry","value":{"rev":"5-1be1d37ef62dc786b0a0f0d2d7984eb1"}}, -{"id":"teleport","key":"teleport","value":{"rev":"36-5b55a43ba83f4fe1a547c04e29139c3d"}}, -{"id":"teleport-dashboard","key":"teleport-dashboard","value":{"rev":"7-4cbc728d7a3052848a721fcdd92dda30"}}, -{"id":"teleport-site","key":"teleport-site","value":{"rev":"3-aeb8c0a93b7b0bcd7a30fe33bf23808c"}}, -{"id":"telnet","key":"telnet","value":{"rev":"11-7a587104b94ce135315c7540eb3493f6"}}, -{"id":"telnet-protocol","key":"telnet-protocol","value":{"rev":"3-8fcee2ed02c2e603c48e51e90ae78a00"}}, -{"id":"temp","key":"temp","value":{"rev":"6-91ef505da0a0860a13c0eb1a5d2531e6"}}, -{"id":"tempPath","key":"tempPath","value":{"rev":"3-34f2c1937d97207245986c344136547c"}}, -{"id":"tempis","key":"tempis","value":{"rev":"3-b2c0989068cc8125a519d19b9c79ffb6"}}, -{"id":"template","key":"template","value":{"rev":"6-d0088c6a5a7610570920db0f5c950bf9"}}, -{"id":"template-engine","key":"template-engine","value":{"rev":"3-3746216e1e2e456dbb0fd2f9070c1619"}}, -{"id":"tengwar","key":"tengwar","value":{"rev":"3-645a00f03e1e9546631ac22c37e1f3b4"}}, -{"id":"tenjin","key":"tenjin","value":{"rev":"5-0925c7535455266125b7730296c66356"}}, -{"id":"teriaki","key":"teriaki","value":{"rev":"3-d3c17f70d8697c03f43a7eae75f8c089"}}, -{"id":"terminal","key":"terminal","value":{"rev":"11-0e024d173ee3c28432877c0c5f633f19"}}, -{"id":"termspeak","key":"termspeak","value":{"rev":"7-fdfc93dd7d0d65fe502cabca191d8496"}}, -{"id":"termutil","key":"termutil","value":{"rev":"5-bccf8377ff28bc1f07f8b4b44d1e2335"}}, -{"id":"test","key":"test","value":{"rev":"38-129620013bbd3ec13617c403b02b52f1"}}, -{"id":"test-cmd","key":"test-cmd","value":{"rev":"35-7dd417a80390c2c124c66273ae33bd07"}}, -{"id":"test-helper","key":"test-helper","value":{"rev":"3-7b29af65825fc46d0603a39cdc6c95b4"}}, -{"id":"test-report","key":"test-report","value":{"rev":"5-e51cd1069b6cc442707f0861b35851be"}}, -{"id":"test-report-view","key":"test-report-view","value":{"rev":"3-9ba670940a8235eaef9b957dde6379af"}}, -{"id":"test-run","key":"test-run","value":{"rev":"20-6de89383602e6843d9376a78778bec19"}}, -{"id":"test_it","key":"test_it","value":{"rev":"5-be5cd436b9145398fa88c15c1269b102"}}, -{"id":"testbed","key":"testbed","value":{"rev":"2-db233788f7e516f227fac439d9450ef4"}}, -{"id":"testharness","key":"testharness","value":{"rev":"46-787468cb68ec31b442327639dcc0a4e5"}}, -{"id":"testingey","key":"testingey","value":{"rev":"17-a7ad6a9ff5721ae449876f6448d6f22f"}}, -{"id":"testnode","key":"testnode","value":{"rev":"9-cb63c450b241806e2271cd56fe502395"}}, -{"id":"testosterone","key":"testosterone","value":{"rev":"35-278e8af2b59bb6caf56728c67f720c37"}}, -{"id":"testqueue","key":"testqueue","value":{"rev":"3-59c574aeb345ef2d6e207a342be3f497"}}, -{"id":"testrunner","key":"testrunner","value":{"rev":"7-152e7d4a97f6cf6f00e22140e1969664"}}, -{"id":"testy","key":"testy","value":{"rev":"5-e8f4c9f4a799b6f8ab4effc21c3073a0"}}, -{"id":"text","key":"text","value":{"rev":"6-58a79b0db4968d6ad233898744a75351"}}, -{"id":"textareaserver","key":"textareaserver","value":{"rev":"3-f032b1397eb5e6369e1ac0ad1e78f466"}}, -{"id":"textile","key":"textile","value":{"rev":"6-2a8db66876f0119883449012c9c54c47"}}, -{"id":"textual","key":"textual","value":{"rev":"3-0ad9d5d3403b239185bad403625fed19"}}, -{"id":"tf2logparser","key":"tf2logparser","value":{"rev":"5-ffbc427b95ffeeb013dc13fa2b9621e3"}}, -{"id":"tfe-express","key":"tfe-express","value":{"rev":"3-b68ac01185885bcd22fa430ddb97e757"}}, -{"id":"tfidf","key":"tfidf","value":{"rev":"13-988808af905397dc103a0edf8c7c8a9f"}}, -{"id":"theBasics","key":"theBasics","value":{"rev":"7-9ebef2e59e1bd2fb3544ed16e1dc627b"}}, -{"id":"thefunlanguage.com","key":"thefunlanguage.com","value":{"rev":"3-25d56a3a4f639af23bb058db541bffe0"}}, -{"id":"thelinuxlich-docco","key":"thelinuxlich-docco","value":{"rev":"7-2ac0969da67ead2fa8bc0b21880b1d6b"}}, -{"id":"thelinuxlich-vogue","key":"thelinuxlich-vogue","value":{"rev":"5-ebc0a28cf0ae447b7ebdafc51c460bc0"}}, -{"id":"thepusher","key":"thepusher","value":{"rev":"5-b80cce6f81b1cae7373cd802df34c05c"}}, -{"id":"thetvdb","key":"thetvdb","value":{"rev":"3-a3a017a90b752d8158bf6dfcbcfdf250"}}, -{"id":"thirty-two","key":"thirty-two","value":{"rev":"3-1d4761ba7c4fa475e0c69e9c96d6ac04"}}, -{"id":"thoonk","key":"thoonk","value":{"rev":"15-c62c90d7e9072d96302d3a534ce943bb"}}, -{"id":"thrift","key":"thrift","value":{"rev":"14-447a41c9b655ec06e8e4854d5a55523a"}}, -{"id":"throttle","key":"throttle","value":{"rev":"3-8a3b3c657c49ede67c883806fbfb4df6"}}, -{"id":"thyme","key":"thyme","value":{"rev":"5-f06104f10d43a2b4cbcc7621ed45eacf"}}, -{"id":"tiamat","key":"tiamat","value":{"rev":"44-810633d6cd5edaa0510fe0f38c02ad58"}}, -{"id":"tictoc","key":"tictoc","value":{"rev":"3-0be6cf95d4466595376dadd0fc08bd95"}}, -{"id":"tidy","key":"tidy","value":{"rev":"3-25116d4dcf6765ef2a09711ecc1e03c9"}}, -{"id":"tiers","key":"tiers","value":{"rev":"3-ffaa8ffe472fe703de8f0bbeb8af5621"}}, -{"id":"tilejson","key":"tilejson","value":{"rev":"5-76b990dd945fb412ed00a96edc86b59d"}}, -{"id":"tilelive","key":"tilelive","value":{"rev":"57-9283e846e77263ed6e7299680d6b4b06"}}, -{"id":"tilelive-mapnik","key":"tilelive-mapnik","value":{"rev":"31-30f871ede46789fc6a36f427a1a99fff"}}, -{"id":"tilemill","key":"tilemill","value":{"rev":"19-7b884c9d707dd34f21cb71e88b45fc73"}}, -{"id":"tilestream","key":"tilestream","value":{"rev":"76-3a29ba96ecdb6c860c211ae8f2d909a9"}}, -{"id":"timbits","key":"timbits","value":{"rev":"59-b48dde4a210ec9fb4c33c07a52bce61e"}}, -{"id":"time","key":"time","value":{"rev":"51-907f587206e6a27803a3570e42650adc"}}, -{"id":"timeTraveller","key":"timeTraveller","value":{"rev":"7-389de8c8e86daea495d14aeb2b77df38"}}, -{"id":"timeout","key":"timeout","value":{"rev":"11-8e53dedecfaf6c4f1086eb0f43c71325"}}, -{"id":"timer","key":"timer","value":{"rev":"5-a8bcbb898a807e6662b54ac988fb967b"}}, -{"id":"timerjs","key":"timerjs","value":{"rev":"3-7d24eb268746fdb6b5e9be93bec93f1b"}}, -{"id":"timespan","key":"timespan","value":{"rev":"12-315b2793cbf28a18cea36e97a3c8a55f"}}, -{"id":"timezone","key":"timezone","value":{"rev":"35-2741d5d3b68a953d4cb3a596bc2bc15e"}}, -{"id":"tiny","key":"tiny","value":{"rev":"9-a61d26d02ce39381f7e865ad82494692"}}, -{"id":"tld","key":"tld","value":{"rev":"3-5ce4b4e48a11413ad8a1f3bfd0d0b778"}}, -{"id":"tldextract","key":"tldextract","value":{"rev":"7-620962e27145bd9fc17dc406c38b0c32"}}, -{"id":"tmp","key":"tmp","value":{"rev":"23-20f5c14244d58f35bd3e970f5f65cc32"}}, -{"id":"tmpl","key":"tmpl","value":{"rev":"5-5894c206e15fa58ab9415706b9d53f1f"}}, -{"id":"tmpl-precompile","key":"tmpl-precompile","value":{"rev":"15-3db34b681596b258cae1dae8cc24119d"}}, -{"id":"tmppckg","key":"tmppckg","value":{"rev":"11-b3a13e1280eb9cbef182c1f3f24bd570"}}, -{"id":"tnetstrings","key":"tnetstrings","value":{"rev":"3-d6b8ed2390a3e38138cb01b82d820079"}}, -{"id":"toDataURL","key":"toDataURL","value":{"rev":"3-1ea3cb62666b37343089bb9ef48fbace"}}, -{"id":"toYaml","key":"toYaml","value":{"rev":"11-3c629e3859c70d57b1ae51b2ac459011"}}, -{"id":"tob","key":"tob","value":{"rev":"7-376c174d06a675855406cfcdcacf61f5"}}, -{"id":"tobi","key":"tobi","value":{"rev":"50-d8749ac3739b042afe82657802bc3ba8"}}, -{"id":"toddick","key":"toddick","value":{"rev":"13-db528ef519f57b8c1d752ad7270b4d05"}}, -{"id":"tokenizer","key":"tokenizer","value":{"rev":"5-f6524fafb16059b66074cd04bf248a03"}}, -{"id":"tokyotosho","key":"tokyotosho","value":{"rev":"5-7432e0207165d9c165fd73d2a23410d6"}}, -{"id":"tolang","key":"tolang","value":{"rev":"7-65dbdf56b039f680e61a1e1d7feb9fb1"}}, -{"id":"toolkit","key":"toolkit","value":{"rev":"13-58075a57a6069dc39f98e72d473a0c30"}}, -{"id":"tools","key":"tools","value":{"rev":"3-ba301d25cfc6ad71dd68c811ea97fa01"}}, -{"id":"topcube","key":"topcube","value":{"rev":"29-736b3816d410f626dbc4da663acb05aa"}}, -{"id":"torrent-search","key":"torrent-search","value":{"rev":"7-7dd48fac0c1f99f34fad7da365085b6c"}}, -{"id":"tosource","key":"tosource","value":{"rev":"5-13483e2c11b07611c26b37f2e76a0bf3"}}, -{"id":"tplcpl","key":"tplcpl","value":{"rev":"15-8ba1e6d14ad6b8eb71b703e22054ac0a"}}, -{"id":"tracejs","key":"tracejs","value":{"rev":"23-1ffec83afc19855bcbed8049a009a910"}}, -{"id":"traceur","key":"traceur","value":{"rev":"9-a48f7e4cb1fb452125d81c62c8ab628b"}}, -{"id":"traceurl","key":"traceurl","value":{"rev":"21-e016db44a86b124ea00411f155d884d4"}}, -{"id":"tracey","key":"tracey","value":{"rev":"5-76699aab64e89271cbb7df80a00d3583"}}, -{"id":"tracy","key":"tracy","value":{"rev":"5-412f78082ba6f4c3c7d5328cf66d2e10"}}, -{"id":"traits","key":"traits","value":{"rev":"10-3a37dbec4b78518c00c577f5e286a9b9"}}, -{"id":"tramp","key":"tramp","value":{"rev":"5-3b6d27b8b432b925b7c9fc088e84d8e4"}}, -{"id":"transcode","key":"transcode","value":{"rev":"6-a6494707bd94b5e6d1aa9df3dbcf8d7c"}}, -{"id":"transformer","key":"transformer","value":{"rev":"15-7738ac7c02f03d64f73610fbf7ed92a6"}}, -{"id":"transformjs","key":"transformjs","value":{"rev":"5-f1ab667c430838e1d3238e1f878998e2"}}, -{"id":"transitive","key":"transitive","value":{"rev":"43-841de40a5e3434bd51a1c8f19891f982"}}, -{"id":"translate","key":"translate","value":{"rev":"12-f3ddbbada2f109843c5422d83dd7a203"}}, -{"id":"transliteration.ua","key":"transliteration.ua","value":{"rev":"3-f847c62d8749904fc7de6abe075e619a"}}, -{"id":"transmission","key":"transmission","value":{"rev":"9-587eaa395430036f17b175bc439eabb6"}}, -{"id":"transmogrify","key":"transmogrify","value":{"rev":"5-3e415cd9420c66551cccc0aa91b11d98"}}, -{"id":"transporter","key":"transporter","value":{"rev":"6-698b696890bf01d751e9962bd86cfe7e"}}, -{"id":"traverse","key":"traverse","value":{"rev":"60-9432066ab44fbb0e913227dc62c953d9"}}, -{"id":"traverser","key":"traverser","value":{"rev":"11-1d50662f13134868a1df5019d99bf038"}}, -{"id":"treeeater","key":"treeeater","value":{"rev":"56-2c8a9fd3e842b221ab8da59c6d847327"}}, -{"id":"treelib","key":"treelib","value":{"rev":"13-212ccc836a943c8b2a5342b65ab9edf3"}}, -{"id":"trees","key":"trees","value":{"rev":"3-3ee9e9cf3fd8aa985e32b3d9586a7c0e"}}, -{"id":"trentm-datetime","key":"trentm-datetime","value":{"rev":"3-740a291379ddf97bda2aaf2ff0e1654d"}}, -{"id":"trentm-git","key":"trentm-git","value":{"rev":"3-b81ce3764a45e5d0862488fab9fac486"}}, -{"id":"trentm-hashlib","key":"trentm-hashlib","value":{"rev":"3-4b4175b6a8702bdb9c1fe5ac4786761b"}}, -{"id":"trial","key":"trial","value":{"rev":"3-cf77f189409517495dd8259f86e0620e"}}, -{"id":"trie","key":"trie","value":{"rev":"3-6cc3c209cf4aae5a4f92e1ca38c4c54c"}}, -{"id":"trollop","key":"trollop","value":{"rev":"6-75076593614c9cd51d61a76f73d2c5b5"}}, -{"id":"trollscript","key":"trollscript","value":{"rev":"5-fcf646075c5be575b9174f84d08fbb37"}}, -{"id":"trollscriptjs","key":"trollscriptjs","value":{"rev":"3-1dfd1acd3d15c0bd18ea407e3933b621"}}, -{"id":"tropo-webapi","key":"tropo-webapi","value":{"rev":"11-5106730dbd79167df38812ffaa912ded"}}, -{"id":"tropo-webapi-node","key":"tropo-webapi-node","value":{"rev":"15-483c64bcbf1dcadaea30e78d7bc3ebbc"}}, -{"id":"trundle","key":"trundle","value":{"rev":"3-2af32ed348fdedebd1077891bb22a756"}}, -{"id":"trust-reverse-proxy","key":"trust-reverse-proxy","value":{"rev":"6-ba5bed0849617e0390f0e24750bf5747"}}, -{"id":"trying","key":"trying","value":{"rev":"3-43b417160b178c710e0d85af6b3d56e7"}}, -{"id":"ttapi","key":"ttapi","value":{"rev":"51-727e47d8b383b387a498711c07ce4de6"}}, -{"id":"tubbs","key":"tubbs","value":{"rev":"7-b386e59f2205b22615a376f5ddee3eb0"}}, -{"id":"tuild","key":"tuild","value":{"rev":"13-4a2b92f95a0ee342c060974ce7a0021d"}}, -{"id":"tumbler","key":"tumbler","value":{"rev":"5-ff16653ab92d0af5e70d9caa88f3b7ed"}}, -{"id":"tumbler-sprite","key":"tumbler-sprite","value":{"rev":"3-604d25b7bb9e32b92cadd75aeb23997c"}}, -{"id":"tumblr","key":"tumblr","value":{"rev":"9-14d160f1f2854330fba300b3ea233893"}}, -{"id":"tumblr2","key":"tumblr2","value":{"rev":"7-29bb5d86501cdbcef889289fe7f4b51e"}}, -{"id":"tumblrrr","key":"tumblrrr","value":{"rev":"10-0c50379fbab7b39766e1a61379c39964"}}, -{"id":"tunguska","key":"tunguska","value":{"rev":"1-a6b24d2c2a5a9f091a9b6f13bac66927"}}, -{"id":"tupalocomapi","key":"tupalocomapi","value":{"rev":"3-a1cdf85a08784f62c2ec440a1ed90ad4"}}, -{"id":"turing","key":"turing","value":{"rev":"5-4ba083c8343718acb9450d96551b65c0"}}, -{"id":"tutti","key":"tutti","value":{"rev":"21-929cc205b3d8bc68f86aa63578e0af95"}}, -{"id":"tuttiserver","key":"tuttiserver","value":{"rev":"39-b3fe7cbaf2d43458dae061f37aa5ae18"}}, -{"id":"tuttiterm","key":"tuttiterm","value":{"rev":"7-6c0e9e7f6f137de0ee7c886351fdf373"}}, -{"id":"tvister","key":"tvister","value":{"rev":"7-963eab682ab09922a44fbca50c0ec019"}}, -{"id":"twbot","key":"twbot","value":{"rev":"15-923625f516566c977975b3da3d4bc46b"}}, -{"id":"tweasy","key":"tweasy","value":{"rev":"10-7215063e5729b1c114ef73f07a1368d3"}}, -{"id":"tweeter.js","key":"tweeter.js","value":{"rev":"3-bc8437157c11cf32eec168d7c71037bb"}}, -{"id":"tweetstream","key":"tweetstream","value":{"rev":"6-81a6bf2a3e29208e1c4c65a3958ee5d8"}}, -{"id":"twerk","key":"twerk","value":{"rev":"5-01cbfddf9ad25a67ff1e45ec39acb780"}}, -{"id":"twerp","key":"twerp","value":{"rev":"23-1b4726d1fef030a3dde6fae2cdfbb687"}}, -{"id":"twigjs","key":"twigjs","value":{"rev":"7-07b90e2c35c5c81d394b29086507de04"}}, -{"id":"twilio","key":"twilio","value":{"rev":"20-68d5439ecb1774226025e6f9125bbb86"}}, -{"id":"twilio-node","key":"twilio-node","value":{"rev":"13-84d31c2dc202df3924ed399289cbc1fc"}}, -{"id":"twiliode","key":"twiliode","value":{"rev":"3-6cbe432dd6c6d94d8a4faa6e0ea47dd3"}}, -{"id":"twill","key":"twill","value":{"rev":"5-3a0caf9c0e83ab732ae8ae61f4f17830"}}, -{"id":"twisted-deferred","key":"twisted-deferred","value":{"rev":"9-f35acecb8736d96582e1f9b62dd4ae47"}}, -{"id":"twitpic","key":"twitpic","value":{"rev":"11-55b11432a09edeec1189024f26a48153"}}, -{"id":"twitter","key":"twitter","value":{"rev":"60-9ad6368932c8a74ea5bd10dda993d74d"}}, -{"id":"twitter-client","key":"twitter-client","value":{"rev":"11-dc3da9e1724cf00aa86c1e7823cfd919"}}, -{"id":"twitter-connect","key":"twitter-connect","value":{"rev":"12-969292347a4251d121566169236a3091"}}, -{"id":"twitter-js","key":"twitter-js","value":{"rev":"24-251d0c54749e86bd544a15290e311370"}}, -{"id":"twitter-node","key":"twitter-node","value":{"rev":"12-a7ed6c69f05204de2e258f46230a05b6"}}, -{"id":"twitter-text","key":"twitter-text","value":{"rev":"16-978bda8ec4eaf68213d0ee54242feefa"}}, -{"id":"type","key":"type","value":{"rev":"3-c5b8b87cde9e27277302cb5cb6d00f85"}}, -{"id":"typecheck","key":"typecheck","value":{"rev":"5-79723661620bb0fb254bc7f888d6e937"}}, -{"id":"typed-array","key":"typed-array","value":{"rev":"3-89ac91e2a51a9e5872515d5a83691e83"}}, -{"id":"typhoon","key":"typhoon","value":{"rev":"23-2027c96b8fd971332848594f3b0526cb"}}, -{"id":"typogr","key":"typogr","value":{"rev":"13-2dfe00f08ee13e6b00a99df0a8f96718"}}, -{"id":"ua-parser","key":"ua-parser","value":{"rev":"14-d1a018354a583dba4506bdc0c04a416b"}}, -{"id":"uberblic","key":"uberblic","value":{"rev":"5-500704ed73f255eb5b86ad0a5e158bc9"}}, -{"id":"ucengine","key":"ucengine","value":{"rev":"5-1e8a91c813e39b6f1b9f988431bb65c8"}}, -{"id":"udon","key":"udon","value":{"rev":"3-9a819e835f88fc91272b6366c70d83c0"}}, -{"id":"ueberDB","key":"ueberDB","value":{"rev":"85-fa700e5a64efaf2e71de843d7175606c"}}, -{"id":"uglify-js","key":"uglify-js","value":{"rev":"30-9ac97132a90f94b0a3aadcd96ed51890"}}, -{"id":"uglify-js-middleware","key":"uglify-js-middleware","value":{"rev":"5-47bd98d7f1118f5cab617310d4022eb4"}}, -{"id":"uglifycss","key":"uglifycss","value":{"rev":"3-4eefc4632e6e61ec999e93a1e26e0c83"}}, -{"id":"ui","key":"ui","value":{"rev":"27-b6439c8fcb5feb1d8f722ac5a91727c0"}}, -{"id":"ukijs","key":"ukijs","value":{"rev":"13-a0d7b143104e6cc0760cbe7e61c4f293"}}, -{"id":"umecob","key":"umecob","value":{"rev":"19-960fef8b8b8468ee69096173baa63232"}}, -{"id":"underscore","key":"underscore","value":{"rev":"29-419857a1b0dc08311717d1f6066218b8"}}, -{"id":"underscore-data","key":"underscore-data","value":{"rev":"17-e763dd42ea6e4ab71bc442e9966e50e4"}}, -{"id":"underscore.date","key":"underscore.date","value":{"rev":"11-a1b5870b855d49a3bd37823a736e9f93"}}, -{"id":"underscore.inspector","key":"underscore.inspector","value":{"rev":"7-04d67b5bfe387391d461b11c6ddda231"}}, -{"id":"underscore.string","key":"underscore.string","value":{"rev":"31-4100a9e1f1d7e8dde007cc6736073e88"}}, -{"id":"underscorem","key":"underscorem","value":{"rev":"5-181dd113e62482020122e6a68f80cdc1"}}, -{"id":"underscorex","key":"underscorex","value":{"rev":"8-76b82cffecd4304822fbc346e6cebc1b"}}, -{"id":"underscorify","key":"underscorify","value":{"rev":"3-7bb03dccba21d30c50328e7d4878704e"}}, -{"id":"unicode","key":"unicode","value":{"rev":"45-2fc73b36aad2661e5bb2e703e62a6f71"}}, -{"id":"unicoder","key":"unicoder","value":{"rev":"3-6f6571d361217af7fea7c224ca8a1149"}}, -{"id":"unit","key":"unit","value":{"rev":"5-68847eeb11474765cf73f1e21ca4b839"}}, -{"id":"unite","key":"unite","value":{"rev":"3-a8812f4e77d1d1a9dc67c327d8e75b47"}}, -{"id":"unittest-jslint","key":"unittest-jslint","value":{"rev":"3-c371c63c7b68a32357becb7b6a02d048"}}, -{"id":"unixlib","key":"unixlib","value":{"rev":"3-41f4c2859ca92951cf40556faa4eacdb"}}, -{"id":"unlimit","key":"unlimit","value":{"rev":"3-f42d98066e6ebbc23ef67499845ac020"}}, -{"id":"unrequire","key":"unrequire","value":{"rev":"17-bc75241891ae005eb52844222daf8f97"}}, -{"id":"unshortener","key":"unshortener","value":{"rev":"15-0851cb8bc3c378c37a3df9760067a109"}}, -{"id":"unused","key":"unused","value":{"rev":"3-362e713349c4a5541564fa2de33d01ba"}}, -{"id":"upload","key":"upload","value":{"rev":"3-63aedcfb335754c3bca1675c4add51c4"}}, -{"id":"ups_node","key":"ups_node","value":{"rev":"15-fa6d0be3831ee09420fb703c4d508534"}}, -{"id":"upy","key":"upy","value":{"rev":"5-dab63054d02be71f9c2709659974a5e1"}}, -{"id":"uri","key":"uri","value":{"rev":"3-5baaa12433cff7539b1d39c0c7f62853"}}, -{"id":"uri-parser","key":"uri-parser","value":{"rev":"3-d7e81b08e8b3f6f5ac8c6b4220228529"}}, -{"id":"url","key":"url","value":{"rev":"3-0dfd5ec2904cb1f645fa7449dbb0ce52"}}, -{"id":"url-expander","key":"url-expander","value":{"rev":"21-73bf9fa3c98b15d5ef0ed9815d862953"}}, -{"id":"urllib","key":"urllib","value":{"rev":"5-b015944526c15589a1504d398dcb598a"}}, -{"id":"urn-parser","key":"urn-parser","value":{"rev":"3-08a35a166790ecf88729befd4ebc7bf1"}}, -{"id":"useless","key":"useless","value":{"rev":"3-9d7b7ab9d4811847ed6e99ce2226d687"}}, -{"id":"user-agent","key":"user-agent","value":{"rev":"16-ac00f085795346421242e3d4d75523ad"}}, -{"id":"useragent","key":"useragent","value":{"rev":"7-3184d8aba5540e6596da9e3635ee3c24"}}, -{"id":"useragent_parser","key":"useragent_parser","value":{"rev":"3-730427aba3f0825fd28850e96b1613d4"}}, -{"id":"utf7","key":"utf7","value":{"rev":"3-ad56e4c9ac5a509ff568a3cdf0ed074f"}}, -{"id":"utf8","key":"utf8","value":{"rev":"3-c530cad759dd6e4e471338a71a307434"}}, -{"id":"util","key":"util","value":{"rev":"3-0e55e3466bc3ea6aeda6384639e842c3"}}, -{"id":"utility-belt","key":"utility-belt","value":{"rev":"3-8de401b41ef742b3c0a144b99099771f"}}, -{"id":"utml","key":"utml","value":{"rev":"5-5f0f3de6f787056bd124ca98716fbc19"}}, -{"id":"uubench","key":"uubench","value":{"rev":"6-b6cb0756e35ce998b61bb9a6ea0f5732"}}, -{"id":"uuid","key":"uuid","value":{"rev":"13-3f014b236668ec5eb49d0a17ad54d397"}}, -{"id":"uuid-lib","key":"uuid-lib","value":{"rev":"3-3de40495439e240b5a41875c19c65b1a"}}, -{"id":"uuid-pure","key":"uuid-pure","value":{"rev":"19-b94e9f434901fe0a0bbfdfa06f785874"}}, -{"id":"uuid.js","key":"uuid.js","value":{"rev":"8-3232a97c9f4a2b601d207488350df01b"}}, -{"id":"v8-profiler","key":"v8-profiler","value":{"rev":"12-790c90391bcbec136e316e57b30a845c"}}, -{"id":"valentine","key":"valentine","value":{"rev":"35-dd4b0642aacaf833e1119fc42bb6e9df"}}, -{"id":"validate-json","key":"validate-json","value":{"rev":"5-6a71fb36b102b3a4c5f6cc35012518b3"}}, -{"id":"validations","key":"validations","value":{"rev":"5-7272c97d35e3269813d91f1ea06e7217"}}, -{"id":"validator","key":"validator","value":{"rev":"45-9983ff692c291143ba670b613e07ddab"}}, -{"id":"vanilla","key":"vanilla","value":{"rev":"3-2e1d05af0873386b7cd6d432f1e76217"}}, -{"id":"vapor","key":"vapor","value":{"rev":"1-e1f86f03c94a4b90bca347408dbc56ff"}}, -{"id":"vargs","key":"vargs","value":{"rev":"6-9e389cfd648034dd469348112eedb23b"}}, -{"id":"vash","key":"vash","value":{"rev":"9-85ade8b7249a0e8230e8f0aaf1c34e2a"}}, -{"id":"vbench","key":"vbench","value":{"rev":"3-059528251a566c6ac363e236212448ce"}}, -{"id":"vendor.js","key":"vendor.js","value":{"rev":"5-264b0f8a771cad113be6919b6004ff95"}}, -{"id":"ventstatus","key":"ventstatus","value":{"rev":"3-16aa39e22b149b23b64317991415f92c"}}, -{"id":"version-compare","key":"version-compare","value":{"rev":"3-a8d6eea31572fe973ddd98c0a8097bc6"}}, -{"id":"vertica","key":"vertica","value":{"rev":"37-035d50183c3ad3056db0d7a13c20005d"}}, -{"id":"vhost","key":"vhost","value":{"rev":"9-53bbdba14dae631a49e782d169e4fc5a"}}, -{"id":"vice","key":"vice","value":{"rev":"5-0f74600349f4540b1b104d4ebfec1309"}}, -{"id":"video","key":"video","value":{"rev":"10-65c0b603047188fe2b07cbd2e1c93fe7"}}, -{"id":"vie","key":"vie","value":{"rev":"5-94e23770c5a0510480a0bae07d846ebc"}}, -{"id":"view","key":"view","value":{"rev":"21-a2abdfc54ab732a906347090c68564a5"}}, -{"id":"vigilante","key":"vigilante","value":{"rev":"30-951541a8b2fc2364bb1ccd7cfae56482"}}, -{"id":"villain","key":"villain","value":{"rev":"10-8dbfc5db42230d8813e6cc61af14d575"}}, -{"id":"vine","key":"vine","value":{"rev":"17-e7ac5d190cacf0f2d17d27e37b2b9f5f"}}, -{"id":"vipe","key":"vipe","value":{"rev":"3-78996531221e08292b9ca3de6e19d578"}}, -{"id":"viralheat","key":"viralheat","value":{"rev":"3-b928ce797fd5955c766b6b7e9e9c8f54"}}, -{"id":"viralheat-sentiment","key":"viralheat-sentiment","value":{"rev":"3-5d083e0d141ecf36e06c7c2885b01b5c"}}, -{"id":"virustotal.js","key":"virustotal.js","value":{"rev":"3-074be49f7e877b154a2144ef844f78e9"}}, -{"id":"vk","key":"vk","value":{"rev":"9-48f53ea9ebe68c9d3af45eb601c71006"}}, -{"id":"vmcjs","key":"vmcjs","value":{"rev":"5-44d8dd906fa3530d2bfc2dfee7f498d4"}}, -{"id":"vogue","key":"vogue","value":{"rev":"38-891354d18638a26d5b5ba95933faae0e"}}, -{"id":"vogue-dtrejo","key":"vogue-dtrejo","value":{"rev":"3-3ef8d57d3b5c0aca297fe38c9040954f"}}, -{"id":"votizen-logger","key":"votizen-logger","value":{"rev":"4-ba0837a28693aba346fab885a3a8f315"}}, -{"id":"vows","key":"vows","value":{"rev":"80-43d6a81c184c06d73e692358e913821e"}}, -{"id":"vows-bdd","key":"vows-bdd","value":{"rev":"3-dc2a7013dd94b0b65a3ed3a8b69b680e"}}, -{"id":"vows-ext","key":"vows-ext","value":{"rev":"49-079067a01a681ca7df4dfaae74adb3fb"}}, -{"id":"vows-fluent","key":"vows-fluent","value":{"rev":"23-67625a035cedf90c8fed73722465ecea"}}, -{"id":"vows-is","key":"vows-is","value":{"rev":"68-45a13df422d08ab00cc8f785b6411741"}}, -{"id":"voyeur","key":"voyeur","value":{"rev":"5-56fe23f95df6ff648b67f1a9baf10d41"}}, -{"id":"vws.pubsub","key":"vws.pubsub","value":{"rev":"5-609497d66ab6a76c5201904e41b95715"}}, -{"id":"wabtools","key":"wabtools","value":{"rev":"7-b24cd7262720a29f59da103b7110325d"}}, -{"id":"wadey-ranger","key":"wadey-ranger","value":{"rev":"17-a0541bad0880ffc199e8b2ef4c80ddb8"}}, -{"id":"wagner","key":"wagner","value":{"rev":"3-4b76219928f409b7124e02c0518d6cb6"}}, -{"id":"wait","key":"wait","value":{"rev":"3-7f8a5f9c8e86da4f219353ae778868a9"}}, -{"id":"waiter","key":"waiter","value":{"rev":"5-680176b06719c9a8499725b0a617cdc9"}}, -{"id":"waitlist","key":"waitlist","value":{"rev":"17-f3b2a4cf58b940c3839debda23c12b8e"}}, -{"id":"wake_on_lan","key":"wake_on_lan","value":{"rev":"6-1295bb5c618495b74626aaaa1c644d32"}}, -{"id":"walk","key":"walk","value":{"rev":"22-c05e1e1252a59b1048a0b6464631d08b"}}, -{"id":"walker","key":"walker","value":{"rev":"18-e8a20efc286234fb20789dc68cd04cd1"}}, -{"id":"warp","key":"warp","value":{"rev":"19-c7f17d40291984cd27f1d57fe764a5d2"}}, -{"id":"watch","key":"watch","value":{"rev":"18-3bc43d36ea1dbf69b93d4ea3d9534d44"}}, -{"id":"watch-less","key":"watch-less","value":{"rev":"5-f69a778ee58c681ad3b24a766576c016"}}, -{"id":"watch-tree","key":"watch-tree","value":{"rev":"5-316b60e474c3ae6e97f7cdb06b65af78"}}, -{"id":"watch.js","key":"watch.js","value":{"rev":"11-8c02c7429f90ca5e756a131d85bd5a32"}}, -{"id":"watch_dir","key":"watch_dir","value":{"rev":"5-df0a592508e1e13f5d24c2863733a8b9"}}, -{"id":"watchable","key":"watchable","value":{"rev":"3-f8694ff0c3add9a1310f0980e24ea23b"}}, -{"id":"watchersto","key":"watchersto","value":{"rev":"5-06665e682f58f61831d41d08b4ea12e7"}}, -{"id":"watchman","key":"watchman","value":{"rev":"11-956ad2175d0c5b52e82988a697474244"}}, -{"id":"watchn","key":"watchn","value":{"rev":"15-9685afa8b501f8cd7e068beed1264cfe"}}, -{"id":"wave","key":"wave","value":{"rev":"7-d13054ac592b3b4f81147b6bc7a91ea1"}}, -{"id":"wax","key":"wax","value":{"rev":"71-2e8877b0b6df27c1375dcd7f6bbdb4b7"}}, -{"id":"waz-storage-js","key":"waz-storage-js","value":{"rev":"15-1aaa07353c3d25f5794fa004a23c4dfa"}}, -{"id":"wd","key":"wd","value":{"rev":"19-20c4ee8b83057ece691f9669e288059e"}}, -{"id":"weak","key":"weak","value":{"rev":"3-b774b8be74f33c843df631aa07854104"}}, -{"id":"web","key":"web","value":{"rev":"3-c571dee306020f6f92c7a3150e8023b1"}}, -{"id":"webapp","key":"webapp","value":{"rev":"5-60525be5734cf1d02a77508e5f46bafa"}}, -{"id":"webfonts","key":"webfonts","value":{"rev":"5-d7be242801702fd1eb728385b8982107"}}, -{"id":"webgenjs","key":"webgenjs","value":{"rev":"3-ac6be47eedcbb2561babdb9495d60f29"}}, -{"id":"webgl","key":"webgl","value":{"rev":"18-21cd40f6c7e4943a2d858ed813d3c45d"}}, -{"id":"webhookit-comment","key":"webhookit-comment","value":{"rev":"5-1fbed3d75bf485433bdcac4fac625eab"}}, -{"id":"webhookit-ejs","key":"webhookit-ejs","value":{"rev":"5-9b76f543e9c0941d0245cb3bfd2cc64e"}}, -{"id":"webhookit-email","key":"webhookit-email","value":{"rev":"5-d472fde4f101d55d029a29777bbdb952"}}, -{"id":"webhookit-http","key":"webhookit-http","value":{"rev":"13-9f6f05cdb03f45a2227b9cd820565e63"}}, -{"id":"webhookit-jsonparse","key":"webhookit-jsonparse","value":{"rev":"3-6d49bf8a9849130d9bbc5b0d6fb0bf67"}}, -{"id":"webhookit-jsonpath","key":"webhookit-jsonpath","value":{"rev":"5-7acaf50267274584dca1cc5c1e77ce2e"}}, -{"id":"webhookit-objectbuilder","key":"webhookit-objectbuilder","value":{"rev":"5-e63fb26621929f3ab8d8519556116b30"}}, -{"id":"webhookit-soupselect","key":"webhookit-soupselect","value":{"rev":"9-726f2f4794437632032058bc81e6ee5d"}}, -{"id":"webhookit-xml2js","key":"webhookit-xml2js","value":{"rev":"3-ec959e474ecb3a163f2991767594a60e"}}, -{"id":"webhookit-yql","key":"webhookit-yql","value":{"rev":"9-c6ae87a8cc55d33901485ee7c3895ef8"}}, -{"id":"webify","key":"webify","value":{"rev":"3-86810874abf2274d1387ee748987b627"}}, -{"id":"webjs","key":"webjs","value":{"rev":"103-593a1e4e69d8db6284ecf4fce01b4668"}}, -{"id":"webmake","key":"webmake","value":{"rev":"13-f6588093a487212a151d1c00c26de7b4"}}, -{"id":"webmetrics","key":"webmetrics","value":{"rev":"3-44a428fd2ecb1b1bf50c33157750dd16"}}, -{"id":"webrepl","key":"webrepl","value":{"rev":"21-d6dcdbb59186092d9a0f1977c69394a5"}}, -{"id":"webservice","key":"webservice","value":{"rev":"18-05038f1cf997cff1ed81e783485680aa"}}, -{"id":"webshell","key":"webshell","value":{"rev":"3-05c431cf961a9dbaee1dfd95237e189a"}}, -{"id":"websocket","key":"websocket","value":{"rev":"33-7c20d55a88f187d7b398525824159f67"}}, -{"id":"websocket-client","key":"websocket-client","value":{"rev":"12-26a3530b9e6d465f472c791db01c9fc3"}}, -{"id":"websocket-protocol","key":"websocket-protocol","value":{"rev":"3-e52a8496f70686c289087149aee8b359"}}, -{"id":"websocket-server","key":"websocket-server","value":{"rev":"46-9f69e2f9408eb196b3a1aa990e5b5ac2"}}, -{"id":"websockets","key":"websockets","value":{"rev":"3-5535fcb4ae144909f021ee067eec7b2a"}}, -{"id":"webworker","key":"webworker","value":{"rev":"16-f7a4c758b176c6e464c93b6a9f79283b"}}, -{"id":"weibo","key":"weibo","value":{"rev":"21-8a50310389b2f43d8a7cb14e138eb122"}}, -{"id":"weld","key":"weld","value":{"rev":"7-16601ac41d79b3a01e4d2615035376ed"}}, -{"id":"whatlang","key":"whatlang","value":{"rev":"5-f7b10a0f8c3b6579c81d1d1222aeccd7"}}, -{"id":"wheat","key":"wheat","value":{"rev":"16-f6a97282f521edb7f2b0e5edc9577ce0"}}, -{"id":"which","key":"which","value":{"rev":"7-e5fdcb208715f2201d3911caf8a67042"}}, -{"id":"whiskers","key":"whiskers","value":{"rev":"9-2cfd73cebeaf8ce3cb1591e825380621"}}, -{"id":"whiskey","key":"whiskey","value":{"rev":"49-55367718b9067ff2bcb7fbb89327587b"}}, -{"id":"whisperjs","key":"whisperjs","value":{"rev":"19-e2182c72ea24b8c40e12b0c1027eb60d"}}, -{"id":"wikimapia","key":"wikimapia","value":{"rev":"11-8d1a314e8c827236e21e0aabc6e5efd9"}}, -{"id":"wikiminute","key":"wikiminute","value":{"rev":"11-d031a2c7d41bcecb52ac9c7bb5e75e8e"}}, -{"id":"wikiwym","key":"wikiwym","value":{"rev":"3-c0fd4c9b6b93b3a8b14021c2ebae5b0c"}}, -{"id":"wiky","key":"wiky","value":{"rev":"6-be49acce152652e9219a32da1dfd01ea"}}, -{"id":"wildfile","key":"wildfile","value":{"rev":"9-16a05032f890f07c72a5f48c3a6ffbc0"}}, -{"id":"willful.js","key":"willful.js","value":{"rev":"3-3bb957b0a5fc1b4b6c15bace7e8f5902"}}, -{"id":"wilson","key":"wilson","value":{"rev":"14-d4bf88484f1b1cf86b07f4b74f26991d"}}, -{"id":"window","key":"window","value":{"rev":"3-ea84e74fd5556ff662ff47f40522cfa2"}}, -{"id":"windshaft","key":"windshaft","value":{"rev":"21-1d31e4eb7482d15b97c919a4b051ea9c"}}, -{"id":"windtunnel","key":"windtunnel","value":{"rev":"5-0d2ef7faed1b221a3eaa581480adad64"}}, -{"id":"wingrr","key":"wingrr","value":{"rev":"9-a599fad3e0c74895aa266c61805b76cb"}}, -{"id":"wings","key":"wings","value":{"rev":"3-cfcfd262d905cd3be1d1bae82fafd9f0"}}, -{"id":"winston","key":"winston","value":{"rev":"111-13acba5a9ba6d4f19469acb4122d72ea"}}, -{"id":"winston-amqp","key":"winston-amqp","value":{"rev":"5-61408e1dde45f974a995dd27905b8831"}}, -{"id":"winston-mongodb","key":"winston-mongodb","value":{"rev":"9-ae755237a8faa8f5a0b92029c236691a"}}, -{"id":"winston-redis","key":"winston-redis","value":{"rev":"3-1fb861edc109ed5cbd735320124ba103"}}, -{"id":"winston-riak","key":"winston-riak","value":{"rev":"15-3f2923a73386524d851244ace1bece98"}}, -{"id":"winston-syslog","key":"winston-syslog","value":{"rev":"9-7f256bd63aebec19edea47f80de21dfd"}}, -{"id":"winstoon","key":"winstoon","value":{"rev":"9-d719ca7abfeeaa468d1b431c24836089"}}, -{"id":"wirez","key":"wirez","value":{"rev":"5-5c5d0768485ed11c2b80a8a6a3699c39"}}, -{"id":"wobot","key":"wobot","value":{"rev":"9-176ed86fd9d94a7e94efb782c7512533"}}, -{"id":"word-generator","key":"word-generator","value":{"rev":"5-a2c67f11474a8925eb67f04369ac068a"}}, -{"id":"wordnik","key":"wordnik","value":{"rev":"3-4e371fbf7063ced50bbe726079fda1ec"}}, -{"id":"wordpress-auth","key":"wordpress-auth","value":{"rev":"5-05eef01542e00a88418d2885efb4c9ad"}}, -{"id":"wordwrap","key":"wordwrap","value":{"rev":"5-a728ce2cdeab69b71d40fe7c1c41d7c1"}}, -{"id":"wordy","key":"wordy","value":{"rev":"3-bc220ca3dbd008aee932c551cfbdcc6b"}}, -{"id":"worker","key":"worker","value":{"rev":"6-3b03aa764c9fac66ec5c1773e9abc43b"}}, -{"id":"worker-pool","key":"worker-pool","value":{"rev":"3-e3550e704b48f5799a4cc02af7d27355"}}, -{"id":"workflow","key":"workflow","value":{"rev":"3-817c6c77cbb2f332ea9bdddf3b565c00"}}, -{"id":"workhorse","key":"workhorse","value":{"rev":"30-c39ae2ddd867a137073a289c1709f229"}}, -{"id":"world-db","key":"world-db","value":{"rev":"6-eaef1beb6abbebd3e903a28a7f46aa81"}}, -{"id":"worm","key":"worm","value":{"rev":"7-00db15dc9cfd48777cce32fb93e1df6b"}}, -{"id":"wormhole","key":"wormhole","value":{"rev":"37-21e2db062666040c477a7042fc2ffc9d"}}, -{"id":"wrap","key":"wrap","value":{"rev":"3-aded14c091b730813bd24d92cae45cd6"}}, -{"id":"wrench","key":"wrench","value":{"rev":"12-57d3da63e34e59e1f5d1b3bde471e31f"}}, -{"id":"wsclient","key":"wsclient","value":{"rev":"17-f962faf4f6c9d4eda9111e90b2d0735d"}}, -{"id":"wscomm","key":"wscomm","value":{"rev":"47-80affda45da523e57c87b8d43ef73ec9"}}, -{"id":"wsscraper","key":"wsscraper","value":{"rev":"3-94a84fe9b3df46b8d6ad4851e389dae1"}}, -{"id":"wu","key":"wu","value":{"rev":"4-f307d3a00e7a1212b7949bcb96161088"}}, -{"id":"wunderapi","key":"wunderapi","value":{"rev":"17-31e3b991e97931022992b97f9441b9af"}}, -{"id":"wurfl-client","key":"wurfl-client","value":{"rev":"3-a8c3e454d6d9c9b23b7290eb64866e80"}}, -{"id":"wwwdude","key":"wwwdude","value":{"rev":"19-eb8192461b8864af59740f9b44e168ca"}}, -{"id":"x","key":"x","value":{"rev":"9-10403358980aba239b7a9af78175589d"}}, -{"id":"x-core","key":"x-core","value":{"rev":"13-f04b063855da231539d1945a35802d9e"}}, -{"id":"x11","key":"x11","value":{"rev":"5-e5b1435c0aa29207c90fdeaa87570bb7"}}, -{"id":"xappy-async_testing","key":"xappy-async_testing","value":{"rev":"3-747c934540267492b0e6d3bb6d65964c"}}, -{"id":"xappy-pg","key":"xappy-pg","value":{"rev":"4-119e8f93af1e4976900441ec5e3bb0b9"}}, -{"id":"xcbjs","key":"xcbjs","value":{"rev":"3-095a693f9ac7b4e2c319f79d95eb3e95"}}, -{"id":"xemplar","key":"xemplar","value":{"rev":"9-2ccde68ffac8e66aa8013b98d82ff20c"}}, -{"id":"xfer","key":"xfer","value":{"rev":"3-c1875506ed132c6a2b5e7d7eaff9df14"}}, -{"id":"xjs","key":"xjs","value":{"rev":"11-05d5cd002298894ed582a9f5bff5a762"}}, -{"id":"xjst","key":"xjst","value":{"rev":"11-68774970fc7f413ff620fb0d50d8a1d9"}}, -{"id":"xkcdbot","key":"xkcdbot","value":{"rev":"3-7cc9affb442c9ae4c7a109a0b72c2600"}}, -{"id":"xml","key":"xml","value":{"rev":"12-0d1a69f11767de47bfc4a0fce566e36e"}}, -{"id":"xml-markup","key":"xml-markup","value":{"rev":"6-100a92d1f7fe9444e285365dce8203de"}}, -{"id":"xml-simple","key":"xml-simple","value":{"rev":"3-d60e388df5b65128a5e000381643dd31"}}, -{"id":"xml-stream","key":"xml-stream","value":{"rev":"13-44d6ee47e00c91735e908e69c5dffc6b"}}, -{"id":"xml2js","key":"xml2js","value":{"rev":"27-434297bcd9db7628c57fcc9bbbe2671e"}}, -{"id":"xml2js-expat","key":"xml2js-expat","value":{"rev":"15-a8c5c0ba64584d07ed94c0a14dc55fe8"}}, -{"id":"xml2json","key":"xml2json","value":{"rev":"17-fa740417285834be1aa4d95e1ed6d9b9"}}, -{"id":"xmlbuilder","key":"xmlbuilder","value":{"rev":"32-63e3be32dda07c6e998866cddd8a879e"}}, -{"id":"xmlhttprequest","key":"xmlhttprequest","value":{"rev":"9-570fba8bfd5b0958c258cee7309c4b54"}}, -{"id":"xmlrpc","key":"xmlrpc","value":{"rev":"15-ae062e34a965e7543d4fd7b6c3f29cb7"}}, -{"id":"xmpp-client","key":"xmpp-client","value":{"rev":"6-2d123b4666b5deda71f071295cfca793"}}, -{"id":"xmpp-muc","key":"xmpp-muc","value":{"rev":"6-d95b8bca67f406a281a27aa4d89f6f46"}}, -{"id":"xmpp-server","key":"xmpp-server","value":{"rev":"9-44374bc3398cc74f2a36ff973fa0d35f"}}, -{"id":"xp","key":"xp","value":{"rev":"7-781a5e1da74332f25c441f627cd0b4ea"}}, -{"id":"xregexp","key":"xregexp","value":{"rev":"3-c34025fdeb13c18389e737a4b3d4ddf7"}}, -{"id":"xsd","key":"xsd","value":{"rev":"5-566590ccb8923453175a3f1f3b6cbf24"}}, -{"id":"ya-csv","key":"ya-csv","value":{"rev":"28-d485b812914b3c3f5d7e9c4bcee0c3ea"}}, -{"id":"yabble","key":"yabble","value":{"rev":"5-5370a53003a122fe40a16ed2b0e5cead"}}, -{"id":"yaconfig","key":"yaconfig","value":{"rev":"3-f82a452260b010cc5128818741c46017"}}, -{"id":"yah","key":"yah","value":{"rev":"3-cfc0c10f85a9e3076247ca350077e90f"}}, -{"id":"yajet","key":"yajet","value":{"rev":"5-6f7f24335436c84081adf0bbb020b151"}}, -{"id":"yajl","key":"yajl","value":{"rev":"3-8ac011e5a00368aad8d58d95a64c7254"}}, -{"id":"yaml","key":"yaml","value":{"rev":"16-732e5cb6dc10eefeb7dae959e677fb5b"}}, -{"id":"yaml-config","key":"yaml-config","value":{"rev":"3-fb817000005d48526a106ecda5ac5435"}}, -{"id":"yamlish","key":"yamlish","value":{"rev":"3-604fb4f1de9d5aa5ed48432c7db4a8a1"}}, -{"id":"yamlparser","key":"yamlparser","value":{"rev":"13-130a82262c7f742c2a1e26fc58983503"}}, -{"id":"yammer-js","key":"yammer-js","value":{"rev":"3-16ec240ab0b26fa9f0513ada8c769c1f"}}, -{"id":"yanc","key":"yanc","value":{"rev":"15-33d713f0dee42efe8306e6b2a43fe336"}}, -{"id":"yanlibs","key":"yanlibs","value":{"rev":"3-e481217d43b9f79b80e22538eabadabc"}}, -{"id":"yanop","key":"yanop","value":{"rev":"5-6c407ce6f1c18b6bac37ad5945ff8fed"}}, -{"id":"yanx","key":"yanx","value":{"rev":"6-f4c4d255526eaa922baa498f37d38fe0"}}, -{"id":"yasession","key":"yasession","value":{"rev":"7-6e2598123d41b33535b88e99eb87828f"}}, -{"id":"yelp","key":"yelp","value":{"rev":"3-5c769f488a65addba313ff3b6256c365"}}, -{"id":"yeti","key":"yeti","value":{"rev":"50-65338f573ed8f799ec9b1c9bd2643e34"}}, -{"id":"youtube","key":"youtube","value":{"rev":"7-5020698499af8946e9578864a21f6ac5"}}, -{"id":"youtube-dl","key":"youtube-dl","value":{"rev":"76-a42f09b7bf87e7e6157d5d9835cca8a7"}}, -{"id":"youtube-js","key":"youtube-js","value":{"rev":"5-e2d798a185490ad98cb57c2641c4658e"}}, -{"id":"yproject","key":"yproject","value":{"rev":"7-70cb1624de9e8321c67f1f348dc80ff4"}}, -{"id":"yql","key":"yql","value":{"rev":"18-d19123b254abfb097648c4a242513fd3"}}, -{"id":"yubico","key":"yubico","value":{"rev":"9-0e2bd84479a68e1f12c89800a4049053"}}, -{"id":"yui-cli","key":"yui-cli","value":{"rev":"7-0186f7278da8734861109799b9123197"}}, -{"id":"yui-compressor","key":"yui-compressor","value":{"rev":"12-5804d78bb24bb2d3555ca2e28ecc6b70"}}, -{"id":"yui-repl","key":"yui-repl","value":{"rev":"25-9b202e835a46a07be931e6529a4ccb61"}}, -{"id":"yui3","key":"yui3","value":{"rev":"93-4decc441f19acf0ab5abd1a81e3cbb40"}}, -{"id":"yui3-2in3","key":"yui3-2in3","value":{"rev":"10-dc0429fe818aceeca80d075613c9547a"}}, -{"id":"yui3-bare","key":"yui3-bare","value":{"rev":"33-60779e2088efe782b437ecc053c01e2f"}}, -{"id":"yui3-base","key":"yui3-base","value":{"rev":"33-89017bb5dfde621fc7d179f2939e3d1b"}}, -{"id":"yui3-core","key":"yui3-core","value":{"rev":"17-3759fa0072e24f4bb29e22144cb3dda3"}}, -{"id":"yui3-gallery","key":"yui3-gallery","value":{"rev":"38-9ce6f7a60b2f815337767249d1827951"}}, -{"id":"yui3-mocha","key":"yui3-mocha","value":{"rev":"3-83ff9c42a37f63de0c132ce6cb1ad282"}}, -{"id":"yuitest","key":"yuitest","value":{"rev":"17-b5dd4ad4e82b6b310d7a6e9103570779"}}, -{"id":"zap","key":"zap","value":{"rev":"15-9b9b7c6badb0a9fd9d469934e9be12c0"}}, -{"id":"zappa","key":"zappa","value":{"rev":"26-d193767b488e778db41455924001b1fb"}}, -{"id":"zen","key":"zen","value":{"rev":"7-23a260d4379816a5c931c2e823bda1ae"}}, -{"id":"zeppelin","key":"zeppelin","value":{"rev":"7-9db2e313fe323749e259be91edcdee8e"}}, -{"id":"zeromq","key":"zeromq","value":{"rev":"24-7cb4cec19fb3a03871900ac3558fcbef"}}, -{"id":"zest","key":"zest","value":{"rev":"5-080a2a69a93d66fcaae0da7ddaa9ceab"}}, -{"id":"zest-js","key":"zest-js","value":{"rev":"5-541454063618fa3a9d6f44e0147ea622"}}, -{"id":"zip","key":"zip","value":{"rev":"11-443da314322b6a1a93b40a38124610f2"}}, -{"id":"zipfile","key":"zipfile","value":{"rev":"32-e846d29fc615e8fbc610f44653a1e085"}}, -{"id":"zipper","key":"zipper","value":{"rev":"5-cde0a4a7f03c139dcd779f3ede55bd0e"}}, -{"id":"zippy","key":"zippy","value":{"rev":"7-3906ca62dd8020e9673a7c229944bd3f"}}, -{"id":"zipwith","key":"zipwith","value":{"rev":"3-58c50c6220d6493047f8333c5db22cc9"}}, -{"id":"zlib","key":"zlib","value":{"rev":"27-e0443f2d9a0c9db31f86a6c5b9ba78ba"}}, -{"id":"zlib-sync","key":"zlib-sync","value":{"rev":"3-b17a39dd23b3455d35ffd862004ed677"}}, -{"id":"zlibcontext","key":"zlibcontext","value":{"rev":"11-1c0c6b34e87adab1b6d5ee60be6a608c"}}, -{"id":"zlibstream","key":"zlibstream","value":{"rev":"5-44e30d87de9aaaa975c64d8dcdcd1a94"}}, -{"id":"zmq","key":"zmq","value":{"rev":"7-eae5d939fcdb7be5edfb328aefeaba4e"}}, -{"id":"zo","key":"zo","value":{"rev":"5-956f084373731805e5871f4716049529"}}, -{"id":"zombie","key":"zombie","value":{"rev":"109-9eec325353a47bfcc32a94719bf147da"}}, -{"id":"zombie-https","key":"zombie-https","value":{"rev":"3-6aff25d319be319343882575acef4890"}}, -{"id":"zoneinfo","key":"zoneinfo","value":{"rev":"15-d95d2041324d961fe26a0217cf485511"}}, -{"id":"zookeeper","key":"zookeeper","value":{"rev":"11-5a5ed278a01e4b508ffa6e9a02059898"}}, -{"id":"zoom","key":"zoom","value":{"rev":"3-9d0277ad580d64c9a4d48a40d22976f0"}}, -{"id":"zsock","key":"zsock","value":{"rev":"16-4f975b91f0f9c2d2a2501e362401c368"}}, -{"id":"zutil","key":"zutil","value":{"rev":"9-3e7bc6520008b4fcd5ee6eb9e8e5adf5"}} -]} diff --git a/deps/npm/node_modules/JSONStream/test/fixtures/couch_sample.json b/deps/npm/node_modules/JSONStream/test/fixtures/couch_sample.json deleted file mode 100644 index b154c861c59..00000000000 --- a/deps/npm/node_modules/JSONStream/test/fixtures/couch_sample.json +++ /dev/null @@ -1,18 +0,0 @@ -{"total_rows":129,"offset":0,"rows":[ - { "id":"change1_0.6995461115147918" - , "key":"change1_0.6995461115147918" - , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"} - , "doc":{ - "_id": "change1_0.6995461115147918" - , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1} - }, - { "id":"change2_0.6995461115147918" - , "key":"change2_0.6995461115147918" - , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"} - , "doc":{ - "_id":"change2_0.6995461115147918" - , "_rev":"1-13677d36b98c0c075145bb8975105153" - , "hello":2 - } - }, -]} diff --git a/deps/npm/node_modules/JSONStream/test/fixtures/depth.json b/deps/npm/node_modules/JSONStream/test/fixtures/depth.json deleted file mode 100644 index 868062f3065..00000000000 --- a/deps/npm/node_modules/JSONStream/test/fixtures/depth.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "total": 5, - "docs": [ - { - "key": { - "value": 0, - "some": "property" - } - }, - {"value": 1}, - {"value": 2}, - {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]}, - {"value": 4} - ] -} \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/test/fixtures/error.json b/deps/npm/node_modules/JSONStream/test/fixtures/error.json deleted file mode 100644 index 9736f3ecd35..00000000000 --- a/deps/npm/node_modules/JSONStream/test/fixtures/error.json +++ /dev/null @@ -1 +0,0 @@ -{"error": "error_code", "message": "this is an error message"} diff --git a/deps/npm/node_modules/JSONStream/test/fixtures/header_footer.json b/deps/npm/node_modules/JSONStream/test/fixtures/header_footer.json deleted file mode 100644 index 6e4694d2a0d..00000000000 --- a/deps/npm/node_modules/JSONStream/test/fixtures/header_footer.json +++ /dev/null @@ -1,19 +0,0 @@ -{"total_rows":129,"offset":0,"rows":[ - { "id":"change1_0.6995461115147918" - , "key":"change1_0.6995461115147918" - , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"} - , "doc":{ - "_id": "change1_0.6995461115147918" - , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1} - }, - { "id":"change2_0.6995461115147918" - , "key":"change2_0.6995461115147918" - , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"} - , "doc":{ - "_id":"change2_0.6995461115147918" - , "_rev":"1-13677d36b98c0c075145bb8975105153" - , "hello":2 - } - } -], -"foo": {"bar": "baz"}} diff --git a/deps/npm/node_modules/JSONStream/test/fn.js b/deps/npm/node_modules/JSONStream/test/fn.js deleted file mode 100644 index 01e61e88fa6..00000000000 --- a/deps/npm/node_modules/JSONStream/test/fn.js +++ /dev/null @@ -1,39 +0,0 @@ - - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is') - -function fn (s) { - return !isNaN(parseInt(s, 10)) -} - -var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse(['rows', fn]) - , called = 0 - , ended = false - , parsed = [] - -fs.createReadStream(file).pipe(parser) - -parser.on('data', function (data) { - called ++ - it.has({ - id: it.typeof('string'), - value: {rev: it.typeof('string')}, - key:it.typeof('string') - }) - parsed.push(data) -}) - -parser.on('end', function () { - ended = true -}) - -process.on('exit', function () { - it(called).equal(expected.rows.length) - it(parsed).deepEqual(expected.rows) - console.error('PASSED') -}) diff --git a/deps/npm/node_modules/JSONStream/test/gen.js b/deps/npm/node_modules/JSONStream/test/gen.js deleted file mode 100644 index 75e87d56e45..00000000000 --- a/deps/npm/node_modules/JSONStream/test/gen.js +++ /dev/null @@ -1,135 +0,0 @@ -return // dont run this test for now since tape is weird and broken on 0.10 - -var fs = require('fs') -var JSONStream = require('../') -var file = process.argv[2] || '/tmp/JSONStream-test-large.json' -var size = Number(process.argv[3] || 100000) -var tape = require('tape') -// if (process.title !== 'browser') { - tape('out of mem', function (t) { - t.plan(1) - ////////////////////////////////////////////////////// - // Produces a random number between arg1 and arg2 - ////////////////////////////////////////////////////// - var randomNumber = function (min, max) { - var number = Math.floor(Math.random() * (max - min + 1) + min); - return number; - }; - - ////////////////////////////////////////////////////// - // Produces a random string of a length between arg1 and arg2 - ////////////////////////////////////////////////////// - var randomString = function (min, max) { - - // add several spaces to increase chanses of creating 'words' - var chars = ' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - var result = ''; - - var randomLength = randomNumber(min, max); - - for (var i = randomLength; i > 0; --i) { - result += chars[Math.round(Math.random() * (chars.length - 1))]; - } - return result; - }; - - ////////////////////////////////////////////////////// - // Produces a random JSON document, as a string - ////////////////////////////////////////////////////// - var randomJsonDoc = function () { - - var doc = { - "CrashOccurenceID": randomNumber(10000, 50000), - "CrashID": randomNumber(1000, 10000), - "SiteName": randomString(10, 25), - "MachineName": randomString(10, 25), - "Date": randomString(26, 26), - "ProcessDuration": randomString(18, 18), - "ThreadIdentityName": null, - "WindowsIdentityName": randomString(15, 40), - "OperatingSystemName": randomString(35, 65), - "DetailedExceptionInformation": randomString(100, 800) - }; - - doc = JSON.stringify(doc); - doc = doc.replace(/\,/g, ',\n'); // add new lines after each attribute - return doc; - }; - - ////////////////////////////////////////////////////// - // generates test data - ////////////////////////////////////////////////////// - var generateTestData = function (cb) { - - console.log('generating large data file...'); - - var stream = fs.createWriteStream(file, { - encoding: 'utf8' - }); - - var i = 0; - var max = size; - var writing = false - var split = ',\n'; - var doc = randomJsonDoc(); - stream.write('['); - - function write () { - if(writing) return - writing = true - while(++i < max) { - if(Math.random() < 0.001) - console.log('generate..', i + ' / ' + size) - if(!stream.write(doc + split)) { - writing = false - return stream.once('drain', write) - } - } - stream.write(doc + ']') - stream.end(); - console.log('END') - } - write() - stream.on('close', cb) - }; - - ////////////////////////////////////////////////////// - // Shows that parsing 100000 instances using JSONStream fails - // - // After several seconds, you will get this crash - // FATAL ERROR: JS Allocation failed - process out of memory - ////////////////////////////////////////////////////// - var testJSONStreamParse_causesOutOfMem = function (done) { - var items = 0 - console.log('parsing data files using JSONStream...'); - - var parser = JSONStream.parse([true]); - var stream = fs.createReadStream(file); - stream.pipe(parser); - - parser.on('data', function (data) { - items++ - if(Math.random() < 0.01) console.log(items, '...') - }); - - parser.on('end', function () { - t.equal(items, size) - }); - - }; - - ////////////////////////////////////////////////////// - // main - ////////////////////////////////////////////////////// - - fs.stat(file, function (err, stat) { - console.log(stat) - if(err) - generateTestData(testJSONStreamParse_causesOutOfMem); - else - testJSONStreamParse_causesOutOfMem() - }) - - }) - -// } diff --git a/deps/npm/node_modules/JSONStream/test/header_footer.js b/deps/npm/node_modules/JSONStream/test/header_footer.js deleted file mode 100644 index f18fc59e7e4..00000000000 --- a/deps/npm/node_modules/JSONStream/test/header_footer.js +++ /dev/null @@ -1,55 +0,0 @@ - - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','header_footer.json') - , JSONStream = require('../') - , it = require('it-is') - -var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/]) - , called = 0 - , headerCalled = 0 - , footerCalled = 0 - , ended = false - , parsed = [] - -fs.createReadStream(file).pipe(parser) - -parser.on('header', function (data) { - headerCalled ++ - it(data).deepEqual({ - total_rows: 129, - offset: 0 - }) -}) - -parser.on('footer', function (data) { - footerCalled ++ - it(data).deepEqual({ - foo: { bar: 'baz' } - }) -}) - -parser.on('data', function (data) { - called ++ - it.has({ - id: it.typeof('string'), - value: {rev: it.typeof('string')}, - key:it.typeof('string') - }) - it(headerCalled).equal(1) - parsed.push(data) -}) - -parser.on('end', function () { - ended = true -}) - -process.on('exit', function () { - it(called).equal(expected.rows.length) - it(headerCalled).equal(1) - it(footerCalled).equal(1) - it(parsed).deepEqual(expected.rows) - console.error('PASSED') -}) diff --git a/deps/npm/node_modules/JSONStream/test/issues.js b/deps/npm/node_modules/JSONStream/test/issues.js deleted file mode 100644 index ea4c74337ad..00000000000 --- a/deps/npm/node_modules/JSONStream/test/issues.js +++ /dev/null @@ -1,34 +0,0 @@ -var JSONStream = require('../'); -var test = require('tape') - -test('#66', function (t) { - var error = 0; - var stream = JSONStream - .parse() - .on('error', function (err) { - t.ok(err); - error++; - }) - .on('end', function () { - t.ok(error === 1); - t.end(); - }); - - stream.write('["foo":bar['); - stream.end(); - -}); - -test('#81 - failure to parse nested objects', function (t) { - var stream = JSONStream - .parse('.bar.foo') - .on('error', function (err) { - t.error(err); - }) - .on('end', function () { - t.end(); - }); - - stream.write('{"bar":{"foo":"baz"}}'); - stream.end(); -}); diff --git a/deps/npm/node_modules/JSONStream/test/keys.js b/deps/npm/node_modules/JSONStream/test/keys.js deleted file mode 100644 index 86b65b257b9..00000000000 --- a/deps/npm/node_modules/JSONStream/test/keys.js +++ /dev/null @@ -1,105 +0,0 @@ -var test = require('tape'); -var fs = require ('fs'); -var join = require('path').join; -var couch_sample_file = join(__dirname, 'fixtures','couch_sample.json'); -var JSONStream = require('../'); - -var fixture = { - obj: { - one: 1, - two: 2, - three: 3 - } -}; - -function assertFixtureKeys(stream, t) { - var keys = []; - var values = []; - stream.on('data', function(data) { - keys.push(data.key); - values.push(data.value); - }); - - stream.on('end', function() { - t.deepEqual(keys, ['one', 'two', 'three']); - t.deepEqual(values, [1,2,3]); - t.end(); - }); - stream.write(JSON.stringify(fixture)); - stream.end(); -} - -test('keys via string', function(t) { - var stream = JSONStream.parse('obj.$*'); - assertFixtureKeys(stream, t); -}); - -test('keys via array', function(t) { - var stream = JSONStream.parse(['obj',{emitKey: true}]); - assertFixtureKeys(stream, t); -}); - -test('path via array', function(t) { - var stream = JSONStream.parse(['obj',{emitPath: true}]); - - var paths = []; - var values = []; - stream.on('data', function(data) { - console.log(JSON.stringify(data)); - paths.push(data.path); - values.push(data.value); - }); - - stream.on('end', function() { - t.deepEqual(paths, [['obj', 'one'], ['obj', 'two'], ['obj', 'three']]); - t.deepEqual(values, [1,2,3]); - t.end(); - }); - stream.write(JSON.stringify(fixture)); - stream.end(); -}); - -test('advanced keys', function(t) { - var advanced = fs.readFileSync(couch_sample_file); - var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]); - - var keys = []; - var values = []; - stream.on('data', function(data) { - keys.push(data.key); - values.push(data.value); - }); - - stream.on('end', function() { - t.deepEqual(keys, [ - '_id', '_rev', 'hello', - '_id', '_rev', 'hello' - ]); - t.deepEqual(values, [ - "change1_0.6995461115147918", "1-e240bae28c7bb3667f02760f6398d508", 1, - "change2_0.6995461115147918", "1-13677d36b98c0c075145bb8975105153", 2 - ]); - t.end(); - }); - stream.write(advanced); - stream.end(); -}); - -test('parent keys', function(t) { - var stream = JSONStream.parse('$*'); - var d = null; - stream.on('data', function(data) { - if(d) t.fail('should only be called once'); - d = data; - }); - - stream.on('end', function() { - t.deepEqual(d,{ - key: 'obj', - value: fixture.obj - }); - t.end(); - }); - stream.write(JSON.stringify(fixture)); - stream.end(); -}) diff --git a/deps/npm/node_modules/JSONStream/test/map.js b/deps/npm/node_modules/JSONStream/test/map.js deleted file mode 100644 index 6c05fc68406..00000000000 --- a/deps/npm/node_modules/JSONStream/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ - -var test = require('tape') - -var JSONStream = require('../') - -test('map function', function (t) { - - var actual = [] - - stream = JSONStream.parse([true], function (e) { return e*10 }) - stream.on('data', function (v) { actual.push(v)}) - stream.on('end', function () { - t.deepEqual(actual, [10,20,30,40,50,60]) - t.end() - - }) - - stream.write(JSON.stringify([1,2,3,4,5,6], null, 2)) - stream.end() - -}) - -test('filter function', function (t) { - - var actual = [] - - stream = JSONStream - .parse([true], function (e) { return e%2 ? e : null}) - .on('data', function (v) { actual.push(v)}) - .on('end', function () { - t.deepEqual(actual, [1,3,5]) - t.end() - - }) - - stream.write(JSON.stringify([1,2,3,4,5,6], null, 2)) - stream.end() - -}) diff --git a/deps/npm/node_modules/JSONStream/test/multiple_objects.js b/deps/npm/node_modules/JSONStream/test/multiple_objects.js deleted file mode 100644 index 22f6324228e..00000000000 --- a/deps/npm/node_modules/JSONStream/test/multiple_objects.js +++ /dev/null @@ -1,36 +0,0 @@ -var fs = require ('fs'); -var net = require('net'); -var join = require('path').join; -var file = join(__dirname, 'fixtures','all_npm.json'); -var it = require('it-is'); -var JSONStream = require('../'); - -var str = fs.readFileSync(file); - -var datas = {} - -var server = net.createServer(function(client) { - var data_calls = 0; - var parser = JSONStream.parse(['rows', true, 'key']); - parser.on('data', function(data) { - ++ data_calls; - datas[data] = (datas[data] || 0) + 1 - it(data).typeof('string') - }); - - parser.on('end', function() { - console.log('END') - var min = Infinity - for (var d in datas) - min = min > datas[d] ? datas[d] : min - it(min).equal(3); - server.close(); - }); - client.pipe(parser); -}); -server.listen(9999); - -var client = net.connect({ port : 9999 }, function() { - var msgs = str + ' ' + str + '\n\n' + str - client.end(msgs); -}); diff --git a/deps/npm/node_modules/JSONStream/test/multiple_objects_error.js b/deps/npm/node_modules/JSONStream/test/multiple_objects_error.js deleted file mode 100644 index 83d113b7f33..00000000000 --- a/deps/npm/node_modules/JSONStream/test/multiple_objects_error.js +++ /dev/null @@ -1,29 +0,0 @@ -var fs = require ('fs'); -var net = require('net'); -var join = require('path').join; -var file = join(__dirname, 'fixtures','all_npm.json'); -var it = require('it-is'); -var JSONStream = require('../'); - -var str = fs.readFileSync(file); - -var server = net.createServer(function(client) { - var data_calls = 0; - var parser = JSONStream.parse(); - parser.on('error', function(err) { - console.log(err); - server.close(); - }); - - parser.on('end', function() { - console.log('END'); - server.close(); - }); - client.pipe(parser); -}); -server.listen(9999); - -var client = net.connect({ port : 9999 }, function() { - var msgs = str + '}'; - client.end(msgs); -}); diff --git a/deps/npm/node_modules/JSONStream/test/null.js b/deps/npm/node_modules/JSONStream/test/null.js deleted file mode 100644 index 25628ee5855..00000000000 --- a/deps/npm/node_modules/JSONStream/test/null.js +++ /dev/null @@ -1,28 +0,0 @@ -var JSONStream = require('../') - -var data = [ - {ID: 1, optional: null}, - {ID: 2, optional: null}, - {ID: 3, optional: 20}, - {ID: 4, optional: null}, - {ID: 5, optional: 'hello'}, - {ID: 6, optional: null} -] - - -var test = require('tape') - -test ('null properties', function (t) { - var actual = [] - var stream = - - JSONStream.parse('*.optional') - .on('data', function (v) { actual.push(v) }) - .on('end', function () { - t.deepEqual(actual, [20, 'hello']) - t.end() - }) - - stream.write(JSON.stringify(data, null, 2)) - stream.end() -}) diff --git a/deps/npm/node_modules/JSONStream/test/parsejson.js b/deps/npm/node_modules/JSONStream/test/parsejson.js deleted file mode 100644 index 7f157175f5c..00000000000 --- a/deps/npm/node_modules/JSONStream/test/parsejson.js +++ /dev/null @@ -1,25 +0,0 @@ - - -/* - sometimes jsonparse changes numbers slightly. -*/ - -var r = Math.random() - , Parser = require('jsonparse') - , p = new Parser() - , assert = require('assert') - , times = 20 -while (times --) { - - assert.equal(JSON.parse(JSON.stringify(r)), r, 'core JSON') - - p.onValue = function (v) { - console.error('parsed', v) - assert.equal(v,r) - } - console.error('correct', r) - p.write (new Buffer(JSON.stringify([r]))) - - - -} diff --git a/deps/npm/node_modules/JSONStream/test/stringify.js b/deps/npm/node_modules/JSONStream/test/stringify.js deleted file mode 100644 index 20b99695752..00000000000 --- a/deps/npm/node_modules/JSONStream/test/stringify.js +++ /dev/null @@ -1,41 +0,0 @@ - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is').style('colour') - - function randomObj () { - return ( - Math.random () < 0.4 - ? {hello: 'eonuhckmqjk', - whatever: 236515, - lies: true, - nothing: [null], - stuff: [Math.random(),Math.random(),Math.random()] - } - : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]] - ) - } - -var expected = [] - , stringify = JSONStream.stringify() - , es = require('event-stream') - , stringified = '' - , called = 0 - , count = 10 - , ended = false - -while (count --) - expected.push(randomObj()) - - es.connect( - es.readArray(expected), - stringify, - //JSONStream.parse([/./]), - es.writeArray(function (err, lines) { - - it(JSON.parse(lines.join(''))).deepEqual(expected) - console.error('PASSED') - }) - ) diff --git a/deps/npm/node_modules/JSONStream/test/stringify_object.js b/deps/npm/node_modules/JSONStream/test/stringify_object.js deleted file mode 100644 index 73a2b8350d8..00000000000 --- a/deps/npm/node_modules/JSONStream/test/stringify_object.js +++ /dev/null @@ -1,47 +0,0 @@ - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is').style('colour') - , es = require('event-stream') - , pending = 10 - , passed = true - - function randomObj () { - return ( - Math.random () < 0.4 - ? {hello: 'eonuhckmqjk', - whatever: 236515, - lies: true, - nothing: [null], - stuff: [Math.random(),Math.random(),Math.random()] - } - : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]] - ) - } - -for (var ix = 0; ix < pending; ix++) (function (count) { - var expected = {} - , stringify = JSONStream.stringifyObject() - - es.connect( - stringify, - es.writeArray(function (err, lines) { - it(JSON.parse(lines.join(''))).deepEqual(expected) - if (--pending === 0) { - console.error('PASSED') - } - }) - ) - - while (count --) { - var key = Math.random().toString(16).slice(2) - expected[key] = randomObj() - stringify.write([ key, expected[key] ]) - } - - process.nextTick(function () { - stringify.end() - }) -})(ix) diff --git a/deps/npm/node_modules/JSONStream/test/test.js b/deps/npm/node_modules/JSONStream/test/test.js deleted file mode 100644 index adc3d756959..00000000000 --- a/deps/npm/node_modules/JSONStream/test/test.js +++ /dev/null @@ -1,35 +0,0 @@ - - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is') - -var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/]) - , called = 0 - , ended = false - , parsed = [] - -fs.createReadStream(file).pipe(parser) - -parser.on('data', function (data) { - called ++ - it.has({ - id: it.typeof('string'), - value: {rev: it.typeof('string')}, - key:it.typeof('string') - }) - parsed.push(data) -}) - -parser.on('end', function () { - ended = true -}) - -process.on('exit', function () { - it(called).equal(expected.rows.length) - it(parsed).deepEqual(expected.rows) - console.error('PASSED') -}) diff --git a/deps/npm/node_modules/JSONStream/test/test2.js b/deps/npm/node_modules/JSONStream/test/test2.js deleted file mode 100644 index a77ca3910a9..00000000000 --- a/deps/npm/node_modules/JSONStream/test/test2.js +++ /dev/null @@ -1,29 +0,0 @@ - - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, '..','package.json') - , JSONStream = require('../') - , it = require('it-is') - -var expected = JSON.parse(fs.readFileSync(file)) - , parser = JSONStream.parse([]) - , called = 0 - , ended = false - , parsed = [] - -fs.createReadStream(file).pipe(parser) - -parser.on('data', function (data) { - called ++ - it(data).deepEqual(expected) -}) - -parser.on('end', function () { - ended = true -}) - -process.on('exit', function () { - it(called).equal(1) - console.error('PASSED') -}) \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/test/two-ways.js b/deps/npm/node_modules/JSONStream/test/two-ways.js deleted file mode 100644 index a74dfba36e8..00000000000 --- a/deps/npm/node_modules/JSONStream/test/two-ways.js +++ /dev/null @@ -1,41 +0,0 @@ - -var fs = require ('fs') - , join = require('path').join - , file = join(__dirname, 'fixtures','all_npm.json') - , JSONStream = require('../') - , it = require('it-is').style('colour') - - function randomObj () { - return ( - Math.random () < 0.4 - ? {hello: 'eonuhckmqjk', - whatever: 236515, - lies: true, - nothing: [null], -// stuff: [Math.random(),Math.random(),Math.random()] - } - : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]] - ) - } - -var expected = [] - , stringify = JSONStream.stringify() - , es = require('event-stream') - , stringified = '' - , called = 0 - , count = 10 - , ended = false - -while (count --) - expected.push(randomObj()) - - es.connect( - es.readArray(expected), - stringify, - JSONStream.parse([/./]), - es.writeArray(function (err, lines) { - - it(lines).has(expected) - console.error('PASSED') - }) - ) diff --git a/deps/npm/node_modules/abbrev/LICENSE b/deps/npm/node_modules/abbrev/LICENSE deleted file mode 100644 index 9bcfa9d7d8d..00000000000 --- a/deps/npm/node_modules/abbrev/LICENSE +++ /dev/null @@ -1,46 +0,0 @@ -This software is dual-licensed under the ISC and MIT licenses. -You may use this software under EITHER of the following licenses. - ----------- - -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. - ----------- - -Copyright Isaac Z. Schlueter and 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/abbrev/README.md b/deps/npm/node_modules/abbrev/README.md deleted file mode 100644 index 99746fe67c4..00000000000 --- a/deps/npm/node_modules/abbrev/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# abbrev-js - -Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). - -Usage: - - var abbrev = require("abbrev"); - abbrev("foo", "fool", "folding", "flop"); - - // returns: - { fl: 'flop' - , flo: 'flop' - , flop: 'flop' - , fol: 'folding' - , fold: 'folding' - , foldi: 'folding' - , foldin: 'folding' - , folding: 'folding' - , foo: 'foo' - , fool: 'fool' - } - -This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. diff --git a/deps/npm/node_modules/abbrev/abbrev.js b/deps/npm/node_modules/abbrev/abbrev.js deleted file mode 100644 index 7b1dc5d6769..00000000000 --- a/deps/npm/node_modules/abbrev/abbrev.js +++ /dev/null @@ -1,61 +0,0 @@ -module.exports = exports = abbrev.abbrev = abbrev - -abbrev.monkeyPatch = monkeyPatch - -function monkeyPatch () { - Object.defineProperty(Array.prototype, 'abbrev', { - value: function () { return abbrev(this) }, - enumerable: false, configurable: true, writable: true - }) - - Object.defineProperty(Object.prototype, 'abbrev', { - value: function () { return abbrev(Object.keys(this)) }, - enumerable: false, configurable: true, writable: true - }) -} - -function abbrev (list) { - if (arguments.length !== 1 || !Array.isArray(list)) { - list = Array.prototype.slice.call(arguments, 0) - } - for (var i = 0, l = list.length, args = [] ; i < l ; i ++) { - args[i] = typeof list[i] === "string" ? list[i] : String(list[i]) - } - - // sort them lexicographically, so that they're next to their nearest kin - args = args.sort(lexSort) - - // walk through each, seeing how much it has in common with the next and previous - var abbrevs = {} - , prev = "" - for (var i = 0, l = args.length ; i < l ; i ++) { - var current = args[i] - , next = args[i + 1] || "" - , nextMatches = true - , prevMatches = true - if (current === next) continue - for (var j = 0, cl = current.length ; j < cl ; j ++) { - var curChar = current.charAt(j) - nextMatches = nextMatches && curChar === next.charAt(j) - prevMatches = prevMatches && curChar === prev.charAt(j) - if (!nextMatches && !prevMatches) { - j ++ - break - } - } - prev = current - if (j === cl) { - abbrevs[current] = current - continue - } - for (var a = current.substr(0, j) ; j <= cl ; j ++) { - abbrevs[a] = current - a += current.charAt(j) - } - } - return abbrevs -} - -function lexSort (a, b) { - return a === b ? 0 : a > b ? 1 : -1 -} diff --git a/deps/npm/node_modules/abbrev/package.json b/deps/npm/node_modules/abbrev/package.json deleted file mode 100644 index 0c44f79d60b..00000000000 --- a/deps/npm/node_modules/abbrev/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "_from": "abbrev@1.1.1", - "_id": "abbrev@1.1.1", - "_inBundle": false, - "_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "_location": "/abbrev", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "abbrev@1.1.1", - "name": "abbrev", - "escapedName": "abbrev", - "rawSpec": "1.1.1", - "saveSpec": null, - "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", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "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" - }, - "files": [ - "abbrev.js" - ], - "homepage": "https://github.com/isaacs/abbrev-js#readme", - "license": "ISC", - "main": "abbrev.js", - "name": "abbrev", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" - }, - "scripts": { - "postpublish": "git push origin --all; git push origin --tags", - "postversion": "npm publish", - "preversion": "npm test", - "test": "tap test.js --100" - }, - "version": "1.1.1" -} diff --git a/deps/npm/node_modules/ansi-regex/index.js b/deps/npm/node_modules/ansi-regex/index.js deleted file mode 100644 index c4aaecf5050..00000000000 --- a/deps/npm/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/ansi-regex/license b/deps/npm/node_modules/ansi-regex/license deleted file mode 100644 index e7af2f77107..00000000000 --- a/deps/npm/node_modules/ansi-regex/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/ansi-regex/package.json b/deps/npm/node_modules/ansi-regex/package.json deleted file mode 100644 index 2bf2bb485f0..00000000000 --- a/deps/npm/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_from": "ansi-regex@latest", - "_id": "ansi-regex@3.0.0", - "_inBundle": false, - "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "_location": "/ansi-regex", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "ansi-regex@latest", - "name": "ansi-regex", - "escapedName": "ansi-regex", - "rawSpec": "latest", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "_shasum": "ed0317c322064f79466c02966bddb605ab37d998", - "_spec": "ansi-regex@latest", - "_where": "/Users/rebecca/code/npm", - "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/ansi-regex/readme.md b/deps/npm/node_modules/ansi-regex/readme.md deleted file mode 100644 index 22db1c34055..00000000000 --- a/deps/npm/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/ansicolors/LICENSE b/deps/npm/node_modules/ansicolors/LICENSE deleted file mode 100644 index 41702c50434..00000000000 --- a/deps/npm/node_modules/ansicolors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -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/ansicolors/README.md b/deps/npm/node_modules/ansicolors/README.md deleted file mode 100644 index f3e9d070b25..00000000000 --- a/deps/npm/node_modules/ansicolors/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# ansicolors [![build status](https://secure.travis-ci.org/thlorenz/ansicolors.png)](http://next.travis-ci.org/thlorenz/ansicolors) - -Functions that surround a string with ansicolor codes so it prints in color. - -In case you need styles, like `bold`, have a look at [ansistyles](https://github.com/thlorenz/ansistyles). - -## Installation - - npm install ansicolors - -## Usage - -```js -var colors = require('ansicolors'); - -// foreground colors -var redHerring = colors.red('herring'); -var blueMoon = colors.blue('moon'); -var brighBlueMoon = colors.brightBlue('moon'); - -console.log(redHerring); // this will print 'herring' in red -console.log(blueMoon); // this 'moon' in blue -console.log(brightBlueMoon); // I think you got the idea - -// background colors -console.log(colors.bgYellow('printed on yellow background')); -console.log(colors.bgBrightBlue('printed on bright blue background')); - -// mixing background and foreground colors -// below two lines have same result (order in which bg and fg are combined doesn't matter) -console.log(colors.bgYellow(colors.blue('printed on yellow background in blue'))); -console.log(colors.blue(colors.bgYellow('printed on yellow background in blue'))); -``` - -## Advanced API - -**ansicolors** allows you to access opening and closing escape sequences separately. - -```js -var colors = require('ansicolors'); - -function inspect(obj, depth) { - return require('util').inspect(obj, false, depth || 5, true); -} - -console.log('open blue', inspect(colors.open.blue)); -console.log('close bgBlack', inspect(colors.close.bgBlack)); - -// => open blue '\u001b[34m' -// close bgBlack '\u001b[49m' -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansicolors/blob/master/test/ansicolors.js) to see more examples and/or run them via: - - npm explore ansicolors && npm test - -## Alternatives - -**ansicolors** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/deps/npm/node_modules/ansicolors/ansicolors.js b/deps/npm/node_modules/ansicolors/ansicolors.js deleted file mode 100644 index 16b2586f6b1..00000000000 --- a/deps/npm/node_modules/ansicolors/ansicolors.js +++ /dev/null @@ -1,65 +0,0 @@ -// ColorCodes explained: http://www.termsys.demon.co.uk/vtansi.htm -'use strict'; - -var colorNums = { - white : 37 - , black : 30 - , blue : 34 - , cyan : 36 - , green : 32 - , magenta : 35 - , red : 31 - , yellow : 33 - , brightBlack : 90 - , brightRed : 91 - , brightGreen : 92 - , brightYellow : 93 - , brightBlue : 94 - , brightMagenta : 95 - , brightCyan : 96 - , brightWhite : 97 - } - , backgroundColorNums = { - bgBlack : 40 - , bgRed : 41 - , bgGreen : 42 - , bgYellow : 43 - , bgBlue : 44 - , bgMagenta : 45 - , bgCyan : 46 - , bgWhite : 47 - , bgBrightBlack : 100 - , bgBrightRed : 101 - , bgBrightGreen : 102 - , bgBrightYellow : 103 - , bgBrightBlue : 104 - , bgBrightMagenta : 105 - , bgBrightCyan : 106 - , bgBrightWhite : 107 - } - , open = {} - , close = {} - , colors = {} - ; - -Object.keys(colorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + colorNums[k] + 'm'; - var c = close[k] = '\u001b[39m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -Object.keys(backgroundColorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + backgroundColorNums[k] + 'm'; - var c = close[k] = '\u001b[49m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -module.exports = colors; -colors.open = open; -colors.close = close; diff --git a/deps/npm/node_modules/ansicolors/package.json b/deps/npm/node_modules/ansicolors/package.json deleted file mode 100644 index 10e2cdbb3b8..00000000000 --- a/deps/npm/node_modules/ansicolors/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "_from": "ansicolors@~0.3.2", - "_id": "ansicolors@0.3.2", - "_integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "_location": "/ansicolors", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "ansicolors@~0.3.2", - "name": "ansicolors", - "escapedName": "ansicolors", - "rawSpec": "~0.3.2", - "saveSpec": null, - "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", - "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": [ - "ansi", - "colors", - "highlight", - "string" - ], - "license": "MIT", - "main": "ansicolors.js", - "name": "ansicolors", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansicolors.git" - }, - "scripts": { - "test": "node test/*.js" - }, - "version": "0.3.2" -} diff --git a/deps/npm/node_modules/ansicolors/test/ansicolors.js b/deps/npm/node_modules/ansicolors/test/ansicolors.js deleted file mode 100644 index 494539305d3..00000000000 --- a/deps/npm/node_modules/ansicolors/test/ansicolors.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -var assert = require('assert') - , colors = require('..') - , open = colors.open - , close = colors.close - -console.log('Foreground colors ..'); - -assert.equal(colors.white('printed in white'), '\u001b[37mprinted in white\u001b[39m'); - -assert.equal(colors.black('printed in black'), '\u001b[30mprinted in black\u001b[39m'); -assert.equal(colors.brightBlack('printed in bright black'), '\u001b[90mprinted in bright black\u001b[39m'); - -assert.equal(colors.green('printed in green'), '\u001b[32mprinted in green\u001b[39m'); -assert.equal(colors.brightGreen('printed in bright green'), '\u001b[92mprinted in bright green\u001b[39m'); - -assert.equal(colors.red('printed in red'), '\u001b[31mprinted in red\u001b[39m'); -assert.equal(colors.brightRed('printed in bright red'), '\u001b[91mprinted in bright red\u001b[39m'); - -console.log('OK'); - -console.log('Background colors ..'); - -assert.equal( - colors.bgBlack('printed with black background') - , '\u001b[40mprinted with black background\u001b[49m' -); - -assert.equal( - colors.bgYellow('printed with yellow background') - , '\u001b[43mprinted with yellow background\u001b[49m' -); -assert.equal( - colors.bgBrightYellow('printed with bright yellow background') - , '\u001b[103mprinted with bright yellow background\u001b[49m' -); - -assert.equal( - colors.bgWhite('printed with white background') - , '\u001b[47mprinted with white background\u001b[49m' -); - -console.log('OK'); - -console.log('Mixing background and foreground colors ..'); - -assert.equal( - colors.blue(colors.bgYellow('printed in blue with yellow background')) - , '\u001b[34m\u001b[43mprinted in blue with yellow background\u001b[49m\u001b[39m' -); -assert.equal( - colors.bgYellow(colors.blue('printed in blue with yellow background again')) - , '\u001b[43m\u001b[34mprinted in blue with yellow background again\u001b[39m\u001b[49m' -); - -console.log('OK'); - -console.log('Open ...'); - -assert.equal(open.black, '\u001b[30m'); -assert.equal(open.bgYellow, '\u001b[43m'); - -console.log('OK'); - -console.log('Close ...'); - -assert.equal(close.black, '\u001b[39m'); -assert.equal(close.bgYellow, '\u001b[49m'); - -console.log('OK'); diff --git a/deps/npm/node_modules/ansistyles/LICENSE b/deps/npm/node_modules/ansistyles/LICENSE deleted file mode 100644 index 41702c50434..00000000000 --- a/deps/npm/node_modules/ansistyles/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -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/ansistyles/README.md b/deps/npm/node_modules/ansistyles/README.md deleted file mode 100644 index e39b8dfb6d8..00000000000 --- a/deps/npm/node_modules/ansistyles/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# ansistyles [![build status](https://secure.travis-ci.org/thlorenz/ansistyles.png)](http://next.travis-ci.org/thlorenz/ansistyles) - -Functions that surround a string with ansistyle codes so it prints in style. - -In case you need colors, like `red`, have a look at [ansicolors](https://github.com/thlorenz/ansicolors). - -## Installation - - npm install ansistyles - -## Usage - -```js -var styles = require('ansistyles'); - -console.log(styles.bright('hello world')); // prints hello world in 'bright' white -console.log(styles.underline('hello world')); // prints hello world underlined -console.log(styles.inverse('hello world')); // prints hello world black on white -``` - -## Combining with ansicolors - -Get the ansicolors module: - - npm install ansicolors - -```js -var styles = require('ansistyles') - , colors = require('ansicolors'); - - console.log( - // prints hello world underlined in blue on a green background - colors.bgGreen(colors.blue(styles.underline('hello world'))) - ); -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansistyles/blob/master/test/ansistyles.js) to see more examples and/or run them via: - - npm explore ansistyles && npm test - -## More Styles - -As you can see from [here](https://github.com/thlorenz/ansistyles/blob/master/ansistyles.js#L4-L15), more styles are available, -but didn't have any effect on the terminals that I tested on Mac Lion and Ubuntu Linux. - -I included them for completeness, but didn't show them in the examples because they seem to have no effect. - -### reset - -A style reset function is also included, please note however that this is not nestable. - -Therefore the below only underlines `hell` only, but not `world`. - -```js -console.log(styles.underline('hell' + styles.reset('o') + ' world')); -``` - -It is essentially the same as: - -```js -console.log(styles.underline('hell') + styles.reset('') + 'o world'); -``` - - - -## Alternatives - -**ansistyles** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/deps/npm/node_modules/ansistyles/ansistyles.js b/deps/npm/node_modules/ansistyles/ansistyles.js deleted file mode 100644 index 5b8788c0f94..00000000000 --- a/deps/npm/node_modules/ansistyles/ansistyles.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -/* - * Info: http://www.termsys.demon.co.uk/vtansi.htm#colors - * Following caveats - * bright - brightens the color (bold-blue is same as brigthtBlue) - * dim - nothing on Mac or Linux - * italic - nothing on Mac or Linux - * underline - underlines string - * blink - nothing on Mac or linux - * inverse - background becomes foreground and vice versa - * - * In summary, the only styles that work are: - * - bright, underline and inverse - * - the others are only included for completeness - */ - -var styleNums = { - reset : [0, 22] - , bright : [1, 22] - , dim : [2, 22] - , italic : [3, 23] - , underline : [4, 24] - , blink : [5, 25] - , inverse : [7, 27] - } - , styles = {} - ; - -Object.keys(styleNums).forEach(function (k) { - styles[k] = function (s) { - var open = styleNums[k][0] - , close = styleNums[k][1]; - return '\u001b[' + open + 'm' + s + '\u001b[' + close + 'm'; - }; -}); - -module.exports = styles; diff --git a/deps/npm/node_modules/ansistyles/package.json b/deps/npm/node_modules/ansistyles/package.json deleted file mode 100644 index 6ed47c4499b..00000000000 --- a/deps/npm/node_modules/ansistyles/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "_from": "ansistyles@~0.1.3", - "_id": "ansistyles@0.1.3", - "_integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", - "_location": "/ansistyles", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "ansistyles@~0.1.3", - "name": "ansistyles", - "escapedName": "ansistyles", - "rawSpec": "~0.1.3", - "saveSpec": null, - "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", - "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": [ - "ansi", - "style", - "terminal", - "console" - ], - "license": "MIT", - "main": "ansistyles.js", - "name": "ansistyles", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansistyles.git" - }, - "scripts": { - "test": "node test/ansistyles.js" - }, - "version": "0.1.3" -} diff --git a/deps/npm/node_modules/ansistyles/test/ansistyles.js b/deps/npm/node_modules/ansistyles/test/ansistyles.js deleted file mode 100644 index f769bf803b2..00000000000 --- a/deps/npm/node_modules/ansistyles/test/ansistyles.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -/*jshint asi: true */ -var assert = require('assert') - , styles = require('../') - -function inspect(obj, depth) { - console.log(require('util').inspect(obj, false, depth || 5, true)); -} - -assert.equal(styles.reset('reset'), '\u001b[0mreset\u001b[22m', 'reset') -assert.equal(styles.underline('underlined'), '\u001b[4munderlined\u001b[24m', 'underline') -assert.equal(styles.bright('bright'), '\u001b[1mbright\u001b[22m', 'bright') -assert.equal(styles.inverse('inversed'), '\u001b[7minversed\u001b[27m', 'inverse') - -console.log('OK'); diff --git a/deps/npm/node_modules/aproba/LICENSE b/deps/npm/node_modules/aproba/LICENSE deleted file mode 100644 index f4be44d881b..00000000000 --- a/deps/npm/node_modules/aproba/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/deps/npm/node_modules/aproba/README.md b/deps/npm/node_modules/aproba/README.md deleted file mode 100644 index 0bfc594c56a..00000000000 --- a/deps/npm/node_modules/aproba/README.md +++ /dev/null @@ -1,94 +0,0 @@ -aproba -====== - -A ridiculously light-weight function argument validator - -``` -var validate = require("aproba") - -function myfunc(a, b, c) { - // `a` must be a string, `b` a number, `c` a function - validate('SNF', arguments) // [a,b,c] is also valid -} - -myfunc('test', 23, function () {}) // ok -myfunc(123, 23, function () {}) // type error -myfunc('test', 23) // missing arg error -myfunc('test', 23, function () {}, true) // too many args error - -``` - -Valid types are: - -| type | description -| :--: | :---------- -| * | matches any type -| A | `Array.isArray` OR an `arguments` object -| S | typeof == string -| N | typeof == number -| F | typeof == function -| O | typeof == object and not type A and not type E -| B | typeof == boolean -| E | `instanceof Error` OR `null` **(special: see below)** -| Z | == `null` - -Validation failures throw one of three exception types, distinguished by a -`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`. - -If you pass in an invalid type then it will throw with a code of -`EUNKNOWNTYPE`. - -If an **error** argument is found and is not null then the remaining -arguments are optional. That is, if you say `ESO` then that's like using a -non-magical `E` in: `E|ESO|ZSO`. - -### But I have optional arguments?! - -You can provide more than one signature by separating them with pipes `|`. -If any signature matches the arguments then they'll be considered valid. - -So for example, say you wanted to write a signature for -`fs.createWriteStream`. The docs for it describe it thusly: - -``` -fs.createWriteStream(path[, options]) -``` - -This would be a signature of `SO|S`. That is, a string and and object, or -just a string. - -Now, if you read the full `fs` docs, you'll see that actually path can ALSO -be a buffer. And options can be a string, that is: -``` -path | -options | -``` - -To reproduce this you have to fully enumerate all of the possible -combinations and that implies a signature of `SO|SS|OO|OS|S|O`. The -awkwardness is a feature: It reminds you of the complexity you're adding to -your API when you do this sort of thing. - - -### Browser support - -This has no dependencies and should work in browsers, though you'll have -noisier stack traces. - -### Why this exists - -I wanted a very simple argument validator. It needed to do two things: - -1. Be more concise and easier to use than assertions - -2. Not encourage an infinite bikeshed of DSLs - -This is why types are specified by a single character and there's no such -thing as an optional argument. - -This is not intended to validate user data. This is specifically about -asserting the interface of your functions. - -If you need greater validation, I encourage you to write them by hand or -look elsewhere. - diff --git a/deps/npm/node_modules/aproba/index.js b/deps/npm/node_modules/aproba/index.js deleted file mode 100644 index 6f3f797c09a..00000000000 --- a/deps/npm/node_modules/aproba/index.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict' - -function isArguments (thingy) { - return thingy != null && typeof thingy === 'object' && thingy.hasOwnProperty('callee') -} - -var types = { - '*': {label: 'any', check: function () { return true }}, - A: {label: 'array', check: function (thingy) { return Array.isArray(thingy) || isArguments(thingy) }}, - S: {label: 'string', check: function (thingy) { return typeof thingy === 'string' }}, - N: {label: 'number', check: function (thingy) { return typeof thingy === 'number' }}, - F: {label: 'function', check: function (thingy) { return typeof thingy === 'function' }}, - O: {label: 'object', check: function (thingy) { return typeof thingy === 'object' && thingy != null && !types.A.check(thingy) && !types.E.check(thingy) }}, - B: {label: 'boolean', check: function (thingy) { return typeof thingy === 'boolean' }}, - E: {label: 'error', check: function (thingy) { return thingy instanceof Error }}, - Z: {label: 'null', check: function (thingy) { return thingy == null }} -} - -function addSchema (schema, arity) { - var group = arity[schema.length] = arity[schema.length] || [] - if (group.indexOf(schema) === -1) group.push(schema) -} - -var validate = module.exports = function (rawSchemas, args) { - if (arguments.length !== 2) throw wrongNumberOfArgs(['SA'], arguments.length) - if (!rawSchemas) throw missingRequiredArg(0, 'rawSchemas') - if (!args) throw missingRequiredArg(1, 'args') - if (!types.S.check(rawSchemas)) throw invalidType(0, ['string'], rawSchemas) - if (!types.A.check(args)) throw invalidType(1, ['array'], args) - var schemas = rawSchemas.split('|') - var arity = {} - - schemas.forEach(function (schema) { - for (var ii = 0; ii < schema.length; ++ii) { - var type = schema[ii] - if (!types[type]) throw unknownType(ii, type) - } - if (/E.*E/.test(schema)) throw moreThanOneError(schema) - addSchema(schema, arity) - if (/E/.test(schema)) { - addSchema(schema.replace(/E.*$/, 'E'), arity) - addSchema(schema.replace(/E/, 'Z'), arity) - if (schema.length === 1) addSchema('', arity) - } - }) - var matching = arity[args.length] - if (!matching) { - throw wrongNumberOfArgs(Object.keys(arity), args.length) - } - for (var ii = 0; ii < args.length; ++ii) { - var newMatching = matching.filter(function (schema) { - var type = schema[ii] - var typeCheck = types[type].check - return typeCheck(args[ii]) - }) - if (!newMatching.length) { - var labels = matching.map(function (schema) { - return types[schema[ii]].label - }).filter(function (schema) { return schema != null }) - throw invalidType(ii, labels, args[ii]) - } - matching = newMatching - } -} - -function missingRequiredArg (num) { - return newException('EMISSINGARG', 'Missing required argument #' + (num + 1)) -} - -function unknownType (num, type) { - return newException('EUNKNOWNTYPE', 'Unknown type ' + type + ' in argument #' + (num + 1)) -} - -function invalidType (num, expectedTypes, value) { - var valueType - Object.keys(types).forEach(function (typeCode) { - if (types[typeCode].check(value)) valueType = types[typeCode].label - }) - return newException('EINVALIDTYPE', 'Argument #' + (num + 1) + ': Expected ' + - englishList(expectedTypes) + ' but got ' + valueType) -} - -function englishList (list) { - return list.join(', ').replace(/, ([^,]+)$/, ' or $1') -} - -function wrongNumberOfArgs (expected, got) { - var english = englishList(expected) - var args = expected.every(function (ex) { return ex.length === 1 }) - ? 'argument' - : 'arguments' - return newException('EWRONGARGCOUNT', 'Expected ' + english + ' ' + args + ' but got ' + got) -} - -function moreThanOneError (schema) { - return newException('ETOOMANYERRORTYPES', - 'Only one error type per argument signature is allowed, more than one found in "' + schema + '"') -} - -function newException (code, msg) { - var e = new Error(msg) - e.code = code - if (Error.captureStackTrace) Error.captureStackTrace(e, validate) - return e -} diff --git a/deps/npm/node_modules/aproba/package.json b/deps/npm/node_modules/aproba/package.json deleted file mode 100644 index f3720a897ac..00000000000 --- a/deps/npm/node_modules/aproba/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "_from": "aproba@1.2.0", - "_id": "aproba@1.2.0", - "_inBundle": false, - "_integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "_location": "/aproba", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "aproba@1.2.0", - "name": "aproba", - "escapedName": "aproba", - "rawSpec": "1.2.0", - "saveSpec": null, - "fetchSpec": "1.2.0" - }, - "_requiredBy": [ - "#USER", - "/", - "/move-concurrently", - "/move-concurrently/copy-concurrently", - "/move-concurrently/run-queue", - "/npm-profile", - "/npmlog/gauge" - ], - "_resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "_shasum": "6802e6264efd18c790a1b0d517f0f2627bf2c94a", - "_spec": "aproba@1.2.0", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org" - }, - "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", - "tap": "^10.0.2" - }, - "directories": { - "test": "test" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/iarna/aproba", - "keywords": [ - "argument", - "validate" - ], - "license": "ISC", - "main": "index.js", - "name": "aproba", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/aproba.git" - }, - "scripts": { - "test": "standard && tap -j3 test/*.js" - }, - "version": "1.2.0" -} diff --git a/deps/npm/node_modules/archy/.travis.yml b/deps/npm/node_modules/archy/.travis.yml deleted file mode 100644 index 895dbd36234..00000000000 --- a/deps/npm/node_modules/archy/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 diff --git a/deps/npm/node_modules/archy/LICENSE b/deps/npm/node_modules/archy/LICENSE deleted file mode 100644 index ee27ba4b441..00000000000 --- a/deps/npm/node_modules/archy/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/archy/README.markdown b/deps/npm/node_modules/archy/README.markdown deleted file mode 100644 index ef7a5cf34be..00000000000 --- a/deps/npm/node_modules/archy/README.markdown +++ /dev/null @@ -1,88 +0,0 @@ -# archy - -Render nested hierarchies `npm ls` style with unicode pipes. - -[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy) - -[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy) - -# example - -``` js -var archy = require('archy'); -var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); -``` - -output - -``` -beep -├── ity -└─┬ boop - ├─┬ o_O - │ ├─┬ oh - │ │ ├── hello - │ │ └── puny - │ └── human - └── party - time! -``` - -# methods - -var archy = require('archy') - -## archy(obj, prefix='', opts={}) - -Return a string representation of `obj` with unicode pipe characters like how -`npm ls` looks. - -`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields. -`'label'` is a string of text to display at a node level and `'nodes'` is an -array of the descendents of the current node. - -If a node is a string, that string will be used as the `'label'` and an empty -array of `'nodes'` will be used. - -`prefix` gets prepended to all the lines and is used by the algorithm to -recursively update. - -If `'label'` has newlines they will be indented at the present indentation level -with the current prefix. - -To disable unicode results in favor of all-ansi output set `opts.unicode` to -`false`. - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install archy -``` - -# license - -MIT diff --git a/deps/npm/node_modules/archy/examples/beep.js b/deps/npm/node_modules/archy/examples/beep.js deleted file mode 100644 index 9c0704797c8..00000000000 --- a/deps/npm/node_modules/archy/examples/beep.js +++ /dev/null @@ -1,24 +0,0 @@ -var archy = require('../'); -var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); diff --git a/deps/npm/node_modules/archy/examples/multi_line.js b/deps/npm/node_modules/archy/examples/multi_line.js deleted file mode 100644 index 8afdfada910..00000000000 --- a/deps/npm/node_modules/archy/examples/multi_line.js +++ /dev/null @@ -1,25 +0,0 @@ -var archy = require('../'); - -var s = archy({ - label : 'beep\none\ntwo', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O\nwheee', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny\nmeat' ] - }, - 'creature' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); diff --git a/deps/npm/node_modules/archy/index.js b/deps/npm/node_modules/archy/index.js deleted file mode 100644 index 869d64e6537..00000000000 --- a/deps/npm/node_modules/archy/index.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = function archy (obj, prefix, opts) { - if (prefix === undefined) prefix = ''; - if (!opts) opts = {}; - var chr = function (s) { - var chars = { - '│' : '|', - '└' : '`', - '├' : '+', - '─' : '-', - '┬' : '-' - }; - return opts.unicode === false ? chars[s] : s; - }; - - if (typeof obj === 'string') obj = { label : obj }; - - var nodes = obj.nodes || []; - var lines = (obj.label || '').split('\n'); - var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' '; - - return prefix - + lines.join(splitter) + '\n' - + nodes.map(function (node, ix) { - var last = ix === nodes.length - 1; - var more = node.nodes && node.nodes.length; - var prefix_ = prefix + (last ? ' ' : chr('│')) + ' '; - - return prefix - + (last ? chr('└') : chr('├')) + chr('─') - + (more ? chr('┬') : chr('─')) + ' ' - + archy(node, prefix_, opts).slice(prefix.length + 2) - ; - }).join('') - ; -}; diff --git a/deps/npm/node_modules/archy/package.json b/deps/npm/node_modules/archy/package.json deleted file mode 100644 index 434687c286f..00000000000 --- a/deps/npm/node_modules/archy/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_from": "archy@~1.0.0", - "_id": "archy@1.0.0", - "_integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "_location": "/archy", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "archy@~1.0.0", - "name": "archy", - "escapedName": "archy", - "rawSpec": "~1.0.0", - "saveSpec": null, - "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", - "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", - "tape": "~0.1.1" - }, - "homepage": "https://github.com/substack/node-archy#readme", - "keywords": [ - "hierarchy", - "npm ls", - "unicode", - "pretty", - "print" - ], - "license": "MIT", - "main": "index.js", - "name": "archy", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/substack/node-archy.git" - }, - "scripts": { - "test": "tap test" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "iexplore": [ - "6.0", - "7.0", - "8.0", - "9.0" - ], - "chrome": [ - "20.0" - ], - "firefox": [ - "10.0", - "15.0" - ], - "safari": [ - "5.1" - ], - "opera": [ - "12.0" - ] - } - }, - "version": "1.0.0" -} diff --git a/deps/npm/node_modules/archy/test/beep.js b/deps/npm/node_modules/archy/test/beep.js deleted file mode 100644 index 4ea74f9cee4..00000000000 --- a/deps/npm/node_modules/archy/test/beep.js +++ /dev/null @@ -1,40 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('beep', function (t) { - var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party!' - ] - } - ] - }); - t.equal(s, [ - 'beep', - '├── ity', - '└─┬ boop', - ' ├─┬ o_O', - ' │ ├─┬ oh', - ' │ │ ├── hello', - ' │ │ └── puny', - ' │ └── human', - ' └── party!', - '' - ].join('\n')); - t.end(); -}); diff --git a/deps/npm/node_modules/archy/test/multi_line.js b/deps/npm/node_modules/archy/test/multi_line.js deleted file mode 100644 index 2cf2154d8a3..00000000000 --- a/deps/npm/node_modules/archy/test/multi_line.js +++ /dev/null @@ -1,45 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('multi-line', function (t) { - var s = archy({ - label : 'beep\none\ntwo', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O\nwheee', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny\nmeat' ] - }, - 'creature' - ] - }, - 'party\ntime!' - ] - } - ] - }); - t.equal(s, [ - 'beep', - '│ one', - '│ two', - '├── ity', - '└─┬ boop', - ' ├─┬ o_O', - ' │ │ wheee', - ' │ ├─┬ oh', - ' │ │ ├── hello', - ' │ │ └── puny', - ' │ │ meat', - ' │ └── creature', - ' └── party', - ' time!', - '' - ].join('\n')); - t.end(); -}); diff --git a/deps/npm/node_modules/archy/test/non_unicode.js b/deps/npm/node_modules/archy/test/non_unicode.js deleted file mode 100644 index 7204d33271d..00000000000 --- a/deps/npm/node_modules/archy/test/non_unicode.js +++ /dev/null @@ -1,40 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('beep', function (t) { - var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party!' - ] - } - ] - }, '', { unicode : false }); - t.equal(s, [ - 'beep', - '+-- ity', - '`-- boop', - ' +-- o_O', - ' | +-- oh', - ' | | +-- hello', - ' | | `-- puny', - ' | `-- human', - ' `-- party!', - '' - ].join('\n')); - t.end(); -}); diff --git a/deps/npm/node_modules/bin-links/CHANGELOG.md b/deps/npm/node_modules/bin-links/CHANGELOG.md deleted file mode 100644 index c21734b67dc..00000000000 --- a/deps/npm/node_modules/bin-links/CHANGELOG.md +++ /dev/null @@ -1,22 +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. - - -# [1.1.0](https://github.com/npm/bin-links/compare/v1.0.0...v1.1.0) (2017-11-20) - - -### Features - -* **dos2unix:** Log the fact line endings are being changed upon install. ([e9f8a6f](https://github.com/npm/bin-links/commit/e9f8a6f)) - - - - -# 1.0.0 (2017-10-07) - - -### Features - -* **import:** initial extraction from npm ([6ed0bfb](https://github.com/npm/bin-links/commit/6ed0bfb)) -* **initial commit:** README ([3fc9cf0](https://github.com/npm/bin-links/commit/3fc9cf0)) diff --git a/deps/npm/node_modules/bin-links/LICENSE b/deps/npm/node_modules/bin-links/LICENSE deleted file mode 100644 index 0b6c2287459..00000000000 --- a/deps/npm/node_modules/bin-links/LICENSE +++ /dev/null @@ -1,235 +0,0 @@ -The npm application -Copyright (c) npm, Inc. and Contributors -Licensed on the terms of The Artistic License 2.0 - -Node package dependencies of the npm application -Copyright (c) their respective copyright owners -Licensed on their respective license terms - -The npm public registry at https://registry.npmjs.org -and the npm website at https://www.npmjs.com -Operated by npm, Inc. -Use governed by terms published on https://www.npmjs.com - -"Node.js" -Trademark Joyent, Inc., https://joyent.com -Neither npm nor npm, Inc. are affiliated with Joyent, Inc. - -The Node.js application -Project of Node Foundation, https://nodejs.org - -The npm Logo -Copyright (c) Mathias Pettersson and Brian Hammond - -"Gubblebum Blocky" typeface -Copyright (c) Tjarda Koster, https://jelloween.deviantart.com -Used with permission - - --------- - - -The Artistic License 2.0 - -Copyright (c) 2000-2006, The Perl Foundation. - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -This license establishes the terms under which a given free software -Package may be copied, modified, distributed, and/or redistributed. -The intent is that the Copyright Holder maintains some artistic -control over the development of that Package while still keeping the -Package available as open source and free software. - -You are always permitted to make arrangements wholly outside of this -license directly with the Copyright Holder of a given Package. If the -terms of this license do not permit the full use that you propose to -make of the Package, you should contact the Copyright Holder and seek -a different licensing arrangement. - -Definitions - - "Copyright Holder" means the individual(s) or organization(s) - named in the copyright notice for the entire Package. - - "Contributor" means any party that has contributed code or other - material to the Package, in accordance with the Copyright Holder's - procedures. - - "You" and "your" means any person who would like to copy, - distribute, or modify the Package. - - "Package" means the collection of files distributed by the - Copyright Holder, and derivatives of that collection and/or of - those files. A given Package may consist of either the Standard - Version, or a Modified Version. - - "Distribute" means providing a copy of the Package or making it - accessible to anyone else, or in the case of a company or - organization, to others outside of your company or organization. - - "Distributor Fee" means any fee that you charge for Distributing - this Package or providing support for this Package to another - party. It does not mean licensing fees. - - "Standard Version" refers to the Package if it has not been - modified, or has been modified only in ways explicitly requested - by the Copyright Holder. - - "Modified Version" means the Package, if it has been changed, and - such changes were not explicitly requested by the Copyright - Holder. - - "Original License" means this Artistic License as Distributed with - the Standard Version of the Package, in its current version or as - it may be modified by The Perl Foundation in the future. - - "Source" form means the source code, documentation source, and - configuration files for the Package. - - "Compiled" form means the compiled bytecode, object code, binary, - or any other form resulting from mechanical transformation or - translation of the Source form. - - -Permission for Use and Modification Without Distribution - -(1) You are permitted to use the Standard Version and create and use -Modified Versions for any purpose without restriction, provided that -you do not Distribute the Modified Version. - - -Permissions for Redistribution of the Standard Version - -(2) You may Distribute verbatim copies of the Source form of the -Standard Version of this Package in any medium without restriction, -either gratis or for a Distributor Fee, provided that you duplicate -all of the original copyright notices and associated disclaimers. At -your discretion, such verbatim copies may or may not include a -Compiled form of the Package. - -(3) You may apply any bug fixes, portability changes, and other -modifications made available from the Copyright Holder. The resulting -Package will still be considered the Standard Version, and as such -will be subject to the Original License. - - -Distribution of Modified Versions of the Package as Source - -(4) You may Distribute your Modified Version as Source (either gratis -or for a Distributor Fee, and with or without a Compiled form of the -Modified Version) provided that you clearly document how it differs -from the Standard Version, including, but not limited to, documenting -any non-standard features, executables, or modules, and provided that -you do at least ONE of the following: - - (a) make the Modified Version available to the Copyright Holder - of the Standard Version, under the Original License, so that the - Copyright Holder may include your modifications in the Standard - Version. - - (b) ensure that installation of your Modified Version does not - prevent the user installing or running the Standard Version. In - addition, the Modified Version must bear a name that is different - from the name of the Standard Version. - - (c) allow anyone who receives a copy of the Modified Version to - make the Source form of the Modified Version available to others - under - - (i) the Original License or - - (ii) a license that permits the licensee to freely copy, - modify and redistribute the Modified Version using the same - licensing terms that apply to the copy that the licensee - received, and requires that the Source form of the Modified - Version, and of any works derived from it, be made freely - available in that license fees are prohibited but Distributor - Fees are allowed. - - -Distribution of Compiled Forms of the Standard Version -or Modified Versions without the Source - -(5) You may Distribute Compiled forms of the Standard Version without -the Source, provided that you include complete instructions on how to -get the Source of the Standard Version. Such instructions must be -valid at the time of your distribution. If these instructions, at any -time while you are carrying out such distribution, become invalid, you -must provide new instructions on demand or cease further distribution. -If you provide valid instructions or cease distribution within thirty -days after you become aware that the instructions are invalid, then -you do not forfeit any of your rights under this license. - -(6) You may Distribute a Modified Version in Compiled form without -the Source, provided that you comply with Section 4 with respect to -the Source of the Modified Version. - - -Aggregating or Linking the Package - -(7) You may aggregate the Package (either the Standard Version or -Modified Version) with other packages and Distribute the resulting -aggregation provided that you do not charge a licensing fee for the -Package. Distributor Fees are permitted, and licensing fees for other -components in the aggregation are permitted. The terms of this license -apply to the use and Distribution of the Standard or Modified Versions -as included in the aggregation. - -(8) You are permitted to link Modified and Standard Versions with -other works, to embed the Package in a larger work of your own, or to -build stand-alone binary or bytecode versions of applications that -include the Package, and Distribute the result without restriction, -provided the result does not expose a direct interface to the Package. - - -Items That are Not Considered Part of a Modified Version - -(9) Works (including, but not limited to, modules and scripts) that -merely extend or make use of the Package, do not, by themselves, cause -the Package to be a Modified Version. In addition, such works are not -considered parts of the Package itself, and are not subject to the -terms of this license. - - -General Provisions - -(10) Any use, modification, and distribution of the Standard or -Modified Versions is governed by this Artistic License. By using, -modifying or distributing the Package, you accept this license. Do not -use, modify, or distribute the Package, if you do not accept this -license. - -(11) If your Modified Version has been derived from a Modified -Version made by someone other than you, you are nevertheless required -to ensure that your Modified Version complies with the requirements of -this license. - -(12) This license does not grant you the right to use any trademark, -service mark, tradename, or logo of the Copyright Holder. - -(13) This license includes the non-exclusive, worldwide, -free-of-charge patent license to make, have made, use, offer to sell, -sell, import and otherwise transfer the Package with respect to any -patent claims licensable by the Copyright Holder that are necessarily -infringed by the Package. If you institute patent litigation -(including a cross-claim or counterclaim) against any party alleging -that the Package constitutes direct or contributory patent -infringement, then this Artistic License to you shall terminate on the -date that such litigation is filed. - -(14) Disclaimer of Warranty: -THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS -IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL -LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - --------- diff --git a/deps/npm/node_modules/bin-links/README.md b/deps/npm/node_modules/bin-links/README.md deleted file mode 100644 index 558d5c74b29..00000000000 --- a/deps/npm/node_modules/bin-links/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# bin-links [![npm version](https://img.shields.io/npm/v/bin-links.svg)](https://npm.im/bin-links) [![license](https://img.shields.io/npm/l/bin-links.svg)](https://npm.im/bin-links) [![Travis](https://img.shields.io/travis/npm/bin-links.svg)](https://travis-ci.org/npm/bin-links) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/bin-links?svg=true)](https://ci.appveyor.com/project/npm/bin-links) [![Coverage Status](https://coveralls.io/repos/github/npm/bin-links/badge.svg?branch=latest)](https://coveralls.io/github/npm/bin-links?branch=latest) - -[`bin-links`](https://github.com/npm/bin-links) is a standalone library that links -binaries and man pages for Javascript packages - -## Install - -`$ npm install bin-links` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * [`binLinks`](#binLinks) - -### Example - -```javascript -// todo -``` - -### Features - -* Links bin files listed under the `bin` property of pkg to the node_modules/.bin -directory of the installing environment. -* Links man files listed under the `man` property of pkg to the share/man directory -of the provided optional directory prefix. - -### 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. - -### API - -#### `> binLinks(pkg, folder, global, opts, cb)` - -##### Example - -```javascript -binLinks(pkg, folder, global, opts, cb) -``` \ No newline at end of file diff --git a/deps/npm/node_modules/bin-links/index.js b/deps/npm/node_modules/bin-links/index.js deleted file mode 100644 index e6370acad54..00000000000 --- a/deps/npm/node_modules/bin-links/index.js +++ /dev/null @@ -1,187 +0,0 @@ -'use strict' - -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 open = BB.promisify(fs.open) -const close = BB.promisify(fs.close) -const stat = BB.promisify(fs.stat) -const chmod = BB.promisify(fs.chmod) -const Transform = require('stream').Transform -const fsWriteStreamAtomic = require('fs-write-stream-atomic') - -module.exports = BB.promisify(binLinks) - -function binLinks (pkg, folder, global, opts, cb) { - // if it's global, and folder is in {prefix}/node_modules, - // then bins are in {prefix}/bin - // otherwise, then bins are in folder/../.bin - var parent = pkg.name && pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder) - var gnm = global && opts.globalDir - var gtop = parent === gnm - - opts.log.info('linkStuff', opts.pkgId) - opts.log.silly('linkStuff', opts.pkgId, 'has', parent, 'as its parent node_modules') - if (global) opts.log.silly('linkStuff', opts.pkgId, 'is part of a global install') - 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 - ) -} - -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) - }) - }) - }) -} - -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)) - }) - }) - }) -} - -function getLinkOpts (opts, gently) { - return Object.assign({}, opts, { gently: gently }) -} - -function linkBins (pkg, folder, parent, gtop, opts, cb) { - if (!pkg.bin || (!gtop && path.basename(parent) !== 'node_modules')) { - return cb() - } - var linkOpts = getLinkOpts(opts, gtop && folder) - var execMode = parseInt('0777', 8) & (~opts.umask) - var binRoot = gtop ? opts.globalBin - : path.resolve(parent, '.bin') - opts.log.verbose('linkBins', [pkg.bin, binRoot, gtop]) - - asyncMap(Object.keys(pkg.bin), function (bin, cb) { - 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) - // 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) - }) - }) - }, cb) -} - -function linkBin (from, to, opts, cb) { - if (process.platform !== 'win32') { - return linkIfExists(from, to, opts, cb) - } else { - return cmdShimIfExists(from, to, cb) - } -} - -function linkMans (pkg, folder, parent, gtop, opts, cb) { - if (!pkg.man || !gtop || process.platform === 'win32') return cb() - - var manRoot = path.resolve(opts.prefix, 'share', 'man') - opts.log.verbose('linkMans', 'man files are', pkg.man, 'in', manRoot) - - // make sure that the mans are unique. - // otherwise, if there are dupes, it'll fail with EEXIST - var set = pkg.man.reduce(function (acc, man) { - acc[path.basename(man)] = man - return acc - }, {}) - pkg.man = pkg.man.filter(function (man) { - return set[path.basename(man)] === man - }) - - asyncMap(pkg.man, function (man, cb) { - if (typeof man !== 'string') return cb() - opts.log.silly('linkMans', 'preparing to link', man) - var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) - if (!parseMan) { - return cb(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] - var sxn = parseMan[2] - var bn = path.basename(stem) - var manSrc = path.resolve(folder, man) - var manDest = path.join(manRoot, 'man' + sxn, bn) - - linkIfExists(manSrc, manDest, getLinkOpts(opts, gtop && folder), cb) - }, cb) -} diff --git a/deps/npm/node_modules/bin-links/package.json b/deps/npm/node_modules/bin-links/package.json deleted file mode 100644 index 318e84e5ce9..00000000000 --- a/deps/npm/node_modules/bin-links/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_from": "bin-links@latest", - "_id": "bin-links@1.1.0", - "_inBundle": false, - "_integrity": "sha512-3desjIEoSt86s+BRZlkLpBPPcHhr4vyUPL/+X1cQuE96NIlkELqnb4Yq+I5gZe47gHsZztA6cm38uMrT9+FWpA==", - "_location": "/bin-links", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "bin-links@latest", - "name": "bin-links", - "escapedName": "bin-links", - "rawSpec": "latest", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.0.tgz", - "_shasum": "e0a92cb57f01c4dc1088bca2bae6be110b9f64f9", - "_spec": "bin-links@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Mike Sherov" - }, - "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" - }, - "deprecated": false, - "description": "JavaScript package binary linker", - "devDependencies": { - "nyc": "^11.1.0", - "standard": "^10.0.3", - "standard-version": "^4.2.0", - "tap": "^10.7.2", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/npm/bin-links#readme", - "keywords": [ - "npm", - "gentle", - "fs" - ], - "license": "Artistic-2.0", - "main": "index.js", - "name": "bin-links", - "repository": { - "type": "git", - "url": "git://github.com/npm/bin-links.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/*.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/bluebird/LICENSE b/deps/npm/node_modules/bluebird/LICENSE deleted file mode 100644 index ae732d5299f..00000000000 --- a/deps/npm/node_modules/bluebird/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2017 Petka Antonov - -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/bluebird/README.md b/deps/npm/node_modules/bluebird/README.md deleted file mode 100644 index 19a63f40ea9..00000000000 --- a/deps/npm/node_modules/bluebird/README.md +++ /dev/null @@ -1,51 +0,0 @@ - - Promises/A+ logo - - -[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird) -[![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html) - -**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises) - -# Introduction - -Bluebird is a fully featured promise library with focus on innovative features and performance - -See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) for further documentation, references and instructions. See the [**API reference**](http://bluebirdjs.com/docs/api-reference.html) here. - -For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x). - -# Questions and issues - -The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`. - - - -## Thanks - -Thanks to BrowserStack for providing us with a free account which lets us support old browsers like IE8. - -# License - -The MIT License (MIT) - -Copyright (c) 2013-2017 Petka Antonov - -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/bluebird/changelog.md b/deps/npm/node_modules/bluebird/changelog.md deleted file mode 100644 index 73b2eb6c79d..00000000000 --- a/deps/npm/node_modules/bluebird/changelog.md +++ /dev/null @@ -1 +0,0 @@ -[http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) diff --git a/deps/npm/node_modules/bluebird/js/browser/bluebird.core.js b/deps/npm/node_modules/bluebird/js/browser/bluebird.core.js deleted file mode 100644 index 6adcea1d6d0..00000000000 --- a/deps/npm/node_modules/bluebird/js/browser/bluebird.core.js +++ /dev/null @@ -1,3781 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2017 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.5.1 - * Features enabled: core - * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;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 _dereq_=="function"&&_dereq_;for(var o=0;o 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } -}; - -Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); -}; - -Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } -}; - -Async.prototype._reset = function () { - this._isTickUsed = false; -}; - -module.exports = Async; -module.exports.firstLineError = firstLineError; - -},{"./queue":17,"./schedule":18,"./util":21}],2:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { -var calledBind = false; -var rejectThis = function(_, e) { - this._reject(e); -}; - -var targetRejected = function(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); -}; - -var bindingResolved = function(thisArg, context) { - if (((this._bitField & 50397184) === 0)) { - this._resolveCallback(context.target); - } -}; - -var bindingRejected = function(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); -}; - -Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); - var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then( - bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; -}; - -Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & (~2097152); - } -}; - -Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; -}; - -Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); -}; -}; - -},{}],3:[function(_dereq_,module,exports){ -"use strict"; -var old; -if (typeof Promise !== "undefined") old = Promise; -function noConflict() { - try { if (Promise === bluebird) Promise = old; } - catch (e) {} - return bluebird; -} -var bluebird = _dereq_("./promise")(); -bluebird.noConflict = noConflict; -module.exports = bluebird; - -},{"./promise":15}],4:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, PromiseArray, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -Promise.prototype["break"] = Promise.prototype.cancel = function() { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise._isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } - - var parent = promise._cancellationParent; - if (parent == null || !parent._isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - promise._setWillBeCancelled(); - child = promise; - promise = parent; - } - } -}; - -Promise.prototype._branchHasCancelled = function() { - this._branchesRemainingToCancel--; -}; - -Promise.prototype._enoughBranchesHaveCancelled = function() { - return this._branchesRemainingToCancel === undefined || - this._branchesRemainingToCancel <= 0; -}; - -Promise.prototype._cancelBy = function(canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; - } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; - } - } - return false; -}; - -Promise.prototype._cancelBranched = function() { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } -}; - -Promise.prototype._cancel = function() { - if (!this._isCancellable()) return; - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); -}; - -Promise.prototype._cancelPromises = function() { - if (this._length() > 0) this._settlePromises(); -}; - -Promise.prototype._unsetOnCancel = function() { - this._onCancelField = undefined; -}; - -Promise.prototype._isCancellable = function() { - return this.isPending() && !this._isCancelled(); -}; - -Promise.prototype.isCancellable = function() { - return this.isPending() && !this.isCancelled(); -}; - -Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); - } - } -}; - -Promise.prototype._invokeOnCancel = function() { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); -}; - -Promise.prototype._invokeInternalOnCancel = function() { - if (this._isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); - } -}; - -Promise.prototype._resultCancelled = function() { - this.cancel(); -}; - -}; - -},{"./util":21}],5:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(NEXT_FILTER) { -var util = _dereq_("./util"); -var getKeys = _dereq_("./es5").keys; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function catchFilter(instances, cb, promise) { - return function(e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || - (item != null && item.prototype instanceof Error)) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; -} - -return catchFilter; -}; - -},{"./es5":10,"./util":21}],6:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -var longStackTraces = false; -var contextStack = []; - -Promise.prototype._promiseCreated = function() {}; -Promise.prototype._pushContext = function() {}; -Promise.prototype._popContext = function() {return null;}; -Promise._peekContext = Promise.prototype._peekContext = function() {}; - -function Context() { - this._trace = new Context.CapturedTrace(peekContext()); -} -Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } -}; - -Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; - } - return null; -}; - -function createContext() { - if (longStackTraces) return new Context(); -} - -function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; - } - return undefined; -} -Context.CapturedTrace = null; -Context.create = createContext; -Context.deactivateLongStackTraces = function() {}; -Context.activateLongStackTraces = function() { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function() { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function() { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; -}; -return Context; -}; - -},{}],7:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, Context) { -var getDomain = Promise._getDomain; -var async = Promise._async; -var Warning = _dereq_("./errors").Warning; -var util = _dereq_("./util"); -var canAttachTrace = util.canAttachTrace; -var unhandledRejectionHandled; -var possiblyUnhandledRejection; -var bluebirdFramePattern = - /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; -var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; -var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; -var stackFramePattern = null; -var formatStack = null; -var indentStackFrames = false; -var printWarning; -var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && - (true || - util.env("BLUEBIRD_DEBUG") || - util.env("NODE_ENV") === "development")); - -var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && - (debugging || util.env("BLUEBIRD_WARNINGS"))); - -var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && - (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - -var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && - (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - -Promise.prototype.suppressUnhandledRejections = function() { - var target = this._target(); - target._bitField = ((target._bitField & (~1048576)) | - 524288); -}; - -Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - var self = this; - setTimeout(function() { - self._notifyUnhandledRejection(); - }, 1); -}; - -Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", - unhandledRejectionHandled, undefined, this); -}; - -Promise.prototype._setReturnedNonUndefined = function() { - this._bitField = this._bitField | 268435456; -}; - -Promise.prototype._returnedNonUndefined = function() { - return (this._bitField & 268435456) !== 0; -}; - -Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", - possiblyUnhandledRejection, reason, this); - } -}; - -Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; -}; - -Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & (~262144); -}; - -Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; -}; - -Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; -}; - -Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & (~1048576); - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); - } -}; - -Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; -}; - -Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); -}; - -Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = - typeof fn === "function" ? (domain === null ? - fn : util.domainBind(domain, fn)) - : undefined; -}; - -Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = - typeof fn === "function" ? (domain === null ? - fn : util.domainBind(domain, fn)) - : undefined; -}; - -var disableLongStackTraces = function() {}; -Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); - } -}; - -Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); -}; - -var fireDomEvent = (function() { - try { - if (typeof CustomEvent === "function") { - var event = new CustomEvent("CustomEvent"); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = new CustomEvent(name.toLowerCase(), { - detail: event, - cancelable: true - }); - return !util.global.dispatchEvent(domEvent); - }; - } else if (typeof Event === "function") { - var event = new Event("CustomEvent"); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = new Event(name.toLowerCase(), { - cancelable: true - }); - domEvent.detail = event; - return !util.global.dispatchEvent(domEvent); - }; - } else { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, - event); - return !util.global.dispatchEvent(domEvent); - }; - } - } catch (e) {} - return function() { - return false; - }; -})(); - -var fireGlobalEvent = (function() { - if (util.isNode) { - return function() { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function() { - return false; - }; - } - return function(name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } -})(); - -function generatePromiseLifecycleEventObject(name, promise) { - return {promise: promise}; -} - -var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function(name, promise, child) { - return {promise: promise, child: child}; - }, - warning: function(name, warning) { - return {warning: warning}; - }, - unhandledRejection: function (name, reason, promise) { - return {reason: reason, promise: promise}; - }, - rejectionHandled: generatePromiseLifecycleEventObject -}; - -var activeFireEvent = function (name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } - - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, - eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } - - return domEventFired || globalEventFired; -}; - -Promise.config = function(opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; - - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error( - "cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = - cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = - cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - propagateFromFunction = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } - } - return Promise; -}; - -function defaultFireEvent() { return false; } - -Promise.prototype._fireEvent = defaultFireEvent; -Promise.prototype._execute = function(executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } -}; -Promise.prototype._onCancel = function () {}; -Promise.prototype._setOnCancel = function (handler) { ; }; -Promise.prototype._attachCancellationCallback = function(onCancel) { - ; -}; -Promise.prototype._captureStackTrace = function () {}; -Promise.prototype._attachExtraTrace = function () {}; -Promise.prototype._clearCancellationData = function() {}; -Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; -}; - -function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function(onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + - util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } -} - -function cancellationAttachCancellationCallback(onCancel) { - if (!this._isCancellable()) return this; - - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); - } - } else { - this._setOnCancel(onCancel); - } -} - -function cancellationOnCancel() { - return this._onCancelField; -} - -function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; -} - -function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; -} - -function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} - -function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} -var propagateFromFunction = bindingPropagateFrom; - -function boundValueFunction() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); - } else { - return undefined; - } - } - } - return ret; -} - -function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); -} - -function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", - parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); - } - } -} - -function checkForgottenReturns(returnValue, promiseCreated, name, promise, - parent) { - if (returnValue === undefined && promiseCreated !== null && - wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; - if ((promise._bitField & 65535) === 0) return; - - if (name) name = name + " "; - var handlerLine = ""; - var creatorLine = ""; - if (promiseCreated._trace) { - var traceLines = promiseCreated._trace.stack.split("\n"); - var stack = cleanStack(traceLines); - for (var i = stack.length - 1; i >= 0; --i) { - var line = stack[i]; - if (!nodeFramePattern.test(line)) { - var lineMatches = line.match(parseLinePattern); - if (lineMatches) { - handlerLine = "at " + lineMatches[1] + - ":" + lineMatches[2] + ":" + lineMatches[3] + " "; - } - break; - } - } - - if (stack.length > 0) { - var firstUserLine = stack[0]; - for (var i = 0; i < traceLines.length; ++i) { - - if (traceLines[i] === firstUserLine) { - if (i > 0) { - creatorLine = "\n" + traceLines[i - 1]; - } - break; - } - } - - } - } - var msg = "a promise was created in a " + name + - "handler " + handlerLine + "but was not returned from it, " + - "see http://goo.gl/rRqMUw" + - creatorLine; - promise._warn(msg, true, promiseCreated); - } -} - -function deprecated(name, replacement) { - var message = name + - " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); -} - -function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } -} - -function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); -} - -function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || - ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { - stacks.splice(i, 1); - i--; - } - } -} - -function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; - - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } - - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } - } - current = prev; - } -} - -function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || - stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; -} - -function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0 && error.name != "SyntaxError") { - stack = stack.slice(i); - } - return stack; -} - -function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 - ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: error.name == "SyntaxError" ? stack : cleanStack(stack) - }; -} - -function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || - typeof console.log === "object") { - console.log(message); - } - } -} - -function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); - } - - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } -} - -function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + - (obj.name || "anonymous") + - "]"; - } else { - str = obj && typeof obj.toString === "function" - ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } - catch(e) { - - } - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return ("(<" + snip(str) + ">, no stack trace)"); -} - -function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; -} - -function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; -} - -var shouldIgnore = function() { return false; }; -var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; -function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } -} - -function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || - firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } - - shouldIgnore = function(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && - (firstIndex <= info.line && info.line <= lastIndex)) { - return true; - } - } - return false; - }; -} - -function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); -} -util.inherits(CapturedTrace, Error); -Context.CapturedTrace = CapturedTrace; - -CapturedTrace.prototype.uncycle = function() { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; - - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = - cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } -}; - -CapturedTrace.prototype.attachExtraTrace = function(error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; - - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); -}; - -var captureStackTrace = (function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function(stack, error) { - if (typeof stack === "string") return stack; - - if (error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - if (typeof Error.stackTraceLimit === "number" && - typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; - - shouldIgnore = function(line) { - return bluebirdFramePattern.test(line); - }; - return function(receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); - - if (typeof err.stack === "string" && - err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } - - var hasStackAfterThrow; - try { throw new Error(); } - catch(e) { - hasStackAfterThrow = ("stack" in e); - } - if (!("stack" in err) && hasStackAfterThrow && - typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { throw new Error(); } - catch(e) { o.stack = e.stack; } - Error.stackTraceLimit -= 6; - }; - } - - formatStack = function(stack, error) { - if (typeof stack === "string") return stack; - - if ((typeof error === "object" || - typeof error === "function") && - error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - return null; - -})([]); - -if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function (message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function(message, isSoft) { - var color = isSoft ? "\u001b[33m" : "\u001b[31m"; - console.warn(color + message + "\u001b[0m\n"); - }; - } else if (!util.isNode && typeof (new Error().stack) === "string") { - printWarning = function(message, isSoft) { - console.warn("%c" + message, - isSoft ? "color: darkorange" : "color: red"); - }; - } -} - -var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false -}; - -if (longStackTraces) Promise.longStackTraces(); - -return { - longStackTraces: function() { - return config.longStackTraces; - }, - warnings: function() { - return config.warnings; - }, - cancellation: function() { - return config.cancellation; - }, - monitoring: function() { - return config.monitoring; - }, - propagateFromFunction: function() { - return propagateFromFunction; - }, - boundValueFunction: function() { - return boundValueFunction; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent -}; -}; - -},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function returner() { - return this.value; -} -function thrower() { - throw this.reason; -} - -Promise.prototype["return"] = -Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - returner, undefined, undefined, {value: value}, undefined); -}; - -Promise.prototype["throw"] = -Promise.prototype.thenThrow = function (reason) { - return this._then( - thrower, undefined, undefined, {reason: reason}, undefined); -}; - -Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then( - undefined, thrower, undefined, {reason: reason}, undefined); - } else { - var _reason = arguments[1]; - var handler = function() {throw _reason;}; - return this.caught(reason, handler); - } -}; - -Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - undefined, returner, undefined, {value: value}, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function() {return _value;}; - return this.caught(value, handler); - } -}; -}; - -},{}],9:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var Objectfreeze = es5.freeze; -var util = _dereq_("./util"); -var inherits = util.inherits; -var notEnumerableProp = util.notEnumerableProp; - -function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", - typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; -} - -var _TypeError, _RangeError; -var Warning = subError("Warning", "warning"); -var CancellationError = subError("CancellationError", "cancellation error"); -var TimeoutError = subError("TimeoutError", "timeout error"); -var AggregateError = subError("AggregateError", "aggregate error"); -try { - _TypeError = TypeError; - _RangeError = RangeError; -} catch(e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); -} - -var methods = ("join pop push shift unshift slice filter forEach some " + - "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - -for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } -} - -es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true -}); -AggregateError.prototype["isOperational"] = true; -var level = 0; -AggregateError.prototype.toString = function() { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; -}; - -function OperationalError(message) { - if (!(this instanceof OperationalError)) - return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; - - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - -} -inherits(OperationalError, Error); - -var errorTypes = Error["__BluebirdErrorTypes__"]; -if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); -} - -module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning -}; - -},{"./es5":10,"./util":21}],10:[function(_dereq_,module,exports){ -var isES5 = (function(){ - "use strict"; - return this === undefined; -})(); - -if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; -} else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; - - var ObjectKeys = function (o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; - - var ObjectGetDescriptor = function(o, key) { - return {value: o[key]}; - }; - - var ObjectDefineProperty = function (o, key, desc) { - o[key] = desc.value; - return o; - }; - - var ObjectFreeze = function (obj) { - return obj; - }; - - var ObjectGetPrototypeOf = function (obj) { - try { - return Object(obj).constructor.prototype; - } - catch (e) { - return proto; - } - }; - - var ArrayIsArray = function (obj) { - try { - return str.call(obj) === "[object Array]"; - } - catch(e) { - return false; - } - }; - - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function() { - return true; - } - }; -} - -},{}],11:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { -var util = _dereq_("./util"); -var CancellationError = Promise.CancellationError; -var errorObj = util.errorObj; -var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); - -function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; -} - -PassThroughHandlerContext.prototype.isFinallyHandler = function() { - return this.type === 0; -}; - -function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; -} - -FinallyHandlerCancelReaction.prototype._resultCancelled = function() { - checkCancel(this.finallyHandler); -}; - -function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; -} - -function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); -} -function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; -} -function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; - - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() - ? handler.call(promise._boundValue()) - : handler.call(promise._boundValue(), reasonOrValue); - if (ret === NEXT_FILTER) { - return ret; - } else if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise._isCancelled()) { - var reason = - new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback( - new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then( - succeed, fail, undefined, this, undefined); - } - } - } - - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } -} - -Promise.prototype._passThrough = function(handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, - fail, - undefined, - new PassThroughHandlerContext(this, type, handler), - undefined); -}; - -Promise.prototype.lastly = -Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, - 0, - finallyHandler, - finallyHandler); -}; - - -Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); -}; - -Promise.prototype.tapCatch = function (handlerOrPredicate) { - var len = arguments.length; - if(len === 1) { - return this._passThrough(handlerOrPredicate, - 1, - undefined, - finallyHandler); - } else { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return Promise.reject(new TypeError( - "tapCatch statement predicate: " - + "expecting an object but got " + util.classString(item) - )); - } - } - catchInstances.length = j; - var handler = arguments[i]; - return this._passThrough(catchFilter(catchInstances, handler, this), - 1, - undefined, - finallyHandler); - } - -}; - -return PassThroughHandlerContext; -}; - -},{"./catch_filter":5,"./util":21}],12:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, - getDomain) { -var util = _dereq_("./util"); -var canEvaluate = util.canEvaluate; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var reject; - -if (!true) { -if (canEvaluate) { - var thenCallback = function(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; - - var promiseSetter = function(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; - - var generateHolderClass = function(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i+1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode= "var promise;\n" + props.map(function(prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; - - - var code = "return function(tryCatch, errorObj, Promise, async) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.asyncNeeded = true; \n\ - this.now = 0; \n\ - } \n\ - \n\ - [TheName].prototype._callFunction = function(promise) { \n\ - promise._pushContext(); \n\ - var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - if (this.asyncNeeded) { \n\ - async.invoke(this._callFunction, this, promise); \n\ - } else { \n\ - this._callFunction(promise); \n\ - } \n\ - \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise, async); \n\ - "; - - code = code.replace(/\[TheName\]/g, name) - .replace(/\[TheTotal\]/g, total) - .replace(/\[ThePassedArguments\]/g, passedArguments) - .replace(/\[TheProperties\]/g, assignment) - .replace(/\[CancellationCode\]/g, cancellationCode); - - return new Function("tryCatch", "errorObj", "Promise", "async", code) - (tryCatch, errorObj, Promise, async); - }; - - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; - - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } - - reject = function (reason) { - this._reject(reason); - }; -}} - -Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!true) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; - - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - maybePromise._then(callbacks[i], reject, - undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - holder.asyncNeeded = false; - } else if (((bitField & 33554432) !== 0)) { - callbacks[i].call(ret, - maybePromise._value(), holder); - } else if (((bitField & 16777216) !== 0)) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - - if (!ret._isFateSealed()) { - if (holder.asyncNeeded) { - var domain = getDomain(); - if (domain !== null) { - holder.fn = util.domainBind(domain, holder.fn); - } - } - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var args = [].slice.call(arguments);; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; -}; - -}; - -},{"./util":21}],13:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; - -Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; -}; - -Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) - : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; -}; - -Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } -}; -}; - -},{"./util":21}],14:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var maybeWrapAsError = util.maybeWrapAsError; -var errors = _dereq_("./errors"); -var OperationalError = errors.OperationalError; -var es5 = _dereq_("./es5"); - -function isUntypedError(obj) { - return obj instanceof Error && - es5.getPrototypeOf(obj) === Error.prototype; -} - -var rErrorKey = /^(?:name|message|stack|cause)$/; -function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; -} - -function nodebackForPromise(promise, multiArgs) { - return function(err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var args = [].slice.call(arguments, 1);; - promise._fulfill(args); - } - promise = null; - }; -} - -module.exports = nodebackForPromise; - -},{"./errors":9,"./es5":10,"./util":21}],15:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function() { -var makeSelfResolutionError = function () { - return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var reflectHandler = function() { - return new Promise.PromiseInspection(this._target()); -}; -var apiRejection = function(msg) { - return Promise.reject(new TypeError(msg)); -}; -function Proxyable() {} -var UNDEFINED_BINDING = {}; -var util = _dereq_("./util"); - -var getDomain; -if (util.isNode) { - getDomain = function() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; -} else { - getDomain = function() { - return null; - }; -} -util.notEnumerableProp(Promise, "_getDomain", getDomain); - -var es5 = _dereq_("./es5"); -var Async = _dereq_("./async"); -var async = new Async(); -es5.defineProperty(Promise, "_async", {value: async}); -var errors = _dereq_("./errors"); -var TypeError = Promise.TypeError = errors.TypeError; -Promise.RangeError = errors.RangeError; -var CancellationError = Promise.CancellationError = errors.CancellationError; -Promise.TimeoutError = errors.TimeoutError; -Promise.OperationalError = errors.OperationalError; -Promise.RejectionError = errors.OperationalError; -Promise.AggregateError = errors.AggregateError; -var INTERNAL = function(){}; -var APPLY = {}; -var NEXT_FILTER = {}; -var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); -var PromiseArray = - _dereq_("./promise_array")(Promise, INTERNAL, - tryConvertToPromise, apiRejection, Proxyable); -var Context = _dereq_("./context")(Promise); - /*jshint unused:false*/ -var createContext = Context.create; -var debug = _dereq_("./debuggability")(Promise, Context); -var CapturedTrace = debug.CapturedTrace; -var PassThroughHandlerContext = - _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); -var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); -var nodebackForPromise = _dereq_("./nodeback"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -function check(self, executor) { - if (self == null || self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - -} - -function Promise(executor) { - if (executor !== INTERNAL) { - check(this, executor); - } - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - this._resolveFromExecutor(executor); - this._promiseCreated(); - this._fireEvent("promiseCreated", this); -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("Catch statement predicate: " + - "expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); -}; - -Promise.prototype.reflect = function () { - return this._then(reflectHandler, - reflectHandler, undefined, this, undefined); -}; - -Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && - typeof didFulfill !== "function" && - typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + - util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); -}; - -Promise.prototype.done = function (didFulfill, didReject) { - var promise = - this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); -}; - -Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); -}; - -Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; -}; - -Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); -}; - -Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); -}; - -Promise.getNewLibraryCopy = module.exports; - -Promise.is = function (val) { - return val instanceof Promise; -}; - -Promise.fromNode = Promise.fromCallback = function(fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs - : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.all = function (promises) { - return new PromiseArray(promises).promise(); -}; - -Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; -}; - -Promise.resolve = Promise.fulfilled = Promise.cast; - -Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; -}; - -Promise.setScheduler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - return async.setScheduler(fn); -}; - -Promise.prototype._then = function ( - didFulfill, - didReject, - _, receiver, - internalData -) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; - - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && - ((this._bitField & 2097152) !== 0)) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } - - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, value, settler = target._settlePromiseCtx; - if (((bitField & 33554432) !== 0)) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if (((bitField & 16777216) !== 0)) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } - - async.invoke(settler, target, { - handler: domain === null ? handler - : (typeof handler === "function" && - util.domainBind(domain, handler)), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } - - return promise; -}; - -Promise.prototype._length = function () { - return this._bitField & 65535; -}; - -Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; -}; - -Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; -}; - -Promise.prototype._setLength = function (len) { - this._bitField = (this._bitField & -65536) | - (len & 65535); -}; - -Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); -}; - -Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); -}; - -Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); -}; - -Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; -}; - -Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; -}; - -Promise.prototype._unsetCancelled = function() { - this._bitField = this._bitField & (~65536); -}; - -Promise.prototype._setCancelled = function() { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); -}; - -Promise.prototype._setWillBeCancelled = function() { - this._bitField = this._bitField | 8388608; -}; - -Promise.prototype._setAsyncGuaranteed = function() { - if (async.hasCustomScheduler()) return; - this._bitField = this._bitField | 134217728; -}; - -Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[ - index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; -}; - -Promise.prototype._promiseAt = function (index) { - return this[ - index * 4 - 4 + 2]; -}; - -Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[ - index * 4 - 4 + 0]; -}; - -Promise.prototype._rejectionHandlerAt = function (index) { - return this[ - index * 4 - 4 + 1]; -}; - -Promise.prototype._boundValue = function() {}; - -Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._addCallbacks = function ( - fulfill, - reject, - promise, - receiver, - domain -) { - var index = this._length(); - - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } - - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = - domain === null ? fulfill : util.domainBind(domain, fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = - domain === null ? reject : util.domainBind(domain, reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = - domain === null ? fulfill : util.domainBind(domain, fulfill); - } - if (typeof reject === "function") { - this[base + 1] = - domain === null ? reject : util.domainBind(domain, reject); - } - } - this._setLength(index + 1); - return index; -}; - -Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); -}; - -Promise.prototype._resolveCallback = function(value, shouldBind) { - if (((this._bitField & 117506048) !== 0)) return; - if (value === this) - return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); - - if (shouldBind) this._propagateFrom(maybePromise, 2); - - var promise = maybePromise._target(); - - if (promise === this) { - this._reject(makeSelfResolutionError()); - return; - } - - var bitField = promise._bitField; - if (((bitField & 50397184) === 0)) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if (((bitField & 33554432) !== 0)) { - this._fulfill(promise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } -}; - -Promise.prototype._rejectCallback = -function(reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + - util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); -}; - -Promise.prototype._resolveFromExecutor = function (executor) { - if (executor === INTERNAL) return; - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function(value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); - - if (r !== undefined) { - promise._rejectCallback(r, true); - } -}; - -Promise.prototype._settlePromiseFromHandler = function ( - handler, receiver, value, promise -) { - var bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + - util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj) { - promise._rejectCallback(x.e, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } -}; - -Promise.prototype._target = function() { - var ret = this; - while (ret._isFollowing()) ret = ret._followee(); - return ret; -}; - -Promise.prototype._followee = function() { - return this._rejectionHandler0; -}; - -Promise.prototype._setFollowee = function(promise) { - this._rejectionHandler0 = promise; -}; - -Promise.prototype._settlePromise = function(promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = ((bitField & 134217728) !== 0); - if (((bitField & 65536) !== 0)) { - if (isPromise) promise._invokeInternalOnCancel(); - - if (receiver instanceof PassThroughHandlerContext && - receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if (((bitField & 33554432) !== 0)) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if (((bitField & 33554432) !== 0)) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } -}; - -Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } -}; - -Promise.prototype._settlePromiseCtx = function(ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); -}; - -Promise.prototype._settlePromise0 = function(handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); -}; - -Promise.prototype._clearCallbackDataAtIndex = function(index) { - var base = index * 4 - 4; - this[base + 2] = - this[base + 3] = - this[base + 0] = - this[base + 1] = undefined; -}; - -Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; - - if ((bitField & 65535) > 0) { - if (((bitField & 134217728) !== 0)) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } -}; - -Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; - - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } - - if ((bitField & 65535) > 0) { - async.settlePromises(this); - } else { - this._ensurePossibleRejectionHandled(); - } -}; - -Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } -}; - -Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } -}; - -Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = (bitField & 65535); - - if (len > 0) { - if (((bitField & 16842752) !== 0)) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); -}; - -Promise.prototype._settledValue = function() { - var bitField = this._bitField; - if (((bitField & 33554432) !== 0)) { - return this._rejectionHandler0; - } else if (((bitField & 16777216) !== 0)) { - return this._fulfillmentHandler0; - } -}; - -function deferResolve(v) {this.promise._resolveCallback(v);} -function deferReject(v) {this.promise._rejectCallback(v, false);} - -Promise.defer = Promise.pending = function() { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; -}; - -util.notEnumerableProp(Promise, - "_makeSelfResolutionError", - makeSelfResolutionError); - -_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, - debug); -_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); -_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); -_dereq_("./direct_resolve")(Promise); -_dereq_("./synchronous_inspection")(Promise); -_dereq_("./join")( - Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); -Promise.Promise = Promise; -Promise.version = "3.5.1"; - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - -}; - -},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, - apiRejection, Proxyable) { -var util = _dereq_("./util"); -var isArray = util.isArray; - -function toResolutionValue(val) { - switch(val) { - case -2: return []; - case -3: return {}; - case -6: return new Map(); - } -} - -function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); -} -util.inherits(PromiseArray, Proxyable); - -PromiseArray.prototype.length = function () { - return this._length; -}; - -PromiseArray.prototype.promise = function () { - return this._promise; -}; - -PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; - - if (((bitField & 50397184) === 0)) { - this._promise._setAsyncGuaranteed(); - return values._then( - init, - this._reject, - undefined, - this, - resolveValueIfEmpty - ); - } else if (((bitField & 33554432) !== 0)) { - values = values._value(); - } else if (((bitField & 16777216) !== 0)) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection( - "expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } - - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } - else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); -}; - -PromiseArray.prototype._iterate = function(values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); - - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } - - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if (((bitField & 50397184) === 0)) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if (((bitField & 33554432) !== 0)) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if (((bitField & 16777216) !== 0)) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); -}; - -PromiseArray.prototype._isResolved = function () { - return this._values === null; -}; - -PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); -}; - -PromiseArray.prototype._cancel = function() { - if (this._isResolved() || !this._promise._isCancellable()) return; - this._values = null; - this._promise._cancel(); -}; - -PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); -}; - -PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -PromiseArray.prototype._promiseCancelled = function() { - this._cancel(); - return true; -}; - -PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; -}; - -PromiseArray.prototype._resultCancelled = function() { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } -}; - -PromiseArray.prototype.shouldCopyValues = function () { - return true; -}; - -PromiseArray.prototype.getActualLength = function (len) { - return len; -}; - -return PromiseArray; -}; - -},{"./util":21}],17:[function(_dereq_,module,exports){ -"use strict"; -function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } -} - -function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; -} - -Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; -}; - -Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = (this._front + length) & (this._capacity - 1); - this[i] = arg; - this._length = length + 1; -}; - -Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[(j + 0) & wrapMask] = fn; - this[(j + 1) & wrapMask] = receiver; - this[(j + 2) & wrapMask] = arg; - this._length = length; -}; - -Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; - - this[front] = undefined; - this._front = (front + 1) & (this._capacity - 1); - this._length--; - return ret; -}; - -Queue.prototype.length = function () { - return this._length; -}; - -Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } -}; - -Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = (front + length) & (oldCapacity - 1); - arrayMove(this, 0, this, oldCapacity, moveItemsCount); -}; - -module.exports = Queue; - -},{}],18:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var schedule; -var noAsyncScheduler = function() { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var NativePromise = util.getNativePromise(); -if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode - ? function(fn) { GlobalSetImmediate.call(global, fn); } - : function(fn) { ProcessNextTick.call(process, fn); }; -} else if (typeof NativePromise === "function" && - typeof NativePromise.resolve === "function") { - var nativePromise = NativePromise.resolve(); - schedule = function(fn) { - nativePromise.then(fn); - }; -} else if ((typeof MutationObserver !== "undefined") && - !(typeof window !== "undefined" && - window.navigator && - (window.navigator.standalone || window.cordova))) { - schedule = (function() { - var div = document.createElement("div"); - var opts = {attributes: true}; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function() { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); - - var scheduleToggle = function() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; - - return function schedule(fn) { - var o = new MutationObserver(function() { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - })(); -} else if (typeof setImmediate !== "undefined") { - schedule = function (fn) { - setImmediate(fn); - }; -} else if (typeof setTimeout !== "undefined") { - schedule = function (fn) { - setTimeout(fn, 0); - }; -} else { - schedule = noAsyncScheduler; -} -module.exports = schedule; - -},{"./util":21}],19:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() - ? promise._settledValue() : undefined; - } - else { - this._bitField = 0; - this._settledValueField = undefined; - } -} - -PromiseInspection.prototype._settledValue = function() { - return this._settledValueField; -}; - -var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var reason = PromiseInspection.prototype.error = -PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { - return (this._bitField & 33554432) !== 0; -}; - -var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; -}; - -var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; -}; - -var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; -}; - -PromiseInspection.prototype.isCancelled = function() { - return (this._bitField & 8454144) !== 0; -}; - -Promise.prototype.__isCancelled = function() { - return (this._bitField & 65536) === 65536; -}; - -Promise.prototype._isCancelled = function() { - return this._target().__isCancelled(); -}; - -Promise.prototype.isCancelled = function() { - return (this._target()._bitField & 8454144) !== 0; -}; - -Promise.prototype.isPending = function() { - return isPending.call(this._target()); -}; - -Promise.prototype.isRejected = function() { - return isRejected.call(this._target()); -}; - -Promise.prototype.isFulfilled = function() { - return isFulfilled.call(this._target()); -}; - -Promise.prototype.isResolved = function() { - return isResolved.call(this._target()); -}; - -Promise.prototype.value = function() { - return value.call(this._target()); -}; - -Promise.prototype.reason = function() { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); -}; - -Promise.prototype._value = function() { - return this._settledValue(); -}; - -Promise.prototype._reason = function() { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); -}; - -Promise.PromiseInspection = PromiseInspection; -}; - -},{}],20:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var util = _dereq_("./util"); -var errorObj = util.errorObj; -var isObject = util.isObject; - -function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then( - ret._fulfill, - ret._reject, - undefined, - ret, - null - ); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; -} - -function doGetThen(obj) { - return obj.then; -} - -function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} - -var hasProp = {}.hasOwnProperty; -function isAnyBluebirdPromise(obj) { - try { - return hasProp.call(obj, "_promise0"); - } catch (e) { - return false; - } -} - -function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; - - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } - - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } - - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; -} - -return tryConvertToPromise; -}; - -},{"./util":21}],21:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var canEvaluate = typeof navigator == "undefined"; - -var errorObj = {e: {}}; -var tryCatchTarget; -var globalObject = typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - this !== undefined ? this : null; - -function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} - -var inherits = function(Child, Parent) { - var hasProp = {}.hasOwnProperty; - - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && - propertyName.charAt(propertyName.length-1) !== "$" - ) { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; -}; - - -function isPrimitive(val) { - return val == null || val === true || val === false || - typeof val === "string" || typeof val === "number"; - -} - -function isObject(value) { - return typeof value === "function" || - typeof value === "object" && value !== null; -} - -function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; - - return new Error(safeToString(maybeError)); -} - -function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; -} - -function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); - - if (desc != null) { - return desc.get == null && desc.set == null - ? desc.value - : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } -} - -function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; -} - -function thrower(r) { - throw r; -} - -var inheritedDataKeys = (function() { - var excludedPrototypes = [ - Array.prototype, - Object.prototype, - Function.prototype - ]; - - var isExcludedProto = function(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; - - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function(obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function(obj) { - if (isExcludedProto(obj)) return []; - var ret = []; - - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - -})(); - -var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; -function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); - - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && - !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = - thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; - - if (hasMethods || hasMethodsOtherThanConstructor || - hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } -} - -function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); - return obj; - eval(obj); -} - -var rident = /^[a-z$_][a-z$_0-9]*$/i; -function isIdentifier(str) { - return rident.test(str); -} - -function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for(var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; -} - -function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } -} - -function isError(obj) { - return obj instanceof Error || - (obj !== null && - typeof obj === "object" && - typeof obj.message === "string" && - typeof obj.name === "string"); -} - -function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } - catch(ignore) {} -} - -function originatesFromRejection(e) { - if (e == null) return false; - return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || - e["isOperational"] === true); -} - -function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); -} - -var ensureErrorObject = (function() { - if (!("stack" in new Error())) { - return function(value) { - if (canAttachTrace(value)) return value; - try {throw new Error(safeToString(value));} - catch(err) {return err;} - }; - } else { - return function(value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } -})(); - -function classString(obj) { - return {}.toString.call(obj); -} - -function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } -} - -var asArray = function(v) { - if (es5.isArray(v)) { - return v; - } - return null; -}; - -if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function(v) { - return Array.from(v); - } : function(v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!((itResult = it.next()).done)) { - ret.push(itResult.value); - } - return ret; - }; - - asArray = function(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; -} - -var isNode = typeof process !== "undefined" && - classString(process).toLowerCase() === "[object process]"; - -var hasEnvVariables = typeof process !== "undefined" && - typeof process.env !== "undefined"; - -function env(key) { - return hasEnvVariables ? process.env[key] : undefined; -} - -function getNativePromise() { - if (typeof Promise === "function") { - try { - var promise = new Promise(function(){}); - if ({}.toString.call(promise) === "[object Promise]") { - return Promise; - } - } catch (e) {} - } -} - -function domainBind(self, cb) { - return self.bind(cb); -} - -var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && - typeof chrome.loadTimes === "function", - isNode: isNode, - hasEnvVariables: hasEnvVariables, - env: env, - global: globalObject, - getNativePromise: getNativePromise, - domainBind: domainBind -}; -ret.isRecentNode = ret.isNode && (function() { - var version = process.versions.node.split(".").map(Number); - return (version[0] === 0 && version[1] > 10) || (version[0] > 0); -})(); - -if (ret.isNode) ret.toFastProperties(process); - -try {throw new Error(); } catch (e) {ret.lastLineError = e;} -module.exports = ret; - -},{"./es5":10}]},{},[3])(3) -}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/deps/npm/node_modules/bluebird/js/browser/bluebird.core.min.js b/deps/npm/node_modules/bluebird/js/browser/bluebird.core.min.js deleted file mode 100644 index 84268e7c4fb..00000000000 --- a/deps/npm/node_modules/bluebird/js/browser/bluebird.core.min.js +++ /dev/null @@ -1,31 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2017 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.5.1 - * Features enabled: core - * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+I.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?I.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new x(this._peekContext())}function _(t,e){if(H(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);I.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),I.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&X){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=C(s),l=c.length-1;l>=0;--l){var u=c[l];if(!V.test(u)){var p=u.match(Q);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=E(o);o.stack=a.message+"\n"+a.stack.join("\n")}tt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?w(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(I.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof N?N(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){B.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||k(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():I.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(nt=function(t){if(D.test(t))return!0;var e=R(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function x(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,x),e>32&&this.uncycle()}var O,A,N,L=e._getDomain,B=e._async,U=t("./errors").Warning,I=t("./util"),H=I.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=/\((?:timers\.js):\d+:\d+\)/,Q=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,G=null,M=!1,W=!(0==I.env("BLUEBIRD_DEBUG")||!I.env("BLUEBIRD_DEBUG")&&"development"!==I.env("NODE_ENV")),$=!(0==I.env("BLUEBIRD_WARNINGS")||!W&&!I.env("BLUEBIRD_WARNINGS")),z=!(0==I.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!I.env("BLUEBIRD_LONG_STACK_TRACES")),X=0!=I.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!I.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=L();A="function"==typeof t?null===e?t:I.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=L();O="function"==typeof t?null===e?t:I.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),B.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&P()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!I.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!I.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),I.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!I.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return I.isNode?function(){return process.emit.apply(process,arguments)}:I.global?function(t){var e="on"+t.toLowerCase(),n=I.global[e];return n?(n.apply(I.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){B.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){B.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,X=ot.warnings,I.isObject(n)&&"wForgottenReturn"in n&&(X=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;I.inherits(x,Error),n.CapturedTrace=x,x.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},x.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),I.notEnumerableProp(t,"stack",g(n,r)),I.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,G=e;var n=Error.captureStackTrace;return nt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,G=e,M=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(N=function(t){console.warn(t)},I.isNode&&process.stderr.isTTY?N=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:I.isNode||"string"!=typeof(new Error).stack||(N=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return z&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:S,warn:y,deprecated:v,CapturedTrace:x,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0); -},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.1",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/deps/npm/node_modules/bluebird/js/browser/bluebird.js b/deps/npm/node_modules/bluebird/js/browser/bluebird.js deleted file mode 100644 index df2041448f7..00000000000 --- a/deps/npm/node_modules/bluebird/js/browser/bluebird.js +++ /dev/null @@ -1,5623 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2017 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.5.1 - * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;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 _dereq_=="function"&&_dereq_;for(var o=0;o 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } -}; - -Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); -}; - -Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } -}; - -Async.prototype._reset = function () { - this._isTickUsed = false; -}; - -module.exports = Async; -module.exports.firstLineError = firstLineError; - -},{"./queue":26,"./schedule":29,"./util":36}],3:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { -var calledBind = false; -var rejectThis = function(_, e) { - this._reject(e); -}; - -var targetRejected = function(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); -}; - -var bindingResolved = function(thisArg, context) { - if (((this._bitField & 50397184) === 0)) { - this._resolveCallback(context.target); - } -}; - -var bindingRejected = function(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); -}; - -Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); - var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then( - bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; -}; - -Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & (~2097152); - } -}; - -Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; -}; - -Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); -}; -}; - -},{}],4:[function(_dereq_,module,exports){ -"use strict"; -var old; -if (typeof Promise !== "undefined") old = Promise; -function noConflict() { - try { if (Promise === bluebird) Promise = old; } - catch (e) {} - return bluebird; -} -var bluebird = _dereq_("./promise")(); -bluebird.noConflict = noConflict; -module.exports = bluebird; - -},{"./promise":22}],5:[function(_dereq_,module,exports){ -"use strict"; -var cr = Object.create; -if (cr) { - var callerCache = cr(null); - var getterCache = cr(null); - callerCache[" size"] = getterCache[" size"] = 0; -} - -module.exports = function(Promise) { -var util = _dereq_("./util"); -var canEvaluate = util.canEvaluate; -var isIdentifier = util.isIdentifier; - -var getMethodCaller; -var getGetter; -if (!true) { -var makeMethodCaller = function (methodName) { - return new Function("ensureMethod", " \n\ - return function(obj) { \n\ - 'use strict' \n\ - var len = this.length; \n\ - ensureMethod(obj, 'methodName'); \n\ - switch(len) { \n\ - case 1: return obj.methodName(this[0]); \n\ - case 2: return obj.methodName(this[0], this[1]); \n\ - case 3: return obj.methodName(this[0], this[1], this[2]); \n\ - case 0: return obj.methodName(); \n\ - default: \n\ - return obj.methodName.apply(obj, this); \n\ - } \n\ - }; \n\ - ".replace(/methodName/g, methodName))(ensureMethod); -}; - -var makeGetter = function (propertyName) { - return new Function("obj", " \n\ - 'use strict'; \n\ - return obj.propertyName; \n\ - ".replace("propertyName", propertyName)); -}; - -var getCompiled = function(name, compiler, cache) { - var ret = cache[name]; - if (typeof ret !== "function") { - if (!isIdentifier(name)) { - return null; - } - ret = compiler(name); - cache[name] = ret; - cache[" size"]++; - if (cache[" size"] > 512) { - var keys = Object.keys(cache); - for (var i = 0; i < 256; ++i) delete cache[keys[i]]; - cache[" size"] = keys.length - 256; - } - } - return ret; -}; - -getMethodCaller = function(name) { - return getCompiled(name, makeMethodCaller, callerCache); -}; - -getGetter = function(name) { - return getCompiled(name, makeGetter, getterCache); -}; -} - -function ensureMethod(obj, methodName) { - var fn; - if (obj != null) fn = obj[methodName]; - if (typeof fn !== "function") { - var message = "Object " + util.classString(obj) + " has no method '" + - util.toString(methodName) + "'"; - throw new Promise.TypeError(message); - } - return fn; -} - -function caller(obj) { - var methodName = this.pop(); - var fn = ensureMethod(obj, methodName); - return fn.apply(obj, this); -} -Promise.prototype.call = function (methodName) { - var args = [].slice.call(arguments, 1);; - if (!true) { - if (canEvaluate) { - var maybeCaller = getMethodCaller(methodName); - if (maybeCaller !== null) { - return this._then( - maybeCaller, undefined, undefined, args, undefined); - } - } - } - args.push(methodName); - return this._then(caller, undefined, undefined, args, undefined); -}; - -function namedGetter(obj) { - return obj[this]; -} -function indexedGetter(obj) { - var index = +this; - if (index < 0) index = Math.max(0, index + obj.length); - return obj[index]; -} -Promise.prototype.get = function (propertyName) { - var isIndex = (typeof propertyName === "number"); - var getter; - if (!isIndex) { - if (canEvaluate) { - var maybeGetter = getGetter(propertyName); - getter = maybeGetter !== null ? maybeGetter : namedGetter; - } else { - getter = namedGetter; - } - } else { - getter = indexedGetter; - } - return this._then(getter, undefined, undefined, propertyName, undefined); -}; -}; - -},{"./util":36}],6:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, PromiseArray, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -Promise.prototype["break"] = Promise.prototype.cancel = function() { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise._isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } - - var parent = promise._cancellationParent; - if (parent == null || !parent._isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - promise._setWillBeCancelled(); - child = promise; - promise = parent; - } - } -}; - -Promise.prototype._branchHasCancelled = function() { - this._branchesRemainingToCancel--; -}; - -Promise.prototype._enoughBranchesHaveCancelled = function() { - return this._branchesRemainingToCancel === undefined || - this._branchesRemainingToCancel <= 0; -}; - -Promise.prototype._cancelBy = function(canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; - } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; - } - } - return false; -}; - -Promise.prototype._cancelBranched = function() { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } -}; - -Promise.prototype._cancel = function() { - if (!this._isCancellable()) return; - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); -}; - -Promise.prototype._cancelPromises = function() { - if (this._length() > 0) this._settlePromises(); -}; - -Promise.prototype._unsetOnCancel = function() { - this._onCancelField = undefined; -}; - -Promise.prototype._isCancellable = function() { - return this.isPending() && !this._isCancelled(); -}; - -Promise.prototype.isCancellable = function() { - return this.isPending() && !this.isCancelled(); -}; - -Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); - } - } -}; - -Promise.prototype._invokeOnCancel = function() { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); -}; - -Promise.prototype._invokeInternalOnCancel = function() { - if (this._isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); - } -}; - -Promise.prototype._resultCancelled = function() { - this.cancel(); -}; - -}; - -},{"./util":36}],7:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(NEXT_FILTER) { -var util = _dereq_("./util"); -var getKeys = _dereq_("./es5").keys; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function catchFilter(instances, cb, promise) { - return function(e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || - (item != null && item.prototype instanceof Error)) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; -} - -return catchFilter; -}; - -},{"./es5":13,"./util":36}],8:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -var longStackTraces = false; -var contextStack = []; - -Promise.prototype._promiseCreated = function() {}; -Promise.prototype._pushContext = function() {}; -Promise.prototype._popContext = function() {return null;}; -Promise._peekContext = Promise.prototype._peekContext = function() {}; - -function Context() { - this._trace = new Context.CapturedTrace(peekContext()); -} -Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } -}; - -Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; - } - return null; -}; - -function createContext() { - if (longStackTraces) return new Context(); -} - -function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; - } - return undefined; -} -Context.CapturedTrace = null; -Context.create = createContext; -Context.deactivateLongStackTraces = function() {}; -Context.activateLongStackTraces = function() { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function() { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function() { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; -}; -return Context; -}; - -},{}],9:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, Context) { -var getDomain = Promise._getDomain; -var async = Promise._async; -var Warning = _dereq_("./errors").Warning; -var util = _dereq_("./util"); -var canAttachTrace = util.canAttachTrace; -var unhandledRejectionHandled; -var possiblyUnhandledRejection; -var bluebirdFramePattern = - /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; -var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; -var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; -var stackFramePattern = null; -var formatStack = null; -var indentStackFrames = false; -var printWarning; -var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && - (true || - util.env("BLUEBIRD_DEBUG") || - util.env("NODE_ENV") === "development")); - -var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && - (debugging || util.env("BLUEBIRD_WARNINGS"))); - -var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && - (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - -var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && - (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - -Promise.prototype.suppressUnhandledRejections = function() { - var target = this._target(); - target._bitField = ((target._bitField & (~1048576)) | - 524288); -}; - -Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - var self = this; - setTimeout(function() { - self._notifyUnhandledRejection(); - }, 1); -}; - -Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", - unhandledRejectionHandled, undefined, this); -}; - -Promise.prototype._setReturnedNonUndefined = function() { - this._bitField = this._bitField | 268435456; -}; - -Promise.prototype._returnedNonUndefined = function() { - return (this._bitField & 268435456) !== 0; -}; - -Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", - possiblyUnhandledRejection, reason, this); - } -}; - -Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; -}; - -Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & (~262144); -}; - -Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; -}; - -Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; -}; - -Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & (~1048576); - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); - } -}; - -Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; -}; - -Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); -}; - -Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = - typeof fn === "function" ? (domain === null ? - fn : util.domainBind(domain, fn)) - : undefined; -}; - -Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = - typeof fn === "function" ? (domain === null ? - fn : util.domainBind(domain, fn)) - : undefined; -}; - -var disableLongStackTraces = function() {}; -Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); - } -}; - -Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); -}; - -var fireDomEvent = (function() { - try { - if (typeof CustomEvent === "function") { - var event = new CustomEvent("CustomEvent"); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = new CustomEvent(name.toLowerCase(), { - detail: event, - cancelable: true - }); - return !util.global.dispatchEvent(domEvent); - }; - } else if (typeof Event === "function") { - var event = new Event("CustomEvent"); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = new Event(name.toLowerCase(), { - cancelable: true - }); - domEvent.detail = event; - return !util.global.dispatchEvent(domEvent); - }; - } else { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, - event); - return !util.global.dispatchEvent(domEvent); - }; - } - } catch (e) {} - return function() { - return false; - }; -})(); - -var fireGlobalEvent = (function() { - if (util.isNode) { - return function() { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function() { - return false; - }; - } - return function(name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } -})(); - -function generatePromiseLifecycleEventObject(name, promise) { - return {promise: promise}; -} - -var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function(name, promise, child) { - return {promise: promise, child: child}; - }, - warning: function(name, warning) { - return {warning: warning}; - }, - unhandledRejection: function (name, reason, promise) { - return {reason: reason, promise: promise}; - }, - rejectionHandled: generatePromiseLifecycleEventObject -}; - -var activeFireEvent = function (name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } - - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, - eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } - - return domEventFired || globalEventFired; -}; - -Promise.config = function(opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; - - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error( - "cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = - cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = - cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - propagateFromFunction = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } - } - return Promise; -}; - -function defaultFireEvent() { return false; } - -Promise.prototype._fireEvent = defaultFireEvent; -Promise.prototype._execute = function(executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } -}; -Promise.prototype._onCancel = function () {}; -Promise.prototype._setOnCancel = function (handler) { ; }; -Promise.prototype._attachCancellationCallback = function(onCancel) { - ; -}; -Promise.prototype._captureStackTrace = function () {}; -Promise.prototype._attachExtraTrace = function () {}; -Promise.prototype._clearCancellationData = function() {}; -Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; -}; - -function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function(onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + - util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } -} - -function cancellationAttachCancellationCallback(onCancel) { - if (!this._isCancellable()) return this; - - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); - } - } else { - this._setOnCancel(onCancel); - } -} - -function cancellationOnCancel() { - return this._onCancelField; -} - -function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; -} - -function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; -} - -function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} - -function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} -var propagateFromFunction = bindingPropagateFrom; - -function boundValueFunction() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); - } else { - return undefined; - } - } - } - return ret; -} - -function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); -} - -function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", - parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); - } - } -} - -function checkForgottenReturns(returnValue, promiseCreated, name, promise, - parent) { - if (returnValue === undefined && promiseCreated !== null && - wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; - if ((promise._bitField & 65535) === 0) return; - - if (name) name = name + " "; - var handlerLine = ""; - var creatorLine = ""; - if (promiseCreated._trace) { - var traceLines = promiseCreated._trace.stack.split("\n"); - var stack = cleanStack(traceLines); - for (var i = stack.length - 1; i >= 0; --i) { - var line = stack[i]; - if (!nodeFramePattern.test(line)) { - var lineMatches = line.match(parseLinePattern); - if (lineMatches) { - handlerLine = "at " + lineMatches[1] + - ":" + lineMatches[2] + ":" + lineMatches[3] + " "; - } - break; - } - } - - if (stack.length > 0) { - var firstUserLine = stack[0]; - for (var i = 0; i < traceLines.length; ++i) { - - if (traceLines[i] === firstUserLine) { - if (i > 0) { - creatorLine = "\n" + traceLines[i - 1]; - } - break; - } - } - - } - } - var msg = "a promise was created in a " + name + - "handler " + handlerLine + "but was not returned from it, " + - "see http://goo.gl/rRqMUw" + - creatorLine; - promise._warn(msg, true, promiseCreated); - } -} - -function deprecated(name, replacement) { - var message = name + - " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); -} - -function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } -} - -function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); -} - -function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || - ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { - stacks.splice(i, 1); - i--; - } - } -} - -function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; - - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } - - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } - } - current = prev; - } -} - -function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || - stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; -} - -function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0 && error.name != "SyntaxError") { - stack = stack.slice(i); - } - return stack; -} - -function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 - ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: error.name == "SyntaxError" ? stack : cleanStack(stack) - }; -} - -function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || - typeof console.log === "object") { - console.log(message); - } - } -} - -function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); - } - - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } -} - -function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + - (obj.name || "anonymous") + - "]"; - } else { - str = obj && typeof obj.toString === "function" - ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } - catch(e) { - - } - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return ("(<" + snip(str) + ">, no stack trace)"); -} - -function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; -} - -function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; -} - -var shouldIgnore = function() { return false; }; -var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; -function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } -} - -function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || - firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } - - shouldIgnore = function(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && - (firstIndex <= info.line && info.line <= lastIndex)) { - return true; - } - } - return false; - }; -} - -function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); -} -util.inherits(CapturedTrace, Error); -Context.CapturedTrace = CapturedTrace; - -CapturedTrace.prototype.uncycle = function() { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; - - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = - cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } -}; - -CapturedTrace.prototype.attachExtraTrace = function(error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; - - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); -}; - -var captureStackTrace = (function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function(stack, error) { - if (typeof stack === "string") return stack; - - if (error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - if (typeof Error.stackTraceLimit === "number" && - typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; - - shouldIgnore = function(line) { - return bluebirdFramePattern.test(line); - }; - return function(receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); - - if (typeof err.stack === "string" && - err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } - - var hasStackAfterThrow; - try { throw new Error(); } - catch(e) { - hasStackAfterThrow = ("stack" in e); - } - if (!("stack" in err) && hasStackAfterThrow && - typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { throw new Error(); } - catch(e) { o.stack = e.stack; } - Error.stackTraceLimit -= 6; - }; - } - - formatStack = function(stack, error) { - if (typeof stack === "string") return stack; - - if ((typeof error === "object" || - typeof error === "function") && - error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - return null; - -})([]); - -if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function (message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function(message, isSoft) { - var color = isSoft ? "\u001b[33m" : "\u001b[31m"; - console.warn(color + message + "\u001b[0m\n"); - }; - } else if (!util.isNode && typeof (new Error().stack) === "string") { - printWarning = function(message, isSoft) { - console.warn("%c" + message, - isSoft ? "color: darkorange" : "color: red"); - }; - } -} - -var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false -}; - -if (longStackTraces) Promise.longStackTraces(); - -return { - longStackTraces: function() { - return config.longStackTraces; - }, - warnings: function() { - return config.warnings; - }, - cancellation: function() { - return config.cancellation; - }, - monitoring: function() { - return config.monitoring; - }, - propagateFromFunction: function() { - return propagateFromFunction; - }, - boundValueFunction: function() { - return boundValueFunction; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent -}; -}; - -},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function returner() { - return this.value; -} -function thrower() { - throw this.reason; -} - -Promise.prototype["return"] = -Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - returner, undefined, undefined, {value: value}, undefined); -}; - -Promise.prototype["throw"] = -Promise.prototype.thenThrow = function (reason) { - return this._then( - thrower, undefined, undefined, {reason: reason}, undefined); -}; - -Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then( - undefined, thrower, undefined, {reason: reason}, undefined); - } else { - var _reason = arguments[1]; - var handler = function() {throw _reason;}; - return this.caught(reason, handler); - } -}; - -Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - undefined, returner, undefined, {value: value}, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function() {return _value;}; - return this.caught(value, handler); - } -}; -}; - -},{}],11:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseReduce = Promise.reduce; -var PromiseAll = Promise.all; - -function promiseAllThis() { - return PromiseAll(this); -} - -function PromiseMapSeries(promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, INTERNAL); -} - -Promise.prototype.each = function (fn) { - return PromiseReduce(this, fn, INTERNAL, 0) - ._then(promiseAllThis, undefined, undefined, this, undefined); -}; - -Promise.prototype.mapSeries = function (fn) { - return PromiseReduce(this, fn, INTERNAL, INTERNAL); -}; - -Promise.each = function (promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, 0) - ._then(promiseAllThis, undefined, undefined, promises, undefined); -}; - -Promise.mapSeries = PromiseMapSeries; -}; - - -},{}],12:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var Objectfreeze = es5.freeze; -var util = _dereq_("./util"); -var inherits = util.inherits; -var notEnumerableProp = util.notEnumerableProp; - -function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", - typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; -} - -var _TypeError, _RangeError; -var Warning = subError("Warning", "warning"); -var CancellationError = subError("CancellationError", "cancellation error"); -var TimeoutError = subError("TimeoutError", "timeout error"); -var AggregateError = subError("AggregateError", "aggregate error"); -try { - _TypeError = TypeError; - _RangeError = RangeError; -} catch(e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); -} - -var methods = ("join pop push shift unshift slice filter forEach some " + - "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - -for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } -} - -es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true -}); -AggregateError.prototype["isOperational"] = true; -var level = 0; -AggregateError.prototype.toString = function() { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; -}; - -function OperationalError(message) { - if (!(this instanceof OperationalError)) - return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; - - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - -} -inherits(OperationalError, Error); - -var errorTypes = Error["__BluebirdErrorTypes__"]; -if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); -} - -module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning -}; - -},{"./es5":13,"./util":36}],13:[function(_dereq_,module,exports){ -var isES5 = (function(){ - "use strict"; - return this === undefined; -})(); - -if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; -} else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; - - var ObjectKeys = function (o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; - - var ObjectGetDescriptor = function(o, key) { - return {value: o[key]}; - }; - - var ObjectDefineProperty = function (o, key, desc) { - o[key] = desc.value; - return o; - }; - - var ObjectFreeze = function (obj) { - return obj; - }; - - var ObjectGetPrototypeOf = function (obj) { - try { - return Object(obj).constructor.prototype; - } - catch (e) { - return proto; - } - }; - - var ArrayIsArray = function (obj) { - try { - return str.call(obj) === "[object Array]"; - } - catch(e) { - return false; - } - }; - - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function() { - return true; - } - }; -} - -},{}],14:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseMap = Promise.map; - -Promise.prototype.filter = function (fn, options) { - return PromiseMap(this, fn, options, INTERNAL); -}; - -Promise.filter = function (promises, fn, options) { - return PromiseMap(promises, fn, options, INTERNAL); -}; -}; - -},{}],15:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { -var util = _dereq_("./util"); -var CancellationError = Promise.CancellationError; -var errorObj = util.errorObj; -var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); - -function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; -} - -PassThroughHandlerContext.prototype.isFinallyHandler = function() { - return this.type === 0; -}; - -function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; -} - -FinallyHandlerCancelReaction.prototype._resultCancelled = function() { - checkCancel(this.finallyHandler); -}; - -function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; -} - -function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); -} -function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; -} -function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; - - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() - ? handler.call(promise._boundValue()) - : handler.call(promise._boundValue(), reasonOrValue); - if (ret === NEXT_FILTER) { - return ret; - } else if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise._isCancelled()) { - var reason = - new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback( - new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then( - succeed, fail, undefined, this, undefined); - } - } - } - - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } -} - -Promise.prototype._passThrough = function(handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, - fail, - undefined, - new PassThroughHandlerContext(this, type, handler), - undefined); -}; - -Promise.prototype.lastly = -Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, - 0, - finallyHandler, - finallyHandler); -}; - - -Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); -}; - -Promise.prototype.tapCatch = function (handlerOrPredicate) { - var len = arguments.length; - if(len === 1) { - return this._passThrough(handlerOrPredicate, - 1, - undefined, - finallyHandler); - } else { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return Promise.reject(new TypeError( - "tapCatch statement predicate: " - + "expecting an object but got " + util.classString(item) - )); - } - } - catchInstances.length = j; - var handler = arguments[i]; - return this._passThrough(catchFilter(catchInstances, handler, this), - 1, - undefined, - finallyHandler); - } - -}; - -return PassThroughHandlerContext; -}; - -},{"./catch_filter":7,"./util":36}],16:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, - apiRejection, - INTERNAL, - tryConvertToPromise, - Proxyable, - debug) { -var errors = _dereq_("./errors"); -var TypeError = errors.TypeError; -var util = _dereq_("./util"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -var yieldHandlers = []; - -function promiseFromYieldHandler(value, yieldHandlers, traceParent) { - for (var i = 0; i < yieldHandlers.length; ++i) { - traceParent._pushContext(); - var result = tryCatch(yieldHandlers[i])(value); - traceParent._popContext(); - if (result === errorObj) { - traceParent._pushContext(); - var ret = Promise.reject(errorObj.e); - traceParent._popContext(); - return ret; - } - var maybePromise = tryConvertToPromise(result, traceParent); - if (maybePromise instanceof Promise) return maybePromise; - } - return null; -} - -function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { - if (debug.cancellation()) { - var internal = new Promise(INTERNAL); - var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); - this._promise = internal.lastly(function() { - return _finallyPromise; - }); - internal._captureStackTrace(); - internal._setOnCancel(this); - } else { - var promise = this._promise = new Promise(INTERNAL); - promise._captureStackTrace(); - } - this._stack = stack; - this._generatorFunction = generatorFunction; - this._receiver = receiver; - this._generator = undefined; - this._yieldHandlers = typeof yieldHandler === "function" - ? [yieldHandler].concat(yieldHandlers) - : yieldHandlers; - this._yieldedPromise = null; - this._cancellationPhase = false; -} -util.inherits(PromiseSpawn, Proxyable); - -PromiseSpawn.prototype._isResolved = function() { - return this._promise === null; -}; - -PromiseSpawn.prototype._cleanup = function() { - this._promise = this._generator = null; - if (debug.cancellation() && this._finallyPromise !== null) { - this._finallyPromise._fulfill(); - this._finallyPromise = null; - } -}; - -PromiseSpawn.prototype._promiseCancelled = function() { - if (this._isResolved()) return; - var implementsReturn = typeof this._generator["return"] !== "undefined"; - - var result; - if (!implementsReturn) { - var reason = new Promise.CancellationError( - "generator .return() sentinel"); - Promise.coroutine.returnSentinel = reason; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - result = tryCatch(this._generator["throw"]).call(this._generator, - reason); - this._promise._popContext(); - } else { - this._promise._pushContext(); - result = tryCatch(this._generator["return"]).call(this._generator, - undefined); - this._promise._popContext(); - } - this._cancellationPhase = true; - this._yieldedPromise = null; - this._continue(result); -}; - -PromiseSpawn.prototype._promiseFulfilled = function(value) { - this._yieldedPromise = null; - this._promise._pushContext(); - var result = tryCatch(this._generator.next).call(this._generator, value); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._promiseRejected = function(reason) { - this._yieldedPromise = null; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - var result = tryCatch(this._generator["throw"]) - .call(this._generator, reason); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._resultCancelled = function() { - if (this._yieldedPromise instanceof Promise) { - var promise = this._yieldedPromise; - this._yieldedPromise = null; - promise.cancel(); - } -}; - -PromiseSpawn.prototype.promise = function () { - return this._promise; -}; - -PromiseSpawn.prototype._run = function () { - this._generator = this._generatorFunction.call(this._receiver); - this._receiver = - this._generatorFunction = undefined; - this._promiseFulfilled(undefined); -}; - -PromiseSpawn.prototype._continue = function (result) { - var promise = this._promise; - if (result === errorObj) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._rejectCallback(result.e, false); - } - } - - var value = result.value; - if (result.done === true) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._resolveCallback(value); - } - } else { - var maybePromise = tryConvertToPromise(value, this._promise); - if (!(maybePromise instanceof Promise)) { - maybePromise = - promiseFromYieldHandler(maybePromise, - this._yieldHandlers, - this._promise); - if (maybePromise === null) { - this._promiseRejected( - new TypeError( - "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + - "From coroutine:\u000a" + - this._stack.split("\n").slice(1, -7).join("\n") - ) - ); - return; - } - } - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - this._yieldedPromise = maybePromise; - maybePromise._proxy(this, null); - } else if (((bitField & 33554432) !== 0)) { - Promise._async.invoke( - this._promiseFulfilled, this, maybePromise._value() - ); - } else if (((bitField & 16777216) !== 0)) { - Promise._async.invoke( - this._promiseRejected, this, maybePromise._reason() - ); - } else { - this._promiseCancelled(); - } - } -}; - -Promise.coroutine = function (generatorFunction, options) { - if (typeof generatorFunction !== "function") { - throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var yieldHandler = Object(options).yieldHandler; - var PromiseSpawn$ = PromiseSpawn; - var stack = new Error().stack; - return function () { - var generator = generatorFunction.apply(this, arguments); - var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, - stack); - var ret = spawn.promise(); - spawn._generator = generator; - spawn._promiseFulfilled(undefined); - return ret; - }; -}; - -Promise.coroutine.addYieldHandler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - yieldHandlers.push(fn); -}; - -Promise.spawn = function (generatorFunction) { - debug.deprecated("Promise.spawn()", "Promise.coroutine()"); - if (typeof generatorFunction !== "function") { - return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var spawn = new PromiseSpawn(generatorFunction, this); - var ret = spawn.promise(); - spawn._run(Promise.spawn); - return ret; -}; -}; - -},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, - getDomain) { -var util = _dereq_("./util"); -var canEvaluate = util.canEvaluate; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var reject; - -if (!true) { -if (canEvaluate) { - var thenCallback = function(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; - - var promiseSetter = function(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; - - var generateHolderClass = function(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i+1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode= "var promise;\n" + props.map(function(prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; - - - var code = "return function(tryCatch, errorObj, Promise, async) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.asyncNeeded = true; \n\ - this.now = 0; \n\ - } \n\ - \n\ - [TheName].prototype._callFunction = function(promise) { \n\ - promise._pushContext(); \n\ - var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - if (this.asyncNeeded) { \n\ - async.invoke(this._callFunction, this, promise); \n\ - } else { \n\ - this._callFunction(promise); \n\ - } \n\ - \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise, async); \n\ - "; - - code = code.replace(/\[TheName\]/g, name) - .replace(/\[TheTotal\]/g, total) - .replace(/\[ThePassedArguments\]/g, passedArguments) - .replace(/\[TheProperties\]/g, assignment) - .replace(/\[CancellationCode\]/g, cancellationCode); - - return new Function("tryCatch", "errorObj", "Promise", "async", code) - (tryCatch, errorObj, Promise, async); - }; - - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; - - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } - - reject = function (reason) { - this._reject(reason); - }; -}} - -Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!true) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; - - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - maybePromise._then(callbacks[i], reject, - undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - holder.asyncNeeded = false; - } else if (((bitField & 33554432) !== 0)) { - callbacks[i].call(ret, - maybePromise._value(), holder); - } else if (((bitField & 16777216) !== 0)) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - - if (!ret._isFateSealed()) { - if (holder.asyncNeeded) { - var domain = getDomain(); - if (domain !== null) { - holder.fn = util.domainBind(domain, holder.fn); - } - } - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var args = [].slice.call(arguments);; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; -}; - -}; - -},{"./util":36}],18:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -function MappingPromiseArray(promises, fn, limit, _filter) { - this.constructor$(promises); - this._promise._captureStackTrace(); - var domain = getDomain(); - this._callback = domain === null ? fn : util.domainBind(domain, fn); - this._preservedValues = _filter === INTERNAL - ? new Array(this.length()) - : null; - this._limit = limit; - this._inFlight = 0; - this._queue = []; - async.invoke(this._asyncInit, this, undefined); -} -util.inherits(MappingPromiseArray, PromiseArray); - -MappingPromiseArray.prototype._asyncInit = function() { - this._init$(undefined, -2); -}; - -MappingPromiseArray.prototype._init = function () {}; - -MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { - var values = this._values; - var length = this.length(); - var preservedValues = this._preservedValues; - var limit = this._limit; - - if (index < 0) { - index = (index * -1) - 1; - values[index] = value; - if (limit >= 1) { - this._inFlight--; - this._drainQueue(); - if (this._isResolved()) return true; - } - } else { - if (limit >= 1 && this._inFlight >= limit) { - values[index] = value; - this._queue.push(index); - return false; - } - if (preservedValues !== null) preservedValues[index] = value; - - var promise = this._promise; - var callback = this._callback; - var receiver = promise._boundValue(); - promise._pushContext(); - var ret = tryCatch(callback).call(receiver, value, index, length); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - preservedValues !== null ? "Promise.filter" : "Promise.map", - promise - ); - if (ret === errorObj) { - this._reject(ret.e); - return true; - } - - var maybePromise = tryConvertToPromise(ret, this._promise); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - if (limit >= 1) this._inFlight++; - values[index] = maybePromise; - maybePromise._proxy(this, (index + 1) * -1); - return false; - } else if (((bitField & 33554432) !== 0)) { - ret = maybePromise._value(); - } else if (((bitField & 16777216) !== 0)) { - this._reject(maybePromise._reason()); - return true; - } else { - this._cancel(); - return true; - } - } - values[index] = ret; - } - var totalResolved = ++this._totalResolved; - if (totalResolved >= length) { - if (preservedValues !== null) { - this._filter(values, preservedValues); - } else { - this._resolve(values); - } - return true; - } - return false; -}; - -MappingPromiseArray.prototype._drainQueue = function () { - var queue = this._queue; - var limit = this._limit; - var values = this._values; - while (queue.length > 0 && this._inFlight < limit) { - if (this._isResolved()) return; - var index = queue.pop(); - this._promiseFulfilled(values[index], index); - } -}; - -MappingPromiseArray.prototype._filter = function (booleans, values) { - var len = values.length; - var ret = new Array(len); - var j = 0; - for (var i = 0; i < len; ++i) { - if (booleans[i]) ret[j++] = values[i]; - } - ret.length = j; - this._resolve(ret); -}; - -MappingPromiseArray.prototype.preservedValues = function () { - return this._preservedValues; -}; - -function map(promises, fn, options, _filter) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - - var limit = 0; - if (options !== undefined) { - if (typeof options === "object" && options !== null) { - if (typeof options.concurrency !== "number") { - return Promise.reject( - new TypeError("'concurrency' must be a number but it is " + - util.classString(options.concurrency))); - } - limit = options.concurrency; - } else { - return Promise.reject(new TypeError( - "options argument must be an object but it is " + - util.classString(options))); - } - } - limit = typeof limit === "number" && - isFinite(limit) && limit >= 1 ? limit : 0; - return new MappingPromiseArray(promises, fn, limit, _filter).promise(); -} - -Promise.prototype.map = function (fn, options) { - return map(this, fn, options, null); -}; - -Promise.map = function (promises, fn, options, _filter) { - return map(promises, fn, options, _filter); -}; - - -}; - -},{"./util":36}],19:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; - -Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; -}; - -Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) - : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; -}; - -Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } -}; -}; - -},{"./util":36}],20:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var maybeWrapAsError = util.maybeWrapAsError; -var errors = _dereq_("./errors"); -var OperationalError = errors.OperationalError; -var es5 = _dereq_("./es5"); - -function isUntypedError(obj) { - return obj instanceof Error && - es5.getPrototypeOf(obj) === Error.prototype; -} - -var rErrorKey = /^(?:name|message|stack|cause)$/; -function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; -} - -function nodebackForPromise(promise, multiArgs) { - return function(err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var args = [].slice.call(arguments, 1);; - promise._fulfill(args); - } - promise = null; - }; -} - -module.exports = nodebackForPromise; - -},{"./errors":12,"./es5":13,"./util":36}],21:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -var util = _dereq_("./util"); -var async = Promise._async; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function spreadAdapter(val, nodeback) { - var promise = this; - if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); - var ret = - tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -function successAdapter(val, nodeback) { - var promise = this; - var receiver = promise._boundValue(); - var ret = val === undefined - ? tryCatch(nodeback).call(receiver, null) - : tryCatch(nodeback).call(receiver, null, val); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} -function errorAdapter(reason, nodeback) { - var promise = this; - if (!reason) { - var newReason = new Error(reason + ""); - newReason.cause = reason; - reason = newReason; - } - var ret = tryCatch(nodeback).call(promise._boundValue(), reason); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, - options) { - if (typeof nodeback == "function") { - var adapter = successAdapter; - if (options !== undefined && Object(options).spread) { - adapter = spreadAdapter; - } - this._then( - adapter, - errorAdapter, - undefined, - this, - nodeback - ); - } - return this; -}; -}; - -},{"./util":36}],22:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function() { -var makeSelfResolutionError = function () { - return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var reflectHandler = function() { - return new Promise.PromiseInspection(this._target()); -}; -var apiRejection = function(msg) { - return Promise.reject(new TypeError(msg)); -}; -function Proxyable() {} -var UNDEFINED_BINDING = {}; -var util = _dereq_("./util"); - -var getDomain; -if (util.isNode) { - getDomain = function() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; -} else { - getDomain = function() { - return null; - }; -} -util.notEnumerableProp(Promise, "_getDomain", getDomain); - -var es5 = _dereq_("./es5"); -var Async = _dereq_("./async"); -var async = new Async(); -es5.defineProperty(Promise, "_async", {value: async}); -var errors = _dereq_("./errors"); -var TypeError = Promise.TypeError = errors.TypeError; -Promise.RangeError = errors.RangeError; -var CancellationError = Promise.CancellationError = errors.CancellationError; -Promise.TimeoutError = errors.TimeoutError; -Promise.OperationalError = errors.OperationalError; -Promise.RejectionError = errors.OperationalError; -Promise.AggregateError = errors.AggregateError; -var INTERNAL = function(){}; -var APPLY = {}; -var NEXT_FILTER = {}; -var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); -var PromiseArray = - _dereq_("./promise_array")(Promise, INTERNAL, - tryConvertToPromise, apiRejection, Proxyable); -var Context = _dereq_("./context")(Promise); - /*jshint unused:false*/ -var createContext = Context.create; -var debug = _dereq_("./debuggability")(Promise, Context); -var CapturedTrace = debug.CapturedTrace; -var PassThroughHandlerContext = - _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); -var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); -var nodebackForPromise = _dereq_("./nodeback"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -function check(self, executor) { - if (self == null || self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - -} - -function Promise(executor) { - if (executor !== INTERNAL) { - check(this, executor); - } - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - this._resolveFromExecutor(executor); - this._promiseCreated(); - this._fireEvent("promiseCreated", this); -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("Catch statement predicate: " + - "expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); -}; - -Promise.prototype.reflect = function () { - return this._then(reflectHandler, - reflectHandler, undefined, this, undefined); -}; - -Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && - typeof didFulfill !== "function" && - typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + - util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); -}; - -Promise.prototype.done = function (didFulfill, didReject) { - var promise = - this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); -}; - -Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); -}; - -Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; -}; - -Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); -}; - -Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); -}; - -Promise.getNewLibraryCopy = module.exports; - -Promise.is = function (val) { - return val instanceof Promise; -}; - -Promise.fromNode = Promise.fromCallback = function(fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs - : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.all = function (promises) { - return new PromiseArray(promises).promise(); -}; - -Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; -}; - -Promise.resolve = Promise.fulfilled = Promise.cast; - -Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; -}; - -Promise.setScheduler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - return async.setScheduler(fn); -}; - -Promise.prototype._then = function ( - didFulfill, - didReject, - _, receiver, - internalData -) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; - - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && - ((this._bitField & 2097152) !== 0)) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } - - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, value, settler = target._settlePromiseCtx; - if (((bitField & 33554432) !== 0)) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if (((bitField & 16777216) !== 0)) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } - - async.invoke(settler, target, { - handler: domain === null ? handler - : (typeof handler === "function" && - util.domainBind(domain, handler)), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } - - return promise; -}; - -Promise.prototype._length = function () { - return this._bitField & 65535; -}; - -Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; -}; - -Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; -}; - -Promise.prototype._setLength = function (len) { - this._bitField = (this._bitField & -65536) | - (len & 65535); -}; - -Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); -}; - -Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); -}; - -Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); -}; - -Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; -}; - -Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; -}; - -Promise.prototype._unsetCancelled = function() { - this._bitField = this._bitField & (~65536); -}; - -Promise.prototype._setCancelled = function() { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); -}; - -Promise.prototype._setWillBeCancelled = function() { - this._bitField = this._bitField | 8388608; -}; - -Promise.prototype._setAsyncGuaranteed = function() { - if (async.hasCustomScheduler()) return; - this._bitField = this._bitField | 134217728; -}; - -Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[ - index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; -}; - -Promise.prototype._promiseAt = function (index) { - return this[ - index * 4 - 4 + 2]; -}; - -Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[ - index * 4 - 4 + 0]; -}; - -Promise.prototype._rejectionHandlerAt = function (index) { - return this[ - index * 4 - 4 + 1]; -}; - -Promise.prototype._boundValue = function() {}; - -Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._addCallbacks = function ( - fulfill, - reject, - promise, - receiver, - domain -) { - var index = this._length(); - - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } - - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = - domain === null ? fulfill : util.domainBind(domain, fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = - domain === null ? reject : util.domainBind(domain, reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = - domain === null ? fulfill : util.domainBind(domain, fulfill); - } - if (typeof reject === "function") { - this[base + 1] = - domain === null ? reject : util.domainBind(domain, reject); - } - } - this._setLength(index + 1); - return index; -}; - -Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); -}; - -Promise.prototype._resolveCallback = function(value, shouldBind) { - if (((this._bitField & 117506048) !== 0)) return; - if (value === this) - return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); - - if (shouldBind) this._propagateFrom(maybePromise, 2); - - var promise = maybePromise._target(); - - if (promise === this) { - this._reject(makeSelfResolutionError()); - return; - } - - var bitField = promise._bitField; - if (((bitField & 50397184) === 0)) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if (((bitField & 33554432) !== 0)) { - this._fulfill(promise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } -}; - -Promise.prototype._rejectCallback = -function(reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + - util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); -}; - -Promise.prototype._resolveFromExecutor = function (executor) { - if (executor === INTERNAL) return; - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function(value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); - - if (r !== undefined) { - promise._rejectCallback(r, true); - } -}; - -Promise.prototype._settlePromiseFromHandler = function ( - handler, receiver, value, promise -) { - var bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + - util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj) { - promise._rejectCallback(x.e, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } -}; - -Promise.prototype._target = function() { - var ret = this; - while (ret._isFollowing()) ret = ret._followee(); - return ret; -}; - -Promise.prototype._followee = function() { - return this._rejectionHandler0; -}; - -Promise.prototype._setFollowee = function(promise) { - this._rejectionHandler0 = promise; -}; - -Promise.prototype._settlePromise = function(promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = ((bitField & 134217728) !== 0); - if (((bitField & 65536) !== 0)) { - if (isPromise) promise._invokeInternalOnCancel(); - - if (receiver instanceof PassThroughHandlerContext && - receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if (((bitField & 33554432) !== 0)) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if (((bitField & 33554432) !== 0)) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } -}; - -Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } -}; - -Promise.prototype._settlePromiseCtx = function(ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); -}; - -Promise.prototype._settlePromise0 = function(handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); -}; - -Promise.prototype._clearCallbackDataAtIndex = function(index) { - var base = index * 4 - 4; - this[base + 2] = - this[base + 3] = - this[base + 0] = - this[base + 1] = undefined; -}; - -Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; - - if ((bitField & 65535) > 0) { - if (((bitField & 134217728) !== 0)) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } -}; - -Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; - - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } - - if ((bitField & 65535) > 0) { - async.settlePromises(this); - } else { - this._ensurePossibleRejectionHandled(); - } -}; - -Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } -}; - -Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } -}; - -Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = (bitField & 65535); - - if (len > 0) { - if (((bitField & 16842752) !== 0)) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); -}; - -Promise.prototype._settledValue = function() { - var bitField = this._bitField; - if (((bitField & 33554432) !== 0)) { - return this._rejectionHandler0; - } else if (((bitField & 16777216) !== 0)) { - return this._fulfillmentHandler0; - } -}; - -function deferResolve(v) {this.promise._resolveCallback(v);} -function deferReject(v) {this.promise._rejectCallback(v, false);} - -Promise.defer = Promise.pending = function() { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; -}; - -util.notEnumerableProp(Promise, - "_makeSelfResolutionError", - makeSelfResolutionError); - -_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, - debug); -_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); -_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); -_dereq_("./direct_resolve")(Promise); -_dereq_("./synchronous_inspection")(Promise); -_dereq_("./join")( - Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); -Promise.Promise = Promise; -Promise.version = "3.5.1"; -_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -_dereq_('./call_get.js')(Promise); -_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); -_dereq_('./timers.js')(Promise, INTERNAL, debug); -_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); -_dereq_('./nodeify.js')(Promise); -_dereq_('./promisify.js')(Promise, INTERNAL); -_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); -_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); -_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -_dereq_('./settle.js')(Promise, PromiseArray, debug); -_dereq_('./some.js')(Promise, PromiseArray, apiRejection); -_dereq_('./filter.js')(Promise, INTERNAL); -_dereq_('./each.js')(Promise, INTERNAL); -_dereq_('./any.js')(Promise); - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - -}; - -},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, - apiRejection, Proxyable) { -var util = _dereq_("./util"); -var isArray = util.isArray; - -function toResolutionValue(val) { - switch(val) { - case -2: return []; - case -3: return {}; - case -6: return new Map(); - } -} - -function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); -} -util.inherits(PromiseArray, Proxyable); - -PromiseArray.prototype.length = function () { - return this._length; -}; - -PromiseArray.prototype.promise = function () { - return this._promise; -}; - -PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; - - if (((bitField & 50397184) === 0)) { - this._promise._setAsyncGuaranteed(); - return values._then( - init, - this._reject, - undefined, - this, - resolveValueIfEmpty - ); - } else if (((bitField & 33554432) !== 0)) { - values = values._value(); - } else if (((bitField & 16777216) !== 0)) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection( - "expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } - - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } - else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); -}; - -PromiseArray.prototype._iterate = function(values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); - - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } - - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if (((bitField & 50397184) === 0)) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if (((bitField & 33554432) !== 0)) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if (((bitField & 16777216) !== 0)) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); -}; - -PromiseArray.prototype._isResolved = function () { - return this._values === null; -}; - -PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); -}; - -PromiseArray.prototype._cancel = function() { - if (this._isResolved() || !this._promise._isCancellable()) return; - this._values = null; - this._promise._cancel(); -}; - -PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); -}; - -PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -PromiseArray.prototype._promiseCancelled = function() { - this._cancel(); - return true; -}; - -PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; -}; - -PromiseArray.prototype._resultCancelled = function() { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } -}; - -PromiseArray.prototype.shouldCopyValues = function () { - return true; -}; - -PromiseArray.prototype.getActualLength = function (len) { - return len; -}; - -return PromiseArray; -}; - -},{"./util":36}],24:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var THIS = {}; -var util = _dereq_("./util"); -var nodebackForPromise = _dereq_("./nodeback"); -var withAppended = util.withAppended; -var maybeWrapAsError = util.maybeWrapAsError; -var canEvaluate = util.canEvaluate; -var TypeError = _dereq_("./errors").TypeError; -var defaultSuffix = "Async"; -var defaultPromisified = {__isPromisified__: true}; -var noCopyProps = [ - "arity", "length", - "name", - "arguments", - "caller", - "callee", - "prototype", - "__isPromisified__" -]; -var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); - -var defaultFilter = function(name) { - return util.isIdentifier(name) && - name.charAt(0) !== "_" && - name !== "constructor"; -}; - -function propsFilter(key) { - return !noCopyPropsPattern.test(key); -} - -function isPromisified(fn) { - try { - return fn.__isPromisified__ === true; - } - catch (e) { - return false; - } -} - -function hasPromisified(obj, key, suffix) { - var val = util.getDataPropertyOrDefault(obj, key + suffix, - defaultPromisified); - return val ? isPromisified(val) : false; -} -function checkValid(ret, suffix, suffixRegexp) { - for (var i = 0; i < ret.length; i += 2) { - var key = ret[i]; - if (suffixRegexp.test(key)) { - var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); - for (var j = 0; j < ret.length; j += 2) { - if (ret[j] === keyWithoutAsyncSuffix) { - throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" - .replace("%s", suffix)); - } - } - } - } -} - -function promisifiableMethods(obj, suffix, suffixRegexp, filter) { - var keys = util.inheritedDataKeys(obj); - var ret = []; - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var value = obj[key]; - var passesDefaultFilter = filter === defaultFilter - ? true : defaultFilter(key, value, obj); - if (typeof value === "function" && - !isPromisified(value) && - !hasPromisified(obj, key, suffix) && - filter(key, value, obj, passesDefaultFilter)) { - ret.push(key, value); - } - } - checkValid(ret, suffix, suffixRegexp); - return ret; -} - -var escapeIdentRegex = function(str) { - return str.replace(/([$])/, "\\$"); -}; - -var makeNodePromisifiedEval; -if (!true) { -var switchCaseArgumentOrder = function(likelyArgumentCount) { - var ret = [likelyArgumentCount]; - var min = Math.max(0, likelyArgumentCount - 1 - 3); - for(var i = likelyArgumentCount - 1; i >= min; --i) { - ret.push(i); - } - for(var i = likelyArgumentCount + 1; i <= 3; ++i) { - ret.push(i); - } - return ret; -}; - -var argumentSequence = function(argumentCount) { - return util.filledRange(argumentCount, "_arg", ""); -}; - -var parameterDeclaration = function(parameterCount) { - return util.filledRange( - Math.max(parameterCount, 3), "_arg", ""); -}; - -var parameterCount = function(fn) { - if (typeof fn.length === "number") { - return Math.max(Math.min(fn.length, 1023 + 1), 0); - } - return 0; -}; - -makeNodePromisifiedEval = -function(callback, receiver, originalName, fn, _, multiArgs) { - var newParameterCount = Math.max(0, parameterCount(fn) - 1); - var argumentOrder = switchCaseArgumentOrder(newParameterCount); - var shouldProxyThis = typeof callback === "string" || receiver === THIS; - - function generateCallForArgumentCount(count) { - var args = argumentSequence(count).join(", "); - var comma = count > 0 ? ", " : ""; - var ret; - if (shouldProxyThis) { - ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; - } else { - ret = receiver === undefined - ? "ret = callback({{args}}, nodeback); break;\n" - : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; - } - return ret.replace("{{args}}", args).replace(", ", comma); - } - - function generateArgumentSwitchCase() { - var ret = ""; - for (var i = 0; i < argumentOrder.length; ++i) { - ret += "case " + argumentOrder[i] +":" + - generateCallForArgumentCount(argumentOrder[i]); - } - - ret += " \n\ - default: \n\ - var args = new Array(len + 1); \n\ - var i = 0; \n\ - for (var i = 0; i < len; ++i) { \n\ - args[i] = arguments[i]; \n\ - } \n\ - args[i] = nodeback; \n\ - [CodeForCall] \n\ - break; \n\ - ".replace("[CodeForCall]", (shouldProxyThis - ? "ret = callback.apply(this, args);\n" - : "ret = callback.apply(receiver, args);\n")); - return ret; - } - - var getFunctionCode = typeof callback === "string" - ? ("this != null ? this['"+callback+"'] : fn") - : "fn"; - var body = "'use strict'; \n\ - var ret = function (Parameters) { \n\ - 'use strict'; \n\ - var len = arguments.length; \n\ - var promise = new Promise(INTERNAL); \n\ - promise._captureStackTrace(); \n\ - var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ - var ret; \n\ - var callback = tryCatch([GetFunctionCode]); \n\ - switch(len) { \n\ - [CodeForSwitchCase] \n\ - } \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ - } \n\ - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ - return promise; \n\ - }; \n\ - notEnumerableProp(ret, '__isPromisified__', true); \n\ - return ret; \n\ - ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) - .replace("[GetFunctionCode]", getFunctionCode); - body = body.replace("Parameters", parameterDeclaration(newParameterCount)); - return new Function("Promise", - "fn", - "receiver", - "withAppended", - "maybeWrapAsError", - "nodebackForPromise", - "tryCatch", - "errorObj", - "notEnumerableProp", - "INTERNAL", - body)( - Promise, - fn, - receiver, - withAppended, - maybeWrapAsError, - nodebackForPromise, - util.tryCatch, - util.errorObj, - util.notEnumerableProp, - INTERNAL); -}; -} - -function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { - var defaultThis = (function() {return this;})(); - var method = callback; - if (typeof method === "string") { - callback = fn; - } - function promisified() { - var _receiver = receiver; - if (receiver === THIS) _receiver = this; - var promise = new Promise(INTERNAL); - promise._captureStackTrace(); - var cb = typeof method === "string" && this !== defaultThis - ? this[method] : callback; - var fn = nodebackForPromise(promise, multiArgs); - try { - cb.apply(_receiver, withAppended(arguments, fn)); - } catch(e) { - promise._rejectCallback(maybeWrapAsError(e), true, true); - } - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); - return promise; - } - util.notEnumerableProp(promisified, "__isPromisified__", true); - return promisified; -} - -var makeNodePromisified = canEvaluate - ? makeNodePromisifiedEval - : makeNodePromisifiedClosure; - -function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { - var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); - var methods = - promisifiableMethods(obj, suffix, suffixRegexp, filter); - - for (var i = 0, len = methods.length; i < len; i+= 2) { - var key = methods[i]; - var fn = methods[i+1]; - var promisifiedKey = key + suffix; - if (promisifier === makeNodePromisified) { - obj[promisifiedKey] = - makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); - } else { - var promisified = promisifier(fn, function() { - return makeNodePromisified(key, THIS, key, - fn, suffix, multiArgs); - }); - util.notEnumerableProp(promisified, "__isPromisified__", true); - obj[promisifiedKey] = promisified; - } - } - util.toFastProperties(obj); - return obj; -} - -function promisify(callback, receiver, multiArgs) { - return makeNodePromisified(callback, receiver, undefined, - callback, null, multiArgs); -} - -Promise.promisify = function (fn, options) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - if (isPromisified(fn)) { - return fn; - } - options = Object(options); - var receiver = options.context === undefined ? THIS : options.context; - var multiArgs = !!options.multiArgs; - var ret = promisify(fn, receiver, multiArgs); - util.copyDescriptors(fn, ret, propsFilter); - return ret; -}; - -Promise.promisifyAll = function (target, options) { - if (typeof target !== "function" && typeof target !== "object") { - throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - options = Object(options); - var multiArgs = !!options.multiArgs; - var suffix = options.suffix; - if (typeof suffix !== "string") suffix = defaultSuffix; - var filter = options.filter; - if (typeof filter !== "function") filter = defaultFilter; - var promisifier = options.promisifier; - if (typeof promisifier !== "function") promisifier = makeNodePromisified; - - if (!util.isIdentifier(suffix)) { - throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - - var keys = util.inheritedDataKeys(target); - for (var i = 0; i < keys.length; ++i) { - var value = target[keys[i]]; - if (keys[i] !== "constructor" && - util.isClass(value)) { - promisifyAll(value.prototype, suffix, filter, promisifier, - multiArgs); - promisifyAll(value, suffix, filter, promisifier, multiArgs); - } - } - - return promisifyAll(target, suffix, filter, promisifier, multiArgs); -}; -}; - - -},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function( - Promise, PromiseArray, tryConvertToPromise, apiRejection) { -var util = _dereq_("./util"); -var isObject = util.isObject; -var es5 = _dereq_("./es5"); -var Es6Map; -if (typeof Map === "function") Es6Map = Map; - -var mapToEntries = (function() { - var index = 0; - var size = 0; - - function extractEntry(value, key) { - this[index] = value; - this[index + size] = key; - index++; - } - - return function mapToEntries(map) { - size = map.size; - index = 0; - var ret = new Array(map.size * 2); - map.forEach(extractEntry, ret); - return ret; - }; -})(); - -var entriesToMap = function(entries) { - var ret = new Es6Map(); - var length = entries.length / 2 | 0; - for (var i = 0; i < length; ++i) { - var key = entries[length + i]; - var value = entries[i]; - ret.set(key, value); - } - return ret; -}; - -function PropertiesPromiseArray(obj) { - var isMap = false; - var entries; - if (Es6Map !== undefined && obj instanceof Es6Map) { - entries = mapToEntries(obj); - isMap = true; - } else { - var keys = es5.keys(obj); - var len = keys.length; - entries = new Array(len * 2); - for (var i = 0; i < len; ++i) { - var key = keys[i]; - entries[i] = obj[key]; - entries[i + len] = key; - } - } - this.constructor$(entries); - this._isMap = isMap; - this._init$(undefined, isMap ? -6 : -3); -} -util.inherits(PropertiesPromiseArray, PromiseArray); - -PropertiesPromiseArray.prototype._init = function () {}; - -PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - var val; - if (this._isMap) { - val = entriesToMap(this._values); - } else { - val = {}; - var keyOffset = this.length(); - for (var i = 0, len = this.length(); i < len; ++i) { - val[this._values[i + keyOffset]] = this._values[i]; - } - } - this._resolve(val); - return true; - } - return false; -}; - -PropertiesPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -PropertiesPromiseArray.prototype.getActualLength = function (len) { - return len >> 1; -}; - -function props(promises) { - var ret; - var castValue = tryConvertToPromise(promises); - - if (!isObject(castValue)) { - return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } else if (castValue instanceof Promise) { - ret = castValue._then( - Promise.props, undefined, undefined, undefined, undefined); - } else { - ret = new PropertiesPromiseArray(castValue).promise(); - } - - if (castValue instanceof Promise) { - ret._propagateFrom(castValue, 2); - } - return ret; -} - -Promise.prototype.props = function () { - return props(this); -}; - -Promise.props = function (promises) { - return props(promises); -}; -}; - -},{"./es5":13,"./util":36}],26:[function(_dereq_,module,exports){ -"use strict"; -function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } -} - -function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; -} - -Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; -}; - -Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = (this._front + length) & (this._capacity - 1); - this[i] = arg; - this._length = length + 1; -}; - -Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[(j + 0) & wrapMask] = fn; - this[(j + 1) & wrapMask] = receiver; - this[(j + 2) & wrapMask] = arg; - this._length = length; -}; - -Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; - - this[front] = undefined; - this._front = (front + 1) & (this._capacity - 1); - this._length--; - return ret; -}; - -Queue.prototype.length = function () { - return this._length; -}; - -Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } -}; - -Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = (front + length) & (oldCapacity - 1); - arrayMove(this, 0, this, oldCapacity, moveItemsCount); -}; - -module.exports = Queue; - -},{}],27:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function( - Promise, INTERNAL, tryConvertToPromise, apiRejection) { -var util = _dereq_("./util"); - -var raceLater = function (promise) { - return promise.then(function(array) { - return race(array, promise); - }); -}; - -function race(promises, parent) { - var maybePromise = tryConvertToPromise(promises); - - if (maybePromise instanceof Promise) { - return raceLater(maybePromise); - } else { - promises = util.asArray(promises); - if (promises === null) - return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); - } - - var ret = new Promise(INTERNAL); - if (parent !== undefined) { - ret._propagateFrom(parent, 3); - } - var fulfill = ret._fulfill; - var reject = ret._reject; - for (var i = 0, len = promises.length; i < len; ++i) { - var val = promises[i]; - - if (val === undefined && !(i in promises)) { - continue; - } - - Promise.cast(val)._then(fulfill, reject, undefined, ret, null); - } - return ret; -} - -Promise.race = function (promises) { - return race(promises, undefined); -}; - -Promise.prototype.race = function () { - return race(this, undefined); -}; - -}; - -},{"./util":36}],28:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; - -function ReductionPromiseArray(promises, fn, initialValue, _each) { - this.constructor$(promises); - var domain = getDomain(); - this._fn = domain === null ? fn : util.domainBind(domain, fn); - if (initialValue !== undefined) { - initialValue = Promise.resolve(initialValue); - initialValue._attachCancellationCallback(this); - } - this._initialValue = initialValue; - this._currentCancellable = null; - if(_each === INTERNAL) { - this._eachValues = Array(this._length); - } else if (_each === 0) { - this._eachValues = null; - } else { - this._eachValues = undefined; - } - this._promise._captureStackTrace(); - this._init$(undefined, -5); -} -util.inherits(ReductionPromiseArray, PromiseArray); - -ReductionPromiseArray.prototype._gotAccum = function(accum) { - if (this._eachValues !== undefined && - this._eachValues !== null && - accum !== INTERNAL) { - this._eachValues.push(accum); - } -}; - -ReductionPromiseArray.prototype._eachComplete = function(value) { - if (this._eachValues !== null) { - this._eachValues.push(value); - } - return this._eachValues; -}; - -ReductionPromiseArray.prototype._init = function() {}; - -ReductionPromiseArray.prototype._resolveEmptyArray = function() { - this._resolve(this._eachValues !== undefined ? this._eachValues - : this._initialValue); -}; - -ReductionPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -ReductionPromiseArray.prototype._resolve = function(value) { - this._promise._resolveCallback(value); - this._values = null; -}; - -ReductionPromiseArray.prototype._resultCancelled = function(sender) { - if (sender === this._initialValue) return this._cancel(); - if (this._isResolved()) return; - this._resultCancelled$(); - if (this._currentCancellable instanceof Promise) { - this._currentCancellable.cancel(); - } - if (this._initialValue instanceof Promise) { - this._initialValue.cancel(); - } -}; - -ReductionPromiseArray.prototype._iterate = function (values) { - this._values = values; - var value; - var i; - var length = values.length; - if (this._initialValue !== undefined) { - value = this._initialValue; - i = 0; - } else { - value = Promise.resolve(values[0]); - i = 1; - } - - this._currentCancellable = value; - - if (!value.isRejected()) { - for (; i < length; ++i) { - var ctx = { - accum: null, - value: values[i], - index: i, - length: length, - array: this - }; - value = value._then(gotAccum, undefined, undefined, ctx, undefined); - } - } - - if (this._eachValues !== undefined) { - value = value - ._then(this._eachComplete, undefined, undefined, this, undefined); - } - value._then(completed, completed, undefined, value, this); -}; - -Promise.prototype.reduce = function (fn, initialValue) { - return reduce(this, fn, initialValue, null); -}; - -Promise.reduce = function (promises, fn, initialValue, _each) { - return reduce(promises, fn, initialValue, _each); -}; - -function completed(valueOrReason, array) { - if (this.isFulfilled()) { - array._resolve(valueOrReason); - } else { - array._reject(valueOrReason); - } -} - -function reduce(promises, fn, initialValue, _each) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var array = new ReductionPromiseArray(promises, fn, initialValue, _each); - return array.promise(); -} - -function gotAccum(accum) { - this.accum = accum; - this.array._gotAccum(accum); - var value = tryConvertToPromise(this.value, this.array._promise); - if (value instanceof Promise) { - this.array._currentCancellable = value; - return value._then(gotValue, undefined, undefined, this, undefined); - } else { - return gotValue.call(this, value); - } -} - -function gotValue(value) { - var array = this.array; - var promise = array._promise; - var fn = tryCatch(array._fn); - promise._pushContext(); - var ret; - if (array._eachValues !== undefined) { - ret = fn.call(promise._boundValue(), value, this.index, this.length); - } else { - ret = fn.call(promise._boundValue(), - this.accum, value, this.index, this.length); - } - if (ret instanceof Promise) { - array._currentCancellable = ret; - } - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", - promise - ); - return ret; -} -}; - -},{"./util":36}],29:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var schedule; -var noAsyncScheduler = function() { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var NativePromise = util.getNativePromise(); -if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode - ? function(fn) { GlobalSetImmediate.call(global, fn); } - : function(fn) { ProcessNextTick.call(process, fn); }; -} else if (typeof NativePromise === "function" && - typeof NativePromise.resolve === "function") { - var nativePromise = NativePromise.resolve(); - schedule = function(fn) { - nativePromise.then(fn); - }; -} else if ((typeof MutationObserver !== "undefined") && - !(typeof window !== "undefined" && - window.navigator && - (window.navigator.standalone || window.cordova))) { - schedule = (function() { - var div = document.createElement("div"); - var opts = {attributes: true}; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function() { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); - - var scheduleToggle = function() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; - - return function schedule(fn) { - var o = new MutationObserver(function() { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - })(); -} else if (typeof setImmediate !== "undefined") { - schedule = function (fn) { - setImmediate(fn); - }; -} else if (typeof setTimeout !== "undefined") { - schedule = function (fn) { - setTimeout(fn, 0); - }; -} else { - schedule = noAsyncScheduler; -} -module.exports = schedule; - -},{"./util":36}],30:[function(_dereq_,module,exports){ -"use strict"; -module.exports = - function(Promise, PromiseArray, debug) { -var PromiseInspection = Promise.PromiseInspection; -var util = _dereq_("./util"); - -function SettledPromiseArray(values) { - this.constructor$(values); -} -util.inherits(SettledPromiseArray, PromiseArray); - -SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { - this._values[index] = inspection; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { - var ret = new PromiseInspection(); - ret._bitField = 33554432; - ret._settledValueField = value; - return this._promiseResolved(index, ret); -}; -SettledPromiseArray.prototype._promiseRejected = function (reason, index) { - var ret = new PromiseInspection(); - ret._bitField = 16777216; - ret._settledValueField = reason; - return this._promiseResolved(index, ret); -}; - -Promise.settle = function (promises) { - debug.deprecated(".settle()", ".reflect()"); - return new SettledPromiseArray(promises).promise(); -}; - -Promise.prototype.settle = function () { - return Promise.settle(this); -}; -}; - -},{"./util":36}],31:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, PromiseArray, apiRejection) { -var util = _dereq_("./util"); -var RangeError = _dereq_("./errors").RangeError; -var AggregateError = _dereq_("./errors").AggregateError; -var isArray = util.isArray; -var CANCELLATION = {}; - - -function SomePromiseArray(values) { - this.constructor$(values); - this._howMany = 0; - this._unwrap = false; - this._initialized = false; -} -util.inherits(SomePromiseArray, PromiseArray); - -SomePromiseArray.prototype._init = function () { - if (!this._initialized) { - return; - } - if (this._howMany === 0) { - this._resolve([]); - return; - } - this._init$(undefined, -5); - var isArrayResolved = isArray(this._values); - if (!this._isResolved() && - isArrayResolved && - this._howMany > this._canPossiblyFulfill()) { - this._reject(this._getRangeError(this.length())); - } -}; - -SomePromiseArray.prototype.init = function () { - this._initialized = true; - this._init(); -}; - -SomePromiseArray.prototype.setUnwrap = function () { - this._unwrap = true; -}; - -SomePromiseArray.prototype.howMany = function () { - return this._howMany; -}; - -SomePromiseArray.prototype.setHowMany = function (count) { - this._howMany = count; -}; - -SomePromiseArray.prototype._promiseFulfilled = function (value) { - this._addFulfilled(value); - if (this._fulfilled() === this.howMany()) { - this._values.length = this.howMany(); - if (this.howMany() === 1 && this._unwrap) { - this._resolve(this._values[0]); - } else { - this._resolve(this._values); - } - return true; - } - return false; - -}; -SomePromiseArray.prototype._promiseRejected = function (reason) { - this._addRejected(reason); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._promiseCancelled = function () { - if (this._values instanceof Promise || this._values == null) { - return this._cancel(); - } - this._addRejected(CANCELLATION); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._checkOutcome = function() { - if (this.howMany() > this._canPossiblyFulfill()) { - var e = new AggregateError(); - for (var i = this.length(); i < this._values.length; ++i) { - if (this._values[i] !== CANCELLATION) { - e.push(this._values[i]); - } - } - if (e.length > 0) { - this._reject(e); - } else { - this._cancel(); - } - return true; - } - return false; -}; - -SomePromiseArray.prototype._fulfilled = function () { - return this._totalResolved; -}; - -SomePromiseArray.prototype._rejected = function () { - return this._values.length - this.length(); -}; - -SomePromiseArray.prototype._addRejected = function (reason) { - this._values.push(reason); -}; - -SomePromiseArray.prototype._addFulfilled = function (value) { - this._values[this._totalResolved++] = value; -}; - -SomePromiseArray.prototype._canPossiblyFulfill = function () { - return this.length() - this._rejected(); -}; - -SomePromiseArray.prototype._getRangeError = function (count) { - var message = "Input array must contain at least " + - this._howMany + " items but contains only " + count + " items"; - return new RangeError(message); -}; - -SomePromiseArray.prototype._resolveEmptyArray = function () { - this._reject(this._getRangeError(0)); -}; - -function some(promises, howMany) { - if ((howMany | 0) !== howMany || howMany < 0) { - return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(howMany); - ret.init(); - return promise; -} - -Promise.some = function (promises, howMany) { - return some(promises, howMany); -}; - -Promise.prototype.some = function (howMany) { - return some(this, howMany); -}; - -Promise._SomePromiseArray = SomePromiseArray; -}; - -},{"./errors":12,"./util":36}],32:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() - ? promise._settledValue() : undefined; - } - else { - this._bitField = 0; - this._settledValueField = undefined; - } -} - -PromiseInspection.prototype._settledValue = function() { - return this._settledValueField; -}; - -var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var reason = PromiseInspection.prototype.error = -PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { - return (this._bitField & 33554432) !== 0; -}; - -var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; -}; - -var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; -}; - -var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; -}; - -PromiseInspection.prototype.isCancelled = function() { - return (this._bitField & 8454144) !== 0; -}; - -Promise.prototype.__isCancelled = function() { - return (this._bitField & 65536) === 65536; -}; - -Promise.prototype._isCancelled = function() { - return this._target().__isCancelled(); -}; - -Promise.prototype.isCancelled = function() { - return (this._target()._bitField & 8454144) !== 0; -}; - -Promise.prototype.isPending = function() { - return isPending.call(this._target()); -}; - -Promise.prototype.isRejected = function() { - return isRejected.call(this._target()); -}; - -Promise.prototype.isFulfilled = function() { - return isFulfilled.call(this._target()); -}; - -Promise.prototype.isResolved = function() { - return isResolved.call(this._target()); -}; - -Promise.prototype.value = function() { - return value.call(this._target()); -}; - -Promise.prototype.reason = function() { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); -}; - -Promise.prototype._value = function() { - return this._settledValue(); -}; - -Promise.prototype._reason = function() { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); -}; - -Promise.PromiseInspection = PromiseInspection; -}; - -},{}],33:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var util = _dereq_("./util"); -var errorObj = util.errorObj; -var isObject = util.isObject; - -function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then( - ret._fulfill, - ret._reject, - undefined, - ret, - null - ); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; -} - -function doGetThen(obj) { - return obj.then; -} - -function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} - -var hasProp = {}.hasOwnProperty; -function isAnyBluebirdPromise(obj) { - try { - return hasProp.call(obj, "_promise0"); - } catch (e) { - return false; - } -} - -function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; - - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } - - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } - - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; -} - -return tryConvertToPromise; -}; - -},{"./util":36}],34:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, debug) { -var util = _dereq_("./util"); -var TimeoutError = Promise.TimeoutError; - -function HandleWrapper(handle) { - this.handle = handle; -} - -HandleWrapper.prototype._resultCancelled = function() { - clearTimeout(this.handle); -}; - -var afterValue = function(value) { return delay(+this).thenReturn(value); }; -var delay = Promise.delay = function (ms, value) { - var ret; - var handle; - if (value !== undefined) { - ret = Promise.resolve(value) - ._then(afterValue, null, null, ms, undefined); - if (debug.cancellation() && value instanceof Promise) { - ret._setOnCancel(value); - } - } else { - ret = new Promise(INTERNAL); - handle = setTimeout(function() { ret._fulfill(); }, +ms); - if (debug.cancellation()) { - ret._setOnCancel(new HandleWrapper(handle)); - } - ret._captureStackTrace(); - } - ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.prototype.delay = function (ms) { - return delay(ms, this); -}; - -var afterTimeout = function (promise, message, parent) { - var err; - if (typeof message !== "string") { - if (message instanceof Error) { - err = message; - } else { - err = new TimeoutError("operation timed out"); - } - } else { - err = new TimeoutError(message); - } - util.markAsOriginatingFromRejection(err); - promise._attachExtraTrace(err); - promise._reject(err); - - if (parent != null) { - parent.cancel(); - } -}; - -function successClear(value) { - clearTimeout(this.handle); - return value; -} - -function failureClear(reason) { - clearTimeout(this.handle); - throw reason; -} - -Promise.prototype.timeout = function (ms, message) { - ms = +ms; - var ret, parent; - - var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { - if (ret.isPending()) { - afterTimeout(ret, message, parent); - } - }, ms)); - - if (debug.cancellation()) { - parent = this.then(); - ret = parent._then(successClear, failureClear, - undefined, handleWrapper, undefined); - ret._setOnCancel(handleWrapper); - } else { - ret = this._then(successClear, failureClear, - undefined, handleWrapper, undefined); - } - - return ret; -}; - -}; - -},{"./util":36}],35:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function (Promise, apiRejection, tryConvertToPromise, - createContext, INTERNAL, debug) { - var util = _dereq_("./util"); - var TypeError = _dereq_("./errors").TypeError; - var inherits = _dereq_("./util").inherits; - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; - var NULL = {}; - - function thrower(e) { - setTimeout(function(){throw e;}, 0); - } - - function castPreservingDisposable(thenable) { - var maybePromise = tryConvertToPromise(thenable); - if (maybePromise !== thenable && - typeof thenable._isDisposable === "function" && - typeof thenable._getDisposer === "function" && - thenable._isDisposable()) { - maybePromise._setDisposable(thenable._getDisposer()); - } - return maybePromise; - } - function dispose(resources, inspection) { - var i = 0; - var len = resources.length; - var ret = new Promise(INTERNAL); - function iterator() { - if (i >= len) return ret._fulfill(); - var maybePromise = castPreservingDisposable(resources[i++]); - if (maybePromise instanceof Promise && - maybePromise._isDisposable()) { - try { - maybePromise = tryConvertToPromise( - maybePromise._getDisposer().tryDispose(inspection), - resources.promise); - } catch (e) { - return thrower(e); - } - if (maybePromise instanceof Promise) { - return maybePromise._then(iterator, thrower, - null, null, null); - } - } - iterator(); - } - iterator(); - return ret; - } - - function Disposer(data, promise, context) { - this._data = data; - this._promise = promise; - this._context = context; - } - - Disposer.prototype.data = function () { - return this._data; - }; - - Disposer.prototype.promise = function () { - return this._promise; - }; - - Disposer.prototype.resource = function () { - if (this.promise().isFulfilled()) { - return this.promise().value(); - } - return NULL; - }; - - Disposer.prototype.tryDispose = function(inspection) { - var resource = this.resource(); - var context = this._context; - if (context !== undefined) context._pushContext(); - var ret = resource !== NULL - ? this.doDispose(resource, inspection) : null; - if (context !== undefined) context._popContext(); - this._promise._unsetDisposable(); - this._data = null; - return ret; - }; - - Disposer.isDisposer = function (d) { - return (d != null && - typeof d.resource === "function" && - typeof d.tryDispose === "function"); - }; - - function FunctionDisposer(fn, promise, context) { - this.constructor$(fn, promise, context); - } - inherits(FunctionDisposer, Disposer); - - FunctionDisposer.prototype.doDispose = function (resource, inspection) { - var fn = this.data(); - return fn.call(resource, resource, inspection); - }; - - function maybeUnwrapDisposer(value) { - if (Disposer.isDisposer(value)) { - this.resources[this.index]._setDisposable(value); - return value.promise(); - } - return value; - } - - function ResourceList(length) { - this.length = length; - this.promise = null; - this[length-1] = null; - } - - ResourceList.prototype._resultCancelled = function() { - var len = this.length; - for (var i = 0; i < len; ++i) { - var item = this[i]; - if (item instanceof Promise) { - item.cancel(); - } - } - }; - - Promise.using = function () { - var len = arguments.length; - if (len < 2) return apiRejection( - "you must pass at least 2 arguments to Promise.using"); - var fn = arguments[len - 1]; - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var input; - var spreadArgs = true; - if (len === 2 && Array.isArray(arguments[0])) { - input = arguments[0]; - len = input.length; - spreadArgs = false; - } else { - input = arguments; - len--; - } - var resources = new ResourceList(len); - for (var i = 0; i < len; ++i) { - var resource = input[i]; - if (Disposer.isDisposer(resource)) { - var disposer = resource; - resource = resource.promise(); - resource._setDisposable(disposer); - } else { - var maybePromise = tryConvertToPromise(resource); - if (maybePromise instanceof Promise) { - resource = - maybePromise._then(maybeUnwrapDisposer, null, null, { - resources: resources, - index: i - }, undefined); - } - } - resources[i] = resource; - } - - var reflectedResources = new Array(resources.length); - for (var i = 0; i < reflectedResources.length; ++i) { - reflectedResources[i] = Promise.resolve(resources[i]).reflect(); - } - - var resultPromise = Promise.all(reflectedResources) - .then(function(inspections) { - for (var i = 0; i < inspections.length; ++i) { - var inspection = inspections[i]; - if (inspection.isRejected()) { - errorObj.e = inspection.error(); - return errorObj; - } else if (!inspection.isFulfilled()) { - resultPromise.cancel(); - return; - } - inspections[i] = inspection.value(); - } - promise._pushContext(); - - fn = tryCatch(fn); - var ret = spreadArgs - ? fn.apply(undefined, inspections) : fn(inspections); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, promiseCreated, "Promise.using", promise); - return ret; - }); - - var promise = resultPromise.lastly(function() { - var inspection = new Promise.PromiseInspection(resultPromise); - return dispose(resources, inspection); - }); - resources.promise = promise; - promise._setOnCancel(resources); - return promise; - }; - - Promise.prototype._setDisposable = function (disposer) { - this._bitField = this._bitField | 131072; - this._disposer = disposer; - }; - - Promise.prototype._isDisposable = function () { - return (this._bitField & 131072) > 0; - }; - - Promise.prototype._getDisposer = function () { - return this._disposer; - }; - - Promise.prototype._unsetDisposable = function () { - this._bitField = this._bitField & (~131072); - this._disposer = undefined; - }; - - Promise.prototype.disposer = function (fn) { - if (typeof fn === "function") { - return new FunctionDisposer(fn, this, createContext()); - } - throw new TypeError(); - }; - -}; - -},{"./errors":12,"./util":36}],36:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var canEvaluate = typeof navigator == "undefined"; - -var errorObj = {e: {}}; -var tryCatchTarget; -var globalObject = typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - this !== undefined ? this : null; - -function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} - -var inherits = function(Child, Parent) { - var hasProp = {}.hasOwnProperty; - - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && - propertyName.charAt(propertyName.length-1) !== "$" - ) { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; -}; - - -function isPrimitive(val) { - return val == null || val === true || val === false || - typeof val === "string" || typeof val === "number"; - -} - -function isObject(value) { - return typeof value === "function" || - typeof value === "object" && value !== null; -} - -function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; - - return new Error(safeToString(maybeError)); -} - -function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; -} - -function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); - - if (desc != null) { - return desc.get == null && desc.set == null - ? desc.value - : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } -} - -function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; -} - -function thrower(r) { - throw r; -} - -var inheritedDataKeys = (function() { - var excludedPrototypes = [ - Array.prototype, - Object.prototype, - Function.prototype - ]; - - var isExcludedProto = function(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; - - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function(obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function(obj) { - if (isExcludedProto(obj)) return []; - var ret = []; - - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - -})(); - -var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; -function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); - - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && - !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = - thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; - - if (hasMethods || hasMethodsOtherThanConstructor || - hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } -} - -function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); - return obj; - eval(obj); -} - -var rident = /^[a-z$_][a-z$_0-9]*$/i; -function isIdentifier(str) { - return rident.test(str); -} - -function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for(var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; -} - -function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } -} - -function isError(obj) { - return obj instanceof Error || - (obj !== null && - typeof obj === "object" && - typeof obj.message === "string" && - typeof obj.name === "string"); -} - -function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } - catch(ignore) {} -} - -function originatesFromRejection(e) { - if (e == null) return false; - return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || - e["isOperational"] === true); -} - -function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); -} - -var ensureErrorObject = (function() { - if (!("stack" in new Error())) { - return function(value) { - if (canAttachTrace(value)) return value; - try {throw new Error(safeToString(value));} - catch(err) {return err;} - }; - } else { - return function(value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } -})(); - -function classString(obj) { - return {}.toString.call(obj); -} - -function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } -} - -var asArray = function(v) { - if (es5.isArray(v)) { - return v; - } - return null; -}; - -if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function(v) { - return Array.from(v); - } : function(v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!((itResult = it.next()).done)) { - ret.push(itResult.value); - } - return ret; - }; - - asArray = function(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; -} - -var isNode = typeof process !== "undefined" && - classString(process).toLowerCase() === "[object process]"; - -var hasEnvVariables = typeof process !== "undefined" && - typeof process.env !== "undefined"; - -function env(key) { - return hasEnvVariables ? process.env[key] : undefined; -} - -function getNativePromise() { - if (typeof Promise === "function") { - try { - var promise = new Promise(function(){}); - if ({}.toString.call(promise) === "[object Promise]") { - return Promise; - } - } catch (e) {} - } -} - -function domainBind(self, cb) { - return self.bind(cb); -} - -var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && - typeof chrome.loadTimes === "function", - isNode: isNode, - hasEnvVariables: hasEnvVariables, - env: env, - global: globalObject, - getNativePromise: getNativePromise, - domainBind: domainBind -}; -ret.isRecentNode = ret.isNode && (function() { - var version = process.versions.node.split(".").map(Number); - return (version[0] === 0 && version[1] > 10) || (version[0] > 0); -})(); - -if (ret.isNode) ret.toFastProperties(process); - -try {throw new Error(); } catch (e) {ret.lastLineError = e;} -module.exports = ret; - -},{"./es5":13}]},{},[4])(4) -}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/deps/npm/node_modules/bluebird/js/browser/bluebird.min.js b/deps/npm/node_modules/bluebird/js/browser/bluebird.min.js deleted file mode 100644 index 67df4c06444..00000000000 --- a/deps/npm/node_modules/bluebird/js/browser/bluebird.min.js +++ /dev/null @@ -1,31 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2017 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.5.1 - * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&W){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=w(a),l=c.length-1;l>=0;--l){var u=c[l];if(!U.test(u)){var p=u.match(M);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}tt("warning",o)||E(o,"",!0)}}function m(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function k(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||E(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(nt=function(t){if(B.test(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,B=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,U=/\((?:timers\.js):\d+:\d+\)/,M=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,Q=null,$=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),z=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),X=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),W=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(z||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){k("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),k("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&T()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!H.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,W=ot.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(W=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,Q=e;var n=Error.captureStackTrace;return nt=function(t){return B.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,Q=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:z,longStackTraces:!1,cancellation:!1,monitoring:!1};return X&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(x.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&x.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(x.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){x.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,x),t("./bind")(i,b,j,x),t("./cancel")(i,E,p,x),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.1",t("./map.js")(i,E,p,j,b,x),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,x),t("./timers.js")(i,b,x),t("./generators.js")(i,p,b,j,n,x),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,x),t("./settle.js")(i,E,x),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),x.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t), -this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/deps/npm/node_modules/bluebird/js/release/any.js b/deps/npm/node_modules/bluebird/js/release/any.js deleted file mode 100644 index 05a6228ef9c..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/any.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -var SomePromiseArray = Promise._SomePromiseArray; -function any(promises) { - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(1); - ret.setUnwrap(); - ret.init(); - return promise; -} - -Promise.any = function (promises) { - return any(promises); -}; - -Promise.prototype.any = function () { - return any(this); -}; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/assert.js b/deps/npm/node_modules/bluebird/js/release/assert.js deleted file mode 100644 index 4518231a1b4..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/assert.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -module.exports = (function(){ -var AssertionError = (function() { - function AssertionError(a) { - this.constructor$(a); - this.message = a; - this.name = "AssertionError"; - } - AssertionError.prototype = new Error(); - AssertionError.prototype.constructor = AssertionError; - AssertionError.prototype.constructor$ = Error; - return AssertionError; -})(); - -function getParams(args) { - var params = []; - for (var i = 0; i < args.length; ++i) params.push("arg" + i); - return params; -} - -function nativeAssert(callName, args, expect) { - try { - var params = getParams(args); - var constructorArgs = params; - constructorArgs.push("return " + - callName + "("+ params.join(",") + ");"); - var fn = Function.apply(null, constructorArgs); - return fn.apply(null, args); - } catch (e) { - if (!(e instanceof SyntaxError)) { - throw e; - } else { - return expect; - } - } -} - -return function assert(boolExpr, message) { - if (boolExpr === true) return; - - if (typeof boolExpr === "string" && - boolExpr.charAt(0) === "%") { - var nativeCallName = boolExpr; - var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];}; - if (nativeAssert(nativeCallName, args, message) === message) return; - message = (nativeCallName + " !== " + message); - } - - var ret = new AssertionError(message); - if (Error.captureStackTrace) { - Error.captureStackTrace(ret, assert); - } - throw ret; -}; -})(); diff --git a/deps/npm/node_modules/bluebird/js/release/async.js b/deps/npm/node_modules/bluebird/js/release/async.js deleted file mode 100644 index 41f66556475..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/async.js +++ /dev/null @@ -1,161 +0,0 @@ -"use strict"; -var firstLineError; -try {throw new Error(); } catch (e) {firstLineError = e;} -var schedule = require("./schedule"); -var Queue = require("./queue"); -var util = require("./util"); - -function Async() { - this._customScheduler = false; - this._isTickUsed = false; - this._lateQueue = new Queue(16); - this._normalQueue = new Queue(16); - this._haveDrainedQueues = false; - this._trampolineEnabled = true; - var self = this; - this.drainQueues = function () { - self._drainQueues(); - }; - this._schedule = schedule; -} - -Async.prototype.setScheduler = function(fn) { - var prev = this._schedule; - this._schedule = fn; - this._customScheduler = true; - return prev; -}; - -Async.prototype.hasCustomScheduler = function() { - return this._customScheduler; -}; - -Async.prototype.enableTrampoline = function() { - this._trampolineEnabled = true; -}; - -Async.prototype.disableTrampolineIfNecessary = function() { - if (util.hasDevTools) { - this._trampolineEnabled = false; - } -}; - -Async.prototype.haveItemsQueued = function () { - return this._isTickUsed || this._haveDrainedQueues; -}; - - -Async.prototype.fatalError = function(e, isNode) { - if (isNode) { - process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + - "\n"); - process.exit(2); - } else { - this.throwLater(e); - } -}; - -Async.prototype.throwLater = function(fn, arg) { - if (arguments.length === 1) { - arg = fn; - fn = function () { throw arg; }; - } - if (typeof setTimeout !== "undefined") { - setTimeout(function() { - fn(arg); - }, 0); - } else try { - this._schedule(function() { - fn(arg); - }); - } catch (e) { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } -}; - -function AsyncInvokeLater(fn, receiver, arg) { - this._lateQueue.push(fn, receiver, arg); - this._queueTick(); -} - -function AsyncInvoke(fn, receiver, arg) { - this._normalQueue.push(fn, receiver, arg); - this._queueTick(); -} - -function AsyncSettlePromises(promise) { - this._normalQueue._pushOne(promise); - this._queueTick(); -} - -if (!util.hasDevTools) { - Async.prototype.invokeLater = AsyncInvokeLater; - Async.prototype.invoke = AsyncInvoke; - Async.prototype.settlePromises = AsyncSettlePromises; -} else { - Async.prototype.invokeLater = function (fn, receiver, arg) { - if (this._trampolineEnabled) { - AsyncInvokeLater.call(this, fn, receiver, arg); - } else { - this._schedule(function() { - setTimeout(function() { - fn.call(receiver, arg); - }, 100); - }); - } - }; - - Async.prototype.invoke = function (fn, receiver, arg) { - if (this._trampolineEnabled) { - AsyncInvoke.call(this, fn, receiver, arg); - } else { - this._schedule(function() { - fn.call(receiver, arg); - }); - } - }; - - Async.prototype.settlePromises = function(promise) { - if (this._trampolineEnabled) { - AsyncSettlePromises.call(this, promise); - } else { - this._schedule(function() { - promise._settlePromises(); - }); - } - }; -} - -Async.prototype._drainQueue = function(queue) { - while (queue.length() > 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } -}; - -Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); -}; - -Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } -}; - -Async.prototype._reset = function () { - this._isTickUsed = false; -}; - -module.exports = Async; -module.exports.firstLineError = firstLineError; diff --git a/deps/npm/node_modules/bluebird/js/release/bind.js b/deps/npm/node_modules/bluebird/js/release/bind.js deleted file mode 100644 index fc3379db28c..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/bind.js +++ /dev/null @@ -1,67 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { -var calledBind = false; -var rejectThis = function(_, e) { - this._reject(e); -}; - -var targetRejected = function(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); -}; - -var bindingResolved = function(thisArg, context) { - if (((this._bitField & 50397184) === 0)) { - this._resolveCallback(context.target); - } -}; - -var bindingRejected = function(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); -}; - -Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); - var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then( - bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; -}; - -Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & (~2097152); - } -}; - -Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; -}; - -Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/bluebird.js b/deps/npm/node_modules/bluebird/js/release/bluebird.js deleted file mode 100644 index 1c36cf36446..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/bluebird.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -var old; -if (typeof Promise !== "undefined") old = Promise; -function noConflict() { - try { if (Promise === bluebird) Promise = old; } - catch (e) {} - return bluebird; -} -var bluebird = require("./promise")(); -bluebird.noConflict = noConflict; -module.exports = bluebird; diff --git a/deps/npm/node_modules/bluebird/js/release/call_get.js b/deps/npm/node_modules/bluebird/js/release/call_get.js deleted file mode 100644 index 0ed7714ac11..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/call_get.js +++ /dev/null @@ -1,123 +0,0 @@ -"use strict"; -var cr = Object.create; -if (cr) { - var callerCache = cr(null); - var getterCache = cr(null); - callerCache[" size"] = getterCache[" size"] = 0; -} - -module.exports = function(Promise) { -var util = require("./util"); -var canEvaluate = util.canEvaluate; -var isIdentifier = util.isIdentifier; - -var getMethodCaller; -var getGetter; -if (!false) { -var makeMethodCaller = function (methodName) { - return new Function("ensureMethod", " \n\ - return function(obj) { \n\ - 'use strict' \n\ - var len = this.length; \n\ - ensureMethod(obj, 'methodName'); \n\ - switch(len) { \n\ - case 1: return obj.methodName(this[0]); \n\ - case 2: return obj.methodName(this[0], this[1]); \n\ - case 3: return obj.methodName(this[0], this[1], this[2]); \n\ - case 0: return obj.methodName(); \n\ - default: \n\ - return obj.methodName.apply(obj, this); \n\ - } \n\ - }; \n\ - ".replace(/methodName/g, methodName))(ensureMethod); -}; - -var makeGetter = function (propertyName) { - return new Function("obj", " \n\ - 'use strict'; \n\ - return obj.propertyName; \n\ - ".replace("propertyName", propertyName)); -}; - -var getCompiled = function(name, compiler, cache) { - var ret = cache[name]; - if (typeof ret !== "function") { - if (!isIdentifier(name)) { - return null; - } - ret = compiler(name); - cache[name] = ret; - cache[" size"]++; - if (cache[" size"] > 512) { - var keys = Object.keys(cache); - for (var i = 0; i < 256; ++i) delete cache[keys[i]]; - cache[" size"] = keys.length - 256; - } - } - return ret; -}; - -getMethodCaller = function(name) { - return getCompiled(name, makeMethodCaller, callerCache); -}; - -getGetter = function(name) { - return getCompiled(name, makeGetter, getterCache); -}; -} - -function ensureMethod(obj, methodName) { - var fn; - if (obj != null) fn = obj[methodName]; - if (typeof fn !== "function") { - var message = "Object " + util.classString(obj) + " has no method '" + - util.toString(methodName) + "'"; - throw new Promise.TypeError(message); - } - return fn; -} - -function caller(obj) { - var methodName = this.pop(); - var fn = ensureMethod(obj, methodName); - return fn.apply(obj, this); -} -Promise.prototype.call = function (methodName) { - var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; - if (!false) { - if (canEvaluate) { - var maybeCaller = getMethodCaller(methodName); - if (maybeCaller !== null) { - return this._then( - maybeCaller, undefined, undefined, args, undefined); - } - } - } - args.push(methodName); - return this._then(caller, undefined, undefined, args, undefined); -}; - -function namedGetter(obj) { - return obj[this]; -} -function indexedGetter(obj) { - var index = +this; - if (index < 0) index = Math.max(0, index + obj.length); - return obj[index]; -} -Promise.prototype.get = function (propertyName) { - var isIndex = (typeof propertyName === "number"); - var getter; - if (!isIndex) { - if (canEvaluate) { - var maybeGetter = getGetter(propertyName); - getter = maybeGetter !== null ? maybeGetter : namedGetter; - } else { - getter = namedGetter; - } - } else { - getter = indexedGetter; - } - return this._then(getter, undefined, undefined, propertyName, undefined); -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/cancel.js b/deps/npm/node_modules/bluebird/js/release/cancel.js deleted file mode 100644 index 7a12415ee58..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/cancel.js +++ /dev/null @@ -1,129 +0,0 @@ -"use strict"; -module.exports = function(Promise, PromiseArray, apiRejection, debug) { -var util = require("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -Promise.prototype["break"] = Promise.prototype.cancel = function() { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise._isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } - - var parent = promise._cancellationParent; - if (parent == null || !parent._isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - promise._setWillBeCancelled(); - child = promise; - promise = parent; - } - } -}; - -Promise.prototype._branchHasCancelled = function() { - this._branchesRemainingToCancel--; -}; - -Promise.prototype._enoughBranchesHaveCancelled = function() { - return this._branchesRemainingToCancel === undefined || - this._branchesRemainingToCancel <= 0; -}; - -Promise.prototype._cancelBy = function(canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; - } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; - } - } - return false; -}; - -Promise.prototype._cancelBranched = function() { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } -}; - -Promise.prototype._cancel = function() { - if (!this._isCancellable()) return; - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); -}; - -Promise.prototype._cancelPromises = function() { - if (this._length() > 0) this._settlePromises(); -}; - -Promise.prototype._unsetOnCancel = function() { - this._onCancelField = undefined; -}; - -Promise.prototype._isCancellable = function() { - return this.isPending() && !this._isCancelled(); -}; - -Promise.prototype.isCancellable = function() { - return this.isPending() && !this.isCancelled(); -}; - -Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); - } - } -}; - -Promise.prototype._invokeOnCancel = function() { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); -}; - -Promise.prototype._invokeInternalOnCancel = function() { - if (this._isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); - } -}; - -Promise.prototype._resultCancelled = function() { - this.cancel(); -}; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/catch_filter.js b/deps/npm/node_modules/bluebird/js/release/catch_filter.js deleted file mode 100644 index 0f24ce23eca..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/catch_filter.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -module.exports = function(NEXT_FILTER) { -var util = require("./util"); -var getKeys = require("./es5").keys; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function catchFilter(instances, cb, promise) { - return function(e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || - (item != null && item.prototype instanceof Error)) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; -} - -return catchFilter; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/context.js b/deps/npm/node_modules/bluebird/js/release/context.js deleted file mode 100644 index c307414fc62..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/context.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -var longStackTraces = false; -var contextStack = []; - -Promise.prototype._promiseCreated = function() {}; -Promise.prototype._pushContext = function() {}; -Promise.prototype._popContext = function() {return null;}; -Promise._peekContext = Promise.prototype._peekContext = function() {}; - -function Context() { - this._trace = new Context.CapturedTrace(peekContext()); -} -Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } -}; - -Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; - } - return null; -}; - -function createContext() { - if (longStackTraces) return new Context(); -} - -function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; - } - return undefined; -} -Context.CapturedTrace = null; -Context.create = createContext; -Context.deactivateLongStackTraces = function() {}; -Context.activateLongStackTraces = function() { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function() { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function() { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; -}; -return Context; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/debuggability.js b/deps/npm/node_modules/bluebird/js/release/debuggability.js deleted file mode 100644 index 69568041311..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/debuggability.js +++ /dev/null @@ -1,919 +0,0 @@ -"use strict"; -module.exports = function(Promise, Context) { -var getDomain = Promise._getDomain; -var async = Promise._async; -var Warning = require("./errors").Warning; -var util = require("./util"); -var canAttachTrace = util.canAttachTrace; -var unhandledRejectionHandled; -var possiblyUnhandledRejection; -var bluebirdFramePattern = - /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; -var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; -var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; -var stackFramePattern = null; -var formatStack = null; -var indentStackFrames = false; -var printWarning; -var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && - (false || - util.env("BLUEBIRD_DEBUG") || - util.env("NODE_ENV") === "development")); - -var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && - (debugging || util.env("BLUEBIRD_WARNINGS"))); - -var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && - (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - -var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && - (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - -Promise.prototype.suppressUnhandledRejections = function() { - var target = this._target(); - target._bitField = ((target._bitField & (~1048576)) | - 524288); -}; - -Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - var self = this; - setTimeout(function() { - self._notifyUnhandledRejection(); - }, 1); -}; - -Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", - unhandledRejectionHandled, undefined, this); -}; - -Promise.prototype._setReturnedNonUndefined = function() { - this._bitField = this._bitField | 268435456; -}; - -Promise.prototype._returnedNonUndefined = function() { - return (this._bitField & 268435456) !== 0; -}; - -Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", - possiblyUnhandledRejection, reason, this); - } -}; - -Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; -}; - -Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & (~262144); -}; - -Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; -}; - -Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; -}; - -Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & (~1048576); - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); - } -}; - -Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; -}; - -Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); -}; - -Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = - typeof fn === "function" ? (domain === null ? - fn : util.domainBind(domain, fn)) - : undefined; -}; - -Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = - typeof fn === "function" ? (domain === null ? - fn : util.domainBind(domain, fn)) - : undefined; -}; - -var disableLongStackTraces = function() {}; -Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); - } -}; - -Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); -}; - -var fireDomEvent = (function() { - try { - if (typeof CustomEvent === "function") { - var event = new CustomEvent("CustomEvent"); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = new CustomEvent(name.toLowerCase(), { - detail: event, - cancelable: true - }); - return !util.global.dispatchEvent(domEvent); - }; - } else if (typeof Event === "function") { - var event = new Event("CustomEvent"); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = new Event(name.toLowerCase(), { - cancelable: true - }); - domEvent.detail = event; - return !util.global.dispatchEvent(domEvent); - }; - } else { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, - event); - return !util.global.dispatchEvent(domEvent); - }; - } - } catch (e) {} - return function() { - return false; - }; -})(); - -var fireGlobalEvent = (function() { - if (util.isNode) { - return function() { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function() { - return false; - }; - } - return function(name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } -})(); - -function generatePromiseLifecycleEventObject(name, promise) { - return {promise: promise}; -} - -var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function(name, promise, child) { - return {promise: promise, child: child}; - }, - warning: function(name, warning) { - return {warning: warning}; - }, - unhandledRejection: function (name, reason, promise) { - return {reason: reason, promise: promise}; - }, - rejectionHandled: generatePromiseLifecycleEventObject -}; - -var activeFireEvent = function (name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } - - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, - eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } - - return domEventFired || globalEventFired; -}; - -Promise.config = function(opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; - - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error( - "cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = - cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = - cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - propagateFromFunction = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } - } - return Promise; -}; - -function defaultFireEvent() { return false; } - -Promise.prototype._fireEvent = defaultFireEvent; -Promise.prototype._execute = function(executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } -}; -Promise.prototype._onCancel = function () {}; -Promise.prototype._setOnCancel = function (handler) { ; }; -Promise.prototype._attachCancellationCallback = function(onCancel) { - ; -}; -Promise.prototype._captureStackTrace = function () {}; -Promise.prototype._attachExtraTrace = function () {}; -Promise.prototype._clearCancellationData = function() {}; -Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; -}; - -function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function(onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + - util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } -} - -function cancellationAttachCancellationCallback(onCancel) { - if (!this._isCancellable()) return this; - - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); - } - } else { - this._setOnCancel(onCancel); - } -} - -function cancellationOnCancel() { - return this._onCancelField; -} - -function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; -} - -function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; -} - -function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} - -function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} -var propagateFromFunction = bindingPropagateFrom; - -function boundValueFunction() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); - } else { - return undefined; - } - } - } - return ret; -} - -function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); -} - -function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", - parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); - } - } -} - -function checkForgottenReturns(returnValue, promiseCreated, name, promise, - parent) { - if (returnValue === undefined && promiseCreated !== null && - wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; - if ((promise._bitField & 65535) === 0) return; - - if (name) name = name + " "; - var handlerLine = ""; - var creatorLine = ""; - if (promiseCreated._trace) { - var traceLines = promiseCreated._trace.stack.split("\n"); - var stack = cleanStack(traceLines); - for (var i = stack.length - 1; i >= 0; --i) { - var line = stack[i]; - if (!nodeFramePattern.test(line)) { - var lineMatches = line.match(parseLinePattern); - if (lineMatches) { - handlerLine = "at " + lineMatches[1] + - ":" + lineMatches[2] + ":" + lineMatches[3] + " "; - } - break; - } - } - - if (stack.length > 0) { - var firstUserLine = stack[0]; - for (var i = 0; i < traceLines.length; ++i) { - - if (traceLines[i] === firstUserLine) { - if (i > 0) { - creatorLine = "\n" + traceLines[i - 1]; - } - break; - } - } - - } - } - var msg = "a promise was created in a " + name + - "handler " + handlerLine + "but was not returned from it, " + - "see http://goo.gl/rRqMUw" + - creatorLine; - promise._warn(msg, true, promiseCreated); - } -} - -function deprecated(name, replacement) { - var message = name + - " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); -} - -function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } -} - -function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); -} - -function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || - ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { - stacks.splice(i, 1); - i--; - } - } -} - -function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; - - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } - - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } - } - current = prev; - } -} - -function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || - stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; -} - -function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0 && error.name != "SyntaxError") { - stack = stack.slice(i); - } - return stack; -} - -function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 - ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: error.name == "SyntaxError" ? stack : cleanStack(stack) - }; -} - -function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || - typeof console.log === "object") { - console.log(message); - } - } -} - -function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); - } - - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } -} - -function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + - (obj.name || "anonymous") + - "]"; - } else { - str = obj && typeof obj.toString === "function" - ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } - catch(e) { - - } - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return ("(<" + snip(str) + ">, no stack trace)"); -} - -function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; -} - -function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; -} - -var shouldIgnore = function() { return false; }; -var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; -function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } -} - -function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || - firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } - - shouldIgnore = function(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && - (firstIndex <= info.line && info.line <= lastIndex)) { - return true; - } - } - return false; - }; -} - -function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); -} -util.inherits(CapturedTrace, Error); -Context.CapturedTrace = CapturedTrace; - -CapturedTrace.prototype.uncycle = function() { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; - - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = - cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } -}; - -CapturedTrace.prototype.attachExtraTrace = function(error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; - - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); -}; - -var captureStackTrace = (function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function(stack, error) { - if (typeof stack === "string") return stack; - - if (error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - if (typeof Error.stackTraceLimit === "number" && - typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; - - shouldIgnore = function(line) { - return bluebirdFramePattern.test(line); - }; - return function(receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); - - if (typeof err.stack === "string" && - err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } - - var hasStackAfterThrow; - try { throw new Error(); } - catch(e) { - hasStackAfterThrow = ("stack" in e); - } - if (!("stack" in err) && hasStackAfterThrow && - typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { throw new Error(); } - catch(e) { o.stack = e.stack; } - Error.stackTraceLimit -= 6; - }; - } - - formatStack = function(stack, error) { - if (typeof stack === "string") return stack; - - if ((typeof error === "object" || - typeof error === "function") && - error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - return null; - -})([]); - -if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function (message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function(message, isSoft) { - var color = isSoft ? "\u001b[33m" : "\u001b[31m"; - console.warn(color + message + "\u001b[0m\n"); - }; - } else if (!util.isNode && typeof (new Error().stack) === "string") { - printWarning = function(message, isSoft) { - console.warn("%c" + message, - isSoft ? "color: darkorange" : "color: red"); - }; - } -} - -var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false -}; - -if (longStackTraces) Promise.longStackTraces(); - -return { - longStackTraces: function() { - return config.longStackTraces; - }, - warnings: function() { - return config.warnings; - }, - cancellation: function() { - return config.cancellation; - }, - monitoring: function() { - return config.monitoring; - }, - propagateFromFunction: function() { - return propagateFromFunction; - }, - boundValueFunction: function() { - return boundValueFunction; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/direct_resolve.js b/deps/npm/node_modules/bluebird/js/release/direct_resolve.js deleted file mode 100644 index a8902982614..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/direct_resolve.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -function returner() { - return this.value; -} -function thrower() { - throw this.reason; -} - -Promise.prototype["return"] = -Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - returner, undefined, undefined, {value: value}, undefined); -}; - -Promise.prototype["throw"] = -Promise.prototype.thenThrow = function (reason) { - return this._then( - thrower, undefined, undefined, {reason: reason}, undefined); -}; - -Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then( - undefined, thrower, undefined, {reason: reason}, undefined); - } else { - var _reason = arguments[1]; - var handler = function() {throw _reason;}; - return this.caught(reason, handler); - } -}; - -Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - undefined, returner, undefined, {value: value}, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function() {return _value;}; - return this.caught(value, handler); - } -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/each.js b/deps/npm/node_modules/bluebird/js/release/each.js deleted file mode 100644 index e34b6b9c16f..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/each.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseReduce = Promise.reduce; -var PromiseAll = Promise.all; - -function promiseAllThis() { - return PromiseAll(this); -} - -function PromiseMapSeries(promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, INTERNAL); -} - -Promise.prototype.each = function (fn) { - return PromiseReduce(this, fn, INTERNAL, 0) - ._then(promiseAllThis, undefined, undefined, this, undefined); -}; - -Promise.prototype.mapSeries = function (fn) { - return PromiseReduce(this, fn, INTERNAL, INTERNAL); -}; - -Promise.each = function (promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, 0) - ._then(promiseAllThis, undefined, undefined, promises, undefined); -}; - -Promise.mapSeries = PromiseMapSeries; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/errors.js b/deps/npm/node_modules/bluebird/js/release/errors.js deleted file mode 100644 index f62f323eb8f..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/errors.js +++ /dev/null @@ -1,116 +0,0 @@ -"use strict"; -var es5 = require("./es5"); -var Objectfreeze = es5.freeze; -var util = require("./util"); -var inherits = util.inherits; -var notEnumerableProp = util.notEnumerableProp; - -function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", - typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; -} - -var _TypeError, _RangeError; -var Warning = subError("Warning", "warning"); -var CancellationError = subError("CancellationError", "cancellation error"); -var TimeoutError = subError("TimeoutError", "timeout error"); -var AggregateError = subError("AggregateError", "aggregate error"); -try { - _TypeError = TypeError; - _RangeError = RangeError; -} catch(e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); -} - -var methods = ("join pop push shift unshift slice filter forEach some " + - "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - -for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } -} - -es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true -}); -AggregateError.prototype["isOperational"] = true; -var level = 0; -AggregateError.prototype.toString = function() { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; -}; - -function OperationalError(message) { - if (!(this instanceof OperationalError)) - return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; - - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - -} -inherits(OperationalError, Error); - -var errorTypes = Error["__BluebirdErrorTypes__"]; -if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); -} - -module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning -}; diff --git a/deps/npm/node_modules/bluebird/js/release/es5.js b/deps/npm/node_modules/bluebird/js/release/es5.js deleted file mode 100644 index ea41d5a5669..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/es5.js +++ /dev/null @@ -1,80 +0,0 @@ -var isES5 = (function(){ - "use strict"; - return this === undefined; -})(); - -if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; -} else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; - - var ObjectKeys = function (o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; - - var ObjectGetDescriptor = function(o, key) { - return {value: o[key]}; - }; - - var ObjectDefineProperty = function (o, key, desc) { - o[key] = desc.value; - return o; - }; - - var ObjectFreeze = function (obj) { - return obj; - }; - - var ObjectGetPrototypeOf = function (obj) { - try { - return Object(obj).constructor.prototype; - } - catch (e) { - return proto; - } - }; - - var ArrayIsArray = function (obj) { - try { - return str.call(obj) === "[object Array]"; - } - catch(e) { - return false; - } - }; - - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function() { - return true; - } - }; -} diff --git a/deps/npm/node_modules/bluebird/js/release/filter.js b/deps/npm/node_modules/bluebird/js/release/filter.js deleted file mode 100644 index ed57bf01592..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/filter.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseMap = Promise.map; - -Promise.prototype.filter = function (fn, options) { - return PromiseMap(this, fn, options, INTERNAL); -}; - -Promise.filter = function (promises, fn, options) { - return PromiseMap(promises, fn, options, INTERNAL); -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/finally.js b/deps/npm/node_modules/bluebird/js/release/finally.js deleted file mode 100644 index d57444bed4f..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/finally.js +++ /dev/null @@ -1,146 +0,0 @@ -"use strict"; -module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { -var util = require("./util"); -var CancellationError = Promise.CancellationError; -var errorObj = util.errorObj; -var catchFilter = require("./catch_filter")(NEXT_FILTER); - -function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; -} - -PassThroughHandlerContext.prototype.isFinallyHandler = function() { - return this.type === 0; -}; - -function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; -} - -FinallyHandlerCancelReaction.prototype._resultCancelled = function() { - checkCancel(this.finallyHandler); -}; - -function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; -} - -function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); -} -function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; -} -function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; - - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() - ? handler.call(promise._boundValue()) - : handler.call(promise._boundValue(), reasonOrValue); - if (ret === NEXT_FILTER) { - return ret; - } else if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise._isCancelled()) { - var reason = - new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback( - new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then( - succeed, fail, undefined, this, undefined); - } - } - } - - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } -} - -Promise.prototype._passThrough = function(handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, - fail, - undefined, - new PassThroughHandlerContext(this, type, handler), - undefined); -}; - -Promise.prototype.lastly = -Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, - 0, - finallyHandler, - finallyHandler); -}; - - -Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); -}; - -Promise.prototype.tapCatch = function (handlerOrPredicate) { - var len = arguments.length; - if(len === 1) { - return this._passThrough(handlerOrPredicate, - 1, - undefined, - finallyHandler); - } else { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return Promise.reject(new TypeError( - "tapCatch statement predicate: " - + "expecting an object but got " + util.classString(item) - )); - } - } - catchInstances.length = j; - var handler = arguments[i]; - return this._passThrough(catchFilter(catchInstances, handler, this), - 1, - undefined, - finallyHandler); - } - -}; - -return PassThroughHandlerContext; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/generators.js b/deps/npm/node_modules/bluebird/js/release/generators.js deleted file mode 100644 index 500c280c0b0..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/generators.js +++ /dev/null @@ -1,223 +0,0 @@ -"use strict"; -module.exports = function(Promise, - apiRejection, - INTERNAL, - tryConvertToPromise, - Proxyable, - debug) { -var errors = require("./errors"); -var TypeError = errors.TypeError; -var util = require("./util"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -var yieldHandlers = []; - -function promiseFromYieldHandler(value, yieldHandlers, traceParent) { - for (var i = 0; i < yieldHandlers.length; ++i) { - traceParent._pushContext(); - var result = tryCatch(yieldHandlers[i])(value); - traceParent._popContext(); - if (result === errorObj) { - traceParent._pushContext(); - var ret = Promise.reject(errorObj.e); - traceParent._popContext(); - return ret; - } - var maybePromise = tryConvertToPromise(result, traceParent); - if (maybePromise instanceof Promise) return maybePromise; - } - return null; -} - -function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { - if (debug.cancellation()) { - var internal = new Promise(INTERNAL); - var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); - this._promise = internal.lastly(function() { - return _finallyPromise; - }); - internal._captureStackTrace(); - internal._setOnCancel(this); - } else { - var promise = this._promise = new Promise(INTERNAL); - promise._captureStackTrace(); - } - this._stack = stack; - this._generatorFunction = generatorFunction; - this._receiver = receiver; - this._generator = undefined; - this._yieldHandlers = typeof yieldHandler === "function" - ? [yieldHandler].concat(yieldHandlers) - : yieldHandlers; - this._yieldedPromise = null; - this._cancellationPhase = false; -} -util.inherits(PromiseSpawn, Proxyable); - -PromiseSpawn.prototype._isResolved = function() { - return this._promise === null; -}; - -PromiseSpawn.prototype._cleanup = function() { - this._promise = this._generator = null; - if (debug.cancellation() && this._finallyPromise !== null) { - this._finallyPromise._fulfill(); - this._finallyPromise = null; - } -}; - -PromiseSpawn.prototype._promiseCancelled = function() { - if (this._isResolved()) return; - var implementsReturn = typeof this._generator["return"] !== "undefined"; - - var result; - if (!implementsReturn) { - var reason = new Promise.CancellationError( - "generator .return() sentinel"); - Promise.coroutine.returnSentinel = reason; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - result = tryCatch(this._generator["throw"]).call(this._generator, - reason); - this._promise._popContext(); - } else { - this._promise._pushContext(); - result = tryCatch(this._generator["return"]).call(this._generator, - undefined); - this._promise._popContext(); - } - this._cancellationPhase = true; - this._yieldedPromise = null; - this._continue(result); -}; - -PromiseSpawn.prototype._promiseFulfilled = function(value) { - this._yieldedPromise = null; - this._promise._pushContext(); - var result = tryCatch(this._generator.next).call(this._generator, value); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._promiseRejected = function(reason) { - this._yieldedPromise = null; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - var result = tryCatch(this._generator["throw"]) - .call(this._generator, reason); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._resultCancelled = function() { - if (this._yieldedPromise instanceof Promise) { - var promise = this._yieldedPromise; - this._yieldedPromise = null; - promise.cancel(); - } -}; - -PromiseSpawn.prototype.promise = function () { - return this._promise; -}; - -PromiseSpawn.prototype._run = function () { - this._generator = this._generatorFunction.call(this._receiver); - this._receiver = - this._generatorFunction = undefined; - this._promiseFulfilled(undefined); -}; - -PromiseSpawn.prototype._continue = function (result) { - var promise = this._promise; - if (result === errorObj) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._rejectCallback(result.e, false); - } - } - - var value = result.value; - if (result.done === true) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._resolveCallback(value); - } - } else { - var maybePromise = tryConvertToPromise(value, this._promise); - if (!(maybePromise instanceof Promise)) { - maybePromise = - promiseFromYieldHandler(maybePromise, - this._yieldHandlers, - this._promise); - if (maybePromise === null) { - this._promiseRejected( - new TypeError( - "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + - "From coroutine:\u000a" + - this._stack.split("\n").slice(1, -7).join("\n") - ) - ); - return; - } - } - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - this._yieldedPromise = maybePromise; - maybePromise._proxy(this, null); - } else if (((bitField & 33554432) !== 0)) { - Promise._async.invoke( - this._promiseFulfilled, this, maybePromise._value() - ); - } else if (((bitField & 16777216) !== 0)) { - Promise._async.invoke( - this._promiseRejected, this, maybePromise._reason() - ); - } else { - this._promiseCancelled(); - } - } -}; - -Promise.coroutine = function (generatorFunction, options) { - if (typeof generatorFunction !== "function") { - throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var yieldHandler = Object(options).yieldHandler; - var PromiseSpawn$ = PromiseSpawn; - var stack = new Error().stack; - return function () { - var generator = generatorFunction.apply(this, arguments); - var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, - stack); - var ret = spawn.promise(); - spawn._generator = generator; - spawn._promiseFulfilled(undefined); - return ret; - }; -}; - -Promise.coroutine.addYieldHandler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - yieldHandlers.push(fn); -}; - -Promise.spawn = function (generatorFunction) { - debug.deprecated("Promise.spawn()", "Promise.coroutine()"); - if (typeof generatorFunction !== "function") { - return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var spawn = new PromiseSpawn(generatorFunction, this); - var ret = spawn.promise(); - spawn._run(Promise.spawn); - return ret; -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/join.js b/deps/npm/node_modules/bluebird/js/release/join.js deleted file mode 100644 index 4945e3f7822..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/join.js +++ /dev/null @@ -1,168 +0,0 @@ -"use strict"; -module.exports = -function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, - getDomain) { -var util = require("./util"); -var canEvaluate = util.canEvaluate; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var reject; - -if (!false) { -if (canEvaluate) { - var thenCallback = function(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; - - var promiseSetter = function(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; - - var generateHolderClass = function(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i+1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode= "var promise;\n" + props.map(function(prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; - - - var code = "return function(tryCatch, errorObj, Promise, async) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.asyncNeeded = true; \n\ - this.now = 0; \n\ - } \n\ - \n\ - [TheName].prototype._callFunction = function(promise) { \n\ - promise._pushContext(); \n\ - var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - if (this.asyncNeeded) { \n\ - async.invoke(this._callFunction, this, promise); \n\ - } else { \n\ - this._callFunction(promise); \n\ - } \n\ - \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise, async); \n\ - "; - - code = code.replace(/\[TheName\]/g, name) - .replace(/\[TheTotal\]/g, total) - .replace(/\[ThePassedArguments\]/g, passedArguments) - .replace(/\[TheProperties\]/g, assignment) - .replace(/\[CancellationCode\]/g, cancellationCode); - - return new Function("tryCatch", "errorObj", "Promise", "async", code) - (tryCatch, errorObj, Promise, async); - }; - - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; - - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } - - reject = function (reason) { - this._reject(reason); - }; -}} - -Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!false) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; - - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - maybePromise._then(callbacks[i], reject, - undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - holder.asyncNeeded = false; - } else if (((bitField & 33554432) !== 0)) { - callbacks[i].call(ret, - maybePromise._value(), holder); - } else if (((bitField & 16777216) !== 0)) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - - if (!ret._isFateSealed()) { - if (holder.asyncNeeded) { - var domain = getDomain(); - if (domain !== null) { - holder.fn = util.domainBind(domain, holder.fn); - } - } - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];}; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; -}; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/map.js b/deps/npm/node_modules/bluebird/js/release/map.js deleted file mode 100644 index 976f15ef293..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/map.js +++ /dev/null @@ -1,168 +0,0 @@ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = require("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -function MappingPromiseArray(promises, fn, limit, _filter) { - this.constructor$(promises); - this._promise._captureStackTrace(); - var domain = getDomain(); - this._callback = domain === null ? fn : util.domainBind(domain, fn); - this._preservedValues = _filter === INTERNAL - ? new Array(this.length()) - : null; - this._limit = limit; - this._inFlight = 0; - this._queue = []; - async.invoke(this._asyncInit, this, undefined); -} -util.inherits(MappingPromiseArray, PromiseArray); - -MappingPromiseArray.prototype._asyncInit = function() { - this._init$(undefined, -2); -}; - -MappingPromiseArray.prototype._init = function () {}; - -MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { - var values = this._values; - var length = this.length(); - var preservedValues = this._preservedValues; - var limit = this._limit; - - if (index < 0) { - index = (index * -1) - 1; - values[index] = value; - if (limit >= 1) { - this._inFlight--; - this._drainQueue(); - if (this._isResolved()) return true; - } - } else { - if (limit >= 1 && this._inFlight >= limit) { - values[index] = value; - this._queue.push(index); - return false; - } - if (preservedValues !== null) preservedValues[index] = value; - - var promise = this._promise; - var callback = this._callback; - var receiver = promise._boundValue(); - promise._pushContext(); - var ret = tryCatch(callback).call(receiver, value, index, length); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - preservedValues !== null ? "Promise.filter" : "Promise.map", - promise - ); - if (ret === errorObj) { - this._reject(ret.e); - return true; - } - - var maybePromise = tryConvertToPromise(ret, this._promise); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - if (limit >= 1) this._inFlight++; - values[index] = maybePromise; - maybePromise._proxy(this, (index + 1) * -1); - return false; - } else if (((bitField & 33554432) !== 0)) { - ret = maybePromise._value(); - } else if (((bitField & 16777216) !== 0)) { - this._reject(maybePromise._reason()); - return true; - } else { - this._cancel(); - return true; - } - } - values[index] = ret; - } - var totalResolved = ++this._totalResolved; - if (totalResolved >= length) { - if (preservedValues !== null) { - this._filter(values, preservedValues); - } else { - this._resolve(values); - } - return true; - } - return false; -}; - -MappingPromiseArray.prototype._drainQueue = function () { - var queue = this._queue; - var limit = this._limit; - var values = this._values; - while (queue.length > 0 && this._inFlight < limit) { - if (this._isResolved()) return; - var index = queue.pop(); - this._promiseFulfilled(values[index], index); - } -}; - -MappingPromiseArray.prototype._filter = function (booleans, values) { - var len = values.length; - var ret = new Array(len); - var j = 0; - for (var i = 0; i < len; ++i) { - if (booleans[i]) ret[j++] = values[i]; - } - ret.length = j; - this._resolve(ret); -}; - -MappingPromiseArray.prototype.preservedValues = function () { - return this._preservedValues; -}; - -function map(promises, fn, options, _filter) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - - var limit = 0; - if (options !== undefined) { - if (typeof options === "object" && options !== null) { - if (typeof options.concurrency !== "number") { - return Promise.reject( - new TypeError("'concurrency' must be a number but it is " + - util.classString(options.concurrency))); - } - limit = options.concurrency; - } else { - return Promise.reject(new TypeError( - "options argument must be an object but it is " + - util.classString(options))); - } - } - limit = typeof limit === "number" && - isFinite(limit) && limit >= 1 ? limit : 0; - return new MappingPromiseArray(promises, fn, limit, _filter).promise(); -} - -Promise.prototype.map = function (fn, options) { - return map(this, fn, options, null); -}; - -Promise.map = function (promises, fn, options, _filter) { - return map(promises, fn, options, _filter); -}; - - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/method.js b/deps/npm/node_modules/bluebird/js/release/method.js deleted file mode 100644 index ce9e4db7edf..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/method.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -module.exports = -function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { -var util = require("./util"); -var tryCatch = util.tryCatch; - -Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; -}; - -Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) - : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; -}; - -Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/nodeback.js b/deps/npm/node_modules/bluebird/js/release/nodeback.js deleted file mode 100644 index 71e69ebdbec..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/nodeback.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -var util = require("./util"); -var maybeWrapAsError = util.maybeWrapAsError; -var errors = require("./errors"); -var OperationalError = errors.OperationalError; -var es5 = require("./es5"); - -function isUntypedError(obj) { - return obj instanceof Error && - es5.getPrototypeOf(obj) === Error.prototype; -} - -var rErrorKey = /^(?:name|message|stack|cause)$/; -function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; -} - -function nodebackForPromise(promise, multiArgs) { - return function(err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; - promise._fulfill(args); - } - promise = null; - }; -} - -module.exports = nodebackForPromise; diff --git a/deps/npm/node_modules/bluebird/js/release/nodeify.js b/deps/npm/node_modules/bluebird/js/release/nodeify.js deleted file mode 100644 index ce2b19004e5..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/nodeify.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -var util = require("./util"); -var async = Promise._async; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function spreadAdapter(val, nodeback) { - var promise = this; - if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); - var ret = - tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -function successAdapter(val, nodeback) { - var promise = this; - var receiver = promise._boundValue(); - var ret = val === undefined - ? tryCatch(nodeback).call(receiver, null) - : tryCatch(nodeback).call(receiver, null, val); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} -function errorAdapter(reason, nodeback) { - var promise = this; - if (!reason) { - var newReason = new Error(reason + ""); - newReason.cause = reason; - reason = newReason; - } - var ret = tryCatch(nodeback).call(promise._boundValue(), reason); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, - options) { - if (typeof nodeback == "function") { - var adapter = successAdapter; - if (options !== undefined && Object(options).spread) { - adapter = spreadAdapter; - } - this._then( - adapter, - errorAdapter, - undefined, - this, - nodeback - ); - } - return this; -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/promise.js b/deps/npm/node_modules/bluebird/js/release/promise.js deleted file mode 100644 index 6ef173ef60c..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/promise.js +++ /dev/null @@ -1,775 +0,0 @@ -"use strict"; -module.exports = function() { -var makeSelfResolutionError = function () { - return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var reflectHandler = function() { - return new Promise.PromiseInspection(this._target()); -}; -var apiRejection = function(msg) { - return Promise.reject(new TypeError(msg)); -}; -function Proxyable() {} -var UNDEFINED_BINDING = {}; -var util = require("./util"); - -var getDomain; -if (util.isNode) { - getDomain = function() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; -} else { - getDomain = function() { - return null; - }; -} -util.notEnumerableProp(Promise, "_getDomain", getDomain); - -var es5 = require("./es5"); -var Async = require("./async"); -var async = new Async(); -es5.defineProperty(Promise, "_async", {value: async}); -var errors = require("./errors"); -var TypeError = Promise.TypeError = errors.TypeError; -Promise.RangeError = errors.RangeError; -var CancellationError = Promise.CancellationError = errors.CancellationError; -Promise.TimeoutError = errors.TimeoutError; -Promise.OperationalError = errors.OperationalError; -Promise.RejectionError = errors.OperationalError; -Promise.AggregateError = errors.AggregateError; -var INTERNAL = function(){}; -var APPLY = {}; -var NEXT_FILTER = {}; -var tryConvertToPromise = require("./thenables")(Promise, INTERNAL); -var PromiseArray = - require("./promise_array")(Promise, INTERNAL, - tryConvertToPromise, apiRejection, Proxyable); -var Context = require("./context")(Promise); - /*jshint unused:false*/ -var createContext = Context.create; -var debug = require("./debuggability")(Promise, Context); -var CapturedTrace = debug.CapturedTrace; -var PassThroughHandlerContext = - require("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); -var catchFilter = require("./catch_filter")(NEXT_FILTER); -var nodebackForPromise = require("./nodeback"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -function check(self, executor) { - if (self == null || self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - -} - -function Promise(executor) { - if (executor !== INTERNAL) { - check(this, executor); - } - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - this._resolveFromExecutor(executor); - this._promiseCreated(); - this._fireEvent("promiseCreated", this); -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("Catch statement predicate: " + - "expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); -}; - -Promise.prototype.reflect = function () { - return this._then(reflectHandler, - reflectHandler, undefined, this, undefined); -}; - -Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && - typeof didFulfill !== "function" && - typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + - util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); -}; - -Promise.prototype.done = function (didFulfill, didReject) { - var promise = - this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); -}; - -Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); -}; - -Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; -}; - -Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); -}; - -Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); -}; - -Promise.getNewLibraryCopy = module.exports; - -Promise.is = function (val) { - return val instanceof Promise; -}; - -Promise.fromNode = Promise.fromCallback = function(fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs - : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.all = function (promises) { - return new PromiseArray(promises).promise(); -}; - -Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; -}; - -Promise.resolve = Promise.fulfilled = Promise.cast; - -Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; -}; - -Promise.setScheduler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - return async.setScheduler(fn); -}; - -Promise.prototype._then = function ( - didFulfill, - didReject, - _, receiver, - internalData -) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; - - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && - ((this._bitField & 2097152) !== 0)) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } - - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, value, settler = target._settlePromiseCtx; - if (((bitField & 33554432) !== 0)) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if (((bitField & 16777216) !== 0)) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } - - async.invoke(settler, target, { - handler: domain === null ? handler - : (typeof handler === "function" && - util.domainBind(domain, handler)), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } - - return promise; -}; - -Promise.prototype._length = function () { - return this._bitField & 65535; -}; - -Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; -}; - -Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; -}; - -Promise.prototype._setLength = function (len) { - this._bitField = (this._bitField & -65536) | - (len & 65535); -}; - -Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); -}; - -Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); -}; - -Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); -}; - -Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; -}; - -Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; -}; - -Promise.prototype._unsetCancelled = function() { - this._bitField = this._bitField & (~65536); -}; - -Promise.prototype._setCancelled = function() { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); -}; - -Promise.prototype._setWillBeCancelled = function() { - this._bitField = this._bitField | 8388608; -}; - -Promise.prototype._setAsyncGuaranteed = function() { - if (async.hasCustomScheduler()) return; - this._bitField = this._bitField | 134217728; -}; - -Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[ - index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; -}; - -Promise.prototype._promiseAt = function (index) { - return this[ - index * 4 - 4 + 2]; -}; - -Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[ - index * 4 - 4 + 0]; -}; - -Promise.prototype._rejectionHandlerAt = function (index) { - return this[ - index * 4 - 4 + 1]; -}; - -Promise.prototype._boundValue = function() {}; - -Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._addCallbacks = function ( - fulfill, - reject, - promise, - receiver, - domain -) { - var index = this._length(); - - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } - - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = - domain === null ? fulfill : util.domainBind(domain, fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = - domain === null ? reject : util.domainBind(domain, reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = - domain === null ? fulfill : util.domainBind(domain, fulfill); - } - if (typeof reject === "function") { - this[base + 1] = - domain === null ? reject : util.domainBind(domain, reject); - } - } - this._setLength(index + 1); - return index; -}; - -Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); -}; - -Promise.prototype._resolveCallback = function(value, shouldBind) { - if (((this._bitField & 117506048) !== 0)) return; - if (value === this) - return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); - - if (shouldBind) this._propagateFrom(maybePromise, 2); - - var promise = maybePromise._target(); - - if (promise === this) { - this._reject(makeSelfResolutionError()); - return; - } - - var bitField = promise._bitField; - if (((bitField & 50397184) === 0)) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if (((bitField & 33554432) !== 0)) { - this._fulfill(promise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } -}; - -Promise.prototype._rejectCallback = -function(reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + - util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); -}; - -Promise.prototype._resolveFromExecutor = function (executor) { - if (executor === INTERNAL) return; - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function(value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); - - if (r !== undefined) { - promise._rejectCallback(r, true); - } -}; - -Promise.prototype._settlePromiseFromHandler = function ( - handler, receiver, value, promise -) { - var bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + - util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj) { - promise._rejectCallback(x.e, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } -}; - -Promise.prototype._target = function() { - var ret = this; - while (ret._isFollowing()) ret = ret._followee(); - return ret; -}; - -Promise.prototype._followee = function() { - return this._rejectionHandler0; -}; - -Promise.prototype._setFollowee = function(promise) { - this._rejectionHandler0 = promise; -}; - -Promise.prototype._settlePromise = function(promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = ((bitField & 134217728) !== 0); - if (((bitField & 65536) !== 0)) { - if (isPromise) promise._invokeInternalOnCancel(); - - if (receiver instanceof PassThroughHandlerContext && - receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if (((bitField & 33554432) !== 0)) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if (((bitField & 33554432) !== 0)) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } -}; - -Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } -}; - -Promise.prototype._settlePromiseCtx = function(ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); -}; - -Promise.prototype._settlePromise0 = function(handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); -}; - -Promise.prototype._clearCallbackDataAtIndex = function(index) { - var base = index * 4 - 4; - this[base + 2] = - this[base + 3] = - this[base + 0] = - this[base + 1] = undefined; -}; - -Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; - - if ((bitField & 65535) > 0) { - if (((bitField & 134217728) !== 0)) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } -}; - -Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; - - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } - - if ((bitField & 65535) > 0) { - async.settlePromises(this); - } else { - this._ensurePossibleRejectionHandled(); - } -}; - -Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } -}; - -Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } -}; - -Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = (bitField & 65535); - - if (len > 0) { - if (((bitField & 16842752) !== 0)) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); -}; - -Promise.prototype._settledValue = function() { - var bitField = this._bitField; - if (((bitField & 33554432) !== 0)) { - return this._rejectionHandler0; - } else if (((bitField & 16777216) !== 0)) { - return this._fulfillmentHandler0; - } -}; - -function deferResolve(v) {this.promise._resolveCallback(v);} -function deferReject(v) {this.promise._rejectCallback(v, false);} - -Promise.defer = Promise.pending = function() { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; -}; - -util.notEnumerableProp(Promise, - "_makeSelfResolutionError", - makeSelfResolutionError); - -require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, - debug); -require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); -require("./cancel")(Promise, PromiseArray, apiRejection, debug); -require("./direct_resolve")(Promise); -require("./synchronous_inspection")(Promise); -require("./join")( - Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); -Promise.Promise = Promise; -Promise.version = "3.5.1"; -require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -require('./call_get.js')(Promise); -require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); -require('./timers.js')(Promise, INTERNAL, debug); -require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); -require('./nodeify.js')(Promise); -require('./promisify.js')(Promise, INTERNAL); -require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); -require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); -require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -require('./settle.js')(Promise, PromiseArray, debug); -require('./some.js')(Promise, PromiseArray, apiRejection); -require('./filter.js')(Promise, INTERNAL); -require('./each.js')(Promise, INTERNAL); -require('./any.js')(Promise); - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/promise_array.js b/deps/npm/node_modules/bluebird/js/release/promise_array.js deleted file mode 100644 index 0fb303eb0d3..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/promise_array.js +++ /dev/null @@ -1,185 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, - apiRejection, Proxyable) { -var util = require("./util"); -var isArray = util.isArray; - -function toResolutionValue(val) { - switch(val) { - case -2: return []; - case -3: return {}; - case -6: return new Map(); - } -} - -function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); -} -util.inherits(PromiseArray, Proxyable); - -PromiseArray.prototype.length = function () { - return this._length; -}; - -PromiseArray.prototype.promise = function () { - return this._promise; -}; - -PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; - - if (((bitField & 50397184) === 0)) { - this._promise._setAsyncGuaranteed(); - return values._then( - init, - this._reject, - undefined, - this, - resolveValueIfEmpty - ); - } else if (((bitField & 33554432) !== 0)) { - values = values._value(); - } else if (((bitField & 16777216) !== 0)) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection( - "expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } - - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } - else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); -}; - -PromiseArray.prototype._iterate = function(values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); - - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } - - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if (((bitField & 50397184) === 0)) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if (((bitField & 33554432) !== 0)) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if (((bitField & 16777216) !== 0)) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); -}; - -PromiseArray.prototype._isResolved = function () { - return this._values === null; -}; - -PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); -}; - -PromiseArray.prototype._cancel = function() { - if (this._isResolved() || !this._promise._isCancellable()) return; - this._values = null; - this._promise._cancel(); -}; - -PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); -}; - -PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -PromiseArray.prototype._promiseCancelled = function() { - this._cancel(); - return true; -}; - -PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; -}; - -PromiseArray.prototype._resultCancelled = function() { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } -}; - -PromiseArray.prototype.shouldCopyValues = function () { - return true; -}; - -PromiseArray.prototype.getActualLength = function (len) { - return len; -}; - -return PromiseArray; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/promisify.js b/deps/npm/node_modules/bluebird/js/release/promisify.js deleted file mode 100644 index f7d14275b07..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/promisify.js +++ /dev/null @@ -1,313 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var THIS = {}; -var util = require("./util"); -var nodebackForPromise = require("./nodeback"); -var withAppended = util.withAppended; -var maybeWrapAsError = util.maybeWrapAsError; -var canEvaluate = util.canEvaluate; -var TypeError = require("./errors").TypeError; -var defaultSuffix = "Async"; -var defaultPromisified = {__isPromisified__: true}; -var noCopyProps = [ - "arity", "length", - "name", - "arguments", - "caller", - "callee", - "prototype", - "__isPromisified__" -]; -var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); - -var defaultFilter = function(name) { - return util.isIdentifier(name) && - name.charAt(0) !== "_" && - name !== "constructor"; -}; - -function propsFilter(key) { - return !noCopyPropsPattern.test(key); -} - -function isPromisified(fn) { - try { - return fn.__isPromisified__ === true; - } - catch (e) { - return false; - } -} - -function hasPromisified(obj, key, suffix) { - var val = util.getDataPropertyOrDefault(obj, key + suffix, - defaultPromisified); - return val ? isPromisified(val) : false; -} -function checkValid(ret, suffix, suffixRegexp) { - for (var i = 0; i < ret.length; i += 2) { - var key = ret[i]; - if (suffixRegexp.test(key)) { - var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); - for (var j = 0; j < ret.length; j += 2) { - if (ret[j] === keyWithoutAsyncSuffix) { - throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" - .replace("%s", suffix)); - } - } - } - } -} - -function promisifiableMethods(obj, suffix, suffixRegexp, filter) { - var keys = util.inheritedDataKeys(obj); - var ret = []; - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var value = obj[key]; - var passesDefaultFilter = filter === defaultFilter - ? true : defaultFilter(key, value, obj); - if (typeof value === "function" && - !isPromisified(value) && - !hasPromisified(obj, key, suffix) && - filter(key, value, obj, passesDefaultFilter)) { - ret.push(key, value); - } - } - checkValid(ret, suffix, suffixRegexp); - return ret; -} - -var escapeIdentRegex = function(str) { - return str.replace(/([$])/, "\\$"); -}; - -var makeNodePromisifiedEval; -if (!false) { -var switchCaseArgumentOrder = function(likelyArgumentCount) { - var ret = [likelyArgumentCount]; - var min = Math.max(0, likelyArgumentCount - 1 - 3); - for(var i = likelyArgumentCount - 1; i >= min; --i) { - ret.push(i); - } - for(var i = likelyArgumentCount + 1; i <= 3; ++i) { - ret.push(i); - } - return ret; -}; - -var argumentSequence = function(argumentCount) { - return util.filledRange(argumentCount, "_arg", ""); -}; - -var parameterDeclaration = function(parameterCount) { - return util.filledRange( - Math.max(parameterCount, 3), "_arg", ""); -}; - -var parameterCount = function(fn) { - if (typeof fn.length === "number") { - return Math.max(Math.min(fn.length, 1023 + 1), 0); - } - return 0; -}; - -makeNodePromisifiedEval = -function(callback, receiver, originalName, fn, _, multiArgs) { - var newParameterCount = Math.max(0, parameterCount(fn) - 1); - var argumentOrder = switchCaseArgumentOrder(newParameterCount); - var shouldProxyThis = typeof callback === "string" || receiver === THIS; - - function generateCallForArgumentCount(count) { - var args = argumentSequence(count).join(", "); - var comma = count > 0 ? ", " : ""; - var ret; - if (shouldProxyThis) { - ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; - } else { - ret = receiver === undefined - ? "ret = callback({{args}}, nodeback); break;\n" - : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; - } - return ret.replace("{{args}}", args).replace(", ", comma); - } - - function generateArgumentSwitchCase() { - var ret = ""; - for (var i = 0; i < argumentOrder.length; ++i) { - ret += "case " + argumentOrder[i] +":" + - generateCallForArgumentCount(argumentOrder[i]); - } - - ret += " \n\ - default: \n\ - var args = new Array(len + 1); \n\ - var i = 0; \n\ - for (var i = 0; i < len; ++i) { \n\ - args[i] = arguments[i]; \n\ - } \n\ - args[i] = nodeback; \n\ - [CodeForCall] \n\ - break; \n\ - ".replace("[CodeForCall]", (shouldProxyThis - ? "ret = callback.apply(this, args);\n" - : "ret = callback.apply(receiver, args);\n")); - return ret; - } - - var getFunctionCode = typeof callback === "string" - ? ("this != null ? this['"+callback+"'] : fn") - : "fn"; - var body = "'use strict'; \n\ - var ret = function (Parameters) { \n\ - 'use strict'; \n\ - var len = arguments.length; \n\ - var promise = new Promise(INTERNAL); \n\ - promise._captureStackTrace(); \n\ - var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ - var ret; \n\ - var callback = tryCatch([GetFunctionCode]); \n\ - switch(len) { \n\ - [CodeForSwitchCase] \n\ - } \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ - } \n\ - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ - return promise; \n\ - }; \n\ - notEnumerableProp(ret, '__isPromisified__', true); \n\ - return ret; \n\ - ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) - .replace("[GetFunctionCode]", getFunctionCode); - body = body.replace("Parameters", parameterDeclaration(newParameterCount)); - return new Function("Promise", - "fn", - "receiver", - "withAppended", - "maybeWrapAsError", - "nodebackForPromise", - "tryCatch", - "errorObj", - "notEnumerableProp", - "INTERNAL", - body)( - Promise, - fn, - receiver, - withAppended, - maybeWrapAsError, - nodebackForPromise, - util.tryCatch, - util.errorObj, - util.notEnumerableProp, - INTERNAL); -}; -} - -function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { - var defaultThis = (function() {return this;})(); - var method = callback; - if (typeof method === "string") { - callback = fn; - } - function promisified() { - var _receiver = receiver; - if (receiver === THIS) _receiver = this; - var promise = new Promise(INTERNAL); - promise._captureStackTrace(); - var cb = typeof method === "string" && this !== defaultThis - ? this[method] : callback; - var fn = nodebackForPromise(promise, multiArgs); - try { - cb.apply(_receiver, withAppended(arguments, fn)); - } catch(e) { - promise._rejectCallback(maybeWrapAsError(e), true, true); - } - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); - return promise; - } - util.notEnumerableProp(promisified, "__isPromisified__", true); - return promisified; -} - -var makeNodePromisified = canEvaluate - ? makeNodePromisifiedEval - : makeNodePromisifiedClosure; - -function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { - var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); - var methods = - promisifiableMethods(obj, suffix, suffixRegexp, filter); - - for (var i = 0, len = methods.length; i < len; i+= 2) { - var key = methods[i]; - var fn = methods[i+1]; - var promisifiedKey = key + suffix; - if (promisifier === makeNodePromisified) { - obj[promisifiedKey] = - makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); - } else { - var promisified = promisifier(fn, function() { - return makeNodePromisified(key, THIS, key, - fn, suffix, multiArgs); - }); - util.notEnumerableProp(promisified, "__isPromisified__", true); - obj[promisifiedKey] = promisified; - } - } - util.toFastProperties(obj); - return obj; -} - -function promisify(callback, receiver, multiArgs) { - return makeNodePromisified(callback, receiver, undefined, - callback, null, multiArgs); -} - -Promise.promisify = function (fn, options) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - if (isPromisified(fn)) { - return fn; - } - options = Object(options); - var receiver = options.context === undefined ? THIS : options.context; - var multiArgs = !!options.multiArgs; - var ret = promisify(fn, receiver, multiArgs); - util.copyDescriptors(fn, ret, propsFilter); - return ret; -}; - -Promise.promisifyAll = function (target, options) { - if (typeof target !== "function" && typeof target !== "object") { - throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - options = Object(options); - var multiArgs = !!options.multiArgs; - var suffix = options.suffix; - if (typeof suffix !== "string") suffix = defaultSuffix; - var filter = options.filter; - if (typeof filter !== "function") filter = defaultFilter; - var promisifier = options.promisifier; - if (typeof promisifier !== "function") promisifier = makeNodePromisified; - - if (!util.isIdentifier(suffix)) { - throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - - var keys = util.inheritedDataKeys(target); - for (var i = 0; i < keys.length; ++i) { - var value = target[keys[i]]; - if (keys[i] !== "constructor" && - util.isClass(value)) { - promisifyAll(value.prototype, suffix, filter, promisifier, - multiArgs); - promisifyAll(value, suffix, filter, promisifier, multiArgs); - } - } - - return promisifyAll(target, suffix, filter, promisifier, multiArgs); -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/props.js b/deps/npm/node_modules/bluebird/js/release/props.js deleted file mode 100644 index 6a34aaf5564..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/props.js +++ /dev/null @@ -1,118 +0,0 @@ -"use strict"; -module.exports = function( - Promise, PromiseArray, tryConvertToPromise, apiRejection) { -var util = require("./util"); -var isObject = util.isObject; -var es5 = require("./es5"); -var Es6Map; -if (typeof Map === "function") Es6Map = Map; - -var mapToEntries = (function() { - var index = 0; - var size = 0; - - function extractEntry(value, key) { - this[index] = value; - this[index + size] = key; - index++; - } - - return function mapToEntries(map) { - size = map.size; - index = 0; - var ret = new Array(map.size * 2); - map.forEach(extractEntry, ret); - return ret; - }; -})(); - -var entriesToMap = function(entries) { - var ret = new Es6Map(); - var length = entries.length / 2 | 0; - for (var i = 0; i < length; ++i) { - var key = entries[length + i]; - var value = entries[i]; - ret.set(key, value); - } - return ret; -}; - -function PropertiesPromiseArray(obj) { - var isMap = false; - var entries; - if (Es6Map !== undefined && obj instanceof Es6Map) { - entries = mapToEntries(obj); - isMap = true; - } else { - var keys = es5.keys(obj); - var len = keys.length; - entries = new Array(len * 2); - for (var i = 0; i < len; ++i) { - var key = keys[i]; - entries[i] = obj[key]; - entries[i + len] = key; - } - } - this.constructor$(entries); - this._isMap = isMap; - this._init$(undefined, isMap ? -6 : -3); -} -util.inherits(PropertiesPromiseArray, PromiseArray); - -PropertiesPromiseArray.prototype._init = function () {}; - -PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - var val; - if (this._isMap) { - val = entriesToMap(this._values); - } else { - val = {}; - var keyOffset = this.length(); - for (var i = 0, len = this.length(); i < len; ++i) { - val[this._values[i + keyOffset]] = this._values[i]; - } - } - this._resolve(val); - return true; - } - return false; -}; - -PropertiesPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -PropertiesPromiseArray.prototype.getActualLength = function (len) { - return len >> 1; -}; - -function props(promises) { - var ret; - var castValue = tryConvertToPromise(promises); - - if (!isObject(castValue)) { - return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } else if (castValue instanceof Promise) { - ret = castValue._then( - Promise.props, undefined, undefined, undefined, undefined); - } else { - ret = new PropertiesPromiseArray(castValue).promise(); - } - - if (castValue instanceof Promise) { - ret._propagateFrom(castValue, 2); - } - return ret; -} - -Promise.prototype.props = function () { - return props(this); -}; - -Promise.props = function (promises) { - return props(promises); -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/queue.js b/deps/npm/node_modules/bluebird/js/release/queue.js deleted file mode 100644 index ffd36fda1fb..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/queue.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; -function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } -} - -function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; -} - -Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; -}; - -Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = (this._front + length) & (this._capacity - 1); - this[i] = arg; - this._length = length + 1; -}; - -Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[(j + 0) & wrapMask] = fn; - this[(j + 1) & wrapMask] = receiver; - this[(j + 2) & wrapMask] = arg; - this._length = length; -}; - -Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; - - this[front] = undefined; - this._front = (front + 1) & (this._capacity - 1); - this._length--; - return ret; -}; - -Queue.prototype.length = function () { - return this._length; -}; - -Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } -}; - -Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = (front + length) & (oldCapacity - 1); - arrayMove(this, 0, this, oldCapacity, moveItemsCount); -}; - -module.exports = Queue; diff --git a/deps/npm/node_modules/bluebird/js/release/race.js b/deps/npm/node_modules/bluebird/js/release/race.js deleted file mode 100644 index b862f46d64e..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/race.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -module.exports = function( - Promise, INTERNAL, tryConvertToPromise, apiRejection) { -var util = require("./util"); - -var raceLater = function (promise) { - return promise.then(function(array) { - return race(array, promise); - }); -}; - -function race(promises, parent) { - var maybePromise = tryConvertToPromise(promises); - - if (maybePromise instanceof Promise) { - return raceLater(maybePromise); - } else { - promises = util.asArray(promises); - if (promises === null) - return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); - } - - var ret = new Promise(INTERNAL); - if (parent !== undefined) { - ret._propagateFrom(parent, 3); - } - var fulfill = ret._fulfill; - var reject = ret._reject; - for (var i = 0, len = promises.length; i < len; ++i) { - var val = promises[i]; - - if (val === undefined && !(i in promises)) { - continue; - } - - Promise.cast(val)._then(fulfill, reject, undefined, ret, null); - } - return ret; -} - -Promise.race = function (promises) { - return race(promises, undefined); -}; - -Promise.prototype.race = function () { - return race(this, undefined); -}; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/reduce.js b/deps/npm/node_modules/bluebird/js/release/reduce.js deleted file mode 100644 index e8b7843e558..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/reduce.js +++ /dev/null @@ -1,172 +0,0 @@ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = require("./util"); -var tryCatch = util.tryCatch; - -function ReductionPromiseArray(promises, fn, initialValue, _each) { - this.constructor$(promises); - var domain = getDomain(); - this._fn = domain === null ? fn : util.domainBind(domain, fn); - if (initialValue !== undefined) { - initialValue = Promise.resolve(initialValue); - initialValue._attachCancellationCallback(this); - } - this._initialValue = initialValue; - this._currentCancellable = null; - if(_each === INTERNAL) { - this._eachValues = Array(this._length); - } else if (_each === 0) { - this._eachValues = null; - } else { - this._eachValues = undefined; - } - this._promise._captureStackTrace(); - this._init$(undefined, -5); -} -util.inherits(ReductionPromiseArray, PromiseArray); - -ReductionPromiseArray.prototype._gotAccum = function(accum) { - if (this._eachValues !== undefined && - this._eachValues !== null && - accum !== INTERNAL) { - this._eachValues.push(accum); - } -}; - -ReductionPromiseArray.prototype._eachComplete = function(value) { - if (this._eachValues !== null) { - this._eachValues.push(value); - } - return this._eachValues; -}; - -ReductionPromiseArray.prototype._init = function() {}; - -ReductionPromiseArray.prototype._resolveEmptyArray = function() { - this._resolve(this._eachValues !== undefined ? this._eachValues - : this._initialValue); -}; - -ReductionPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -ReductionPromiseArray.prototype._resolve = function(value) { - this._promise._resolveCallback(value); - this._values = null; -}; - -ReductionPromiseArray.prototype._resultCancelled = function(sender) { - if (sender === this._initialValue) return this._cancel(); - if (this._isResolved()) return; - this._resultCancelled$(); - if (this._currentCancellable instanceof Promise) { - this._currentCancellable.cancel(); - } - if (this._initialValue instanceof Promise) { - this._initialValue.cancel(); - } -}; - -ReductionPromiseArray.prototype._iterate = function (values) { - this._values = values; - var value; - var i; - var length = values.length; - if (this._initialValue !== undefined) { - value = this._initialValue; - i = 0; - } else { - value = Promise.resolve(values[0]); - i = 1; - } - - this._currentCancellable = value; - - if (!value.isRejected()) { - for (; i < length; ++i) { - var ctx = { - accum: null, - value: values[i], - index: i, - length: length, - array: this - }; - value = value._then(gotAccum, undefined, undefined, ctx, undefined); - } - } - - if (this._eachValues !== undefined) { - value = value - ._then(this._eachComplete, undefined, undefined, this, undefined); - } - value._then(completed, completed, undefined, value, this); -}; - -Promise.prototype.reduce = function (fn, initialValue) { - return reduce(this, fn, initialValue, null); -}; - -Promise.reduce = function (promises, fn, initialValue, _each) { - return reduce(promises, fn, initialValue, _each); -}; - -function completed(valueOrReason, array) { - if (this.isFulfilled()) { - array._resolve(valueOrReason); - } else { - array._reject(valueOrReason); - } -} - -function reduce(promises, fn, initialValue, _each) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var array = new ReductionPromiseArray(promises, fn, initialValue, _each); - return array.promise(); -} - -function gotAccum(accum) { - this.accum = accum; - this.array._gotAccum(accum); - var value = tryConvertToPromise(this.value, this.array._promise); - if (value instanceof Promise) { - this.array._currentCancellable = value; - return value._then(gotValue, undefined, undefined, this, undefined); - } else { - return gotValue.call(this, value); - } -} - -function gotValue(value) { - var array = this.array; - var promise = array._promise; - var fn = tryCatch(array._fn); - promise._pushContext(); - var ret; - if (array._eachValues !== undefined) { - ret = fn.call(promise._boundValue(), value, this.index, this.length); - } else { - ret = fn.call(promise._boundValue(), - this.accum, value, this.index, this.length); - } - if (ret instanceof Promise) { - array._currentCancellable = ret; - } - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", - promise - ); - return ret; -} -}; diff --git a/deps/npm/node_modules/bluebird/js/release/schedule.js b/deps/npm/node_modules/bluebird/js/release/schedule.js deleted file mode 100644 index f70df9fc123..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/schedule.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -var util = require("./util"); -var schedule; -var noAsyncScheduler = function() { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var NativePromise = util.getNativePromise(); -if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode - ? function(fn) { GlobalSetImmediate.call(global, fn); } - : function(fn) { ProcessNextTick.call(process, fn); }; -} else if (typeof NativePromise === "function" && - typeof NativePromise.resolve === "function") { - var nativePromise = NativePromise.resolve(); - schedule = function(fn) { - nativePromise.then(fn); - }; -} else if ((typeof MutationObserver !== "undefined") && - !(typeof window !== "undefined" && - window.navigator && - (window.navigator.standalone || window.cordova))) { - schedule = (function() { - var div = document.createElement("div"); - var opts = {attributes: true}; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function() { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); - - var scheduleToggle = function() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; - - return function schedule(fn) { - var o = new MutationObserver(function() { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - })(); -} else if (typeof setImmediate !== "undefined") { - schedule = function (fn) { - setImmediate(fn); - }; -} else if (typeof setTimeout !== "undefined") { - schedule = function (fn) { - setTimeout(fn, 0); - }; -} else { - schedule = noAsyncScheduler; -} -module.exports = schedule; diff --git a/deps/npm/node_modules/bluebird/js/release/settle.js b/deps/npm/node_modules/bluebird/js/release/settle.js deleted file mode 100644 index fade3a174f2..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/settle.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; -module.exports = - function(Promise, PromiseArray, debug) { -var PromiseInspection = Promise.PromiseInspection; -var util = require("./util"); - -function SettledPromiseArray(values) { - this.constructor$(values); -} -util.inherits(SettledPromiseArray, PromiseArray); - -SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { - this._values[index] = inspection; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { - var ret = new PromiseInspection(); - ret._bitField = 33554432; - ret._settledValueField = value; - return this._promiseResolved(index, ret); -}; -SettledPromiseArray.prototype._promiseRejected = function (reason, index) { - var ret = new PromiseInspection(); - ret._bitField = 16777216; - ret._settledValueField = reason; - return this._promiseResolved(index, ret); -}; - -Promise.settle = function (promises) { - debug.deprecated(".settle()", ".reflect()"); - return new SettledPromiseArray(promises).promise(); -}; - -Promise.prototype.settle = function () { - return Promise.settle(this); -}; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/some.js b/deps/npm/node_modules/bluebird/js/release/some.js deleted file mode 100644 index 400d85207d6..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/some.js +++ /dev/null @@ -1,148 +0,0 @@ -"use strict"; -module.exports = -function(Promise, PromiseArray, apiRejection) { -var util = require("./util"); -var RangeError = require("./errors").RangeError; -var AggregateError = require("./errors").AggregateError; -var isArray = util.isArray; -var CANCELLATION = {}; - - -function SomePromiseArray(values) { - this.constructor$(values); - this._howMany = 0; - this._unwrap = false; - this._initialized = false; -} -util.inherits(SomePromiseArray, PromiseArray); - -SomePromiseArray.prototype._init = function () { - if (!this._initialized) { - return; - } - if (this._howMany === 0) { - this._resolve([]); - return; - } - this._init$(undefined, -5); - var isArrayResolved = isArray(this._values); - if (!this._isResolved() && - isArrayResolved && - this._howMany > this._canPossiblyFulfill()) { - this._reject(this._getRangeError(this.length())); - } -}; - -SomePromiseArray.prototype.init = function () { - this._initialized = true; - this._init(); -}; - -SomePromiseArray.prototype.setUnwrap = function () { - this._unwrap = true; -}; - -SomePromiseArray.prototype.howMany = function () { - return this._howMany; -}; - -SomePromiseArray.prototype.setHowMany = function (count) { - this._howMany = count; -}; - -SomePromiseArray.prototype._promiseFulfilled = function (value) { - this._addFulfilled(value); - if (this._fulfilled() === this.howMany()) { - this._values.length = this.howMany(); - if (this.howMany() === 1 && this._unwrap) { - this._resolve(this._values[0]); - } else { - this._resolve(this._values); - } - return true; - } - return false; - -}; -SomePromiseArray.prototype._promiseRejected = function (reason) { - this._addRejected(reason); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._promiseCancelled = function () { - if (this._values instanceof Promise || this._values == null) { - return this._cancel(); - } - this._addRejected(CANCELLATION); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._checkOutcome = function() { - if (this.howMany() > this._canPossiblyFulfill()) { - var e = new AggregateError(); - for (var i = this.length(); i < this._values.length; ++i) { - if (this._values[i] !== CANCELLATION) { - e.push(this._values[i]); - } - } - if (e.length > 0) { - this._reject(e); - } else { - this._cancel(); - } - return true; - } - return false; -}; - -SomePromiseArray.prototype._fulfilled = function () { - return this._totalResolved; -}; - -SomePromiseArray.prototype._rejected = function () { - return this._values.length - this.length(); -}; - -SomePromiseArray.prototype._addRejected = function (reason) { - this._values.push(reason); -}; - -SomePromiseArray.prototype._addFulfilled = function (value) { - this._values[this._totalResolved++] = value; -}; - -SomePromiseArray.prototype._canPossiblyFulfill = function () { - return this.length() - this._rejected(); -}; - -SomePromiseArray.prototype._getRangeError = function (count) { - var message = "Input array must contain at least " + - this._howMany + " items but contains only " + count + " items"; - return new RangeError(message); -}; - -SomePromiseArray.prototype._resolveEmptyArray = function () { - this._reject(this._getRangeError(0)); -}; - -function some(promises, howMany) { - if ((howMany | 0) !== howMany || howMany < 0) { - return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(howMany); - ret.init(); - return promise; -} - -Promise.some = function (promises, howMany) { - return some(promises, howMany); -}; - -Promise.prototype.some = function (howMany) { - return some(this, howMany); -}; - -Promise._SomePromiseArray = SomePromiseArray; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/synchronous_inspection.js b/deps/npm/node_modules/bluebird/js/release/synchronous_inspection.js deleted file mode 100644 index 9c49d2e6003..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/synchronous_inspection.js +++ /dev/null @@ -1,103 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() - ? promise._settledValue() : undefined; - } - else { - this._bitField = 0; - this._settledValueField = undefined; - } -} - -PromiseInspection.prototype._settledValue = function() { - return this._settledValueField; -}; - -var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var reason = PromiseInspection.prototype.error = -PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { - return (this._bitField & 33554432) !== 0; -}; - -var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; -}; - -var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; -}; - -var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; -}; - -PromiseInspection.prototype.isCancelled = function() { - return (this._bitField & 8454144) !== 0; -}; - -Promise.prototype.__isCancelled = function() { - return (this._bitField & 65536) === 65536; -}; - -Promise.prototype._isCancelled = function() { - return this._target().__isCancelled(); -}; - -Promise.prototype.isCancelled = function() { - return (this._target()._bitField & 8454144) !== 0; -}; - -Promise.prototype.isPending = function() { - return isPending.call(this._target()); -}; - -Promise.prototype.isRejected = function() { - return isRejected.call(this._target()); -}; - -Promise.prototype.isFulfilled = function() { - return isFulfilled.call(this._target()); -}; - -Promise.prototype.isResolved = function() { - return isResolved.call(this._target()); -}; - -Promise.prototype.value = function() { - return value.call(this._target()); -}; - -Promise.prototype.reason = function() { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); -}; - -Promise.prototype._value = function() { - return this._settledValue(); -}; - -Promise.prototype._reason = function() { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); -}; - -Promise.PromiseInspection = PromiseInspection; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/thenables.js b/deps/npm/node_modules/bluebird/js/release/thenables.js deleted file mode 100644 index d6ab9aa275d..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/thenables.js +++ /dev/null @@ -1,86 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var util = require("./util"); -var errorObj = util.errorObj; -var isObject = util.isObject; - -function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then( - ret._fulfill, - ret._reject, - undefined, - ret, - null - ); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; -} - -function doGetThen(obj) { - return obj.then; -} - -function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} - -var hasProp = {}.hasOwnProperty; -function isAnyBluebirdPromise(obj) { - try { - return hasProp.call(obj, "_promise0"); - } catch (e) { - return false; - } -} - -function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; - - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } - - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } - - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; -} - -return tryConvertToPromise; -}; diff --git a/deps/npm/node_modules/bluebird/js/release/timers.js b/deps/npm/node_modules/bluebird/js/release/timers.js deleted file mode 100644 index cb8f1f421a8..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/timers.js +++ /dev/null @@ -1,93 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL, debug) { -var util = require("./util"); -var TimeoutError = Promise.TimeoutError; - -function HandleWrapper(handle) { - this.handle = handle; -} - -HandleWrapper.prototype._resultCancelled = function() { - clearTimeout(this.handle); -}; - -var afterValue = function(value) { return delay(+this).thenReturn(value); }; -var delay = Promise.delay = function (ms, value) { - var ret; - var handle; - if (value !== undefined) { - ret = Promise.resolve(value) - ._then(afterValue, null, null, ms, undefined); - if (debug.cancellation() && value instanceof Promise) { - ret._setOnCancel(value); - } - } else { - ret = new Promise(INTERNAL); - handle = setTimeout(function() { ret._fulfill(); }, +ms); - if (debug.cancellation()) { - ret._setOnCancel(new HandleWrapper(handle)); - } - ret._captureStackTrace(); - } - ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.prototype.delay = function (ms) { - return delay(ms, this); -}; - -var afterTimeout = function (promise, message, parent) { - var err; - if (typeof message !== "string") { - if (message instanceof Error) { - err = message; - } else { - err = new TimeoutError("operation timed out"); - } - } else { - err = new TimeoutError(message); - } - util.markAsOriginatingFromRejection(err); - promise._attachExtraTrace(err); - promise._reject(err); - - if (parent != null) { - parent.cancel(); - } -}; - -function successClear(value) { - clearTimeout(this.handle); - return value; -} - -function failureClear(reason) { - clearTimeout(this.handle); - throw reason; -} - -Promise.prototype.timeout = function (ms, message) { - ms = +ms; - var ret, parent; - - var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { - if (ret.isPending()) { - afterTimeout(ret, message, parent); - } - }, ms)); - - if (debug.cancellation()) { - parent = this.then(); - ret = parent._then(successClear, failureClear, - undefined, handleWrapper, undefined); - ret._setOnCancel(handleWrapper); - } else { - ret = this._then(successClear, failureClear, - undefined, handleWrapper, undefined); - } - - return ret; -}; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/using.js b/deps/npm/node_modules/bluebird/js/release/using.js deleted file mode 100644 index 65de531c11d..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/using.js +++ /dev/null @@ -1,226 +0,0 @@ -"use strict"; -module.exports = function (Promise, apiRejection, tryConvertToPromise, - createContext, INTERNAL, debug) { - var util = require("./util"); - var TypeError = require("./errors").TypeError; - var inherits = require("./util").inherits; - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; - var NULL = {}; - - function thrower(e) { - setTimeout(function(){throw e;}, 0); - } - - function castPreservingDisposable(thenable) { - var maybePromise = tryConvertToPromise(thenable); - if (maybePromise !== thenable && - typeof thenable._isDisposable === "function" && - typeof thenable._getDisposer === "function" && - thenable._isDisposable()) { - maybePromise._setDisposable(thenable._getDisposer()); - } - return maybePromise; - } - function dispose(resources, inspection) { - var i = 0; - var len = resources.length; - var ret = new Promise(INTERNAL); - function iterator() { - if (i >= len) return ret._fulfill(); - var maybePromise = castPreservingDisposable(resources[i++]); - if (maybePromise instanceof Promise && - maybePromise._isDisposable()) { - try { - maybePromise = tryConvertToPromise( - maybePromise._getDisposer().tryDispose(inspection), - resources.promise); - } catch (e) { - return thrower(e); - } - if (maybePromise instanceof Promise) { - return maybePromise._then(iterator, thrower, - null, null, null); - } - } - iterator(); - } - iterator(); - return ret; - } - - function Disposer(data, promise, context) { - this._data = data; - this._promise = promise; - this._context = context; - } - - Disposer.prototype.data = function () { - return this._data; - }; - - Disposer.prototype.promise = function () { - return this._promise; - }; - - Disposer.prototype.resource = function () { - if (this.promise().isFulfilled()) { - return this.promise().value(); - } - return NULL; - }; - - Disposer.prototype.tryDispose = function(inspection) { - var resource = this.resource(); - var context = this._context; - if (context !== undefined) context._pushContext(); - var ret = resource !== NULL - ? this.doDispose(resource, inspection) : null; - if (context !== undefined) context._popContext(); - this._promise._unsetDisposable(); - this._data = null; - return ret; - }; - - Disposer.isDisposer = function (d) { - return (d != null && - typeof d.resource === "function" && - typeof d.tryDispose === "function"); - }; - - function FunctionDisposer(fn, promise, context) { - this.constructor$(fn, promise, context); - } - inherits(FunctionDisposer, Disposer); - - FunctionDisposer.prototype.doDispose = function (resource, inspection) { - var fn = this.data(); - return fn.call(resource, resource, inspection); - }; - - function maybeUnwrapDisposer(value) { - if (Disposer.isDisposer(value)) { - this.resources[this.index]._setDisposable(value); - return value.promise(); - } - return value; - } - - function ResourceList(length) { - this.length = length; - this.promise = null; - this[length-1] = null; - } - - ResourceList.prototype._resultCancelled = function() { - var len = this.length; - for (var i = 0; i < len; ++i) { - var item = this[i]; - if (item instanceof Promise) { - item.cancel(); - } - } - }; - - Promise.using = function () { - var len = arguments.length; - if (len < 2) return apiRejection( - "you must pass at least 2 arguments to Promise.using"); - var fn = arguments[len - 1]; - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var input; - var spreadArgs = true; - if (len === 2 && Array.isArray(arguments[0])) { - input = arguments[0]; - len = input.length; - spreadArgs = false; - } else { - input = arguments; - len--; - } - var resources = new ResourceList(len); - for (var i = 0; i < len; ++i) { - var resource = input[i]; - if (Disposer.isDisposer(resource)) { - var disposer = resource; - resource = resource.promise(); - resource._setDisposable(disposer); - } else { - var maybePromise = tryConvertToPromise(resource); - if (maybePromise instanceof Promise) { - resource = - maybePromise._then(maybeUnwrapDisposer, null, null, { - resources: resources, - index: i - }, undefined); - } - } - resources[i] = resource; - } - - var reflectedResources = new Array(resources.length); - for (var i = 0; i < reflectedResources.length; ++i) { - reflectedResources[i] = Promise.resolve(resources[i]).reflect(); - } - - var resultPromise = Promise.all(reflectedResources) - .then(function(inspections) { - for (var i = 0; i < inspections.length; ++i) { - var inspection = inspections[i]; - if (inspection.isRejected()) { - errorObj.e = inspection.error(); - return errorObj; - } else if (!inspection.isFulfilled()) { - resultPromise.cancel(); - return; - } - inspections[i] = inspection.value(); - } - promise._pushContext(); - - fn = tryCatch(fn); - var ret = spreadArgs - ? fn.apply(undefined, inspections) : fn(inspections); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, promiseCreated, "Promise.using", promise); - return ret; - }); - - var promise = resultPromise.lastly(function() { - var inspection = new Promise.PromiseInspection(resultPromise); - return dispose(resources, inspection); - }); - resources.promise = promise; - promise._setOnCancel(resources); - return promise; - }; - - Promise.prototype._setDisposable = function (disposer) { - this._bitField = this._bitField | 131072; - this._disposer = disposer; - }; - - Promise.prototype._isDisposable = function () { - return (this._bitField & 131072) > 0; - }; - - Promise.prototype._getDisposer = function () { - return this._disposer; - }; - - Promise.prototype._unsetDisposable = function () { - this._bitField = this._bitField & (~131072); - this._disposer = undefined; - }; - - Promise.prototype.disposer = function (fn) { - if (typeof fn === "function") { - return new FunctionDisposer(fn, this, createContext()); - } - throw new TypeError(); - }; - -}; diff --git a/deps/npm/node_modules/bluebird/js/release/util.js b/deps/npm/node_modules/bluebird/js/release/util.js deleted file mode 100644 index 7ac0e2fa198..00000000000 --- a/deps/npm/node_modules/bluebird/js/release/util.js +++ /dev/null @@ -1,380 +0,0 @@ -"use strict"; -var es5 = require("./es5"); -var canEvaluate = typeof navigator == "undefined"; - -var errorObj = {e: {}}; -var tryCatchTarget; -var globalObject = typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - this !== undefined ? this : null; - -function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} - -var inherits = function(Child, Parent) { - var hasProp = {}.hasOwnProperty; - - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && - propertyName.charAt(propertyName.length-1) !== "$" - ) { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; -}; - - -function isPrimitive(val) { - return val == null || val === true || val === false || - typeof val === "string" || typeof val === "number"; - -} - -function isObject(value) { - return typeof value === "function" || - typeof value === "object" && value !== null; -} - -function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; - - return new Error(safeToString(maybeError)); -} - -function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; -} - -function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); - - if (desc != null) { - return desc.get == null && desc.set == null - ? desc.value - : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } -} - -function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; -} - -function thrower(r) { - throw r; -} - -var inheritedDataKeys = (function() { - var excludedPrototypes = [ - Array.prototype, - Object.prototype, - Function.prototype - ]; - - var isExcludedProto = function(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; - - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function(obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function(obj) { - if (isExcludedProto(obj)) return []; - var ret = []; - - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - -})(); - -var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; -function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); - - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && - !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = - thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; - - if (hasMethods || hasMethodsOtherThanConstructor || - hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } -} - -function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); - return obj; - eval(obj); -} - -var rident = /^[a-z$_][a-z$_0-9]*$/i; -function isIdentifier(str) { - return rident.test(str); -} - -function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for(var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; -} - -function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } -} - -function isError(obj) { - return obj instanceof Error || - (obj !== null && - typeof obj === "object" && - typeof obj.message === "string" && - typeof obj.name === "string"); -} - -function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } - catch(ignore) {} -} - -function originatesFromRejection(e) { - if (e == null) return false; - return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || - e["isOperational"] === true); -} - -function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); -} - -var ensureErrorObject = (function() { - if (!("stack" in new Error())) { - return function(value) { - if (canAttachTrace(value)) return value; - try {throw new Error(safeToString(value));} - catch(err) {return err;} - }; - } else { - return function(value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } -})(); - -function classString(obj) { - return {}.toString.call(obj); -} - -function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } -} - -var asArray = function(v) { - if (es5.isArray(v)) { - return v; - } - return null; -}; - -if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function(v) { - return Array.from(v); - } : function(v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!((itResult = it.next()).done)) { - ret.push(itResult.value); - } - return ret; - }; - - asArray = function(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; -} - -var isNode = typeof process !== "undefined" && - classString(process).toLowerCase() === "[object process]"; - -var hasEnvVariables = typeof process !== "undefined" && - typeof process.env !== "undefined"; - -function env(key) { - return hasEnvVariables ? process.env[key] : undefined; -} - -function getNativePromise() { - if (typeof Promise === "function") { - try { - var promise = new Promise(function(){}); - if ({}.toString.call(promise) === "[object Promise]") { - return Promise; - } - } catch (e) {} - } -} - -function domainBind(self, cb) { - return self.bind(cb); -} - -var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && - typeof chrome.loadTimes === "function", - isNode: isNode, - hasEnvVariables: hasEnvVariables, - env: env, - global: globalObject, - getNativePromise: getNativePromise, - domainBind: domainBind -}; -ret.isRecentNode = ret.isNode && (function() { - var version = process.versions.node.split(".").map(Number); - return (version[0] === 0 && version[1] > 10) || (version[0] > 0); -})(); - -if (ret.isNode) ret.toFastProperties(process); - -try {throw new Error(); } catch (e) {ret.lastLineError = e;} -module.exports = ret; diff --git a/deps/npm/node_modules/bluebird/package.json b/deps/npm/node_modules/bluebird/package.json deleted file mode 100644 index 524230df6d9..00000000000 --- a/deps/npm/node_modules/bluebird/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "_from": "bluebird@latest", - "_id": "bluebird@3.5.1", - "_inBundle": false, - "_integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "_location": "/bluebird", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "bluebird@latest", - "name": "bluebird", - "escapedName": "bluebird", - "rawSpec": "latest", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/", - "/bin-links", - "/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", - "author": { - "name": "Petka Antonov", - "email": "petka_antonov@hotmail.com", - "url": "http://github.com/petkaantonov/" - }, - "browser": "./js/browser/bluebird.js", - "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", - "baconjs": "^0.7.43", - "bluebird": "^2.9.2", - "body-parser": "^1.10.2", - "browserify": "^8.1.1", - "cli-table": "~0.3.1", - "co": "^4.2.0", - "cross-spawn": "^0.2.3", - "glob": "^4.3.2", - "grunt-saucelabs": "~8.4.1", - "highland": "^2.3.0", - "istanbul": "^0.3.5", - "jshint": "^2.6.0", - "jshint-stylish": "~0.2.0", - "kefir": "^2.4.1", - "mkdirp": "~0.5.0", - "mocha": "~2.1", - "open": "~0.0.5", - "optimist": "~0.6.1", - "rimraf": "~2.2.6", - "rx": "^2.3.25", - "serve-static": "^1.7.1", - "sinon": "~1.7.3", - "uglify-js": "~2.4.16" - }, - "files": [ - "js/browser", - "js/release", - "LICENSE" - ], - "homepage": "https://github.com/petkaantonov/bluebird", - "keywords": [ - "promise", - "performance", - "promises", - "promises-a", - "promises-aplus", - "async", - "await", - "deferred", - "deferreds", - "future", - "flow control", - "dsl", - "fluent interface" - ], - "license": "MIT", - "main": "./js/release/bluebird.js", - "name": "bluebird", - "repository": { - "type": "git", - "url": "git://github.com/petkaantonov/bluebird.git" - }, - "scripts": { - "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js", - "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", - "istanbul": "istanbul", - "lint": "node scripts/jshint.js", - "prepublish": "npm run generate-browser-core && npm run generate-browser-full", - "test": "node tools/test.js" - }, - "version": "3.5.1", - "webpack": "./js/release/bluebird.js" -} diff --git a/deps/npm/node_modules/cacache/CHANGELOG.md b/deps/npm/node_modules/cacache/CHANGELOG.md deleted file mode 100644 index 0903d1d5780..00000000000 --- a/deps/npm/node_modules/cacache/CHANGELOG.md +++ /dev/null @@ -1,453 +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. - - -## [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)) - - - - -# [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. - - - - -# [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)) - - - - -## [9.2.9](https://github.com/zkat/cacache/compare/v9.2.8...v9.2.9) (2017-06-17) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -# [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)) - - - - -# [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)) - - - - -# [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. - - - - -# [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. - - - - -# [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -# [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: '-', - path: ContentPath, - time: Date, - 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. - - - - -# [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)) - - - - -# [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)) - - - - -## [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)) - - - - -## [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)) - - - - -# [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)) - - - - -## [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)) - - - - -## [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)) - - - - -# [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/cacache/LICENSE.md b/deps/npm/node_modules/cacache/LICENSE.md deleted file mode 100644 index 8d28acf866d..00000000000 --- a/deps/npm/node_modules/cacache/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -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/cacache/README.es.md b/deps/npm/node_modules/cacache/README.es.md deleted file mode 100644 index 783a0a19b01..00000000000 --- a/deps/npm/node_modules/cacache/README.es.md +++ /dev/null @@ -1,628 +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) 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 - -#### 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/')` - -#### `> cacache.ls(cache) -> Promise` - -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 - } -} -``` - -#### `> 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 -} - -{ - ... -} -``` - -#### `> 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 -`-`. - -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#, - size: 9320 -} - -// Busca por hacheo -cache.saca.porHacheo(rutaCache, 'sha512-BaSe64HaSh').then(console.log) -// Salida: -Buffer# -``` - -#### `> 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') -) -``` - -#### `> 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' - } -} -``` - -#### `> 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 -``` - -#### `> 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) -}) -``` - -#### `> 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}`)) -) -``` - -#### `> 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`. - -#### `> 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 😱') -}) -``` - -#### `> 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') -}) -``` - -#### `> 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') -}) -``` - -#### `> 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)!_ - -#### `> 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. - -#### `> tmp.hazdir(cache, ops) -> Promise` - -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>, ...) -}) -``` - -#### `> 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 -}) -``` - -#### 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 `-`. - -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. - -#### `> 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) -}) -``` - -#### `> 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/cacache/README.md b/deps/npm/node_modules/cacache/README.md deleted file mode 100644 index ea69b8f540f..00000000000 --- a/deps/npm/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 - -#### 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/')`. - -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. 👍🏼 - -#### `> cacache.ls(cache) -> Promise` - -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 - } -} -``` - -#### `> 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 -} - -{ - ... -} -``` - -#### `> 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 -`-`. - -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#, - size: 9320 -} - -// Look up by digest -cache.get.byDigest(cachePath, 'sha512-BaSe64HaSh').then(console.log) -// Output: -Buffer# -``` - -#### `> 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') -) -``` - -#### `> 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' - } -} -``` - -#### `> 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 -``` - -#### `> 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) -}) -``` - -#### `> 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}`)) -) -``` - -#### `> 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. - -#### `> 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 😱') -}) -``` - -#### `> 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') -}) -``` - -#### `> 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!') -}) -``` - -#### `> 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)!_ - -#### `> cacache.clearMemoized()` - -Completely resets the in-memory entry cache. - -#### `> tmp.mkdir(cache, opts) -> Promise` - -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>, ...) -}) -``` - -#### `> 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 -}) -``` - -#### 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 `-`. - -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. - -#### `> 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) -}) -``` - -#### `> 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/cacache/en.js b/deps/npm/node_modules/cacache/en.js deleted file mode 100644 index a3db581c9f1..00000000000 --- a/deps/npm/node_modules/cacache/en.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./locales/en.js') diff --git a/deps/npm/node_modules/cacache/es.js b/deps/npm/node_modules/cacache/es.js deleted file mode 100644 index 6282363c3bd..00000000000 --- a/deps/npm/node_modules/cacache/es.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./locales/es.js') diff --git a/deps/npm/node_modules/cacache/get.js b/deps/npm/node_modules/cacache/get.js deleted file mode 100644 index 2bb3afa5281..00000000000 --- a/deps/npm/node_modules/cacache/get.js +++ /dev/null @@ -1,190 +0,0 @@ -'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/cacache/index.js b/deps/npm/node_modules/cacache/index.js deleted file mode 100644 index a3db581c9f1..00000000000 --- a/deps/npm/node_modules/cacache/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./locales/en.js') diff --git a/deps/npm/node_modules/cacache/lib/content/path.js b/deps/npm/node_modules/cacache/lib/content/path.js deleted file mode 100644 index fa6491ba6f8..00000000000 --- a/deps/npm/node_modules/cacache/lib/content/path.js +++ /dev/null @@ -1,26 +0,0 @@ -'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/cacache/lib/content/read.js b/deps/npm/node_modules/cacache/lib/content/read.js deleted file mode 100644 index b09ad5cb409..00000000000 --- a/deps/npm/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/cacache/lib/content/rm.js b/deps/npm/node_modules/cacache/lib/content/rm.js deleted file mode 100644 index 12cf1582358..00000000000 --- a/deps/npm/node_modules/cacache/lib/content/rm.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/cacache/lib/content/write.js b/deps/npm/node_modules/cacache/lib/content/write.js deleted file mode 100644 index a79ae929021..00000000000 --- a/deps/npm/node_modules/cacache/lib/content/write.js +++ /dev/null @@ -1,162 +0,0 @@ -'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/cacache/lib/entry-index.js b/deps/npm/node_modules/cacache/lib/entry-index.js deleted file mode 100644 index face0fe79c4..00000000000 --- a/deps/npm/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//*" - return readdirOrEmpty(bucketPath).map(subbucket => { - const subbucketPath = path.join(bucketPath, subbucket) - - // "/cachename///*" - 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/cacache/lib/memoization.js b/deps/npm/node_modules/cacache/lib/memoization.js deleted file mode 100644 index 92179c7ac6a..00000000000 --- a/deps/npm/node_modules/cacache/lib/memoization.js +++ /dev/null @@ -1,69 +0,0 @@ -'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/cacache/lib/util/fix-owner.js b/deps/npm/node_modules/cacache/lib/util/fix-owner.js deleted file mode 100644 index 7000bff0480..00000000000 --- a/deps/npm/node_modules/cacache/lib/util/fix-owner.js +++ /dev/null @@ -1,44 +0,0 @@ -'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/cacache/lib/util/hash-to-segments.js b/deps/npm/node_modules/cacache/lib/util/hash-to-segments.js deleted file mode 100644 index 192be2a6d65..00000000000 --- a/deps/npm/node_modules/cacache/lib/util/hash-to-segments.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/cacache/lib/util/move-file.js b/deps/npm/node_modules/cacache/lib/util/move-file.js deleted file mode 100644 index b43744b3da8..00000000000 --- a/deps/npm/node_modules/cacache/lib/util/move-file.js +++ /dev/null @@ -1,51 +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(() => { - 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/cacache/lib/util/tmp.js b/deps/npm/node_modules/cacache/lib/util/tmp.js deleted file mode 100644 index 4fc4512cc85..00000000000 --- a/deps/npm/node_modules/cacache/lib/util/tmp.js +++ /dev/null @@ -1,32 +0,0 @@ -'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/cacache/lib/util/y.js b/deps/npm/node_modules/cacache/lib/util/y.js deleted file mode 100644 index d62bedacb32..00000000000 --- a/deps/npm/node_modules/cacache/lib/util/y.js +++ /dev/null @@ -1,25 +0,0 @@ -'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/cacache/lib/verify.js b/deps/npm/node_modules/cacache/lib/verify.js deleted file mode 100644 index 6a01004c97c..00000000000 --- a/deps/npm/node_modules/cacache/lib/verify.js +++ /dev/null @@ -1,213 +0,0 @@ -'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/cacache/locales/en.js b/deps/npm/node_modules/cacache/locales/en.js deleted file mode 100644 index 22025cf0e89..00000000000 --- a/deps/npm/node_modules/cacache/locales/en.js +++ /dev/null @@ -1,44 +0,0 @@ -'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/cacache/locales/en.json b/deps/npm/node_modules/cacache/locales/en.json deleted file mode 100644 index 82ecb083249..00000000000 --- a/deps/npm/node_modules/cacache/locales/en.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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/cacache/locales/es.js b/deps/npm/node_modules/cacache/locales/es.js deleted file mode 100644 index 9a27de6585a..00000000000 --- a/deps/npm/node_modules/cacache/locales/es.js +++ /dev/null @@ -1,46 +0,0 @@ -'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/cacache/locales/es.json b/deps/npm/node_modules/cacache/locales/es.json deleted file mode 100644 index a91d76225b4..00000000000 --- a/deps/npm/node_modules/cacache/locales/es.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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/cacache/ls.js b/deps/npm/node_modules/cacache/ls.js deleted file mode 100644 index 9f49b388ac3..00000000000 --- a/deps/npm/node_modules/cacache/ls.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -var index = require('./lib/entry-index') - -module.exports = index.ls -module.exports.stream = index.lsStream 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 7ae2b000dce..00000000000 --- 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. - - -# [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. - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -## [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)) - - - - -# [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)) - - - - -# [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 - - - - -## [3.0.2](https://github.com/zkat/ssri/compare/v3.0.1...v3.0.2) (2017-04-03) - - - - -## [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)) - - - - -# [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. - - - - -# [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`. - - - - -# 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/LICENSE.md b/deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md deleted file mode 100644 index 8d28acf866d..00000000000 --- a/deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -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/cacache/node_modules/ssri/README.md b/deps/npm/node_modules/cacache/node_modules/ssri/README.md deleted file mode 100644 index f2fc035da52..00000000000 --- 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 - -#### `> 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 -``` - -#### `> 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' -``` - -#### `> 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 ` - - 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 a955702516d..00000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Clone Test-Suite (Browser) - - - - - -

    Clone Test-Suite (Browser)

    - Tests started: ; - Tests finished: . -
      - - - diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js deleted file mode 100644 index e8b65b3fed9..00000000000 --- 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 1a3961c505d..00000000000 --- 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 60e0ffba8b4..00000000000 --- 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 dd1a8b90129..00000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_from": "wcwidth@^1.0.0", - "_id": "wcwidth@1.0.1", - "_integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "_location": "/columnify/wcwidth", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "wcwidth@^1.0.0", - "name": "wcwidth", - "escapedName": "wcwidth", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/columnify" - ], - "_resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "_shasum": "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8", - "_shrinkwrap": null, - "_spec": "wcwidth@^1.0.0", - "_where": "/Users/zkat/Documents/code/npm/node_modules/columnify", - "author": { - "name": "Tim Oxley" - }, - "bin": null, - "bugs": { - "url": "https://github.com/timoxley/wcwidth/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Woong Jun", - "email": "woong.jun@gmail.com", - "url": "http://code.woong.org/" - } - ], - "dependencies": { - "defaults": "^1.0.3" - }, - "deprecated": false, - "description": "Port of C's wcwidth() and wcswidth()", - "devDependencies": { - "tape": "^4.5.1" - }, - "directories": { - "doc": "docs", - "test": "test" - }, - "homepage": "https://github.com/timoxley/wcwidth#readme", - "keywords": [ - "wide character", - "wc", - "wide character string", - "wcs", - "terminal", - "width", - "wcwidth", - "wcswidth" - ], - "license": "MIT", - "main": "index.js", - "name": "wcwidth", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/timoxley/wcwidth.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "version": "1.0.1" -} diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js b/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js deleted file mode 100644 index 5180599a2ff..00000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict" - -var wcwidth = require('../') -var test = require('tape') - -test('handles regular strings', function(t) { - t.strictEqual(wcwidth('abc'), 3) - t.end() -}) - -test('handles multibyte strings', function(t) { - t.strictEqual(wcwidth('字的模块'), 8) - t.end() -}) - -test('handles multibyte characters mixed with regular characters', function(t) { - t.strictEqual(wcwidth('abc 字的模块'), 12) - t.end() -}) - -test('ignores control characters e.g. \\n', function(t) { - t.strictEqual(wcwidth('abc\n字的模块\ndef'), 14) - t.end() -}) - -test('ignores bad input', function(t) { - t.strictEqual(wcwidth(''), 0) - t.strictEqual(wcwidth(3), 0) - t.strictEqual(wcwidth({}), 0) - t.strictEqual(wcwidth([]), 0) - t.strictEqual(wcwidth(), 0) - t.end() -}) - -test('ignores nul (charcode 0)', function(t) { - t.strictEqual(wcwidth(String.fromCharCode(0)), 0) - t.end() -}) - -test('ignores nul mixed with chars', function(t) { - t.strictEqual(wcwidth('a' + String.fromCharCode(0) + '\n字的'), 5) - t.end() -}) - -test('can have custom value for nul', function(t) { - t.strictEqual(wcwidth.config({ - nul: 10 - })(String.fromCharCode(0) + 'a字的'), 15) - t.end() -}) - -test('can have custom control char value', function(t) { - t.strictEqual(wcwidth.config({ - control: 1 - })('abc\n字的模块\ndef'), 16) - t.end() -}) - -test('negative custom control chars == -1', function(t) { - t.strictEqual(wcwidth.config({ - control: -1 - })('abc\n字的模块\ndef'), -1) - t.end() -}) diff --git a/deps/npm/node_modules/columnify/package.json b/deps/npm/node_modules/columnify/package.json deleted file mode 100644 index 4e60c8c1c63..00000000000 --- a/deps/npm/node_modules/columnify/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_from": "columnify@~1.5.4", - "_id": "columnify@1.5.4", - "_integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", - "_location": "/columnify", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "columnify@~1.5.4", - "name": "columnify", - "escapedName": "columnify", - "rawSpec": "~1.5.4", - "saveSpec": null, - "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", - "author": { - "name": "Tim Oxley" - }, - "babel": { - "presets": [ - "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", - "babel-cli": "^6.3.17", - "babel-preset-es2015": "^6.3.13", - "chalk": "^1.1.1", - "tap-spec": "^4.1.1", - "tape": "^4.4.0" - }, - "directories": { - "test": "test" - }, - "homepage": "https://github.com/timoxley/columnify", - "keywords": [ - "column", - "text", - "ansi", - "console", - "terminal", - "wrap", - "table" - ], - "license": "MIT", - "main": "columnify.js", - "name": "columnify", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/timoxley/columnify.git" - }, - "scripts": { - "bench": "npm test && node bench", - "prepublish": "make prepublish", - "pretest": "npm prune", - "test": "make prepublish && tape test/*.js | tap-spec" - }, - "version": "1.5.4" -} diff --git a/deps/npm/node_modules/columnify/utils.js b/deps/npm/node_modules/columnify/utils.js deleted file mode 100644 index df3e6cc44e8..00000000000 --- a/deps/npm/node_modules/columnify/utils.js +++ /dev/null @@ -1,193 +0,0 @@ -"use strict" - -var wcwidth = require('./width') - -/** - * repeat string `str` up to total length of `len` - * - * @param String str string to repeat - * @param Number len total length of output string - */ - -function repeatString(str, len) { - return Array.apply(null, {length: len + 1}).join(str).slice(0, len) -} - -/** - * Pad `str` up to total length `max` with `chr`. - * If `str` is longer than `max`, padRight will return `str` unaltered. - * - * @param String str string to pad - * @param Number max total length of output string - * @param String chr optional. Character to pad with. default: ' ' - * @return String padded str - */ - -function padRight(str, max, chr) { - str = str != null ? str : '' - str = String(str) - var length = max - wcwidth(str) - if (length <= 0) return str - return str + repeatString(chr || ' ', length) -} - -/** - * Pad `str` up to total length `max` with `chr`. - * If `str` is longer than `max`, padCenter will return `str` unaltered. - * - * @param String str string to pad - * @param Number max total length of output string - * @param String chr optional. Character to pad with. default: ' ' - * @return String padded str - */ - -function padCenter(str, max, chr) { - str = str != null ? str : '' - str = String(str) - var length = max - wcwidth(str) - if (length <= 0) return str - var lengthLeft = Math.floor(length/2) - var lengthRight = length - lengthLeft - return repeatString(chr || ' ', lengthLeft) + str + repeatString(chr || ' ', lengthRight) -} - -/** - * Pad `str` up to total length `max` with `chr`, on the left. - * If `str` is longer than `max`, padRight will return `str` unaltered. - * - * @param String str string to pad - * @param Number max total length of output string - * @param String chr optional. Character to pad with. default: ' ' - * @return String padded str - */ - -function padLeft(str, max, chr) { - str = str != null ? str : '' - str = String(str) - var length = max - wcwidth(str) - if (length <= 0) return str - return repeatString(chr || ' ', length) + str -} - -/** - * Split a String `str` into lines of maxiumum length `max`. - * Splits on word boundaries. Preserves existing new lines. - * - * @param String str string to split - * @param Number max length of each line - * @return Array Array containing lines. - */ - -function splitIntoLines(str, max) { - function _splitIntoLines(str, max) { - return str.trim().split(' ').reduce(function(lines, word) { - var line = lines[lines.length - 1] - if (line && wcwidth(line.join(' ')) + wcwidth(word) < max) { - lines[lines.length - 1].push(word) // add to line - } - else lines.push([word]) // new line - return lines - }, []).map(function(l) { - return l.join(' ') - }) - } - return str.split('\n').map(function(str) { - return _splitIntoLines(str, max) - }).reduce(function(lines, line) { - return lines.concat(line) - }, []) -} - -/** - * Add spaces and `truncationChar` between words of - * `str` which are longer than `max`. - * - * @param String str string to split - * @param Number max length of each line - * @param Number truncationChar character to append to split words - * @return String - */ - -function splitLongWords(str, max, truncationChar) { - str = str.trim() - var result = [] - var words = str.split(' ') - var remainder = '' - - var truncationWidth = wcwidth(truncationChar) - - while (remainder || words.length) { - if (remainder) { - var word = remainder - remainder = '' - } else { - var word = words.shift() - } - - if (wcwidth(word) > max) { - // slice is based on length no wcwidth - var i = 0 - var wwidth = 0 - var limit = max - truncationWidth - while (i < word.length) { - var w = wcwidth(word.charAt(i)) - if (w + wwidth > limit) { - break - } - wwidth += w - ++i - } - - remainder = word.slice(i) // get remainder - // save remainder for next loop - - word = word.slice(0, i) // grab truncated word - word += truncationChar // add trailing … or whatever - } - result.push(word) - } - - return result.join(' ') -} - - -/** - * Truncate `str` into total width `max` - * If `str` is shorter than `max`, will return `str` unaltered. - * - * @param String str string to truncated - * @param Number max total wcwidth of output string - * @return String truncated str - */ - -function truncateString(str, max) { - - str = str != null ? str : '' - str = String(str) - - if(max == Infinity) return str - - var i = 0 - var wwidth = 0 - while (i < str.length) { - var w = wcwidth(str.charAt(i)) - if(w + wwidth > max) - break - wwidth += w - ++i - } - return str.slice(0, i) -} - - - -/** - * Exports - */ - -module.exports.padRight = padRight -module.exports.padCenter = padCenter -module.exports.padLeft = padLeft -module.exports.splitIntoLines = splitIntoLines -module.exports.splitLongWords = splitLongWords -module.exports.truncateString = truncateString diff --git a/deps/npm/node_modules/columnify/width.js b/deps/npm/node_modules/columnify/width.js deleted file mode 100644 index a9f5333b40b..00000000000 --- a/deps/npm/node_modules/columnify/width.js +++ /dev/null @@ -1,6 +0,0 @@ -var stripAnsi = require('strip-ansi') -var wcwidth = require('wcwidth') - -module.exports = function(str) { - return wcwidth(stripAnsi(str)) -} diff --git a/deps/npm/node_modules/config-chain/.npmignore b/deps/npm/node_modules/config-chain/.npmignore deleted file mode 100644 index 13abef4f588..00000000000 --- a/deps/npm/node_modules/config-chain/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -node_modules/* -npm_debug.log diff --git a/deps/npm/node_modules/config-chain/LICENCE b/deps/npm/node_modules/config-chain/LICENCE deleted file mode 100644 index 171dd970053..00000000000 --- a/deps/npm/node_modules/config-chain/LICENCE +++ /dev/null @@ -1,22 +0,0 @@ -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. \ No newline at end of file diff --git a/deps/npm/node_modules/config-chain/index.js b/deps/npm/node_modules/config-chain/index.js deleted file mode 100755 index 0ef3a91f735..00000000000 --- a/deps/npm/node_modules/config-chain/index.js +++ /dev/null @@ -1,282 +0,0 @@ -var ProtoList = require('proto-list') - , path = require('path') - , fs = require('fs') - , ini = require('ini') - , EE = require('events').EventEmitter - , url = require('url') - , http = require('http') - -var exports = module.exports = function () { - var args = [].slice.call(arguments) - , conf = new ConfigChain() - - while(args.length) { - var a = args.shift() - if(a) conf.push - ( 'string' === typeof a - ? json(a) - : a ) - } - - return conf -} - -//recursively find a file... - -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(__dirname, rel) -} - -var parse = exports.parse = function (content, file, type) { - content = '' + content - // if we don't know what it is, try json and fall back to ini - // if we know what it is, then it must be that. - if (!type) { - try { return JSON.parse(content) } - catch (er) { return ini.parse(content) } - } else if (type === 'json') { - if (this.emit) { - try { return JSON.parse(content) } - catch (er) { this.emit('error', er) } - } else { - return JSON.parse(content) - } - } else { - return ini.parse(content) - } -} - -var json = exports.json = function () { - var args = [].slice.call(arguments).filter(function (arg) { return arg != null }) - var file = path.join.apply(null, args) - var content - try { - content = fs.readFileSync(file,'utf-8') - } catch (err) { - return - } - return parse(content, file, 'json') -} - -var env = exports.env = function (prefix, env) { - env = env || process.env - var obj = {} - var l = prefix.length - for(var k in env) { - if(k.indexOf(prefix) === 0) - obj[k.substring(l)] = env[k] - } - - return obj -} - -exports.ConfigChain = ConfigChain -function ConfigChain () { - EE.apply(this) - ProtoList.apply(this, arguments) - this._awaiting = 0 - this._saving = 0 - this.sources = {} -} - -// multi-inheritance-ish -var extras = { - constructor: { value: ConfigChain } -} -Object.keys(EE.prototype).forEach(function (k) { - extras[k] = Object.getOwnPropertyDescriptor(EE.prototype, k) -}) -ConfigChain.prototype = Object.create(ProtoList.prototype, extras) - -ConfigChain.prototype.del = function (key, where) { - // if not specified where, then delete from the whole chain, scorched - // earth style - if (where) { - var target = this.sources[where] - target = target && target.data - if (!target) { - return this.emit('error', new Error('not found '+where)) - } - delete target[key] - } else { - for (var i = 0, l = this.list.length; i < l; i ++) { - delete this.list[i][key] - } - } - return this -} - -ConfigChain.prototype.set = function (key, value, where) { - var target - - if (where) { - target = this.sources[where] - target = target && target.data - if (!target) { - return this.emit('error', new Error('not found '+where)) - } - } else { - target = this.list[0] - if (!target) { - return this.emit('error', new Error('cannot set, no confs!')) - } - } - target[key] = value - return this -} - -ConfigChain.prototype.get = function (key, where) { - if (where) { - where = this.sources[where] - if (where) where = where.data - if (where && Object.hasOwnProperty.call(where, key)) return where[key] - return undefined - } - return this.list[0][key] -} - -ConfigChain.prototype.save = function (where, type, cb) { - if (typeof type === 'function') cb = type, type = null - var target = this.sources[where] - if (!target || !(target.path || target.source) || !target.data) { - // TODO: maybe save() to a url target could be a PUT or something? - // would be easy to swap out with a reddis type thing, too - return this.emit('error', new Error('bad save target: '+where)) - } - - if (target.source) { - var pref = target.prefix || '' - Object.keys(target.data).forEach(function (k) { - target.source[pref + k] = target.data[k] - }) - return this - } - - var type = type || target.type - var data = target.data - if (target.type === 'json') { - data = JSON.stringify(data) - } else { - data = ini.stringify(data) - } - - this._saving ++ - fs.writeFile(target.path, data, 'utf8', function (er) { - this._saving -- - if (er) { - if (cb) return cb(er) - else return this.emit('error', er) - } - if (this._saving === 0) { - if (cb) cb() - this.emit('save') - } - }.bind(this)) - return this -} - -ConfigChain.prototype.addFile = function (file, type, name) { - name = name || file - var marker = {__source__:name} - this.sources[name] = { path: file, type: type } - this.push(marker) - this._await() - fs.readFile(file, 'utf8', function (er, data) { - if (er) this.emit('error', er) - this.addString(data, file, type, marker) - }.bind(this)) - return this -} - -ConfigChain.prototype.addEnv = function (prefix, env, name) { - name = name || 'env' - var data = exports.env(prefix, env) - this.sources[name] = { data: data, source: env, prefix: prefix } - return this.add(data, name) -} - -ConfigChain.prototype.addUrl = function (req, type, name) { - this._await() - var href = url.format(req) - name = name || href - var marker = {__source__:name} - this.sources[name] = { href: href, type: type } - this.push(marker) - http.request(req, function (res) { - var c = [] - var ct = res.headers['content-type'] - if (!type) { - type = ct.indexOf('json') !== -1 ? 'json' - : ct.indexOf('ini') !== -1 ? 'ini' - : href.match(/\.json$/) ? 'json' - : href.match(/\.ini$/) ? 'ini' - : null - marker.type = type - } - - res.on('data', c.push.bind(c)) - .on('end', function () { - this.addString(Buffer.concat(c), href, type, marker) - }.bind(this)) - .on('error', this.emit.bind(this, 'error')) - - }.bind(this)) - .on('error', this.emit.bind(this, 'error')) - .end() - - return this -} - -ConfigChain.prototype.addString = function (data, file, type, marker) { - data = this.parse(data, file, type) - this.add(data, marker) - return this -} - -ConfigChain.prototype.add = function (data, marker) { - if (marker && typeof marker === 'object') { - var i = this.list.indexOf(marker) - if (i === -1) { - return this.emit('error', new Error('bad marker')) - } - this.splice(i, 1, data) - marker = marker.__source__ - this.sources[marker] = this.sources[marker] || {} - this.sources[marker].data = data - // we were waiting for this. maybe emit 'load' - this._resolve() - } else { - if (typeof marker === 'string') { - this.sources[marker] = this.sources[marker] || {} - this.sources[marker].data = data - } - // trigger the load event if nothing was already going to do so. - this._await() - this.push(data) - process.nextTick(this._resolve.bind(this)) - } - return this -} - -ConfigChain.prototype.parse = exports.parse - -ConfigChain.prototype._await = function () { - this._awaiting++ -} - -ConfigChain.prototype._resolve = function () { - this._awaiting-- - if (this._awaiting === 0) this.emit('load', this) -} diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE b/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE deleted file mode 100644 index 19129e315fe..00000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md b/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md deleted file mode 100644 index 43cfa35893d..00000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md +++ /dev/null @@ -1,3 +0,0 @@ -A list of objects, bound by their prototype chain. - -Used in npm's config stuff. diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json b/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json deleted file mode 100644 index 63df55ff29b..00000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "_from": "proto-list@~1.2.1", - "_id": "proto-list@1.2.4", - "_integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "_location": "/config-chain/proto-list", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "proto-list@~1.2.1", - "name": "proto-list", - "escapedName": "proto-list", - "rawSpec": "~1.2.1", - "saveSpec": null, - "fetchSpec": "~1.2.1" - }, - "_requiredBy": [ - "/config-chain" - ], - "_resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "_shasum": "212d5bfe1318306a420f6402b8e26ff39647a849", - "_shrinkwrap": null, - "_spec": "proto-list@~1.2.1", - "_where": "/Users/zkat/Documents/code/npm/node_modules/config-chain", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bin": null, - "bugs": { - "url": "https://github.com/isaacs/proto-list/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "A utility for managing a prototype chain", - "devDependencies": { - "tap": "0" - }, - "homepage": "https://github.com/isaacs/proto-list#readme", - "license": "ISC", - "main": "./proto-list.js", - "name": "proto-list", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/proto-list.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.2.4" -} diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js b/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js deleted file mode 100644 index b55c25c052f..00000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js +++ /dev/null @@ -1,88 +0,0 @@ - -module.exports = ProtoList - -function setProto(obj, proto) { - if (typeof Object.setPrototypeOf === "function") - return Object.setPrototypeOf(obj, proto) - else - obj.__proto__ = proto -} - -function ProtoList () { - this.list = [] - var root = null - Object.defineProperty(this, 'root', { - get: function () { return root }, - set: function (r) { - root = r - if (this.list.length) { - setProto(this.list[this.list.length - 1], r) - } - }, - enumerable: true, - configurable: true - }) -} - -ProtoList.prototype = - { get length () { return this.list.length } - , get keys () { - var k = [] - for (var i in this.list[0]) k.push(i) - return k - } - , get snapshot () { - var o = {} - this.keys.forEach(function (k) { o[k] = this.get(k) }, this) - return o - } - , get store () { - return this.list[0] - } - , push : function (obj) { - if (typeof obj !== "object") obj = {valueOf:obj} - if (this.list.length >= 1) { - setProto(this.list[this.list.length - 1], obj) - } - setProto(obj, this.root) - return this.list.push(obj) - } - , pop : function () { - if (this.list.length >= 2) { - setProto(this.list[this.list.length - 2], this.root) - } - return this.list.pop() - } - , unshift : function (obj) { - setProto(obj, this.list[0] || this.root) - return this.list.unshift(obj) - } - , shift : function () { - if (this.list.length === 1) { - setProto(this.list[0], this.root) - } - return this.list.shift() - } - , get : function (key) { - return this.list[0][key] - } - , set : function (key, val, save) { - if (!this.length) this.push({}) - if (save && this.list[0].hasOwnProperty(key)) this.push({}) - return this.list[0][key] = val - } - , forEach : function (fn, thisp) { - for (var key in this.list[0]) fn.call(thisp, key, this.list[0][key]) - } - , slice : function () { - return this.list.slice.apply(this.list, arguments) - } - , splice : function () { - // handle injections - var ret = this.list.splice.apply(this.list, arguments) - for (var i = 0, l = this.list.length; i < l; i++) { - setProto(this.list[i], this.list[i + 1] || this.root) - } - return ret - } - } diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js b/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js deleted file mode 100644 index 5cd66bef157..00000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js +++ /dev/null @@ -1,61 +0,0 @@ -var tap = require("tap") - , test = tap.test - , ProtoList = require("../proto-list.js") - -tap.plan(1) - -tap.test("protoList tests", function (t) { - var p = new ProtoList - p.push({foo:"bar"}) - p.push({}) - p.set("foo", "baz") - t.equal(p.get("foo"), "baz") - - var p = new ProtoList - p.push({foo:"bar"}) - p.set("foo", "baz") - t.equal(p.get("foo"), "baz") - t.equal(p.length, 1) - p.pop() - t.equal(p.length, 0) - p.set("foo", "asdf") - t.equal(p.length, 1) - t.equal(p.get("foo"), "asdf") - p.push({bar:"baz"}) - t.equal(p.length, 2) - t.equal(p.get("foo"), "asdf") - p.shift() - t.equal(p.length, 1) - t.equal(p.get("foo"), undefined) - - - p.unshift({foo:"blo", bar:"rab"}) - p.unshift({foo:"boo"}) - t.equal(p.length, 3) - t.equal(p.get("foo"), "boo") - t.equal(p.get("bar"), "rab") - - var ret = p.splice(1, 1, {bar:"bar"}) - t.same(ret, [{foo:"blo", bar:"rab"}]) - t.equal(p.get("bar"), "bar") - - // should not inherit default object properties - t.equal(p.get('hasOwnProperty'), undefined) - - // unless we give it those. - p.root = {} - t.equal(p.get('hasOwnProperty'), {}.hasOwnProperty) - - p.root = {default:'monkey'} - t.equal(p.get('default'), 'monkey') - - p.push({red:'blue'}) - p.push({red:'blue'}) - p.push({red:'blue'}) - while (p.length) { - t.equal(p.get('default'), 'monkey') - p.shift() - } - - t.end() -}) diff --git a/deps/npm/node_modules/config-chain/package.json b/deps/npm/node_modules/config-chain/package.json deleted file mode 100644 index d39818b230a..00000000000 --- a/deps/npm/node_modules/config-chain/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_from": "config-chain@~1.1.11", - "_id": "config-chain@1.1.11", - "_integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "_location": "/config-chain", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "config-chain@~1.1.11", - "name": "config-chain", - "escapedName": "config-chain", - "rawSpec": "~1.1.11", - "saveSpec": null, - "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", - "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" - }, - "homepage": "http://github.com/dominictarr/config-chain", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.githubusercontent.com/dominictarr/config-chain/master/LICENCE" - } - ], - "name": "config-chain", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/dominictarr/config-chain.git" - }, - "scripts": { - "test": "tap test/" - }, - "version": "1.1.11" -} diff --git a/deps/npm/node_modules/config-chain/readme.markdown b/deps/npm/node_modules/config-chain/readme.markdown deleted file mode 100644 index a8d26378e6f..00000000000 --- a/deps/npm/node_modules/config-chain/readme.markdown +++ /dev/null @@ -1,237 +0,0 @@ -#config-chain - -USE THIS MODULE TO LOAD ALL YOUR CONFIGURATIONS - -## NOTE: Feature Freeze - -[![locked](http://badges.github.io/stability-badges/dist/locked.svg)](http://github.com/badges/stability-badges) - -This module is frozen. - -In general, I'd recommend using [rc](https://github.com/dominictarr/rc) instead, -but as [npm](https://github.com/npmjs/npm) depends on this, it cannot be changed. - -``` js - - //npm install config-chain - - var cc = require('config-chain') - , opts = require('optimist').argv //ALWAYS USE OPTIMIST FOR COMMAND LINE OPTIONS. - , env = opts.env || process.env.YOUR_APP_ENV || 'dev' //SET YOUR ENV LIKE THIS. - - // EACH ARG TO CONFIGURATOR IS LOADED INTO CONFIGURATION CHAIN - // EARLIER ITEMS OVERIDE LATER ITEMS - // PUTS COMMAND LINE OPTS FIRST, AND DEFAULTS LAST! - - //strings are interpereted as filenames. - //will be loaded synchronously - - var conf = - cc( - //OVERRIDE SETTINGS WITH COMMAND LINE OPTS - opts, - - //ENV VARS IF PREFIXED WITH 'myApp_' - - cc.env('myApp_'), //myApp_foo = 'like this' - - //FILE NAMED BY ENV - path.join(__dirname, 'config.' + env + '.json'), - - //IF `env` is PRODUCTION - env === 'prod' - ? path.join(__dirname, 'special.json') //load a special file - : null //NULL IS IGNORED! - - //SUBDIR FOR ENV CONFIG - path.join(__dirname, 'config', env, 'config.json'), - - //SEARCH PARENT DIRECTORIES FROM CURRENT DIR FOR FILE - cc.find('config.json'), - - //PUT DEFAULTS LAST - { - host: 'localhost' - port: 8000 - }) - - var host = conf.get('host') - - // or - - var host = conf.store.host - -``` - -FINALLY, EASY FLEXIBLE CONFIGURATIONS! - -##see also: [proto-list](https://github.com/isaacs/proto-list/) - -WHATS THAT YOU SAY? - -YOU WANT A "CLASS" SO THAT YOU CAN DO CRAYCRAY JQUERY CRAPS? - -EXTEND WITH YOUR OWN FUNCTIONALTY!? - -## CONFIGCHAIN LIVES TO SERVE ONLY YOU! - -```javascript -var cc = require('config-chain') - -// all the stuff you did before -var config = cc({ - some: 'object' - }, - cc.find('config.json'), - cc.env('myApp_') - ) - // CONFIGS AS A SERVICE, aka "CaaS", aka EVERY DEVOPS DREAM OMG! - .addUrl('http://configurator:1234/my-configs') - // ASYNC FTW! - .addFile('/path/to/file.json') - - // OBJECTS ARE OK TOO, they're SYNC but they still ORDER RIGHT - // BECAUSE PROMISES ARE USED BUT NO, NOT *THOSE* PROMISES, JUST - // ACTUAL PROMISES LIKE YOU MAKE TO YOUR MOM, KEPT OUT OF LOVE - .add({ another: 'object' }) - - // DIE A THOUSAND DEATHS IF THIS EVER HAPPENS!! - .on('error', function (er) { - // IF ONLY THERE WAS SOMETHIGN HARDER THAN THROW - // MY SORROW COULD BE ADEQUATELY EXPRESSED. /o\ - throw er - }) - - // THROW A PARTY IN YOUR FACE WHEN ITS ALL LOADED!! - .on('load', function (config) { - console.awesome('HOLY SHIT!') - }) -``` - -# BORING API DOCS - -## cc(...args) - -MAKE A CHAIN AND ADD ALL THE ARGS. - -If the arg is a STRING, then it shall be a JSON FILENAME. - -SYNC I/O! - -RETURN THE CHAIN! - -## cc.json(...args) - -Join the args INTO A JSON FILENAME! - -SYNC I/O! - -## cc.find(relativePath) - -SEEK the RELATIVE PATH by climbing the TREE OF DIRECTORIES. - -RETURN THE FOUND PATH! - -SYNC I/O! - -## cc.parse(content, file, type) - -Parse the content string, and guess the type from either the -specified type or the filename. - -RETURN THE RESULTING OBJECT! - -NO I/O! - -## cc.env(prefix, env=process.env) - -Get all the keys on the provided env object (or process.env) which are -prefixed by the specified prefix, and put the values on a new object. - -RETURN THE RESULTING OBJECT! - -NO I/O! - -## cc.ConfigChain() - -The ConfigChain class for CRAY CRAY JQUERY STYLE METHOD CHAINING! - -One of these is returned by the main exported function, as well. - -It inherits (prototypically) from -[ProtoList](https://github.com/isaacs/proto-list/), and also inherits -(parasitically) from -[EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter) - -It has all the methods from both, and except where noted, they are -unchanged. - -### LET IT BE KNOWN THAT chain IS AN INSTANCE OF ConfigChain. - -## chain.sources - -A list of all the places where it got stuff. The keys are the names -passed to addFile or addUrl etc, and the value is an object with some -info about the data source. - -## chain.addFile(filename, type, [name=filename]) - -Filename is the name of the file. Name is an arbitrary string to be -used later if you desire. Type is either 'ini' or 'json', and will -try to guess intelligently if omitted. - -Loaded files can be saved later. - -## chain.addUrl(url, type, [name=url]) - -Same as the filename thing, but with a url. - -Can't be saved later. - -## chain.addEnv(prefix, env, [name='env']) - -Add all the keys from the env object that start with the prefix. - -## chain.addString(data, file, type, [name]) - -Parse the string and add it to the set. (Mainly used internally.) - -## chain.add(object, [name]) - -Add the object to the set. - -## chain.root {Object} - -The root from which all the other config objects in the set descend -prototypically. - -Put your defaults here. - -## chain.set(key, value, name) - -Set the key to the value on the named config object. If name is -unset, then set it on the first config object in the set. (That is, -the one with the highest priority, which was added first.) - -## chain.get(key, [name]) - -Get the key from the named config object explicitly, or from the -resolved configs if not specified. - -## chain.save(name, type) - -Write the named config object back to its origin. - -Currently only supported for env and file config types. - -For files, encode the data according to the type. - -## chain.on('save', function () {}) - -When one or more files are saved, emits `save` event when they're all -saved. - -## chain.on('load', function (chain) {}) - -When the config chain has loaded all the specified files and urls and -such, the 'load' event fires. diff --git a/deps/npm/node_modules/config-chain/test/broken.js b/deps/npm/node_modules/config-chain/test/broken.js deleted file mode 100644 index 101a3e4f5c2..00000000000 --- a/deps/npm/node_modules/config-chain/test/broken.js +++ /dev/null @@ -1,10 +0,0 @@ - - -var cc = require('..') -var assert = require('assert') - - -//throw on invalid json -assert.throws(function () { - cc(__dirname + '/broken.json') -}) diff --git a/deps/npm/node_modules/config-chain/test/broken.json b/deps/npm/node_modules/config-chain/test/broken.json deleted file mode 100644 index 2107ac18d94..00000000000 --- a/deps/npm/node_modules/config-chain/test/broken.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "config-chain", - "version": "0.3.0", - "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", - "homepage": "http://github.com/dominictarr/config-chain", - "repository": { - "type": "git", - "url": "https://github.com/dominictarr/config-chain.git" - } - //missing , and then this comment. this json is intensionally invalid - "dependencies": { - "proto-list": "1", - "ini": "~1.0.2" - }, - "bundleDependencies": ["ini"], - "REM": "REMEMBER TO REMOVE BUNDLING WHEN/IF ISAACS MERGES ini#7", - "author": "Dominic Tarr (http://dominictarr.com)", - "scripts": { - "test": "node test/find-file.js && node test/ini.js && node test/env.js" - } -} diff --git a/deps/npm/node_modules/config-chain/test/chain-class.js b/deps/npm/node_modules/config-chain/test/chain-class.js deleted file mode 100644 index bbc0d4cb2d1..00000000000 --- a/deps/npm/node_modules/config-chain/test/chain-class.js +++ /dev/null @@ -1,100 +0,0 @@ -var test = require('tap').test -var CC = require('../index.js').ConfigChain - -var env = { foo_blaz : 'blzaa', foo_env : 'myenv' } -var jsonObj = { blaz: 'json', json: true } -var iniObj = { 'x.y.z': 'xyz', blaz: 'ini' } - -var fs = require('fs') -var ini = require('ini') - -fs.writeFileSync('/tmp/config-chain-class.json', JSON.stringify(jsonObj)) -fs.writeFileSync('/tmp/config-chain-class.ini', ini.stringify(iniObj)) - -var http = require('http') -var reqs = 0 -http.createServer(function (q, s) { - if (++reqs === 2) this.close() - if (q.url === '/json') { - // make sure that the requests come back from the server - // out of order. they should still be ordered properly - // in the resulting config object set. - setTimeout(function () { - s.setHeader('content-type', 'application/json') - s.end(JSON.stringify({ - blaz: 'http', - http: true, - json: true - })) - }, 200) - } else { - s.setHeader('content-type', 'application/ini') - s.end(ini.stringify({ - blaz: 'http', - http: true, - ini: true, - json: false - })) - } -}).listen(1337) - -test('basic class test', function (t) { - var cc = new CC() - var expectlist = - [ { blaz: 'json', json: true }, - { 'x.y.z': 'xyz', blaz: 'ini' }, - { blaz: 'blzaa', env: 'myenv' }, - { blaz: 'http', http: true, json: true }, - { blaz: 'http', http: true, ini: true, json: false } ] - - cc.addFile('/tmp/config-chain-class.json') - .addFile('/tmp/config-chain-class.ini') - .addEnv('foo_', env) - .addUrl('http://localhost:1337/json') - .addUrl('http://localhost:1337/ini') - .on('load', function () { - t.same(cc.list, expectlist) - t.same(cc.snapshot, { blaz: 'json', - json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - - cc.del('blaz', '/tmp/config-chain-class.json') - t.same(cc.snapshot, { blaz: 'ini', - json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - cc.del('blaz') - t.same(cc.snapshot, { json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { 'x.y.z': 'xyz', - env: 'myenv', - http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { env: 'myenv', - http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { http: true, - ini: true, - json: false }) - cc.shift() - t.same(cc.snapshot, {}) - t.end() - }) -}) diff --git a/deps/npm/node_modules/config-chain/test/env.js b/deps/npm/node_modules/config-chain/test/env.js deleted file mode 100644 index fb718f32b7d..00000000000 --- a/deps/npm/node_modules/config-chain/test/env.js +++ /dev/null @@ -1,10 +0,0 @@ -var cc = require('..') -var assert = require('assert') - -assert.deepEqual({ - hello: true -}, cc.env('test_', { - 'test_hello': true, - 'ignore_this': 4, - 'ignore_test_this_too': [] -})) diff --git a/deps/npm/node_modules/config-chain/test/find-file.js b/deps/npm/node_modules/config-chain/test/find-file.js deleted file mode 100644 index 23cde52ea9d..00000000000 --- a/deps/npm/node_modules/config-chain/test/find-file.js +++ /dev/null @@ -1,13 +0,0 @@ - -var fs = require('fs') - , assert = require('assert') - , objx = { - rand: Math.random() - } - -fs.writeFileSync('/tmp/random-test-config.json', JSON.stringify(objx)) - -var cc = require('../') -var path = cc.find('tmp/random-test-config.json') - -assert.equal(path, '/tmp/random-test-config.json') \ No newline at end of file diff --git a/deps/npm/node_modules/config-chain/test/get.js b/deps/npm/node_modules/config-chain/test/get.js deleted file mode 100644 index d6fd79f74bb..00000000000 --- a/deps/npm/node_modules/config-chain/test/get.js +++ /dev/null @@ -1,15 +0,0 @@ -var cc = require("../"); - -var chain = cc() - , name = "forFun"; - -chain - .add({ - __sample:"for fun only" - }, name) - .on("load", function() { - //It throw exception here - console.log(chain.get("__sample", name)); - //But if I drop the name param, it run normally and return as expected: "for fun only" - //console.log(chain.get("__sample")); - }); diff --git a/deps/npm/node_modules/config-chain/test/ignore-unfound-file.js b/deps/npm/node_modules/config-chain/test/ignore-unfound-file.js deleted file mode 100644 index d742b82ba75..00000000000 --- a/deps/npm/node_modules/config-chain/test/ignore-unfound-file.js +++ /dev/null @@ -1,5 +0,0 @@ - -var cc = require('..') - -//should not throw -cc(__dirname, 'non_existing_file') diff --git a/deps/npm/node_modules/config-chain/test/ini.js b/deps/npm/node_modules/config-chain/test/ini.js deleted file mode 100644 index 5572a6ed6ff..00000000000 --- a/deps/npm/node_modules/config-chain/test/ini.js +++ /dev/null @@ -1,18 +0,0 @@ - - -var cc =require('..') -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/config-chain/test/save.js b/deps/npm/node_modules/config-chain/test/save.js deleted file mode 100644 index bc97bbd3f6f..00000000000 --- a/deps/npm/node_modules/config-chain/test/save.js +++ /dev/null @@ -1,59 +0,0 @@ -var CC = require('../index.js').ConfigChain -var test = require('tap').test - -var f1 = '/tmp/f1.ini' -var f2 = '/tmp/f2.json' - -var ini = require('ini') - -var f1data = {foo: {bar: 'baz'}, bloo: 'jaus'} -var f2data = {oof: {rab: 'zab'}, oolb: 'suaj'} - -var fs = require('fs') - -fs.writeFileSync(f1, ini.stringify(f1data), 'utf8') -fs.writeFileSync(f2, JSON.stringify(f2data), 'utf8') - -test('test saving and loading ini files', function (t) { - new CC() - .add({grelb:'blerg'}, 'opt') - .addFile(f1, 'ini', 'inifile') - .addFile(f2, 'json', 'jsonfile') - .on('load', function (cc) { - - t.same(cc.snapshot, { grelb: 'blerg', - bloo: 'jaus', - foo: { bar: 'baz' }, - oof: { rab: 'zab' }, - oolb: 'suaj' }) - - t.same(cc.list, [ { grelb: 'blerg' }, - { bloo: 'jaus', foo: { bar: 'baz' } }, - { oof: { rab: 'zab' }, oolb: 'suaj' } ]) - - cc.set('grelb', 'brelg', 'opt') - .set('foo', 'zoo', 'inifile') - .set('oof', 'ooz', 'jsonfile') - .save('inifile') - .save('jsonfile') - .on('save', function () { - t.equal(fs.readFileSync(f1, 'utf8'), - "bloo=jaus\nfoo=zoo\n") - t.equal(fs.readFileSync(f2, 'utf8'), - "{\"oof\":\"ooz\",\"oolb\":\"suaj\"}") - - t.same(cc.snapshot, { grelb: 'brelg', - bloo: 'jaus', - foo: 'zoo', - oof: 'ooz', - oolb: 'suaj' }) - - t.same(cc.list, [ { grelb: 'brelg' }, - { bloo: 'jaus', foo: 'zoo' }, - { oof: 'ooz', oolb: 'suaj' } ]) - - t.pass('ok') - t.end() - }) - }) -}) diff --git a/deps/npm/node_modules/debuglog/LICENSE b/deps/npm/node_modules/debuglog/LICENSE deleted file mode 100644 index a3187cc1002..00000000000 --- a/deps/npm/node_modules/debuglog/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Joyent, Inc. and other Node 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/debuglog/README.md b/deps/npm/node_modules/debuglog/README.md deleted file mode 100644 index dc6fccecc32..00000000000 --- a/deps/npm/node_modules/debuglog/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# debuglog - backport of util.debuglog() from node v0.11 - -To facilitate using the `util.debuglog()` function that will be available when -node v0.12 is released now, this is a copy extracted from the source. - -## require('debuglog') - -Return `util.debuglog`, if it exists, otherwise it will return an internal copy -of the implementation from node v0.11. - -## debuglog(section) - -* `section` {String} The section of the program to be debugged -* Returns: {Function} The logging function - -This is used to create a function which conditionally writes to stderr -based on the existence of a `NODE_DEBUG` environment variable. If the -`section` name appears in that environment variable, then the returned -function will be similar to `console.error()`. If not, then the -returned function is a no-op. - -For example: - -```javascript -var debuglog = util.debuglog('foo'); - -var bar = 123; -debuglog('hello from foo [%d]', bar); -``` - -If this program is run with `NODE_DEBUG=foo` in the environment, then -it will output something like: - - FOO 3245: hello from foo [123] - -where `3245` is the process id. If it is not run with that -environment variable set, then it will not print anything. - -You may separate multiple `NODE_DEBUG` environment variables with a -comma. For example, `NODE_DEBUG=fs,net,tls`. diff --git a/deps/npm/node_modules/debuglog/debuglog.js b/deps/npm/node_modules/debuglog/debuglog.js deleted file mode 100644 index 748fd72a1a6..00000000000 --- a/deps/npm/node_modules/debuglog/debuglog.js +++ /dev/null @@ -1,22 +0,0 @@ -var util = require('util'); - -module.exports = (util && util.debuglog) || debuglog; - -var debugs = {}; -var debugEnviron = process.env.NODE_DEBUG || ''; - -function debuglog(set) { - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = util.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; diff --git a/deps/npm/node_modules/debuglog/package.json b/deps/npm/node_modules/debuglog/package.json deleted file mode 100644 index ed2cc073a4b..00000000000 --- a/deps/npm/node_modules/debuglog/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "_from": "debuglog@*", - "_id": "debuglog@1.0.1", - "_integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "_location": "/debuglog", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "debuglog@*", - "name": "debuglog", - "escapedName": "debuglog", - "rawSpec": "*", - "saveSpec": null, - "fetchSpec": "*" - }, - "_requiredBy": [ - "/", - "/read-installed", - "/read-package-tree", - "/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", - "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": "*" - }, - "homepage": "https://github.com/sam-github/node-debuglog#readme", - "license": "MIT", - "main": "debuglog.js", - "name": "debuglog", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/sam-github/node-debuglog.git" - }, - "version": "1.0.1" -} diff --git a/deps/npm/node_modules/detect-indent/index.js b/deps/npm/node_modules/detect-indent/index.js deleted file mode 100644 index eda0b1b1aad..00000000000 --- a/deps/npm/node_modules/detect-indent/index.js +++ /dev/null @@ -1,122 +0,0 @@ -'use strict'; - -// detect either spaces or tabs but not both to properly handle tabs -// for indentation and spaces for alignment -const INDENT_RE = /^(?:( )+|\t+)/; - -function getMostUsed(indents) { - let result = 0; - let maxUsed = 0; - let maxWeight = 0; - - for (const entry of indents) { - // TODO: use destructuring when targeting Node.js 6 - const key = entry[0]; - const val = entry[1]; - - const u = val[0]; - const w = val[1]; - - if (u > maxUsed || (u === maxUsed && w > maxWeight)) { - maxUsed = u; - maxWeight = w; - result = Number(key); - } - } - - return result; -} - -module.exports = str => { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - - // used to see if tabs or spaces are the most used - let tabs = 0; - let spaces = 0; - - // remember the size of previous line's indentation - let prev = 0; - - // remember how many indents/unindents as occurred for a given size - // and how much lines follow a given indentation - // - // indents = { - // 3: [1, 0], - // 4: [1, 5], - // 5: [1, 0], - // 12: [1, 0], - // } - const indents = new Map(); - - // pointer to the array of last used indent - let current; - - // whether the last action was an indent (opposed to an unindent) - let isIndent; - - for (const line of str.split(/\n/g)) { - if (!line) { - // ignore empty lines - continue; - } - - let indent; - const matches = line.match(INDENT_RE); - - if (matches) { - indent = matches[0].length; - - if (matches[1]) { - spaces++; - } else { - tabs++; - } - } else { - indent = 0; - } - - const diff = indent - prev; - prev = indent; - - if (diff) { - // an indent or unindent has been detected - - isIndent = diff > 0; - - current = indents.get(isIndent ? diff : -diff); - - if (current) { - current[0]++; - } else { - current = [1, 0]; - indents.set(diff, current); - } - } else if (current) { - // if the last action was an indent, increment the weight - current[1] += Number(isIndent); - } - } - - const amount = getMostUsed(indents); - - let type; - let indent; - if (!amount) { - type = null; - indent = ''; - } else if (spaces >= tabs) { - type = 'space'; - indent = ' '.repeat(amount); - } else { - type = 'tab'; - indent = '\t'.repeat(amount); - } - - return { - amount, - type, - indent - }; -}; diff --git a/deps/npm/node_modules/detect-indent/license b/deps/npm/node_modules/detect-indent/license deleted file mode 100644 index 654d0bfe943..00000000000 --- a/deps/npm/node_modules/detect-indent/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/deps/npm/node_modules/detect-indent/package.json b/deps/npm/node_modules/detect-indent/package.json deleted file mode 100644 index 0477e31bc72..00000000000 --- a/deps/npm/node_modules/detect-indent/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "_from": "detect-indent", - "_id": "detect-indent@5.0.0", - "_integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "_location": "/detect-indent", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "detect-indent", - "name": "detect-indent", - "escapedName": "detect-indent", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_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", - "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": "*", - "xo": "*" - }, - "engines": { - "node": ">=4" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/detect-indent#readme", - "keywords": [ - "indent", - "indentation", - "detect", - "infer", - "identify", - "code", - "string", - "text", - "source", - "space", - "tab" - ], - "license": "MIT", - "name": "detect-indent", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/detect-indent.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "5.0.0", - "xo": { - "esnext": true - } -} diff --git a/deps/npm/node_modules/detect-indent/readme.md b/deps/npm/node_modules/detect-indent/readme.md deleted file mode 100644 index 3aeb1badf73..00000000000 --- a/deps/npm/node_modules/detect-indent/readme.md +++ /dev/null @@ -1,111 +0,0 @@ -# detect-indent [![Build Status](https://travis-ci.org/sindresorhus/detect-indent.svg?branch=master)](https://travis-ci.org/sindresorhus/detect-indent) - -> Detect the indentation of code - -Pass in a string of any kind of text and get the indentation. - - -## Use cases - -- Persisting the indentation when modifying a file. -- Have new content match the existing indentation. -- Setting the right indentation in your editor. - - -## Install - -``` -$ npm install --save detect-indent -``` - - -## Usage - -Here we modify a JSON file while persisting the indentation: - -```js -const fs = require('fs'); -const detectIndent = require('detect-indent'); - -/* -{ - "ilove": "pizza" -} -*/ -const file = fs.readFileSync('foo.json', 'utf8'); - -// tries to detect the indentation and falls back to a default if it can't -const indent = detectIndent(file).indent || ' '; - -const json = JSON.parse(file); - -json.ilove = 'unicorns'; - -fs.writeFileSync('foo.json', JSON.stringify(json, null, indent)); -/* -{ - "ilove": "unicorns" -} -*/ -``` - - -## API - -Accepts a string and returns an object with stats about the indentation: - -* `amount` {number} - Amount of indentation, for example `2` -* `type` {string|null} - Type of indentation. Possible values are `tab`, `space` or `null` if no indentation is detected -* `indent` {string} - Actual indentation - - -## Algorithm - -The current algorithm looks for the most common difference between two consecutive non-empty lines. - -In the following example, even if the 4-space indentation is used 3 times whereas the 2-space one is used 2 times, it is detected as less used because there were only 2 differences with this value instead of 4 for the 2-space indentation: - -```css -html { - box-sizing: border-box; -} - -body { - background: gray; -} - -p { - line-height: 1.3em; - margin-top: 1em; - text-indent: 2em; -} -``` - -[Source.](https://medium.com/@heatherarthur/detecting-code-indentation-eff3ed0fb56b#3918) - -Furthermore, if there are more than one most used difference, the indentation with the most lines is selected. - -In the following example, the indentation is detected as 4-spaces: - -```css -body { - background: gray; -} - -p { - line-height: 1.3em; - margin-top: 1em; - text-indent: 2em; -} -``` - - -## Related - -- [detect-indent-cli](https://github.com/sindresorhus/detect-indent-cli) - CLI for this module -- [detect-newline](https://github.com/sindresorhus/detect-newline) - Detect the dominant newline character of a string - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/deps/npm/node_modules/dezalgo/.travis.yml b/deps/npm/node_modules/dezalgo/.travis.yml deleted file mode 100644 index e1bcee1acd9..00000000000 --- a/deps/npm/node_modules/dezalgo/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -before_script: npm install -g npm@latest -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' diff --git a/deps/npm/node_modules/dezalgo/LICENSE b/deps/npm/node_modules/dezalgo/LICENSE deleted file mode 100644 index 19129e315fe..00000000000 --- a/deps/npm/node_modules/dezalgo/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/dezalgo/README.md b/deps/npm/node_modules/dezalgo/README.md deleted file mode 100644 index bdfc8ba80d0..00000000000 --- a/deps/npm/node_modules/dezalgo/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# dezalgo - -Contain async insanity so that the dark pony lord doesn't eat souls - -See [this blog -post](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony). - -## USAGE - -Pass a callback to `dezalgo` and it will ensure that it is *always* -called in a future tick, and never in this tick. - -```javascript -var dz = require('dezalgo') - -var cache = {} -function maybeSync(arg, cb) { - cb = dz(cb) - - // this will actually defer to nextTick - if (cache[arg]) cb(null, cache[arg]) - - fs.readFile(arg, function (er, data) { - // since this is *already* defered, it will call immediately - if (er) cb(er) - cb(null, cache[arg] = data) - }) -} -``` diff --git a/deps/npm/node_modules/dezalgo/dezalgo.js b/deps/npm/node_modules/dezalgo/dezalgo.js deleted file mode 100644 index 04fd3ba7814..00000000000 --- a/deps/npm/node_modules/dezalgo/dezalgo.js +++ /dev/null @@ -1,22 +0,0 @@ -var wrappy = require('wrappy') -module.exports = wrappy(dezalgo) - -var asap = require('asap') - -function dezalgo (cb) { - var sync = true - asap(function () { - sync = false - }) - - return function zalgoSafe() { - var args = arguments - var me = this - if (sync) - asap(function() { - cb.apply(me, args) - }) - else - cb.apply(me, args) - } -} 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 8e6202305ae..00000000000 --- 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/LICENSE.md b/deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md deleted file mode 100644 index 0d82d695f7a..00000000000 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md +++ /dev/null @@ -1,20 +0,0 @@ - -Copyright 2009–2014 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/dezalgo/node_modules/asap/README.md b/deps/npm/node_modules/dezalgo/node_modules/asap/README.md deleted file mode 100644 index d60a08a044d..00000000000 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/README.md +++ /dev/null @@ -1,236 +0,0 @@ -# ASAP - -[![Build Status](https://travis-ci.org/kriskowal/asap.png?branch=master)](https://travis-ci.org/kriskowal/asap) - -Promise and asynchronous observer libraries, as well as hand-rolled callback -programs and libraries, often need a mechanism to postpone the execution of a -callback until the next available event. -(See [Designing API’s for Asynchrony][Zalgo].) -The `asap` function executes a task **as soon as possible** but not before it -returns, waiting only for the completion of the current event and previously -scheduled tasks. - -```javascript -asap(function () { - // ... -}); -``` - -[Zalgo]: http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony - -This CommonJS package provides an `asap` module that exports a function that -executes a task function *as soon as possible*. - -ASAP strives to schedule events to occur before yielding for IO, reflow, -or redrawing. -Each event receives an independent stack, with only platform code in parent -frames and the events run in the order they are scheduled. - -ASAP provides a fast event queue that will execute tasks until it is -empty before yielding to the JavaScript engine's underlying event-loop. -When a task gets added to a previously empty event queue, ASAP schedules a flush -event, preferring for that event to occur before the JavaScript engine has an -opportunity to perform IO tasks or rendering, thus making the first task and -subsequent tasks semantically indistinguishable. -ASAP uses a variety of techniques to preserve this invariant on different -versions of browsers and Node.js. - -By design, ASAP prevents input events from being handled until the task -queue is empty. -If the process is busy enough, this may cause incoming connection requests to be -dropped, and may cause existing connections to inform the sender to reduce the -transmission rate or stall. -ASAP allows this on the theory that, if there is enough work to do, there is no -sense in looking for trouble. -As a consequence, ASAP can interfere with smooth animation. -If your task should be tied to the rendering loop, consider using -`requestAnimationFrame` instead. -A long sequence of tasks can also effect the long running script dialog. -If this is a problem, you may be able to use ASAP’s cousin `setImmediate` to -break long processes into shorter intervals and periodically allow the browser -to breathe. -`setImmediate` will yield for IO, reflow, and repaint events. -It also returns a handler and can be canceled. -For a `setImmediate` shim, consider [YuzuJS setImmediate][setImmediate]. - -[setImmediate]: https://github.com/YuzuJS/setImmediate - -Take care. -ASAP can sustain infinite recursive calls without warning. -It will not halt from a stack overflow, and it will not consume unbounded -memory. -This is behaviorally equivalent to an infinite loop. -Just as with infinite loops, you can monitor a Node.js process for this behavior -with a heart-beat signal. -As with infinite loops, a very small amount of caution goes a long way to -avoiding problems. - -```javascript -function loop() { - asap(loop); -} -loop(); -``` - -In browsers, if a task throws an exception, it will not interrupt the flushing -of high-priority tasks. -The exception will be postponed to a later, low-priority event to avoid -slow-downs. -In Node.js, if a task throws an exception, ASAP will resume flushing only if—and -only after—the error is handled by `domain.on("error")` or -`process.on("uncaughtException")`. - -## Raw ASAP - -Checking for exceptions comes at a cost. -The package also provides an `asap/raw` module that exports the underlying -implementation which is faster but stalls if a task throws an exception. -This internal version of the ASAP function does not check for errors. -If a task does throw an error, it will stall the event queue unless you manually -call `rawAsap.requestFlush()` before throwing the error, or any time after. - -In Node.js, `asap/raw` also runs all tasks outside any domain. -If you need a task to be bound to your domain, you will have to do it manually. - -```js -if (process.domain) { - task = process.domain.bind(task); -} -rawAsap(task); -``` - -## Tasks - -A task may be any object that implements `call()`. -A function will suffice, but closures tend not to be reusable and can cause -garbage collector churn. -Both `asap` and `rawAsap` accept task objects to give you the option of -recycling task objects or using higher callable object abstractions. -See the `asap` source for an illustration. - - -## Compatibility - -ASAP is tested on Node.js v0.10 and in a broad spectrum of web browsers. -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][]. - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - -![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) - -## Caveats - -When a task is added to an empty event queue, it is not always possible to -guarantee that the task queue will begin flushing immediately after the current -event. -However, once the task queue begins flushing, it will not yield until the queue -is empty, even if the queue grows while executing tasks. - -The following browsers allow the use of [DOM mutation observers][] to access -the HTML [microtask queue][], and thus begin flushing ASAP's task queue -immediately at the end of the current event loop turn, before any rendering or -IO: - -[microtask queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#microtask-queue -[DOM mutation observers]: http://dom.spec.whatwg.org/#mutation-observers - -- Android 4–4.3 -- Chrome 26–34 -- Firefox 14–29 -- Internet Explorer 11 -- iPad Safari 6–7.1 -- iPhone Safari 7–7.1 -- Safari 6–7 - -In the absense of mutation observers, there are a few browsers, and situations -like web workers in some of the above browsers, where [message channels][] -would be a useful way to avoid falling back to timers. -Message channels give direct access to the HTML [task queue][], so the ASAP -task queue would flush after any already queued rendering and IO tasks, but -without having the minimum delay imposed by timers. -However, among these browsers, Internet Explorer 10 and Safari do not reliably -dispatch messages, so they are not worth the trouble to implement. - -[message channels]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels -[task queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-task - -- Internet Explorer 10 -- Safair 5.0-1 -- Opera 11-12 - -In the absense of mutation observers, these browsers and the following browsers -all fall back to using `setTimeout` and `setInterval` to ensure that a `flush` -occurs. -The implementation uses both and cancels whatever handler loses the race, since -`setTimeout` tends to occasionally skip tasks in unisolated circumstances. -Timers generally delay the flushing of ASAP's task queue for four milliseconds. - -- Firefox 3–13 -- Internet Explorer 6–10 -- iPad Safari 4.3 -- Lynx 2.8.7 - - -## Heritage - -ASAP has been factored out of the [Q][] asynchronous promise library. -It originally had a naïve implementation in terms of `setTimeout`, but -[Malte Ubl][NonBlocking] provided an insight that `postMessage` might be -useful for creating a high-priority, no-delay event dispatch hack. -Since then, Internet Explorer proposed and implemented `setImmediate`. -Robert Katić began contributing to Q by measuring the performance of -the internal implementation of `asap`, paying particular attention to -error recovery. -Domenic, Robert, and Kris Kowal collectively settled on the current strategy of -unrolling the high-priority event queue internally regardless of what strategy -we used to dispatch the potentially lower-priority flush event. -Domenic went on to make ASAP cooperate with Node.js domains. - -[Q]: https://github.com/kriskowal/q -[NonBlocking]: http://www.nonblocking.io/2011/06/windownexttick.html - -For further reading, Nicholas Zakas provided a thorough article on [The -Case for setImmediate][NCZ]. - -[NCZ]: http://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/ - -Ember’s RSVP promise implementation later [adopted][RSVP ASAP] the name ASAP but -further developed the implentation. -Particularly, The `MessagePort` implementation was abandoned due to interaction -[problems with Mobile Internet Explorer][IE Problems] in favor of an -implementation backed on the newer and more reliable DOM `MutationObserver` -interface. -These changes were back-ported into this library. - -[IE Problems]: https://github.com/cujojs/when/issues/197 -[RSVP ASAP]: https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js - -In addition, ASAP factored into `asap` and `asap/raw`, such that `asap` remained -exception-safe, but `asap/raw` provided a tight kernel that could be used for -tasks that guaranteed that they would not throw exceptions. -This core is useful for promise implementations that capture thrown errors in -rejected promises and do not need a second safety net. -At the same time, the exception handling in `asap` was factored into separate -implementations for Node.js and browsers, using the the [Browserify][Browser -Config] `browser` property in `package.json` to instruct browser module loaders -and bundlers, including [Browserify][], [Mr][], and [Mop][], to use the -browser-only implementation. - -[Browser Config]: https://gist.github.com/defunctzombie/4339901 -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr -[Mop]: https://github.com/montagejs/mop - -## License - -Copyright 2009-2014 by Contributors -MIT License (enclosed) diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js b/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js deleted file mode 100644 index 3a27c8cee7a..00000000000 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; - -var rawAsap = require("./raw"); -var freeTasks = []; - -/** - * Calls a task as soon as possible after returning, in its own event, with - * priority over IO events. An exception thrown in a task can be handled by - * `process.on("uncaughtException") or `domain.on("error")`, but will otherwise - * crash the process. If the error is handled, all subsequent tasks will - * resume. - * - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawTask.domain = process.domain; - rawAsap(rawTask); -} - -function RawTask() { - this.task = null; - this.domain = null; -} - -RawTask.prototype.call = function () { - if (this.domain) { - this.domain.enter(); - } - var threw = true; - try { - this.task.call(); - threw = false; - // If the task throws an exception (presumably) Node.js restores the - // domain stack for the next event. - if (this.domain) { - this.domain.exit(); - } - } finally { - // We use try/finally and a threw flag to avoid messing up stack traces - // when we catch and release errors. - if (threw) { - // In Node.js, uncaught exceptions are considered fatal errors. - // Re-throw them to interrupt flushing! - // Ensure that flushing continues if an uncaught exception is - // suppressed listening process.on("uncaughtException") or - // domain.on("error"). - rawAsap.requestFlush(); - } - // If the task threw an error, we do not want to exit the domain here. - // Exiting the domain would prevent the domain from catching the error. - this.task = null; - this.domain = null; - freeTasks.push(this); - } -}; diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js b/deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js deleted file mode 100644 index 805c9824605..00000000000 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; - -// rawAsap provides everything we need except exception management. -var rawAsap = require("./raw"); -// RawTasks are recycled to reduce GC churn. -var freeTasks = []; -// We queue errors to ensure they are thrown in right order (FIFO). -// Array-as-queue is good enough here, since we are just dealing with exceptions. -var pendingErrors = []; -var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); - -function throwFirstError() { - if (pendingErrors.length) { - throw pendingErrors.shift(); - } -} - -/** - * Calls a task as soon as possible after returning, in its own event, with priority - * over other events like animation, reflow, and repaint. An error thrown from an - * event will not interrupt, nor even substantially slow down the processing of - * other events, but will be rather postponed to a lower priority event. - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawAsap(rawTask); -} - -// We wrap tasks with recyclable task objects. A task object implements -// `call`, just like a function. -function RawTask() { - this.task = null; -} - -// The sole purpose of wrapping the task is to catch the exception and recycle -// the task object after its single use. -RawTask.prototype.call = function () { - try { - this.task.call(); - } catch (error) { - if (asap.onerror) { - // This hook exists purely for testing purposes. - // Its name will be periodically randomized to break any code that - // depends on its existence. - asap.onerror(error); - } else { - // In a web browser, exceptions are not fatal. However, to avoid - // slowing down the queue of pending tasks, we rethrow the error in a - // lower priority turn. - pendingErrors.push(error); - requestErrorThrow(); - } - } finally { - this.task = null; - freeTasks[freeTasks.length] = this; - } -}; diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js b/deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js deleted file mode 100644 index 9cee7e32eb5..00000000000 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js +++ /dev/null @@ -1,223 +0,0 @@ -"use strict"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including IO, animation, reflow, and redraw -// events in browsers. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Equivalent to push, but avoids a function call. - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// `requestFlush` is an implementation-specific method that attempts to kick -// off a `flush` event as quickly as possible. `flush` will attempt to exhaust -// the event queue before yielding to the browser's own event loop. -var requestFlush; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory exhaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -// `requestFlush` is implemented using a strategy based on data collected from -// every available SauceLabs Selenium web driver worker at time of writing. -// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 - -// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that -// have WebKitMutationObserver but not un-prefixed MutationObserver. -// Must use `global` or `self` instead of `window` to work in both frames and web -// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. - -/* globals self */ -var scope = typeof global !== "undefined" ? global : self; -var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; - -// MutationObservers are desirable because they have high priority and work -// reliably everywhere they are implemented. -// They are implemented in all modern browsers. -// -// - Android 4-4.3 -// - Chrome 26-34 -// - Firefox 14-29 -// - Internet Explorer 11 -// - iPad Safari 6-7.1 -// - iPhone Safari 7-7.1 -// - Safari 6-7 -if (typeof BrowserMutationObserver === "function") { - requestFlush = makeRequestCallFromMutationObserver(flush); - -// MessageChannels are desirable because they give direct access to the HTML -// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera -// 11-12, and in web workers in many engines. -// Although message channels yield to any queued rendering and IO tasks, they -// would be better than imposing the 4ms delay of timers. -// However, they do not work reliably in Internet Explorer or Safari. - -// Internet Explorer 10 is the only browser that has setImmediate but does -// not have MutationObservers. -// Although setImmediate yields to the browser's renderer, it would be -// preferrable to falling back to setTimeout since it does not have -// the minimum 4ms penalty. -// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and -// Desktop to a lesser extent) that renders both setImmediate and -// MessageChannel useless for the purposes of ASAP. -// https://github.com/kriskowal/q/issues/396 - -// Timers are implemented universally. -// We fall back to timers in workers in most engines, and in foreground -// contexts in the following browsers. -// However, note that even this simple case requires nuances to operate in a -// broad spectrum of browsers. -// -// - Firefox 3-13 -// - Internet Explorer 6-9 -// - iPad Safari 4.3 -// - Lynx 2.8.7 -} else { - requestFlush = makeRequestCallFromTimer(flush); -} - -// `requestFlush` requests that the high priority event queue be flushed as -// soon as possible. -// This is useful to prevent an error thrown in a task from stalling the event -// queue if the exception handled by Node.js’s -// `process.on("uncaughtException")` or by a domain. -rawAsap.requestFlush = requestFlush; - -// To request a high priority event, we induce a mutation observer by toggling -// the text of a text node between "1" and "-1". -function makeRequestCallFromMutationObserver(callback) { - var toggle = 1; - var observer = new BrowserMutationObserver(callback); - var node = document.createTextNode(""); - observer.observe(node, {characterData: true}); - return function requestCall() { - toggle = -toggle; - node.data = toggle; - }; -} - -// The message channel technique was discovered by Malte Ubl and was the -// original foundation for this library. -// http://www.nonblocking.io/2011/06/windownexttick.html - -// Safari 6.0.5 (at least) intermittently fails to create message ports on a -// page's first load. Thankfully, this version of Safari supports -// MutationObservers, so we don't need to fall back in that case. - -// function makeRequestCallFromMessageChannel(callback) { -// var channel = new MessageChannel(); -// channel.port1.onmessage = callback; -// return function requestCall() { -// channel.port2.postMessage(0); -// }; -// } - -// For reasons explained above, we are also unable to use `setImmediate` -// under any circumstances. -// Even if we were, there is another bug in Internet Explorer 10. -// It is not sufficient to assign `setImmediate` to `requestFlush` because -// `setImmediate` must be called *by name* and therefore must be wrapped in a -// closure. -// Never forget. - -// function makeRequestCallFromSetImmediate(callback) { -// return function requestCall() { -// setImmediate(callback); -// }; -// } - -// Safari 6.0 has a problem where timers will get lost while the user is -// scrolling. This problem does not impact ASAP because Safari 6.0 supports -// mutation observers, so that implementation is used instead. -// However, if we ever elect to use timers in Safari, the prevalent work-around -// is to add a scroll event listener that calls for a flush. - -// `setTimeout` does not call the passed callback if the delay is less than -// approximately 7 in web workers in Firefox 8 through 18, and sometimes not -// even then. - -function makeRequestCallFromTimer(callback) { - return function requestCall() { - // We dispatch a timeout with a specified delay of 0 for engines that - // can reliably accommodate that request. This will usually be snapped - // to a 4 milisecond delay, but once we're flushing, there's no delay - // between events. - var timeoutHandle = setTimeout(handleTimer, 0); - // However, since this timer gets frequently dropped in Firefox - // workers, we enlist an interval handle that will try to fire - // an event 20 times per second until it succeeds. - var intervalHandle = setInterval(handleTimer, 50); - - function handleTimer() { - // Whichever timer succeeds will cancel both timers and - // execute the callback. - clearTimeout(timeoutHandle); - clearInterval(intervalHandle); - callback(); - } - }; -} - -// This is for `asap.js` only. -// Its name will be periodically randomized to break any code that depends on -// its existence. -rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; - -// ASAP was originally a nextTick shim included in Q. This was factored out -// into this ASAP package. It was later adapted to RSVP which made further -// amendments. These decisions, particularly to marginalize MessageChannel and -// to capture the MutationObserver implementation in a closure, were integrated -// back into ASAP proper. -// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js 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 3d972338865..00000000000 --- 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/node_modules/asap/raw.js b/deps/npm/node_modules/dezalgo/node_modules/asap/raw.js deleted file mode 100644 index ae3b8923168..00000000000 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/raw.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; - -var domain; // The domain module is executed on demand -var hasSetImmediate = typeof setImmediate === "function"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including network IO events in Node.js. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Avoids a function call - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory excaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -rawAsap.requestFlush = requestFlush; -function requestFlush() { - // Ensure flushing is not bound to any domain. - // It is not sufficient to exit the domain, because domains exist on a stack. - // To execute code outside of any domain, the following dance is necessary. - var parentDomain = process.domain; - if (parentDomain) { - if (!domain) { - // Lazy execute the domain module. - // Only employed if the user elects to use domains. - domain = require("domain"); - } - domain.active = process.domain = null; - } - - // `setImmediate` is slower that `process.nextTick`, but `process.nextTick` - // cannot handle recursion. - // `requestFlush` will only be called recursively from `asap.js`, to resume - // flushing after an error is thrown into a domain. - // Conveniently, `setImmediate` was introduced in the same version - // `process.nextTick` started throwing recursion errors. - if (flushing && hasSetImmediate) { - setImmediate(flush); - } else { - process.nextTick(flush); - } - - if (parentDomain) { - domain.active = process.domain = parentDomain; - } -} diff --git a/deps/npm/node_modules/dezalgo/package.json b/deps/npm/node_modules/dezalgo/package.json deleted file mode 100644 index 41ca347412c..00000000000 --- a/deps/npm/node_modules/dezalgo/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_from": "dezalgo@~1.0.3", - "_id": "dezalgo@1.0.3", - "_integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "_location": "/dezalgo", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "dezalgo@~1.0.3", - "name": "dezalgo", - "escapedName": "dezalgo", - "rawSpec": "~1.0.3", - "saveSpec": null, - "fetchSpec": "~1.0.3" - }, - "_requiredBy": [ - "/", - "/read-package-tree", - "/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", - "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" - }, - "directories": { - "test": "test" - }, - "homepage": "https://github.com/npm/dezalgo", - "keywords": [ - "async", - "zalgo", - "the dark pony", - "he comes", - "asynchrony of all holy and good", - "T̯̪ͅo̯͖̹ ̻̮̖̲͢i̥̖n̢͈͇̝͍v͏͉ok̭̬̝ͅe̞͍̩̫͍̩͝ ̩̮̖̟͇͉́t͔͔͎̗h͏̗̟e̘͉̰̦̠̞͓ ͕h͉̟͎̪̠̱͠ḭ̮̩v̺͉͇̩e̵͖-̺̪m͍i̜n̪̲̲̲̮d̷ ̢r̠̼̯̹̦̦͘ͅe͓̳͓̙p̺̗̫͙͘ͅr͔̰͜e̴͓̞s͉̩̩͟ͅe͏̣n͚͇̗̭̺͍tì͙̣n͏̖̥̗͎̰̪g̞͓̭̱̯̫̕ ̣̱͜ͅc̦̰̰̠̮͎͙̀hao̺̜̻͍͙ͅs͉͓̘.͎̼̺̼͕̹͘", - "̠̞̱̰I͖͇̝̻n̦̰͍̰̟v̤̺̫̳̭̼̗͘ò̹̟̩̩͚k̢̥̠͍͉̦̬i̖͓͔̮̱̻͘n̶̳͙̫͎g̖̯̣̲̪͉ ̞͎̗͕͚ͅt̲͕̘̺̯̗̦h̘̦̲̜̻e̳͎͉̬͙ ̴̞̪̲̥f̜̯͓͓̭̭͢e̱̘͔̮e̜̤l̺̱͖̯͓͙͈͢i̵̦̬͉͔̫͚͕n͉g̨͖̙̙̹̹̟̤ ͉̪o̞̠͍̪̰͙ͅf̬̲̺ ͔͕̲͕͕̲̕c̙͉h̝͔̩̙̕ͅa̲͖̻̗̹o̥̼̫s̝̖̜̝͚̫̟.̺͚ ̸̱̲W̶̥̣͖̦i͏̤̬̱̳̣ͅt͉h̗̪̪ ̷̱͚̹̪ǫ͕̗̣̳̦͎u̼̦͔̥̮̕ţ͖͎̻͔͉ ̴͎̩òr̹̰̖͉͈͝d̷̲̦̖͓e̲͓̠r", - "̧͚̜͓̰̭̭Ṯ̫̹̜̮̟̮͝h͚̘̩̘̖̰́e ̥̘͓͉͔͙̼N̟̜̣̘͔̪e̞̞̤͢z̰̖̘͇p̠͟e̺̱̣͍͙̝ṛ̘̬͔̙͇̠d͝ḭ̯̱̥̗̩a̛ͅn͏̦ ̷̥hi̥v̖̳̹͉̮̱͝e̹̪̘̖̰̟-̴͙͓͚̜̻mi̗̺̻͙̺ͅn̪̯͈d ͏̘͓̫̳ͅơ̹͔̳̖̣͓f͈̹̘ ͕ͅc̗̤̠̜̮̥̥h̡͍̩̭̫͚̱a̤͉̤͔͜os͕̤̼͍̲̀ͅ.̡̱ ̦Za̯̱̗̭͍̣͚l̗͉̰̤g͏̣̭̬̗̲͖ͅo̶̭̩̳̟͈.̪̦̰̳", - "H̴̱̦̗̬̣͓̺e̮ ͉̠̰̞͎̖͟ẁh̛̺̯ͅo̖̫͡ ̢Ẁa̡̗i̸t͖̣͉̀ş͔̯̩ ̤̦̮͇̞̦̲B͎̭͇̦̼e̢hin͏͙̟̪d̴̰͓̻̣̮͕ͅ T͖̮̕h͖e̘̺̰̙͘ ̥Ẁ̦͔̻͚a̞͖̪͉l̪̠̻̰̣̠l̲͎͞", - "Z̘͍̼͎̣͔͝Ą̲̜̱̱̹̤͇L̶̝̰̭͔G͍̖͍O̫͜ͅ!̼̤ͅ", - "H̝̪̜͓̀̌̂̒E̢̙̠̣ ̴̳͇̥̟̠͍̐C̹̓̑̐̆͝Ó̶̭͓̚M̬̼Ĕ̖̤͔͔̟̹̽̿̊ͥ̍ͫS̻̰̦̻̖̘̱̒ͪ͌̅͟" - ], - "license": "ISC", - "main": "dezalgo.js", - "name": "dezalgo", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/dezalgo.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.0.3" -} diff --git a/deps/npm/node_modules/dezalgo/test/basic.js b/deps/npm/node_modules/dezalgo/test/basic.js deleted file mode 100644 index da09e724da3..00000000000 --- a/deps/npm/node_modules/dezalgo/test/basic.js +++ /dev/null @@ -1,29 +0,0 @@ -var test = require('tap').test -var dz = require('../dezalgo.js') - -test('the dark pony', function(t) { - - var n = 0 - function foo(i, cb) { - cb = dz(cb) - if (++n % 2) cb(true, i) - else process.nextTick(cb.bind(null, false, i)) - } - - var called = 0 - var order = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9] - var o = 0 - for (var i = 0; i < 10; i++) { - foo(i, function(cached, i) { - t.equal(i, order[o++]) - t.equal(i % 2, cached ? 0 : 1) - called++ - }) - t.equal(called, 0) - } - - setTimeout(function() { - t.equal(called, 10) - t.end() - }) -}) diff --git a/deps/npm/node_modules/editor/LICENSE b/deps/npm/node_modules/editor/LICENSE deleted file mode 100644 index 8b856bc4a47..00000000000 --- a/deps/npm/node_modules/editor/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2013 James Halliday (mail@substack.net) - -This project is free software 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/editor/README.markdown b/deps/npm/node_modules/editor/README.markdown deleted file mode 100644 index c1121cad2f9..00000000000 --- a/deps/npm/node_modules/editor/README.markdown +++ /dev/null @@ -1,54 +0,0 @@ -editor -====== - -Launch $EDITOR in your program. - -example -======= - -``` js -var editor = require('editor'); -editor('beep.json', function (code, sig) { - console.log('finished editing with code ' + code); -}); -``` - -*** - -``` -$ node edit.js -``` - -![editor](http://substack.net/images/screenshots/editor.png) - -``` -finished editing with code 0 -``` - -methods -======= - -``` js -var editor = require('editor') -``` - -editor(file, opts={}, cb) -------------------------- - -Launch the `$EDITOR` (or `opts.editor`) for `file`. - -When the editor exits, `cb(code, sig)` fires. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install editor -``` - -license -======= - -MIT diff --git a/deps/npm/node_modules/editor/example/beep.json b/deps/npm/node_modules/editor/example/beep.json deleted file mode 100644 index ac07d2da870..00000000000 --- a/deps/npm/node_modules/editor/example/beep.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "a" : 3, - "b" : 4, - "c" : 5 -} diff --git a/deps/npm/node_modules/editor/example/edit.js b/deps/npm/node_modules/editor/example/edit.js deleted file mode 100644 index ee117287107..00000000000 --- a/deps/npm/node_modules/editor/example/edit.js +++ /dev/null @@ -1,4 +0,0 @@ -var editor = require('../'); -editor(__dirname + '/beep.json', function (code, sig) { - console.log('finished editing with code ' + code); -}); diff --git a/deps/npm/node_modules/editor/index.js b/deps/npm/node_modules/editor/index.js deleted file mode 100644 index 3774edbe37b..00000000000 --- a/deps/npm/node_modules/editor/index.js +++ /dev/null @@ -1,20 +0,0 @@ -var spawn = require('child_process').spawn; - -module.exports = function (file, opts, cb) { - if (typeof opts === 'function') { - cb = opts; - opts = {}; - } - if (!opts) opts = {}; - - var ed = /^win/.test(process.platform) ? 'notepad' : 'vim'; - var editor = opts.editor || process.env.VISUAL || process.env.EDITOR || ed; - var args = editor.split(/\s+/); - var bin = args.shift(); - - var ps = spawn(bin, args.concat([ file ]), { stdio: 'inherit' }); - - ps.on('exit', function (code, sig) { - if (typeof cb === 'function') cb(code, sig) - }); -}; diff --git a/deps/npm/node_modules/editor/package.json b/deps/npm/node_modules/editor/package.json deleted file mode 100644 index e2813d2410f..00000000000 --- a/deps/npm/node_modules/editor/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "_from": "editor@~1.0.0", - "_id": "editor@1.0.0", - "_integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", - "_location": "/editor", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "editor@~1.0.0", - "name": "editor", - "escapedName": "editor", - "rawSpec": "~1.0.0", - "saveSpec": null, - "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", - "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" - }, - "directories": { - "example": "example", - "test": "test" - }, - "engine": { - "node": ">=0.6" - }, - "homepage": "https://github.com/substack/node-editor", - "keywords": [ - "text", - "edit", - "shell" - ], - "license": "MIT", - "main": "index.js", - "name": "editor", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/substack/node-editor.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.0.0" -} diff --git a/deps/npm/node_modules/find-npm-prefix/LICENSE b/deps/npm/node_modules/find-npm-prefix/LICENSE deleted file mode 100644 index 7953647e776..00000000000 --- a/deps/npm/node_modules/find-npm-prefix/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright 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 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/find-npm-prefix/README.md b/deps/npm/node_modules/find-npm-prefix/README.md deleted file mode 100644 index 77bf4b72427..00000000000 --- a/deps/npm/node_modules/find-npm-prefix/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# find-npm-prefix - -Find the npm project directory associated with for a given directory - -## USAGE - -``` -const findPrefix = require('find-npm-prefix') - -findPrefix(process.cwd).then(prefix => { - … -}) -``` - -## findPrefix(dir) → Promise(prefix) - -This computes the npm prefix, that is, the directory that npm adds and -removes modules from for a given path. - -It takes a directory as an argument and returns a promise of the associated -prefix directory. - -## Algorithm - -1. If the directory is a `node_modules` folder, scan up the tree till you find a non-`node_modules` directory and return that. -2. Else, look for the first parent directory that contains a `node_modules` or a `package.json` - 1. If one is found, that's the prefix. - 2. If none are found, return the original directory we were given diff --git a/deps/npm/node_modules/find-npm-prefix/find-prefix.js b/deps/npm/node_modules/find-npm-prefix/find-prefix.js deleted file mode 100644 index 089572ec110..00000000000 --- a/deps/npm/node_modules/find-npm-prefix/find-prefix.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict' -// try to find the most reasonable prefix to use - -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(() => { - dir = path.resolve(dir) - - // this is a weird special case where an infinite recurse of - // node_modules folders resolves to the level that contains the - // very first node_modules folder - let walkedUp = false - while (path.basename(dir) === 'node_modules') { - dir = path.dirname(dir) - walkedUp = true - } - if (walkedUp) return dir - - return findPrefix_(dir) - }) -} - -function findPrefix_ (dir, original) { - if (!original) original = dir - - 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 - } - }) -} diff --git a/deps/npm/node_modules/find-npm-prefix/package.json b/deps/npm/node_modules/find-npm-prefix/package.json deleted file mode 100644 index 4007b90c3cb..00000000000 --- a/deps/npm/node_modules/find-npm-prefix/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "_from": "find-npm-prefix@latest", - "_id": "find-npm-prefix@1.0.1", - "_inBundle": false, - "_integrity": "sha512-I9R7ZnsjlKRvXBJjA1PE4wAkSc24YChoomWdEPTZgeB4DHxf87OutNGV5McFj6WwPghH97nZRejH58XvY6ga6Q==", - "_location": "/find-npm-prefix", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "find-npm-prefix@latest", - "name": "find-npm-prefix", - "escapedName": "find-npm-prefix", - "rawSpec": "latest", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.1.tgz", - "_shasum": "af0faa74e19294b3c8634bae0e91017bb5adfac2", - "_spec": "find-npm-prefix@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "url": "http://re-becca.org/" - }, - "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", - "standard": "^10.0.3", - "tap": "^10.7.3" - }, - "directories": { - "test": "test" - }, - "homepage": "https://github.com/npm/find-npm-prefix#readme", - "keywords": [], - "license": "ISC", - "main": "find-prefix.js", - "name": "find-npm-prefix", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/find-npm-prefix.git" - }, - "scripts": { - "test": "standard && tap --100 test" - }, - "version": "1.0.1" -} diff --git a/deps/npm/node_modules/find-npm-prefix/test/find-prefix.js b/deps/npm/node_modules/find-npm-prefix/test/find-prefix.js deleted file mode 100644 index de2ab41cb9d..00000000000 --- a/deps/npm/node_modules/find-npm-prefix/test/find-prefix.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict' -const Bluebird = require('bluebird') -const test = require('tap').test -const requireInject = require('require-inject') -const findPrefix = requireInject('../find-prefix.js', { - fs: { - readdir: mockReaddir - } -}) - -test('find-prefix', t => { - const tests = { - '/Users/example/code/test1/node_modules': '/Users/example/code/test1', - '/Users/example/code/test1/node_modules/node_modules': '/Users/example/code/test1', - '/Users/example/code/test1/sub1': '/Users/example/code/test1', - '/Users/example/code/test1/sub1/sub1a': '/Users/example/code/test1', - '/Users/example/code/test2': '/Users/example/code/test2', - '/Users/example/code/test2/sub2': '/Users/example/code/test2', - '/Users/example/code': '/Users/example/code', - '/Users/example': '/Users/example', - '/does/not/exist': '/does/not/exist' - } - t.plan(Object.keys(tests).length) - return Bluebird.map(Object.keys(tests), dir => { - return findPrefix(dir).then(pre => { - t.is(pre, tests[dir], dir) - }) - }) -}) - -test('fail-prefix', t => { - return findPrefix('/Users/example/eperm').then(pre => { - t.fail('no eperm') - }).catch(err => { - t.is(err.code, 'EPERM', 'got perm error') - }) -}) - -const fixture = { - 'Users': { - 'example': { - 'code': { - 'test1': { - 'node_modules': { - 'node_modules': {} - }, - 'sub1': { - 'sub1a': {} - } - }, - 'test2': { - 'package.json': {}, - 'sub2': {} - } - } - } - } -} - -function mockReaddir (dir, cb) { - if (/eperm/.test(dir)) { - const err = new Error('Can not read: ' + dir) - err.code = 'EPERM' - return cb(err) - } - const parts = dir.split(/\//).slice(1) - let cwd = fixture - let part - while ((part = parts.shift())) { - if (part in cwd) { - cwd = cwd[part] - } else { - const err = new Error('Does not exist: ' + dir + ' * ' + part) - err.code = 'ENOENT' - return cb(err) - } - } - return cb(null, Object.keys(cwd)) -} diff --git a/deps/npm/node_modules/fs-vacuum/.eslintrc b/deps/npm/node_modules/fs-vacuum/.eslintrc deleted file mode 100644 index 5c39c67eca0..00000000000 --- a/deps/npm/node_modules/fs-vacuum/.eslintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "env" : { - "node" : true - }, - "rules" : { - "curly" : 0, - "no-lonely-if" : 1, - "no-mixed-requires" : 0, - "no-underscore-dangle" : 0, - "no-unused-vars" : [2, {"vars" : "all", "args" : "after-used"}], - "no-use-before-define" : [2, "nofunc"], - "quotes" : [1, "double", "avoid-escape"], - "semi" : [2, "never"], - "space-after-keywords" : 1, - "space-infix-ops" : 0, - "strict" : 0 - } -} diff --git a/deps/npm/node_modules/fs-vacuum/.npmignore b/deps/npm/node_modules/fs-vacuum/.npmignore deleted file mode 100644 index 3c3629e647f..00000000000 --- a/deps/npm/node_modules/fs-vacuum/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/deps/npm/node_modules/fs-vacuum/.travis.yml b/deps/npm/node_modules/fs-vacuum/.travis.yml deleted file mode 100644 index 2325eae022b..00000000000 --- a/deps/npm/node_modules/fs-vacuum/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: node_js -node_js: - - "5" - - "4" - - iojs - - "0.12" - - "0.10" - - "0.8" -sudo: false -script: "npm test" -before_install: - - "npm -g install npm" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/deps/npm/node_modules/fs-vacuum/LICENSE b/deps/npm/node_modules/fs-vacuum/LICENSE deleted file mode 100644 index d07fa9743a0..00000000000 --- a/deps/npm/node_modules/fs-vacuum/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015, Forrest L Norvell - -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/fs-vacuum/README.md b/deps/npm/node_modules/fs-vacuum/README.md deleted file mode 100644 index 8af1cb2485f..00000000000 --- a/deps/npm/node_modules/fs-vacuum/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# fs-vacuum - -Remove the empty branches of a directory tree, optionally up to (but not -including) a specified base directory. Optionally nukes the leaf directory. - -## Usage - -```javascript -var logger = require("npmlog"); -var vacuum = require("fs-vacuum"); - -var options = { - base : "/path/to/my/tree/root", - purge : true, - log : logger.silly.bind(logger, "myCleanup") -}; - -/* Assuming there are no other files or directories in "out", "to", or "my", - * the final path will just be "/path/to/my/tree/root". - */ -vacuum("/path/to/my/tree/root/out/to/my/files", options, function (error) { - if (error) console.error("Unable to cleanly vacuum:", error.message); -}); -``` -# vacuum(directory, options, callback) - -* `directory` {String} Leaf node to remove. **Must be a directory, symlink, or file.** -* `options` {Object} - * `base` {String} No directories at or above this level of the filesystem will be removed. - * `purge` {Boolean} If set, nuke the whole leaf directory, including its contents. - * `log` {Function} A logging function that takes `npmlog`-compatible argument lists. -* `callback` {Function} Function to call once vacuuming is complete. - * `error` {Error} What went wrong along the way, if anything. diff --git a/deps/npm/node_modules/fs-vacuum/package.json b/deps/npm/node_modules/fs-vacuum/package.json deleted file mode 100644 index e05972ae685..00000000000 --- a/deps/npm/node_modules/fs-vacuum/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "_from": "fs-vacuum@~1.2.10", - "_id": "fs-vacuum@1.2.10", - "_integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", - "_location": "/fs-vacuum", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "fs-vacuum@~1.2.10", - "name": "fs-vacuum", - "escapedName": "fs-vacuum", - "rawSpec": "~1.2.10", - "saveSpec": null, - "fetchSpec": "~1.2.10" - }, - "_requiredBy": [ - "/" - ], - "_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", - "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", - "mkdirp": "^0.5.1", - "require-inject": "~1.3.0", - "standard": "^6.0.8", - "tap": "^5.7.1", - "tmp": "0.0.28" - }, - "homepage": "https://github.com/npm/fs-vacuum", - "keywords": [ - "rm", - "rimraf", - "clean" - ], - "license": "ISC", - "main": "vacuum.js", - "name": "fs-vacuum", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fs-vacuum.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "1.2.10" -} diff --git a/deps/npm/node_modules/fs-vacuum/test/arguments.js b/deps/npm/node_modules/fs-vacuum/test/arguments.js deleted file mode 100644 index 17ff2ee5988..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/arguments.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require('tap').test - -var vacuum = require('../vacuum.js') - -test('vacuum throws on missing parameters', function (t) { - t.throws(vacuum, 'called with no parameters') - t.throws(function () { vacuum('directory', {}) }, 'called with no callback') - - t.end() -}) - -test('vacuum throws on incorrect types ("Forrest is pedantic" section)', function (t) { - t.throws(function () { - vacuum({}, {}, function () {}) - }, 'called with path parameter of incorrect type') - t.throws(function () { - vacuum('directory', 'directory', function () {}) - }, 'called with options of wrong type') - t.throws(function () { - vacuum('directory', {}, 'whoops') - }, "called with callback that isn't callable") - - t.end() -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js b/deps/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js deleted file mode 100644 index 1a6c53565d3..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js +++ /dev/null @@ -1,16 +0,0 @@ -var test = require('tap').test - -var vacuum = require('../vacuum.js') - -test('vacuum errors when base is set and path is not under it', function (t) { - vacuum('/a/made/up/path', {base: '/root/elsewhere'}, function (er) { - t.ok(er, 'got an error') - t.equal( - er.message, - '/a/made/up/path is not a child of /root/elsewhere', - 'got the expected error message' - ) - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js b/deps/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js deleted file mode 100644 index 819adcdcb3b..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js +++ /dev/null @@ -1,78 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var readdirSync = require('graceful-fs').readdirSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 6, 'got 5 removal & 1 finish message') - t.equal(messages[5], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 0, 'nothing left in base directory') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js b/deps/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js deleted file mode 100644 index 833d970d605..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js +++ /dev/null @@ -1,78 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var symlinkSync = require('graceful-fs').symlinkSync -var readdirSync = require('graceful-fs').readdirSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var TARGET_PATH = path.join('target-link', 'in', 'the', 'middle') -var PARTIAL_PATH = path.join(SHORT_PATH, 'with', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'link') -var EXPANDO_PATH = path.join(SHORT_PATH, 'with', 'a', 'link', 'in', 'the', 'middle') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, targetPath, partialPath, fullPath, expandoPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - targetPath = path.resolve(tmpdir, TARGET_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - expandoPath = path.resolve(tmpdir, EXPANDO_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - mkdirp(targetPath, function (er) { - t.ifError(er, 'made target path') - - symlinkSync(path.join(tmpdir, 'target-link'), fullPath) - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(expandoPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 7, 'got 6 removal & 1 finish message') - t.equal(messages[6], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = expandoPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 6; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 0, 'nothing left in base directory') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js b/deps/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js deleted file mode 100644 index 03c17923c35..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js +++ /dev/null @@ -1,61 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var LONG_PATH = path.join(SHORT_PATH, 'of', 'a', 'certain', 'length') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testPath, testBase -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - testPath = path.resolve(tmpdir, LONG_PATH) - - mkdirp(testPath, function (er) { - t.ifError(er, 'made test path') - - t.end() - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(testPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 5, 'got 4 removal & 1 finish message') - t.equal(messages[4], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = testPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js b/deps/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js deleted file mode 100644 index 990b69d8a38..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js +++ /dev/null @@ -1,78 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var writeFileSync = require('graceful-fs').writeFileSync -var symlinkSync = require('graceful-fs').symlinkSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var TARGET_PATH = 'link-target' -var FIRST_FILE = path.join(TARGET_PATH, 'monsieurs') -var SECOND_FILE = path.join(TARGET_PATH, 'mesdames') -var PARTIAL_PATH = path.join(SHORT_PATH, 'with', 'a', 'definite') -var FULL_PATH = path.join(PARTIAL_PATH, 'target') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath, targetPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - targetPath = path.resolve(tmpdir, TARGET_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - mkdirp(targetPath, function (er) { - t.ifError(er, 'made target path') - - writeFileSync(path.resolve(tmpdir, FIRST_FILE), new Buffer("c'est vraiment joli")) - writeFileSync(path.resolve(tmpdir, SECOND_FILE), new Buffer('oui oui')) - symlinkSync(targetPath, fullPath) - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(fullPath, {purge: true, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 5, 'got 4 removal & 1 finish message') - t.equal(messages[0], 'purging ' + fullPath) - t.equal(messages[4], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = fullPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js b/deps/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js deleted file mode 100644 index d3ab0c2b6c5..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js +++ /dev/null @@ -1,67 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var writeFileSync = require('graceful-fs').writeFileSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var LONG_PATH = path.join(SHORT_PATH, 'of', 'a', 'certain', 'kind') -var FIRST_FILE = path.join(LONG_PATH, 'monsieurs') -var SECOND_FILE = path.join(LONG_PATH, 'mesdames') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testPath, testBase -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - testPath = path.resolve(tmpdir, LONG_PATH) - - mkdirp(testPath, function (er) { - t.ifError(er, 'made test path') - - writeFileSync(path.resolve(tmpdir, FIRST_FILE), new Buffer("c'est vraiment joli")) - writeFileSync(path.resolve(tmpdir, SECOND_FILE), new Buffer('oui oui')) - t.end() - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(testPath, {purge: true, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 5, 'got 4 removal & 1 finish message') - t.equal(messages[0], 'purging ' + testPath) - t.equal(messages[4], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = testPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/not-remove-home-directory.js b/deps/npm/node_modules/fs-vacuum/test/not-remove-home-directory.js deleted file mode 100644 index 8cab009455c..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/not-remove-home-directory.js +++ /dev/null @@ -1,46 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} - -var BASE_PATH = path.join('foo') -var HOME_PATH = path.join(BASE_PATH, 'foo', 'bar') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var homePath, basePath, realHome -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - homePath = path.resolve(tmpdir, HOME_PATH) - basePath = path.resolve(tmpdir, BASE_PATH) - - realHome = process.env.HOME - process.env.HOME = homePath - - mkdirp(homePath, function (er) { - t.ifError(er, 'made test path') - t.end() - }) - }) -}) - -test('do not remove home directory', function (t) { - vacuum(homePath, {purge: false, base: basePath, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - t.equal(messages[0], 'quitting because cannot remove home directory ' + homePath) - process.env.HOME = realHome - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js b/deps/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js deleted file mode 100644 index b18f7eb27d2..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js +++ /dev/null @@ -1,76 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var REMOVE_PATH = path.join(SHORT_PATH, 'of', 'a', 'certain', 'length') -var OTHER_PATH = path.join(SHORT_PATH, 'of', 'no', 'qualities') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, testPath, otherPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - testPath = path.resolve(tmpdir, REMOVE_PATH) - otherPath = path.resolve(tmpdir, OTHER_PATH) - - mkdirp(testPath, function (er) { - t.ifError(er, 'made test path') - - mkdirp(otherPath, function (er) { - t.ifError(er, 'made other path') - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(testPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 4, 'got 3 removal & 1 finish message') - t.equal( - messages[3], 'quitting because other entries in ' + testBase + '/of', - 'got expected final message' - ) - - var stat - var verifyPath = testPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 3; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(otherPath) - }, otherPath + ' can be statted') - t.ok(stat && stat.isDirectory(), otherPath + ' is still a directory') - - var intersection = path.join(testBase, 'of') - t.doesNotThrow(function () { - stat = statSync(intersection) - }, intersection + ' can be statted') - t.ok(stat && stat.isDirectory(), intersection + ' is still a directory') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js b/deps/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js deleted file mode 100644 index d467e996df7..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js +++ /dev/null @@ -1,119 +0,0 @@ -var path = require('path') - -var test = require('tap').test - -var readdir = require('graceful-fs').readdir -var readdirSync = require('graceful-fs').readdirSync -var rmdir = require('graceful-fs').rmdir -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var mkdirp = require('mkdirp') -var mkdtemp = require('tmp').dir -var tmpFile = require('tmp').file -var EEXIST = require('errno').code.EEXIST -var ENOTEMPTY = require('errno').code.ENOTEMPTY - -var requireInject = require('require-inject') -var vacuum = requireInject('../vacuum.js', { - 'graceful-fs': { - 'lstat': require('graceful-fs').lstat, - 'readdir': function (dir, cb) { - readdir(dir, function (err, files) { - // Simulate racy removal by creating a file after vacuum - // thinks the directory is empty - if (dir === partialPath && files.length === 0) { - tmpFile({dir: dir}, function (err, path, fd) { - if (err) throw err - cb(err, files) - }) - } else { - cb(err, files) - } - }) - }, - 'rmdir': function (dir, cb) { - rmdir(dir, function (err) { - // Force EEXIST error from rmdir if the directory is non-empty - var mockErr = EEXIST - if (err) { - if (err.code === ENOTEMPTY.code) { - err.code = err.errno = mockErr.code - err.message = mockErr.code + ': ' + mockErr.description + ', ' + err.syscall + ' \'' + dir + '\'' - } - } - cb(err) - }) - }, - 'unlink': require('graceful-fs').unlink - } -}) - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('racy removal should quit gracefully', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 3, 'got 2 removal & 1 quit message') - t.equal(messages[2], 'quitting because new (racy) entries in ' + partialPath) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.doesNotThrow(function () { - stat = statSync(verifyPath) - }, verifyPath + ' can be statted') - t.ok(stat && stat.isDirectory(), verifyPath + ' is still a directory') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 1, 'base directory untouched') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js b/deps/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js deleted file mode 100644 index decc3807dcd..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js +++ /dev/null @@ -1,119 +0,0 @@ -var path = require('path') - -var test = require('tap').test - -var readdir = require('graceful-fs').readdir -var readdirSync = require('graceful-fs').readdirSync -var rmdir = require('graceful-fs').rmdir -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var mkdirp = require('mkdirp') -var mkdtemp = require('tmp').dir -var tmpFile = require('tmp').file -var EEXIST = require('errno').code.EEXIST -var ENOTEMPTY = require('errno').code.ENOTEMPTY - -var requireInject = require('require-inject') -var vacuum = requireInject('../vacuum.js', { - 'graceful-fs': { - 'lstat': require('graceful-fs').lstat, - 'readdir': function (dir, cb) { - readdir(dir, function (err, files) { - // Simulate racy removal by creating a file after vacuum - // thinks the directory is empty - if (dir === partialPath && files.length === 0) { - tmpFile({dir: dir}, function (err, path, fd) { - if (err) throw err - cb(err, files) - }) - } else { - cb(err, files) - } - }) - }, - 'rmdir': function (dir, cb) { - rmdir(dir, function (err) { - // Force ENOTEMPTY error from rmdir if the directory is non-empty - var mockErr = ENOTEMPTY - if (err) { - if (err.code === EEXIST.code) { - err.code = err.errno = mockErr.code - err.message = mockErr.code + ': ' + mockErr.description + ', ' + err.syscall + ' \'' + dir + '\'' - } - } - cb(err) - }) - }, - 'unlink': require('graceful-fs').unlink - } -}) - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('racy removal should quit gracefully', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 3, 'got 2 removal & 1 quit message') - t.equal(messages[2], 'quitting because new (racy) entries in ' + partialPath) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.doesNotThrow(function () { - stat = statSync(verifyPath) - }, verifyPath + ' can be statted') - t.ok(stat && stat.isDirectory(), verifyPath + ' is still a directory') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 1, 'base directory untouched') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/test/racy-entries.js b/deps/npm/node_modules/fs-vacuum/test/racy-entries.js deleted file mode 100644 index c0ed53243de..00000000000 --- a/deps/npm/node_modules/fs-vacuum/test/racy-entries.js +++ /dev/null @@ -1,104 +0,0 @@ -var path = require('path') - -var test = require('tap').test - -var readdir = require('graceful-fs').readdir -var readdirSync = require('graceful-fs').readdirSync -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var mkdirp = require('mkdirp') -var mkdtemp = require('tmp').dir -var tmpFile = require('tmp').file - -var requireInject = require('require-inject') -var vacuum = requireInject('../vacuum.js', { - 'graceful-fs': { - 'lstat': require('graceful-fs').lstat, - 'readdir': function (dir, cb) { - readdir(dir, function (err, files) { - // Simulate racy removal by creating a file after vacuum - // thinks the directory is empty - if (dir === partialPath && files.length === 0) { - tmpFile({dir: dir}, function (err, path, fd) { - if (err) throw err - cb(err, files) - }) - } else { - cb(err, files) - } - }) - }, - 'rmdir': require('graceful-fs').rmdir, - 'unlink': require('graceful-fs').unlink - } -}) - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('racy removal should quit gracefully', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 3, 'got 2 removal & 1 quit message') - t.equal(messages[2], 'quitting because new (racy) entries in ' + partialPath) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.doesNotThrow(function () { - stat = statSync(verifyPath) - }, verifyPath + ' can be statted') - t.ok(stat && stat.isDirectory(), verifyPath + ' is still a directory') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 1, 'base directory untouched') - - t.end() - }) -}) diff --git a/deps/npm/node_modules/fs-vacuum/vacuum.js b/deps/npm/node_modules/fs-vacuum/vacuum.js deleted file mode 100644 index 050f8701864..00000000000 --- a/deps/npm/node_modules/fs-vacuum/vacuum.js +++ /dev/null @@ -1,117 +0,0 @@ -var assert = require('assert') -var dirname = require('path').dirname -var resolve = require('path').resolve -var isInside = require('path-is-inside') - -var rimraf = require('rimraf') -var lstat = require('graceful-fs').lstat -var readdir = require('graceful-fs').readdir -var rmdir = require('graceful-fs').rmdir -var unlink = require('graceful-fs').unlink - -module.exports = vacuum - -function vacuum (leaf, options, cb) { - assert(typeof leaf === 'string', 'must pass in path to remove') - assert(typeof cb === 'function', 'must pass in callback') - - if (!options) options = {} - assert(typeof options === 'object', 'options must be an object') - - var log = options.log ? options.log : function () {} - - leaf = leaf && resolve(leaf) - var base = options.base && resolve(options.base) - if (base && !isInside(leaf, base)) { - return cb(new Error(leaf + ' is not a child of ' + base)) - } - - lstat(leaf, function (error, stat) { - if (error) { - if (error.code === 'ENOENT') return cb(null) - - log(error.stack) - return cb(error) - } - - if (!(stat && (stat.isDirectory() || stat.isSymbolicLink() || stat.isFile()))) { - log(leaf, 'is not a directory, file, or link') - return cb(new Error(leaf + ' is not a directory, file, or link')) - } - - if (options.purge) { - log('purging', leaf) - rimraf(leaf, function (error) { - if (error) return cb(error) - - next(dirname(leaf)) - }) - } else if (!stat.isDirectory()) { - log('removing', leaf) - unlink(leaf, function (error) { - if (error) return cb(error) - - next(dirname(leaf)) - }) - } else { - next(leaf) - } - }) - - function next (branch) { - branch = branch && resolve(branch) - // either we've reached the base or we've reached the root - if ((base && branch === base) || branch === dirname(branch)) { - log('finished vacuuming up to', branch) - return cb(null) - } - - readdir(branch, function (error, files) { - if (error) { - if (error.code === 'ENOENT') return cb(null) - - log('unable to check directory', branch, 'due to', error.message) - return cb(error) - } - - if (files.length > 0) { - log('quitting because other entries in', branch) - return cb(null) - } - - if (branch === process.env.HOME) { - log('quitting because cannot remove home directory', branch) - return cb(null) - } - - log('removing', branch) - lstat(branch, function (error, stat) { - if (error) { - if (error.code === 'ENOENT') return cb(null) - - log('unable to lstat', branch, 'due to', error.message) - return cb(error) - } - - var remove = stat.isDirectory() ? rmdir : unlink - remove(branch, function (error) { - if (error) { - if (error.code === 'ENOENT') { - log('quitting because lost the race to remove', branch) - return cb(null) - } - if (error.code === 'ENOTEMPTY' || error.code === 'EEXIST') { - log('quitting because new (racy) entries in', branch) - return cb(null) - } - - log('unable to remove', branch, 'due to', error.message) - return cb(error) - } - - next(dirname(branch)) - }) - }) - }) - } -} diff --git a/deps/npm/node_modules/fs-write-stream-atomic/.npmignore b/deps/npm/node_modules/fs-write-stream-atomic/.npmignore deleted file mode 100644 index 2f24c57c382..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -coverage/ -.nyc_output/ diff --git a/deps/npm/node_modules/fs-write-stream-atomic/.travis.yml b/deps/npm/node_modules/fs-write-stream-atomic/.travis.yml deleted file mode 100644 index 68946625271..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -sudo: false -before_install: - - "npm -g install npm" -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" - - "4" - - "5" diff --git a/deps/npm/node_modules/fs-write-stream-atomic/LICENSE b/deps/npm/node_modules/fs-write-stream-atomic/LICENSE deleted file mode 100644 index 19129e315fe..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/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/fs-write-stream-atomic/README.md b/deps/npm/node_modules/fs-write-stream-atomic/README.md deleted file mode 100644 index 9a15d056764..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# fs-write-stream-atomic - -Like `fs.createWriteStream(...)`, but atomic. - -Writes to a tmp file and does an atomic `fs.rename` to move it into -place when it's done. - -First rule of debugging: **It's always a race condition.** - -## USAGE - -```javascript -var fsWriteStreamAtomic = require('fs-write-stream-atomic') -// options are optional. -var write = fsWriteStreamAtomic('output.txt', options) -var read = fs.createReadStream('input.txt') -read.pipe(write) - -// When the write stream emits a 'finish' or 'close' event, -// you can be sure that it is moved into place, and contains -// all the bytes that were written to it, even if something else -// was writing to `output.txt` at the same time. -``` - -### `fsWriteStreamAtomic(filename, [options])` - -* `filename` {String} The file we want to write to -* `options` {Object} - * `chown` {Object} User and group to set ownership after write - * `uid` {Number} - * `gid` {Number} - * `encoding` {String} default = 'utf8' - * `mode` {Number} default = `0666` - * `flags` {String} default = `'w'` - diff --git a/deps/npm/node_modules/fs-write-stream-atomic/index.js b/deps/npm/node_modules/fs-write-stream-atomic/index.js deleted file mode 100644 index 1690ff5ae7a..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/index.js +++ /dev/null @@ -1,176 +0,0 @@ -var fs = require('graceful-fs') -var Writable = require('readable-stream').Writable -var util = require('util') -var MurmurHash3 = require('imurmurhash') -var iferr = require('iferr') -var crypto = require('crypto') - -function murmurhex () { - var hash = MurmurHash3('') - for (var ii = 0; ii < arguments.length; ++ii) { - hash.hash('' + arguments[ii]) - } - return hash.result() -} - -var invocations = 0 -function getTmpname (filename) { - return filename + '.' + murmurhex(__filename, process.pid, ++invocations) -} - -var setImmediate = global.setImmediate || setTimeout - -module.exports = WriteStreamAtomic - -// Requirements: -// 1. Write everything written to the stream to a temp file. -// 2. If there are no errors: -// a. moves the temp file into its final destination -// b. emits `finish` & `closed` ONLY after the file is -// fully flushed and renamed. -// 3. If there's an error, removes the temp file. - -util.inherits(WriteStreamAtomic, Writable) -function WriteStreamAtomic (path, options) { - if (!(this instanceof WriteStreamAtomic)) { - return new WriteStreamAtomic(path, options) - } - Writable.call(this, options) - - this.__isWin = options && options.hasOwnProperty('isWin') ? options.isWin : process.platform === 'win32' - - this.__atomicTarget = path - this.__atomicTmp = getTmpname(path) - - this.__atomicChown = options && options.chown - - this.__atomicClosed = false - - this.__atomicStream = fs.WriteStream(this.__atomicTmp, options) - - this.__atomicStream.once('open', handleOpen(this)) - this.__atomicStream.once('close', handleClose(this)) - this.__atomicStream.once('error', handleError(this)) -} - -// We have to suppress default finish emitting, because ordinarily it -// would happen as soon as `end` is called on us and all of the -// data has been written to our target stream. So we suppress -// finish from being emitted here, and only emit it after our -// target stream is closed and we've moved everything around. -WriteStreamAtomic.prototype.emit = function (event) { - if (event === 'finish') return this.__atomicStream.end() - return Writable.prototype.emit.apply(this, arguments) -} - -WriteStreamAtomic.prototype._write = function (buffer, encoding, cb) { - var flushed = this.__atomicStream.write(buffer, encoding) - if (flushed) return cb() - this.__atomicStream.once('drain', cb) -} - -function handleOpen (writeStream) { - return function (fd) { - writeStream.emit('open', fd) - } -} - -function handleClose (writeStream) { - return function () { - if (writeStream.__atomicClosed) return - writeStream.__atomicClosed = true - if (writeStream.__atomicChown) { - var uid = writeStream.__atomicChown.uid - var gid = writeStream.__atomicChown.gid - return fs.chown(writeStream.__atomicTmp, uid, gid, iferr(cleanup, moveIntoPlace)) - } else { - moveIntoPlace() - } - } - - function moveIntoPlace () { - fs.rename(writeStream.__atomicTmp, writeStream.__atomicTarget, iferr(trapWindowsEPERM, end)) - } - - function trapWindowsEPERM (err) { - if (writeStream.__isWin && - err.syscall && err.syscall === 'rename' && - err.code && err.code === 'EPERM' - ) { - checkFileHashes(err) - } else { - cleanup(err) - } - } - - function checkFileHashes (eperm) { - var inprocess = 2 - var tmpFileHash = crypto.createHash('sha512') - var targetFileHash = crypto.createHash('sha512') - - fs.createReadStream(writeStream.__atomicTmp) - .on('data', function (data, enc) { tmpFileHash.update(data, enc) }) - .on('error', fileHashError) - .on('end', fileHashComplete) - fs.createReadStream(writeStream.__atomicTarget) - .on('data', function (data, enc) { targetFileHash.update(data, enc) }) - .on('error', fileHashError) - .on('end', fileHashComplete) - - function fileHashError () { - if (inprocess === 0) return - inprocess = 0 - cleanup(eperm) - } - - function fileHashComplete () { - if (inprocess === 0) return - if (--inprocess) return - if (tmpFileHash.digest('hex') === targetFileHash.digest('hex')) { - return cleanup() - } else { - return cleanup(eperm) - } - } - } - - function cleanup (err) { - fs.unlink(writeStream.__atomicTmp, function () { - if (err) { - writeStream.emit('error', err) - writeStream.emit('close') - } else { - end() - } - }) - } - - function end () { - // We have to use our parent class directly because we suppress `finish` - // events fired via our own emit method. - Writable.prototype.emit.call(writeStream, 'finish') - - // Delay the close to provide the same temporal separation a physical - // file operation would have– that is, the close event is emitted only - // after the async close operation completes. - setImmediate(function () { - writeStream.emit('close') - }) - } -} - -function handleError (writeStream) { - return function (er) { - cleanupSync() - writeStream.emit('error', er) - writeStream.__atomicClosed = true - writeStream.emit('close') - } - function cleanupSync () { - try { - fs.unlinkSync(writeStream.__atomicTmp) - } finally { - return - } - } -} diff --git a/deps/npm/node_modules/fs-write-stream-atomic/package.json b/deps/npm/node_modules/fs-write-stream-atomic/package.json deleted file mode 100644 index 2e43e5d3274..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "_from": "fs-write-stream-atomic@~1.0.10", - "_id": "fs-write-stream-atomic@1.0.10", - "_integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "_location": "/fs-write-stream-atomic", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "fs-write-stream-atomic@~1.0.10", - "name": "fs-write-stream-atomic", - "escapedName": "fs-write-stream-atomic", - "rawSpec": "~1.0.10", - "saveSpec": null, - "fetchSpec": "~1.0.10" - }, - "_requiredBy": [ - "/", - "/move-concurrently", - "/move-concurrently/copy-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", - "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", - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "directories": { - "test": "test" - }, - "homepage": "https://github.com/npm/fs-write-stream-atomic", - "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" - }, - "scripts": { - "test": "standard && tap --coverage test/*.js" - }, - "version": "1.0.10" -} diff --git a/deps/npm/node_modules/fs-write-stream-atomic/test/basic.js b/deps/npm/node_modules/fs-write-stream-atomic/test/basic.js deleted file mode 100644 index d0205e15f43..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/test/basic.js +++ /dev/null @@ -1,97 +0,0 @@ -var fs = require('graceful-fs') -var test = require('tap').test -var path = require('path') -var writeStream = require('../index.js') - -var rename = fs.rename -fs.rename = function (from, to, cb) { - setTimeout(function () { - rename(from, to, cb) - }, 100) -} - -test('basic', function (t) { - // open 10 write streams to the same file. - // then write to each of them, and to the target - // and verify at the end that each of them does their thing - var target = path.resolve(__dirname, 'test.txt') - var n = 10 - - // We run all of our assertions twice: - // once for finish, once for close - // There are 6 assertions, two fixed, plus 4 lines in the file. - t.plan(n * 2 * 6) - - var streams = [] - for (var i = 0; i < n; i++) { - var s = writeStream(target) - s.on('finish', verifier('finish', i)) - s.on('close', verifier('close', i)) - streams.push(s) - } - - function verifier (ev, num) { - return function () { - if (ev === 'close') { - t.equal(this.__emittedFinish, true, num + '. closed only after finish') - } else { - this.__emittedFinish = true - t.equal(ev, 'finish', num + '. finished') - } - - // make sure that one of the atomic streams won. - var res = fs.readFileSync(target, 'utf8') - var lines = res.trim().split(/\n/) - lines.forEach(function (line, lineno) { - var first = lines[0].match(/\d+$/)[0] - var cur = line.match(/\d+$/)[0] - t.equal(cur, first, num + '. line ' + lineno + ' matches') - }) - - var resExpr = /^first write \d+\nsecond write \d+\nthird write \d+\nfinal write \d+\n$/ - t.similar(res, resExpr, num + '. content matches') - } - } - - // now write something to each stream. - streams.forEach(function (stream, i) { - stream.write('first write ' + i + '\n') - }) - - // wait a sec for those writes to go out. - setTimeout(function () { - // write something else to the target. - fs.writeFileSync(target, 'brutality!\n') - - // write some more stuff. - streams.forEach(function (stream, i) { - stream.write('second write ' + i + '\n') - }) - - setTimeout(function () { - // Oops! Deleted the file! - fs.unlinkSync(target) - - // write some more stuff. - streams.forEach(function (stream, i) { - stream.write('third write ' + i + '\n') - }) - - setTimeout(function () { - fs.writeFileSync(target, 'brutality TWO!\n') - streams.forEach(function (stream, i) { - stream.end('final write ' + i + '\n') - }) - }, 50) - }, 50) - }, 50) -}) - -test('cleanup', function (t) { - fs.readdirSync(__dirname).filter(function (f) { - return f.match(/^test.txt/) - }).forEach(function (file) { - fs.unlinkSync(path.resolve(__dirname, file)) - }) - t.end() -}) diff --git a/deps/npm/node_modules/fs-write-stream-atomic/test/chown.js b/deps/npm/node_modules/fs-write-stream-atomic/test/chown.js deleted file mode 100644 index 1733cf27ec2..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/test/chown.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-chown') - -test('chown works', function (t) { - t.plan(1) - var stream = writeStream(target, {chown: {uid: process.getuid(), gid: process.getgid()}}) - var hadError = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('close', function () { - t.is(hadError, false, 'no errors before close') - }) - stream.end() -}) - -test('chown fails', function (t) { - t.plan(1) - fs.chown = function (file, uid, gid, cb) { - cb(new Error('TEST BREAK')) - } - var stream = writeStream(target, {chown: {uid: process.getuid(), gid: process.getgid()}}) - var hadError = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('close', function () { - t.is(hadError, true, 'error before close') - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - t.end() -}) diff --git a/deps/npm/node_modules/fs-write-stream-atomic/test/rename-eperm.js b/deps/npm/node_modules/fs-write-stream-atomic/test/rename-eperm.js deleted file mode 100644 index b1be0f3183f..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/test/rename-eperm.js +++ /dev/null @@ -1,154 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-rename-eperm1') -var target2 = path.resolve(__dirname, 'test-rename-eperm2') -var target3 = path.resolve(__dirname, 'test-rename-eperm3') - -test('rename eperm none existing file', function (t) { - t.plan(2) - - var _rename = fs.rename - fs.existsSync = function (src) { - return true - } - fs.rename = function (src, dest, cb) { - // simulate a failure during rename where the file - // is renamed successfully but the process encounters - // an EPERM error and the target file does not exist - _rename(src, dest, function (e) { - var err = new Error('TEST BREAK') - err.syscall = 'rename' - err.code = 'EPERM' - cb(err) - }) - } - - var stream = writeStream(target, { isWin: true }) - var hadError = false - var calledFinish = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('finish', function () { - calledFinish = true - }) - stream.on('close', function () { - t.is(hadError, true, 'error was caught') - t.is(calledFinish, false, 'finish was called before close') - }) - stream.end() -}) - -// test existing file with diff. content -test('rename eperm existing file different content', function (t) { - t.plan(2) - - var _rename = fs.rename - fs.existsSync = function (src) { - return true - } - fs.rename = function (src, dest, cb) { - // simulate a failure during rename where the file - // is renamed successfully but the process encounters - // an EPERM error and the target file that has another content than the - // destination - _rename(src, dest, function (e) { - fs.writeFile(src, 'dest', function (writeErr) { - if (writeErr) { - return console.log('WRITEERR: ' + writeErr) - } - - fs.writeFile(target2, 'target', function (writeErr) { - if (writeErr) { - return console.log('WRITEERR: ' + writeErr) - } - - var err = new Error('TEST BREAK') - err.syscall = 'rename' - err.code = 'EPERM' - cb(err) - }) - }) - }) - } - - var stream = writeStream(target2, { isWin: true }) - var hadError = false - var calledFinish = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('finish', function () { - calledFinish = true - }) - stream.on('close', function () { - t.is(hadError, true, 'error was caught') - t.is(calledFinish, false, 'finish was called before close') - }) - stream.end() -}) - -// test existing file with the same content -// test existing file with diff. content -test('rename eperm existing file different content', function (t) { - t.plan(2) - - var _rename = fs.rename - fs.existsSync = function (src) { - return true - } - fs.rename = function (src, dest, cb) { - // simulate a failure during rename where the file - // is renamed successfully but the process encounters - // an EPERM error and the target file that has the same content than the - // destination - _rename(src, dest, function (e) { - fs.writeFile(src, 'target2', function (writeErr) { - if (writeErr) { - return console.log('WRITEERR: ' + writeErr) - } - - fs.writeFile(target3, 'target2', function (writeErr) { - if (writeErr) { - return console.log('WRITEERR: ' + writeErr) - } - - var err = new Error('TEST BREAK') - err.syscall = 'rename' - err.code = 'EPERM' - cb(err) - }) - }) - }) - } - - var stream = writeStream(target3, { isWin: true }) - var hadError = false - var calledFinish = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('finish', function () { - calledFinish = true - }) - stream.on('close', function () { - t.is(hadError, false, 'error was caught') - t.is(calledFinish, true, 'finish was called before close') - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - rimraf.sync(target2) - rimraf.sync(target3) - t.end() -}) diff --git a/deps/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js b/deps/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js deleted file mode 100644 index 7e27f0bfb0f..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-rename') - -test('rename fails', function (t) { - t.plan(1) - fs.rename = function (src, dest, cb) { - cb(new Error('TEST BREAK')) - } - var stream = writeStream(target) - var hadError = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('close', function () { - t.is(hadError, true, 'error before close') - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - t.end() -}) diff --git a/deps/npm/node_modules/fs-write-stream-atomic/test/slow-close.js b/deps/npm/node_modules/fs-write-stream-atomic/test/slow-close.js deleted file mode 100644 index 9840a6ef030..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/test/slow-close.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-chown') - -test('slow close', function (t) { - t.plan(2) - // The goal here is to simulate the "file close" step happening so slowly - // that the whole close/rename process could finish before the file is - // actually closed (and thus buffers truely flushed to the OS). In - // previous versions of this module, this would result in the module - // emitting finish & close before the file was fully written and in - // turn, could break other layers that tried to read the new file. - var realEmit = fs.WriteStream.prototype.emit - var reallyClosed = false - fs.WriteStream.prototype.emit = function (event) { - if (event !== 'close') return realEmit.apply(this, arguments) - setTimeout(function () { - reallyClosed = true - realEmit.call(this, 'close') - }.bind(this), 200) - } - var stream = writeStream(target) - stream.on('finish', function () { - t.is(reallyClosed, true, "didn't finish before target was closed") - }) - stream.on('close', function () { - t.is(reallyClosed, true, "didn't close before target was closed") - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - t.end() -}) diff --git a/deps/npm/node_modules/fs-write-stream-atomic/test/toolong.js b/deps/npm/node_modules/fs-write-stream-atomic/test/toolong.js deleted file mode 100644 index f146cc55b1d..00000000000 --- a/deps/npm/node_modules/fs-write-stream-atomic/test/toolong.js +++ /dev/null @@ -1,29 +0,0 @@ -var path = require('path') -var test = require('tap').test -var writeStream = require('../index.js') - -function repeat (times, string) { - var output = '' - for (var ii = 0; ii < times; ++ii) { - output += string - } - return output -} - -var target = path.resolve(__dirname, repeat(1000, 'test')) - -test('name too long', function (t) { - t.plan(2) - var stream = writeStream(target) - var hadError = false - stream.on('error', function (er) { - if (!hadError) { - t.is(er.code, 'ENAMETOOLONG', target.length + ' character name results in ENAMETOOLONG') - hadError = true - } - }) - stream.on('close', function () { - t.ok(hadError, 'got error before close') - }) - stream.end() -}) diff --git a/deps/npm/node_modules/gentle-fs/CHANGELOG.md b/deps/npm/node_modules/gentle-fs/CHANGELOG.md deleted file mode 100644 index e9bb23d98b8..00000000000 --- a/deps/npm/node_modules/gentle-fs/CHANGELOG.md +++ /dev/null @@ -1,63 +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. - - -## [2.0.1](https://github.com/npm/gentle-fs/compare/v2.0.0...v2.0.1) (2017-11-28) - - -### Bug Fixes - -* **pkglock:** regenerate lock to fix version issues ([a41cbd0](https://github.com/npm/gentle-fs/commit/a41cbd0)) -* **rm:** make sure logic for vacuuming matches original npm ([673e82c](https://github.com/npm/gentle-fs/commit/673e82c)) - - - - -# [2.0.0](https://github.com/npm/gentle-fs/compare/v1.0.2...v2.0.0) (2017-10-07) - - -### Features - -* **api:** switch to callbacks for now. ([236e886](https://github.com/npm/gentle-fs/commit/236e886)) - - -### BREAKING CHANGES - -* **api:** switches from Promises to callbacks for async control flow. - - - - -## [1.0.2](https://github.com/npm/gentle-fs/compare/v1.0.1...v1.0.2) (2017-10-07) - - -### Bug Fixes - -* **link:** properly resolve linkIfExists promise ([f06acf2](https://github.com/npm/gentle-fs/commit/f06acf2)) - - - - -## [1.0.1](https://github.com/npm/gentle-fs/compare/v1.0.0...v1.0.1) (2017-09-25) - - -### Bug Fixes - -* **files:** include required lib files in tarball ([e0be6a8](https://github.com/npm/gentle-fs/commit/e0be6a8)) - - - - -# 1.0.0 (2017-09-15) - - -### Bug Fixes - -* **docs:** Flesh out API descriptions. ([b056a34](https://github.com/npm/gentle-fs/commit/b056a34)) -* **docs:** update usage examples ([5517ff5](https://github.com/npm/gentle-fs/commit/5517ff5)) - - -### BREAKING CHANGES - -* **docs:** api docs added diff --git a/deps/npm/node_modules/gentle-fs/LICENSE b/deps/npm/node_modules/gentle-fs/LICENSE deleted file mode 100644 index 0b6c2287459..00000000000 --- a/deps/npm/node_modules/gentle-fs/LICENSE +++ /dev/null @@ -1,235 +0,0 @@ -The npm application -Copyright (c) npm, Inc. and Contributors -Licensed on the terms of The Artistic License 2.0 - -Node package dependencies of the npm application -Copyright (c) their respective copyright owners -Licensed on their respective license terms - -The npm public registry at https://registry.npmjs.org -and the npm website at https://www.npmjs.com -Operated by npm, Inc. -Use governed by terms published on https://www.npmjs.com - -"Node.js" -Trademark Joyent, Inc., https://joyent.com -Neither npm nor npm, Inc. are affiliated with Joyent, Inc. - -The Node.js application -Project of Node Foundation, https://nodejs.org - -The npm Logo -Copyright (c) Mathias Pettersson and Brian Hammond - -"Gubblebum Blocky" typeface -Copyright (c) Tjarda Koster, https://jelloween.deviantart.com -Used with permission - - --------- - - -The Artistic License 2.0 - -Copyright (c) 2000-2006, The Perl Foundation. - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -This license establishes the terms under which a given free software -Package may be copied, modified, distributed, and/or redistributed. -The intent is that the Copyright Holder maintains some artistic -control over the development of that Package while still keeping the -Package available as open source and free software. - -You are always permitted to make arrangements wholly outside of this -license directly with the Copyright Holder of a given Package. If the -terms of this license do not permit the full use that you propose to -make of the Package, you should contact the Copyright Holder and seek -a different licensing arrangement. - -Definitions - - "Copyright Holder" means the individual(s) or organization(s) - named in the copyright notice for the entire Package. - - "Contributor" means any party that has contributed code or other - material to the Package, in accordance with the Copyright Holder's - procedures. - - "You" and "your" means any person who would like to copy, - distribute, or modify the Package. - - "Package" means the collection of files distributed by the - Copyright Holder, and derivatives of that collection and/or of - those files. A given Package may consist of either the Standard - Version, or a Modified Version. - - "Distribute" means providing a copy of the Package or making it - accessible to anyone else, or in the case of a company or - organization, to others outside of your company or organization. - - "Distributor Fee" means any fee that you charge for Distributing - this Package or providing support for this Package to another - party. It does not mean licensing fees. - - "Standard Version" refers to the Package if it has not been - modified, or has been modified only in ways explicitly requested - by the Copyright Holder. - - "Modified Version" means the Package, if it has been changed, and - such changes were not explicitly requested by the Copyright - Holder. - - "Original License" means this Artistic License as Distributed with - the Standard Version of the Package, in its current version or as - it may be modified by The Perl Foundation in the future. - - "Source" form means the source code, documentation source, and - configuration files for the Package. - - "Compiled" form means the compiled bytecode, object code, binary, - or any other form resulting from mechanical transformation or - translation of the Source form. - - -Permission for Use and Modification Without Distribution - -(1) You are permitted to use the Standard Version and create and use -Modified Versions for any purpose without restriction, provided that -you do not Distribute the Modified Version. - - -Permissions for Redistribution of the Standard Version - -(2) You may Distribute verbatim copies of the Source form of the -Standard Version of this Package in any medium without restriction, -either gratis or for a Distributor Fee, provided that you duplicate -all of the original copyright notices and associated disclaimers. At -your discretion, such verbatim copies may or may not include a -Compiled form of the Package. - -(3) You may apply any bug fixes, portability changes, and other -modifications made available from the Copyright Holder. The resulting -Package will still be considered the Standard Version, and as such -will be subject to the Original License. - - -Distribution of Modified Versions of the Package as Source - -(4) You may Distribute your Modified Version as Source (either gratis -or for a Distributor Fee, and with or without a Compiled form of the -Modified Version) provided that you clearly document how it differs -from the Standard Version, including, but not limited to, documenting -any non-standard features, executables, or modules, and provided that -you do at least ONE of the following: - - (a) make the Modified Version available to the Copyright Holder - of the Standard Version, under the Original License, so that the - Copyright Holder may include your modifications in the Standard - Version. - - (b) ensure that installation of your Modified Version does not - prevent the user installing or running the Standard Version. In - addition, the Modified Version must bear a name that is different - from the name of the Standard Version. - - (c) allow anyone who receives a copy of the Modified Version to - make the Source form of the Modified Version available to others - under - - (i) the Original License or - - (ii) a license that permits the licensee to freely copy, - modify and redistribute the Modified Version using the same - licensing terms that apply to the copy that the licensee - received, and requires that the Source form of the Modified - Version, and of any works derived from it, be made freely - available in that license fees are prohibited but Distributor - Fees are allowed. - - -Distribution of Compiled Forms of the Standard Version -or Modified Versions without the Source - -(5) You may Distribute Compiled forms of the Standard Version without -the Source, provided that you include complete instructions on how to -get the Source of the Standard Version. Such instructions must be -valid at the time of your distribution. If these instructions, at any -time while you are carrying out such distribution, become invalid, you -must provide new instructions on demand or cease further distribution. -If you provide valid instructions or cease distribution within thirty -days after you become aware that the instructions are invalid, then -you do not forfeit any of your rights under this license. - -(6) You may Distribute a Modified Version in Compiled form without -the Source, provided that you comply with Section 4 with respect to -the Source of the Modified Version. - - -Aggregating or Linking the Package - -(7) You may aggregate the Package (either the Standard Version or -Modified Version) with other packages and Distribute the resulting -aggregation provided that you do not charge a licensing fee for the -Package. Distributor Fees are permitted, and licensing fees for other -components in the aggregation are permitted. The terms of this license -apply to the use and Distribution of the Standard or Modified Versions -as included in the aggregation. - -(8) You are permitted to link Modified and Standard Versions with -other works, to embed the Package in a larger work of your own, or to -build stand-alone binary or bytecode versions of applications that -include the Package, and Distribute the result without restriction, -provided the result does not expose a direct interface to the Package. - - -Items That are Not Considered Part of a Modified Version - -(9) Works (including, but not limited to, modules and scripts) that -merely extend or make use of the Package, do not, by themselves, cause -the Package to be a Modified Version. In addition, such works are not -considered parts of the Package itself, and are not subject to the -terms of this license. - - -General Provisions - -(10) Any use, modification, and distribution of the Standard or -Modified Versions is governed by this Artistic License. By using, -modifying or distributing the Package, you accept this license. Do not -use, modify, or distribute the Package, if you do not accept this -license. - -(11) If your Modified Version has been derived from a Modified -Version made by someone other than you, you are nevertheless required -to ensure that your Modified Version complies with the requirements of -this license. - -(12) This license does not grant you the right to use any trademark, -service mark, tradename, or logo of the Copyright Holder. - -(13) This license includes the non-exclusive, worldwide, -free-of-charge patent license to make, have made, use, offer to sell, -sell, import and otherwise transfer the Package with respect to any -patent claims licensable by the Copyright Holder that are necessarily -infringed by the Package. If you institute patent litigation -(including a cross-claim or counterclaim) against any party alleging -that the Package constitutes direct or contributory patent -infringement, then this Artistic License to you shall terminate on the -date that such litigation is filed. - -(14) Disclaimer of Warranty: -THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS -IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL -LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - --------- diff --git a/deps/npm/node_modules/gentle-fs/README.md b/deps/npm/node_modules/gentle-fs/README.md deleted file mode 100644 index 54af51cf992..00000000000 --- a/deps/npm/node_modules/gentle-fs/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# gentle-fs [![npm version](https://img.shields.io/npm/v/gentle-fs.svg)](https://npm.im/gentle-fs) [![license](https://img.shields.io/npm/l/gentle-fs.svg)](https://npm.im/gentle-fs) [![Travis](https://img.shields.io/travis/npm/gentle-fs.svg)](https://travis-ci.org/npm/gentle-fs) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/gentle-fs?svg=true)](https://ci.appveyor.com/project/npm/gentle-fs) [![Coverage Status](https://coveralls.io/repos/github/npm/gentle-fs/badge.svg?branch=latest)](https://coveralls.io/github/npm/gentle-fs?branch=latest) - -[`gentle-fs`](https://github.com/npm/gentle-fs) is a standalone library for -"gently" remove or link directories. - -## Install - -`$ npm install gentle-fs` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * [`rm`](#rm) - * [`link`](#link) - * [`linkIfExists`](#linkIfExists) - -### Example - -```javascript -// todo -``` - -### Features - -* Performs filesystem operations "gently". Please see details in the API specs below -for a more precise definition of "gently". - -### 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. - -### API - -#### `> rm(target, opts, cb)` - -Will delete all directories between `target` and `opts.base`, as long as they are empty. -That is, if `target` is `/a/b/c/d/e` and `base` is `/a/b`, but `/a/b/c` has other files -besides the `d` directory inside of it, `/a/b/c` will remain. - -##### Example - -```javascript -rm(target, opts, cb) -``` - -#### `> link(from, to, opts, cb)` - -If `from` is a real directory, and `from` is not the same directory as `to`, will -symlink `from` to `to`, while also gently [`rm`](#rm)ing the `to` directory, -and then call the callback. Otherwise, will call callback with an `Error`. - -##### Example - -```javascript -link(from, to, opts, cb) -``` - -#### `> linkIfExists(from, to, opts, cb)` - -Performs the same operation as [`link`](#link), except does nothing when `from` is the -same as `to`, and calls the callback. - -##### Example - -```javascript -linkIfExists(from, to, opts, cb) -``` diff --git a/deps/npm/node_modules/gentle-fs/index.js b/deps/npm/node_modules/gentle-fs/index.js deleted file mode 100644 index 2828fdb2bd3..00000000000 --- a/deps/npm/node_modules/gentle-fs/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict' - -const rm = require('./lib/rm.js') -const link = require('./lib/link.js') - -exports = module.exports = { - rm: rm, - link: link.link, - linkIfExists: link.linkIfExists -} diff --git a/deps/npm/node_modules/gentle-fs/lib/link.js b/deps/npm/node_modules/gentle-fs/lib/link.js deleted file mode 100644 index 246d801479a..00000000000 --- a/deps/npm/node_modules/gentle-fs/lib/link.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict' - -const path = require('path') -const fs = require('graceful-fs') -const chain = require('slide').chain -const mkdir = require('mkdirp') -const rm = require('./rm.js') - -exports = module.exports = { - link: link, - linkIfExists: linkIfExists -} - -function linkIfExists (from, to, opts, cb) { - fs.stat(from, function (er) { - if (er) return cb() - fs.readlink(to, function (er, fromOnDisk) { - // if the link already exists and matches what we would do, - // we don't need to do anything - if (!er) { - var toDir = path.dirname(to) - var absoluteFrom = path.resolve(toDir, from) - var absoluteFromOnDisk = path.resolve(toDir, fromOnDisk) - if (absoluteFrom === absoluteFromOnDisk) return cb() - } - link(from, to, opts, cb) - }) - }) -} - -function resolveIfSymlink (maybeSymlinkPath, cb) { - fs.lstat(maybeSymlinkPath, function (err, stat) { - if (err) return cb.apply(this, arguments) - if (!stat.isSymbolicLink()) return cb(null, maybeSymlinkPath) - fs.readlink(maybeSymlinkPath, cb) - }) -} - -function ensureFromIsNotSource (from, to, cb) { - resolveIfSymlink(from, function (err, fromDestination) { - if (err) return cb.apply(this, arguments) - if (path.resolve(path.dirname(from), fromDestination) === path.resolve(to)) { - return cb(new Error('Link target resolves to the same directory as link source: ' + to)) - } - cb.apply(this, arguments) - }) -} - -function link (from, to, opts, cb) { - to = path.resolve(to) - opts.base = path.dirname(to) - var absTarget = path.resolve(opts.base, from) - var relativeTarget = path.relative(opts.base, absTarget) - var target = opts.absolute ? absTarget : relativeTarget - - chain( - [ - [ensureFromIsNotSource, absTarget, to], - [fs, 'stat', absTarget], - [rm, to, opts], - [mkdir, path.dirname(to)], - [fs, 'symlink', target, to, 'junction'] - ], - cb - ) -} diff --git a/deps/npm/node_modules/gentle-fs/lib/rm.js b/deps/npm/node_modules/gentle-fs/lib/rm.js deleted file mode 100644 index 00760c66f23..00000000000 --- a/deps/npm/node_modules/gentle-fs/lib/rm.js +++ /dev/null @@ -1,256 +0,0 @@ -'use strict' - -const path = require('path') -const validate = require('aproba') -const fs = require('graceful-fs') -const isInside = require('path-is-inside') -const vacuum = require('fs-vacuum') -const chain = require('slide').chain -const asyncMap = require('slide').asyncMap -const readCmdShim = require('read-cmd-shim') -const iferr = require('iferr') - -exports = module.exports = rm - -function rm (target, opts, cb) { - var targetPath = path.normalize(path.resolve(opts.prefix, target)) - if (opts.prefixes.indexOf(targetPath) !== -1) { - return cb(new Error('May not delete: ' + targetPath)) - } - var options = {} - if (opts.force) { options.purge = true } - if (opts.base) options.base = path.normalize(path.resolve(opts.prefix, opts.base)) - - if (!opts.gently) { - options.purge = true - return vacuum(targetPath, options, cb) - } - - var parent = options.base = options.base || path.normalize(opts.prefix) - - // Do all the async work we'll need to do in order to tell if this is a - // safe operation - chain([ - [isEverInside, parent, opts.prefixes, opts.log], - [readLinkOrShim, targetPath], - [isEverInside, targetPath, opts.prefixes, opts.log], - [isEverInside, targetPath, [parent], opts.log] - ], function (er, results) { - if (er) { - if (er.code === 'ENOENT') return cb() - return cb(er) - } - var parentInfo = { - path: parent, - managed: results[0] - } - var targetInfo = { - path: targetPath, - symlink: results[1], - managed: results[2], - inParent: results[3] - } - - isSafeToRm(parentInfo, targetInfo, opts.name, opts.log, iferr(cb, thenRemove)) - - function thenRemove (toRemove, removeBase) { - if (!toRemove) return cb() - if (removeBase) options.base = removeBase - return vacuum(toRemove, options, cb) - } - }) -} - -exports._isSafeToRm = isSafeToRm -function isSafeToRm (parent, target, pkgName, log, cb) { - log.silly('gentlyRm', 'parent.path =', parent.path) - log.silly('gentlyRm', 'parent.managed =', - parent.managed && parent.managed.target + ' is in ' + parent.managed.path) - log.silly('gentlyRm', 'target.path = ', target.path) - log.silly('gentlyRm', 'target.symlink =', target.symlink) - log.silly('gentlyRm', 'target.managed =', - target.managed && target.managed.target + ' is in ' + target.managed.path) - log.silly('gentlyRm', 'target.inParent = ', target.inParent) - - // The parent directory or something it symlinks to must eventually be in - // a folder that we maintain. - if (!parent.managed) { - log.info('gentlyRm', parent.path, - 'is not contained in any directory ' + pkgName + ' is known to control or ' + - 'any place they link to') - return cb(clobberFail(target.path, 'containing path ' + parent.path + - " isn't under " + pkgName + "'s control")) - } - - // The target or something it symlinks to must eventually be in the parent - // or something the parent symlinks to - if (target.inParent) { - var actualTarget = target.inParent.target - var targetsParent = target.inParent.path - // if the target.path was what we found in some version of parent, remove - // using that parent as the base - if (target.path === actualTarget) { - return cb(null, target.path, targetsParent) - } else { - // If something the target.path links to was what was found, just - // remove target.path in the location it was found. - return cb(null, target.path, path.dirname(target.path)) - } - } - - // If the target is in a managed directory and is in a symlink, but was - // not in our parent that usually means someone else installed a bin file - // with the same name as one of our bin files. - if (target.managed && target.symlink) { - log.warn('rm', 'not removing', target.path, - "as it wasn't installed by", parent.path) - return cb() - } - - if (target.symlink) { - return cb(clobberFail(target.path, target.symlink + - ' symlink target is not controlled by ' + pkgName + ' ' + parent.path)) - } else { - return cb(clobberFail(target.path, 'is outside ' + parent.path + - ' and not a link')) - } -} - -function clobberFail (target, msg) { - validate('SS', arguments) - var er = new Error('Refusing to delete ' + target + ': ' + msg) - er.code = 'EEXIST' - er.path = target - return er -} - -function isENOENT (err) { - return err && err.code === 'ENOENT' -} - -function notENOENT (err) { - return !isENOENT(err) -} - -function skipENOENT (cb) { - return function (err, value) { - if (isENOENT(err)) { - return cb(null, false) - } else { - return cb(err, value) - } - } -} - -function errorsToValues (fn) { - return function () { - var args = Array.prototype.slice.call(arguments) - var cb = args.pop() - args.push(function (err, value) { - if (err) { - return cb(null, err) - } else { - return cb(null, value) - } - }) - fn.apply(null, args) - } -} - -function isNotError (value) { - return !(value instanceof Error) -} - -exports._isEverInside = isEverInside -// return the first of path, where target (or anything it symlinks to) -// isInside the path (or anything it symlinks to) -function isEverInside (target, paths, log, cb) { - validate('SAOF', arguments) - asyncMap(paths, errorsToValues(readAllLinks), iferr(cb, function (resolvedPaths) { - var errorFree = resolvedPaths.filter(isNotError) - if (errorFree.length === 0) { - var badErrors = resolvedPaths.filter(notENOENT) - if (badErrors.length === 0) { - return cb(null, false) - } else { - return cb(badErrors[0]) - } - } - readAllLinks(target, iferr(skipENOENT(cb), function (targets) { - cb(null, areAnyInsideAny(targets, errorFree, log)) - })) - })) -} - -exports._areAnyInsideAny = areAnyInsideAny -// Return the first path found that any target is inside -function areAnyInsideAny (targets, paths, log) { - validate('AAO', arguments) - var toCheck = [] - paths.forEach(function (path) { - targets.forEach(function (target) { - toCheck.push([target, path]) - }) - }) - for (var ii = 0; ii < toCheck.length; ++ii) { - var target = toCheck[ii][0] - var path = toCheck[ii][1] - var inside = isInside(target, path) - if (!inside) log.silly('isEverInside', target, 'is not inside', path) - if (inside && path) return inside && path && {target: target, path: path} - } - return false -} - -exports._readAllLinks = readAllLinks -// resolves chains of symlinks of unlimited depth, returning a list of paths -// it's seen in the process when it hits either a symlink cycle or a -// non-symlink -function readAllLinks (path, cb) { - validate('SF', arguments) - var seen = {} - _readAllLinks(path) - - function _readAllLinks (path) { - if (seen[path]) return cb(null, Object.keys(seen)) - seen[path] = true - resolveSymlink(path, iferr(cb, _readAllLinks)) - } -} - -exports._resolveSymlink = resolveSymlink -var resolvedPaths = {} -function resolveSymlink (symlink, cb) { - validate('SF', arguments) - var cached = resolvedPaths[symlink] - if (cached) return cb(null, cached) - - readLinkOrShim(symlink, iferr(cb, function (symlinkTarget) { - if (symlinkTarget) { - resolvedPaths[symlink] = path.resolve(path.dirname(symlink), symlinkTarget) - } else { - resolvedPaths[symlink] = symlink - } - return cb(null, resolvedPaths[symlink]) - })) -} - -exports._readLinkOrShim = readLinkOrShim -function readLinkOrShim (path, cb) { - validate('SF', arguments) - fs.lstat(path, iferr(cb, function (stat) { - if (stat.isSymbolicLink()) { - fs.readlink(path, cb) - } else { - readCmdShim(path, function (er, source) { - if (!er) return cb(null, source) - // lstat wouldn't return an error on these, so we don't either. - if (er.code === 'ENOTASHIM' || er.code === 'EISDIR') { - return cb(null, null) - } else { - return cb(er) - } - }) - } - })) -} diff --git a/deps/npm/node_modules/gentle-fs/package.json b/deps/npm/node_modules/gentle-fs/package.json deleted file mode 100644 index ea08e40c430..00000000000 --- a/deps/npm/node_modules/gentle-fs/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_from": "gentle-fs@latest", - "_id": "gentle-fs@2.0.1", - "_inBundle": false, - "_integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", - "_location": "/gentle-fs", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "gentle-fs@latest", - "name": "gentle-fs", - "escapedName": "gentle-fs", - "rawSpec": "latest", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_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", - "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", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - }, - "deprecated": false, - "description": "Gentle Filesystem operations", - "devDependencies": { - "dezalgo": "^1.0.3", - "nyc": "^11.1.0", - "require-inject": "^1.4.2", - "standard": "^10.0.3", - "standard-version": "^4.2.0", - "tap": "^10.7.2", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" - }, - "files": [ - "index.js", - "lib" - ], - "homepage": "https://github.com/npm/gentle-fs#readme", - "keywords": [ - "npm", - "gentle", - "fs" - ], - "license": "Artistic-2.0", - "main": "index.js", - "name": "gentle-fs", - "repository": { - "type": "git", - "url": "git://github.com/npm/gentle-fs.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/*.js 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/glob/LICENSE b/deps/npm/node_modules/glob/LICENSE deleted file mode 100644 index 19129e315fe..00000000000 --- a/deps/npm/node_modules/glob/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/glob/README.md b/deps/npm/node_modules/glob/README.md deleted file mode 100644 index baa1d1ba865..00000000000 --- a/deps/npm/node_modules/glob/README.md +++ /dev/null @@ -1,368 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -Install with npm - -``` -npm i glob -``` - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) -* `absolute` Set to true to always receive absolute paths for matched - files. Unlike `realpath`, this also affects the values returned in - the `match` event. - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -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.3, 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. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.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. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/deps/npm/node_modules/glob/changelog.md b/deps/npm/node_modules/glob/changelog.md deleted file mode 100644 index 41636771e3a..00000000000 --- a/deps/npm/node_modules/glob/changelog.md +++ /dev/null @@ -1,67 +0,0 @@ -## 7.0 - -- Raise error if `options.cwd` is specified, and not a directory - -## 6.0 - -- Remove comment and negation pattern support -- Ignore patterns are always in `dot:true` mode - -## 5.0 - -- Deprecate comment and negation patterns -- Fix regression in `mark` and `nodir` options from making all cache - keys absolute path. -- Abort if `fs.readdir` returns an error that's unexpected -- Don't emit `match` events for ignored items -- Treat ENOTSUP like ENOTDIR in readdir - -## 4.5 - -- Add `options.follow` to always follow directory symlinks in globstar -- Add `options.realpath` to call `fs.realpath` on all results -- Always cache based on absolute path - -## 4.4 - -- Add `options.ignore` -- Fix handling of broken symlinks - -## 4.3 - -- Bump minimatch to 2.x -- Pass all tests on Windows - -## 4.2 - -- Add `glob.hasMagic` function -- Add `options.nodir` flag - -## 4.1 - -- Refactor sync and async implementations for performance -- Throw if callback provided to sync glob function -- Treat symbolic links in globstar results the same as Bash 4.3 - -## 4.0 - -- Use `^` for dependency versions (bumped major because this breaks - older npm versions) -- Ensure callbacks are only ever called once -- switch to ISC license - -## 3.x - -- Rewrite in JavaScript -- Add support for setting root, cwd, and windows support -- Cache many fs calls -- Add globstar support -- emit match events - -## 2.x - -- Use `glob.h` and `fnmatch.h` from NetBSD - -## 1.x - -- `glob.h` static binding. diff --git a/deps/npm/node_modules/glob/common.js b/deps/npm/node_modules/glob/common.js deleted file mode 100644 index 66651bb3aac..00000000000 --- a/deps/npm/node_modules/glob/common.js +++ /dev/null @@ -1,240 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - self.absolute = !!options.absolute - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = path.resolve(options.cwd) - self.changedCwd = self.cwd !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - // TODO: is an absolute `cwd` supposed to be resolved against `root`? - // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') - self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) - if (process.platform === "win32") - self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - var notDir = !(/\/$/.test(e)) - var c = self.cache[e] || self.cache[makeAbs(self, e)] - if (notDir && c) - notDir = c !== 'DIR' && !Array.isArray(c) - return notDir - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - - if (process.platform === 'win32') - abs = abs.replace(/\\/g, '/') - - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/deps/npm/node_modules/glob/glob.js b/deps/npm/node_modules/glob/glob.js deleted file mode 100644 index 58dec0f6c2b..00000000000 --- a/deps/npm/node_modules/glob/glob.js +++ /dev/null @@ -1,790 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var rp = require('fs.realpath') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - - if (!pattern) - return false - - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - this._processing = 0 - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - var sync = true - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - sync = false - - function done () { - --self._processing - if (self._processing <= 0) { - if (sync) { - process.nextTick(function () { - self._finish() - }) - } else { - self._finish() - } - } - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - rp.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = isAbsolute(e) ? e : this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) - e = abs - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er && er.code === 'ENOENT') - return cb() - - var isSym = lstat && lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - this.emit('error', error) - this.abort() - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) - return cb(null, false, stat) - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return cb() - - return cb(null, c, stat) -} diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE b/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE deleted file mode 100644 index 5bd884c252a..00000000000 --- a/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE +++ /dev/null @@ -1,43 +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. - ----- - -This library bundles a version of the `fs.realpath` and `fs.realpathSync` -methods from Node.js v0.10 under the terms of the Node.js MIT license. - -Node's license follows, also included at the header of `old.js` which contains -the licensed code: - - 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. diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md b/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md deleted file mode 100644 index a42ceac6266..00000000000 --- a/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# fs.realpath - -A backwards-compatible fs.realpath for Node v6 and above - -In Node v6, the JavaScript implementation of fs.realpath was replaced -with a faster (but less resilient) native implementation. That raises -new and platform-specific errors and cannot handle long or excessively -symlink-looping paths. - -This module handles those cases by detecting the new errors and -falling back to the JavaScript implementation. On versions of Node -prior to v6, it has no effect. - -## USAGE - -```js -var rp = require('fs.realpath') - -// async version -rp.realpath(someLongAndLoopingPath, function (er, real) { - // the ELOOP was handled, but it was a bit slower -}) - -// sync version -var real = rp.realpathSync(someLongAndLoopingPath) - -// monkeypatch at your own risk! -// This replaces the fs.realpath/fs.realpathSync builtins -rp.monkeypatch() - -// un-do the monkeypatching -rp.unmonkeypatch() -``` diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js b/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js deleted file mode 100644 index b09c7c7e636..00000000000 --- a/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js +++ /dev/null @@ -1,66 +0,0 @@ -module.exports = realpath -realpath.realpath = realpath -realpath.sync = realpathSync -realpath.realpathSync = realpathSync -realpath.monkeypatch = monkeypatch -realpath.unmonkeypatch = unmonkeypatch - -var fs = require('fs') -var origRealpath = fs.realpath -var origRealpathSync = fs.realpathSync - -var version = process.version -var ok = /^v[0-5]\./.test(version) -var old = require('./old.js') - -function newError (er) { - return er && er.syscall === 'realpath' && ( - er.code === 'ELOOP' || - er.code === 'ENOMEM' || - er.code === 'ENAMETOOLONG' - ) -} - -function realpath (p, cache, cb) { - if (ok) { - return origRealpath(p, cache, cb) - } - - if (typeof cache === 'function') { - cb = cache - cache = null - } - origRealpath(p, cache, function (er, result) { - if (newError(er)) { - old.realpath(p, cache, cb) - } else { - cb(er, result) - } - }) -} - -function realpathSync (p, cache) { - if (ok) { - return origRealpathSync(p, cache) - } - - try { - return origRealpathSync(p, cache) - } catch (er) { - if (newError(er)) { - return old.realpathSync(p, cache) - } else { - throw er - } - } -} - -function monkeypatch () { - fs.realpath = realpath - fs.realpathSync = realpathSync -} - -function unmonkeypatch () { - fs.realpath = origRealpath - fs.realpathSync = origRealpathSync -} diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js b/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js deleted file mode 100644 index b40305e73fd..00000000000 --- a/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js +++ /dev/null @@ -1,303 +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. - -var pathModule = require('path'); -var isWindows = process.platform === 'win32'; -var fs = require('fs'); - -// JavaScript implementation of realpath, ported from node pre-v6 - -var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); - -function rethrow() { - // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and - // is fairly slow to generate. - var callback; - if (DEBUG) { - var backtrace = new Error; - callback = debugCallback; - } else - callback = missingCallback; - - return callback; - - function debugCallback(err) { - if (err) { - backtrace.message = err.message; - err = backtrace; - missingCallback(err); - } - } - - function missingCallback(err) { - if (err) { - if (process.throwDeprecation) - throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs - else if (!process.noDeprecation) { - var msg = 'fs: missing callback ' + (err.stack || err.message); - if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - } - } - } -} - -function maybeCallback(cb) { - return typeof cb === 'function' ? cb : rethrow(); -} - -var normalize = pathModule.normalize; - -// Regexp that finds the next partion of a (partial) path -// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { - var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; -} else { - var nextPartRe = /(.*?)(?:[\/]+|$)/g; -} - -// Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { - var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; -} else { - var splitRootRe = /^[\/]*/; -} - -exports.realpathSync = function realpathSync(p, cache) { - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return cache[p]; - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstatSync(base); - knownHard[base] = true; - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - // NB: p.length changes. - while (pos < p.length) { - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - continue; - } - - var resolvedLink; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // some known symbolic link. no need to stat again. - resolvedLink = cache[base]; - } else { - var stat = fs.lstatSync(base); - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - continue; - } - - // read the link if it wasn't read before - // dev/ino always return 0 on windows, so skip the check. - var linkTarget = null; - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - linkTarget = seenLinks[id]; - } - } - if (linkTarget === null) { - fs.statSync(base); - linkTarget = fs.readlinkSync(base); - } - resolvedLink = pathModule.resolve(previous, linkTarget); - // track this, if given a cache. - if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; - } - - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } - - if (cache) cache[original] = p; - - return p; -}; - - -exports.realpath = function realpath(p, cache, cb) { - if (typeof cb !== 'function') { - cb = maybeCallback(cache); - cache = null; - } - - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return process.nextTick(cb.bind(null, null, cache[p])); - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstat(base, function(err) { - if (err) return cb(err); - knownHard[base] = true; - LOOP(); - }); - } else { - process.nextTick(LOOP); - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - function LOOP() { - // stop if scanned past end of path - if (pos >= p.length) { - if (cache) cache[original] = p; - return cb(null, p); - } - - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - return process.nextTick(LOOP); - } - - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // known symbolic link. no need to stat again. - return gotResolvedLink(cache[base]); - } - - return fs.lstat(base, gotStat); - } - - function gotStat(err, stat) { - if (err) return cb(err); - - // if not a symlink, skip to the next path part - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - return process.nextTick(LOOP); - } - - // stat & read the link if not read before - // call gotTarget as soon as the link target is known - // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - return gotTarget(null, seenLinks[id], base); - } - } - fs.stat(base, function(err) { - if (err) return cb(err); - - fs.readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; - gotTarget(err, target); - }); - }); - } - - function gotTarget(err, target, base) { - if (err) return cb(err); - - var resolvedLink = pathModule.resolve(previous, target); - if (cache) cache[base] = resolvedLink; - gotResolvedLink(resolvedLink); - } - - function gotResolvedLink(resolvedLink) { - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } -}; 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 3aa9a5eb531..00000000000 --- 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/LICENSE b/deps/npm/node_modules/glob/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e315fe..00000000000 --- a/deps/npm/node_modules/glob/node_modules/minimatch/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/glob/node_modules/minimatch/README.md b/deps/npm/node_modules/glob/node_modules/minimatch/README.md deleted file mode 100644 index ad72b8133ea..00000000000 --- a/deps/npm/node_modules/glob/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/glob/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/glob/node_modules/minimatch/minimatch.js deleted file mode 100644 index 5b5f8cf444d..00000000000 --- a/deps/npm/node_modules/glob/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 (?:) - 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/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 ed2ec1fdd78..00000000000 --- 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 <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/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 0478be81eab..00000000000 --- 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/.npmignore b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index ae5d8c36ac6..00000000000 --- a/deps/npm/node_modules/glob/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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e4148c..00000000000 --- a/deps/npm/node_modules/glob/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 <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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index 08e918c0db9..00000000000 --- a/deps/npm/node_modules/glob/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 `` and ``. 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: `[ , ]`. - -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 <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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index 1685a762932..00000000000 --- a/deps/npm/node_modules/glob/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/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 23f4e2cc692..00000000000 --- 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/.travis.yml b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c8a5..00000000000 --- a/deps/npm/node_modules/glob/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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b441..00000000000 --- a/deps/npm/node_modules/glob/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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1be4..00000000000 --- a/deps/npm/node_modules/glob/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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217b61..00000000000 --- a/deps/npm/node_modules/glob/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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812e50..00000000000 --- a/deps/npm/node_modules/glob/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/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 69797016b2a..00000000000 --- 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/node_modules/concat-map/test/map.js b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022f6d..00000000000 --- a/deps/npm/node_modules/glob/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/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 e7c21ffc56f..00000000000 --- 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 c329ba05343..00000000000 --- 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/index.js b/deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js deleted file mode 100644 index 22aa6c35607..00000000000 --- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -} - -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); - - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/license b/deps/npm/node_modules/glob/node_modules/path-is-absolute/license deleted file mode 100644 index 654d0bfe943..00000000000 --- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/deps/npm/node_modules/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 39ea93a966d..00000000000 --- 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/node_modules/path-is-absolute/readme.md b/deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md deleted file mode 100644 index 8dbdf5fcb77..00000000000 --- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,59 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) [ponyfill](https://ponyfill.com) - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -const pathIsAbsolute = require('path-is-absolute'); - -// Running on Linux -pathIsAbsolute('/home/foo'); -//=> true -pathIsAbsolute('C:/Users/foo'); -//=> false - -// Running on Windows -pathIsAbsolute('C:/Users/foo'); -//=> true -pathIsAbsolute('/home/foo'); -//=> false - -// Running on any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -pathIsAbsolute.posix('C:/Users/foo'); -//=> false -pathIsAbsolute.win32('C:/Users/foo'); -//=> true -pathIsAbsolute.win32('/home/foo'); -//=> false -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -POSIX specific version. - -### pathIsAbsolute.win32(path) - -Windows specific version. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json deleted file mode 100644 index afa4b50f163..00000000000 --- a/deps/npm/node_modules/glob/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_from": "glob@~7.1.2", - "_id": "glob@7.1.2", - "_inBundle": false, - "_integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "_location": "/glob", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "glob@~7.1.2", - "name": "glob", - "escapedName": "glob", - "rawSpec": "~7.1.2", - "saveSpec": null, - "fetchSpec": "~7.1.2" - }, - "_requiredBy": [ - "#USER", - "/", - "/cacache", - "/init-package-json", - "/node-gyp", - "/pacote", - "/read-package-json", - "/rimraf", - "/standard/standard-engine/deglob", - "/tap", - "/tap/tap-mocha-reporter" - ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "_shasum": "c19c9df9a028702d678612384a6552404c636d15", - "_spec": "glob@~7.1.2", - "_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/node-glob/issues" - }, - "bundleDependencies": false, - "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" - }, - "deprecated": false, - "description": "a little globber", - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^7.1.2", - "tick": "0.0.6" - }, - "engines": { - "node": "*" - }, - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "homepage": "https://github.com/isaacs/node-glob#readme", - "license": "ISC", - "main": "glob.js", - "name": "glob", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "scripts": { - "bench": "bash benchmark.sh", - "benchclean": "node benchclean.js", - "prepublish": "npm run benchclean", - "prof": "bash prof.sh && cat profile.txt", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" - }, - "version": "7.1.2" -} diff --git a/deps/npm/node_modules/glob/sync.js b/deps/npm/node_modules/glob/sync.js deleted file mode 100644 index c952134baa7..00000000000 --- a/deps/npm/node_modules/glob/sync.js +++ /dev/null @@ -1,486 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var rp = require('fs.realpath') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = rp.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - if (isIgnored(this, e)) - return - - var abs = this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) { - e = abs - } - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - if (er.code === 'ENOENT') { - // lstat failed, doesn't exist - return null - } - } - - var isSym = lstat && lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - throw error - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return false - } - } - - if (lstat && lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/deps/npm/node_modules/graceful-fs/LICENSE b/deps/npm/node_modules/graceful-fs/LICENSE deleted file mode 100644 index 9d2c8036969..00000000000 --- a/deps/npm/node_modules/graceful-fs/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, 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/graceful-fs/README.md b/deps/npm/node_modules/graceful-fs/README.md deleted file mode 100644 index 5273a50ad6a..00000000000 --- a/deps/npm/node_modules/graceful-fs/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# graceful-fs - -graceful-fs functions as a drop-in replacement for the fs module, -making various improvements. - -The improvements are meant to normalize behavior across different -platforms and environments, and to make filesystem access more -resilient to errors. - -## Improvements over [fs module](https://nodejs.org/api/fs.html) - -* Queues up `open` and `readdir` calls, and retries them once - something closes if there is an EMFILE error from too many file - descriptors. -* fixes `lchmod` for Node versions prior to 0.6.2. -* implements `fs.lutimes` if possible. Otherwise it becomes a noop. -* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or - `lchown` if the user isn't root. -* makes `lchmod` and `lchown` become noops, if not available. -* retries reading a file if `read` results in EAGAIN error. - -On Windows, it retries renaming a file for up to one second if `EACCESS` -or `EPERM` error occurs, likely because antivirus software has locked -the directory. - -## USAGE - -```javascript -// use just like fs -var fs = require('graceful-fs') - -// now go and do stuff with it... -fs.readFileSync('some-file-or-whatever') -``` - -## Global Patching - -If you want to patch the global fs module (or any other fs-like -module) you can do this: - -```javascript -// Make sure to read the caveat below. -var realFs = require('fs') -var gracefulFs = require('graceful-fs') -gracefulFs.gracefulify(realFs) -``` - -This should only ever be done at the top-level application layer, in -order to delay on EMFILE errors from any fs-using dependencies. You -should **not** do this in a library, because it can cause unexpected -delays in other parts of the program. - -## Changes - -This module is fairly stable at this point, and used by a lot of -things. That being said, because it implements a subtle behavior -change in a core part of the node API, even modest changes can be -extremely breaking, and the versioning is thus biased towards -bumping the major when in doubt. - -The main change between major versions has been switching between -providing a fully-patched `fs` module vs monkey-patching the node core -builtin, and the approach by which a non-monkey-patched `fs` was -created. - -The goal is to trade `EMFILE` errors for slower fs operations. So, if -you try to open a zillion files, rather than crashing, `open` -operations will be queued up and wait for something else to `close`. - -There are advantages to each approach. Monkey-patching the fs means -that no `EMFILE` errors can possibly occur anywhere in your -application, because everything is using the same core `fs` module, -which is patched. However, it can also obviously cause undesirable -side-effects, especially if the module is loaded multiple times. - -Implementing a separate-but-identical patched `fs` module is more -surgical (and doesn't run the risk of patching multiple times), but -also imposes the challenge of keeping in sync with the core module. - -The current approach loads the `fs` module, and then creates a -lookalike object that has all the same methods, except a few that are -patched. It is safe to use in all versions of Node from 0.8 through -7.0. - -### v4 - -* Do not monkey-patch the fs module. This module may now be used as a - drop-in dep, and users can opt into monkey-patching the fs builtin - if their app requires it. - -### v3 - -* Monkey-patch fs, because the eval approach no longer works on recent - node. -* fixed possible type-error throw if rename fails on windows -* verify that we *never* get EMFILE errors -* Ignore ENOSYS from chmod/chown -* clarify that graceful-fs must be used as a drop-in - -### v2.1.0 - -* Use eval rather than monkey-patching fs. -* readdir: Always sort the results -* win32: requeue a file if error has an OK status - -### v2.0 - -* A return to monkey patching -* wrap process.cwd - -### v1.1 - -* wrap readFile -* Wrap fs.writeFile. -* readdir protection -* Don't clobber the fs builtin -* Handle fs.read EAGAIN errors by trying again -* Expose the curOpen counter -* No-op lchown/lchmod if not implemented -* fs.rename patch only for win32 -* Patch fs.rename to handle AV software on Windows -* Close #4 Chown should not fail on einval or eperm if non-root -* Fix isaacs/fstream#1 Only wrap fs one time -* Fix #3 Start at 1024 max files, then back off on EMFILE -* lutimes that doens't blow up on Linux -* A full on-rewrite using a queue instead of just swallowing the EMFILE error -* Wrap Read/Write streams as well - -### 1.0 - -* Update engines for node 0.6 -* Be lstat-graceful on Windows -* first diff --git a/deps/npm/node_modules/graceful-fs/fs.js b/deps/npm/node_modules/graceful-fs/fs.js deleted file mode 100644 index 8ad4a383965..00000000000 --- a/deps/npm/node_modules/graceful-fs/fs.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict' - -var fs = require('fs') - -module.exports = clone(fs) - -function clone (obj) { - if (obj === null || typeof obj !== 'object') - return obj - - if (obj instanceof Object) - var copy = { __proto__: obj.__proto__ } - else - var copy = Object.create(null) - - Object.getOwnPropertyNames(obj).forEach(function (key) { - Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) - }) - - return copy -} diff --git a/deps/npm/node_modules/graceful-fs/graceful-fs.js b/deps/npm/node_modules/graceful-fs/graceful-fs.js deleted file mode 100644 index 33b30d2e986..00000000000 --- a/deps/npm/node_modules/graceful-fs/graceful-fs.js +++ /dev/null @@ -1,262 +0,0 @@ -var fs = require('fs') -var polyfills = require('./polyfills.js') -var legacy = require('./legacy-streams.js') -var queue = [] - -var util = require('util') - -function noop () {} - -var debug = noop -if (util.debuglog) - debug = util.debuglog('gfs4') -else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) - debug = function() { - var m = util.format.apply(util, arguments) - m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') - console.error(m) - } - -if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug(queue) - require('assert').equal(queue.length, 0) - }) -} - -module.exports = patch(require('./fs.js')) -if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) { - module.exports = patch(fs) -} - -// Always patch fs.close/closeSync, because we want to -// retry() whenever a close happens *anywhere* in the program. -// This is essential when multiple graceful-fs instances are -// in play at the same time. -module.exports.close = -fs.close = (function (fs$close) { return function (fd, cb) { - return fs$close.call(fs, fd, function (err) { - if (!err) - retry() - - if (typeof cb === 'function') - cb.apply(this, arguments) - }) -}})(fs.close) - -module.exports.closeSync = -fs.closeSync = (function (fs$closeSync) { return function (fd) { - // Note that graceful-fs also retries when fs.closeSync() fails. - // Looks like a bug to me, although it's probably a harmless one. - var rval = fs$closeSync.apply(fs, arguments) - retry() - return rval -}})(fs.closeSync) - -function patch (fs) { - // Everything that references the open() function needs to be in here - polyfills(fs) - fs.gracefulify = patch - fs.FileReadStream = ReadStream; // Legacy name. - fs.FileWriteStream = WriteStream; // Legacy name. - fs.createReadStream = createReadStream - fs.createWriteStream = createWriteStream - var fs$readFile = fs.readFile - fs.readFile = readFile - function readFile (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$readFile(path, options, cb) - - function go$readFile (path, options, cb) { - return fs$readFile(path, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readFile, [path, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - var fs$writeFile = fs.writeFile - fs.writeFile = writeFile - function writeFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$writeFile(path, data, options, cb) - - function go$writeFile (path, data, options, cb) { - return fs$writeFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$writeFile, [path, data, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - var fs$appendFile = fs.appendFile - if (fs$appendFile) - fs.appendFile = appendFile - function appendFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$appendFile(path, data, options, cb) - - function go$appendFile (path, data, options, cb) { - return fs$appendFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$appendFile, [path, data, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - var fs$readdir = fs.readdir - fs.readdir = readdir - function readdir (path, options, cb) { - var args = [path] - if (typeof options !== 'function') { - args.push(options) - } else { - cb = options - } - args.push(go$readdir$cb) - - return go$readdir(args) - - function go$readdir$cb (err, files) { - if (files && files.sort) - files.sort() - - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readdir, [args]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - } - } - - function go$readdir (args) { - return fs$readdir.apply(fs, args) - } - - if (process.version.substr(0, 4) === 'v0.8') { - var legStreams = legacy(fs) - ReadStream = legStreams.ReadStream - WriteStream = legStreams.WriteStream - } - - var fs$ReadStream = fs.ReadStream - ReadStream.prototype = Object.create(fs$ReadStream.prototype) - ReadStream.prototype.open = ReadStream$open - - var fs$WriteStream = fs.WriteStream - WriteStream.prototype = Object.create(fs$WriteStream.prototype) - WriteStream.prototype.open = WriteStream$open - - fs.ReadStream = ReadStream - fs.WriteStream = WriteStream - - function ReadStream (path, options) { - if (this instanceof ReadStream) - return fs$ReadStream.apply(this, arguments), this - else - return ReadStream.apply(Object.create(ReadStream.prototype), arguments) - } - - function ReadStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - if (that.autoClose) - that.destroy() - - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - that.read() - } - }) - } - - function WriteStream (path, options) { - if (this instanceof WriteStream) - return fs$WriteStream.apply(this, arguments), this - else - return WriteStream.apply(Object.create(WriteStream.prototype), arguments) - } - - function WriteStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - that.destroy() - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - } - }) - } - - function createReadStream (path, options) { - return new ReadStream(path, options) - } - - function createWriteStream (path, options) { - return new WriteStream(path, options) - } - - var fs$open = fs.open - fs.open = open - function open (path, flags, mode, cb) { - if (typeof mode === 'function') - cb = mode, mode = null - - return go$open(path, flags, mode, cb) - - function go$open (path, flags, mode, cb) { - return fs$open(path, flags, mode, function (err, fd) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$open, [path, flags, mode, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - return fs -} - -function enqueue (elem) { - debug('ENQUEUE', elem[0].name, elem[1]) - queue.push(elem) -} - -function retry () { - var elem = queue.shift() - if (elem) { - debug('RETRY', elem[0].name, elem[1]) - elem[0].apply(null, elem[1]) - } -} diff --git a/deps/npm/node_modules/graceful-fs/legacy-streams.js b/deps/npm/node_modules/graceful-fs/legacy-streams.js deleted file mode 100644 index d617b50fc08..00000000000 --- a/deps/npm/node_modules/graceful-fs/legacy-streams.js +++ /dev/null @@ -1,118 +0,0 @@ -var Stream = require('stream').Stream - -module.exports = legacy - -function legacy (fs) { - return { - ReadStream: ReadStream, - WriteStream: WriteStream - } - - function ReadStream (path, options) { - if (!(this instanceof ReadStream)) return new ReadStream(path, options); - - Stream.call(this); - - var self = this; - - this.path = path; - this.fd = null; - this.readable = true; - this.paused = false; - - this.flags = 'r'; - this.mode = 438; /*=0666*/ - this.bufferSize = 64 * 1024; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.encoding) this.setEncoding(this.encoding); - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.end === undefined) { - this.end = Infinity; - } else if ('number' !== typeof this.end) { - throw TypeError('end must be a Number'); - } - - if (this.start > this.end) { - throw new Error('start must be <= end'); - } - - this.pos = this.start; - } - - if (this.fd !== null) { - process.nextTick(function() { - self._read(); - }); - return; - } - - fs.open(this.path, this.flags, this.mode, function (err, fd) { - if (err) { - self.emit('error', err); - self.readable = false; - return; - } - - self.fd = fd; - self.emit('open', fd); - self._read(); - }) - } - - function WriteStream (path, options) { - if (!(this instanceof WriteStream)) return new WriteStream(path, options); - - Stream.call(this); - - this.path = path; - this.fd = null; - this.writable = true; - - this.flags = 'w'; - this.encoding = 'binary'; - this.mode = 438; /*=0666*/ - this.bytesWritten = 0; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.start < 0) { - throw new Error('start must be >= zero'); - } - - this.pos = this.start; - } - - this.busy = false; - this._queue = []; - - if (this.fd === null) { - this._open = fs.open; - this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); - this.flush(); - } - } -} diff --git a/deps/npm/node_modules/graceful-fs/package.json b/deps/npm/node_modules/graceful-fs/package.json deleted file mode 100644 index dada1f56f07..00000000000 --- a/deps/npm/node_modules/graceful-fs/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_from": "graceful-fs@~4.1.11", - "_id": "graceful-fs@4.1.11", - "_integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "_location": "/graceful-fs", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "graceful-fs@~4.1.11", - "name": "graceful-fs", - "escapedName": "graceful-fs", - "rawSpec": "~4.1.11", - "saveSpec": null, - "fetchSpec": "~4.1.11" - }, - "_requiredBy": [ - "/", - "/cacache", - "/cmd-shim", - "/fs-vacuum", - "/fs-write-stream-atomic", - "/fstream", - "/node-gyp", - "/npm-registry-client", - "/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, - "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", - "rimraf": "^2.2.8", - "tap": "^5.4.2" - }, - "directories": { - "test": "test" - }, - "engines": { - "node": ">=0.4.0" - }, - "files": [ - "fs.js", - "graceful-fs.js", - "legacy-streams.js", - "polyfills.js" - ], - "homepage": "https://github.com/isaacs/node-graceful-fs#readme", - "keywords": [ - "fs", - "module", - "reading", - "retry", - "retries", - "queue", - "error", - "errors", - "handling", - "EMFILE", - "EAGAIN", - "EINVAL", - "EPERM", - "EACCESS" - ], - "license": "ISC", - "main": "graceful-fs.js", - "name": "graceful-fs", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/node-graceful-fs.git" - }, - "scripts": { - "test": "node test.js | tap -" - }, - "version": "4.1.11" -} diff --git a/deps/npm/node_modules/graceful-fs/polyfills.js b/deps/npm/node_modules/graceful-fs/polyfills.js deleted file mode 100644 index 4c6aca78a3d..00000000000 --- a/deps/npm/node_modules/graceful-fs/polyfills.js +++ /dev/null @@ -1,330 +0,0 @@ -var fs = require('./fs.js') -var constants = require('constants') - -var origCwd = process.cwd -var cwd = null - -var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform - -process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process) - return cwd -} -try { - process.cwd() -} catch (er) {} - -var chdir = process.chdir -process.chdir = function(d) { - cwd = null - chdir.call(process, d) -} - -module.exports = patch - -function patch (fs) { - // (re-)implement some things that are known busted or missing. - - // lchmod, broken prior to 0.6.2 - // back-port the fix here. - if (constants.hasOwnProperty('O_SYMLINK') && - process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - patchLchmod(fs) - } - - // lutimes implementation, or no-op - if (!fs.lutimes) { - patchLutimes(fs) - } - - // https://github.com/isaacs/node-graceful-fs/issues/4 - // Chown should not fail on einval or eperm if non-root. - // It should not fail on enosys ever, as this just indicates - // that a fs doesn't support the intended operation. - - fs.chown = chownFix(fs.chown) - fs.fchown = chownFix(fs.fchown) - fs.lchown = chownFix(fs.lchown) - - fs.chmod = chmodFix(fs.chmod) - fs.fchmod = chmodFix(fs.fchmod) - fs.lchmod = chmodFix(fs.lchmod) - - fs.chownSync = chownFixSync(fs.chownSync) - fs.fchownSync = chownFixSync(fs.fchownSync) - fs.lchownSync = chownFixSync(fs.lchownSync) - - fs.chmodSync = chmodFixSync(fs.chmodSync) - fs.fchmodSync = chmodFixSync(fs.fchmodSync) - fs.lchmodSync = chmodFixSync(fs.lchmodSync) - - fs.stat = statFix(fs.stat) - fs.fstat = statFix(fs.fstat) - fs.lstat = statFix(fs.lstat) - - fs.statSync = statFixSync(fs.statSync) - fs.fstatSync = statFixSync(fs.fstatSync) - fs.lstatSync = statFixSync(fs.lstatSync) - - // if lchmod/lchown do not exist, then make them no-ops - if (!fs.lchmod) { - fs.lchmod = function (path, mode, cb) { - if (cb) process.nextTick(cb) - } - fs.lchmodSync = function () {} - } - if (!fs.lchown) { - fs.lchown = function (path, uid, gid, cb) { - if (cb) process.nextTick(cb) - } - fs.lchownSync = function () {} - } - - // on Windows, A/V software can lock the directory, causing this - // to fail with an EACCES or EPERM if the directory contains newly - // created files. Try again on failure, for up to 60 seconds. - - // Set the timeout this long because some Windows Anti-Virus, such as Parity - // bit9, may lock files for up to a minute, causing npm package install - // failures. Also, take care to yield the scheduler. Windows scheduling gives - // CPU to a busy looping process, which can cause the program causing the lock - // contention to be starved of CPU by node, so the contention doesn't resolve. - if (platform === "win32") { - fs.rename = (function (fs$rename) { return function (from, to, cb) { - var start = Date.now() - var backoff = 0; - fs$rename(from, to, function CB (er) { - if (er - && (er.code === "EACCES" || er.code === "EPERM") - && Date.now() - start < 60000) { - setTimeout(function() { - fs.stat(to, function (stater, st) { - if (stater && stater.code === "ENOENT") - fs$rename(from, to, CB); - else - cb(er) - }) - }, backoff) - if (backoff < 100) - backoff += 10; - return; - } - if (cb) cb(er) - }) - }})(fs.rename) - } - - // if read() returns EAGAIN, then just try it again. - fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) { - var callback - if (callback_ && typeof callback_ === 'function') { - var eagCounter = 0 - callback = function (er, _, __) { - if (er && er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } - callback_.apply(this, arguments) - } - } - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - }})(fs.read) - - fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { - var eagCounter = 0 - while (true) { - try { - return fs$readSync.call(fs, fd, buffer, offset, length, position) - } catch (er) { - if (er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - continue - } - throw er - } - } - }})(fs.readSync) -} - -function patchLchmod (fs) { - fs.lchmod = function (path, mode, callback) { - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - if (callback) callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - if (callback) callback(err || err2) - }) - }) - }) - } - - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) - - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var threw = true - var ret - try { - ret = fs.fchmodSync(fd, mode) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } -} - -function patchLutimes (fs) { - if (constants.hasOwnProperty("O_SYMLINK")) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - if (er) { - if (cb) cb(er) - return - } - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - if (cb) cb(er || er2) - }) - }) - }) - } - - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - var ret - var threw = true - try { - ret = fs.futimesSync(fd, at, mt) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } - - } else { - fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } - fs.lutimesSync = function () {} - } -} - -function chmodFix (orig) { - if (!orig) return orig - return function (target, mode, cb) { - return orig.call(fs, target, mode, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } -} - -function chmodFixSync (orig) { - if (!orig) return orig - return function (target, mode) { - try { - return orig.call(fs, target, mode) - } catch (er) { - if (!chownErOk(er)) throw er - } - } -} - - -function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } -} - -function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er - } - } -} - - -function statFix (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, cb) { - return orig.call(fs, target, function (er, stats) { - if (!stats) return cb.apply(this, arguments) - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - if (cb) cb.apply(this, arguments) - }) - } -} - -function statFixSync (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target) { - var stats = orig.call(fs, target) - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - return stats; - } -} - -// ENOSYS means that the fs doesn't support the op. Just ignore -// that, because it doesn't matter. -// -// if there's no getuid, or if getuid() is something other -// than 0, and the error is EINVAL or EPERM, then just ignore -// it. -// -// This specific case is a silent failure in cp, install, tar, -// and most other unix tools that manage permissions. -// -// When running as root, or if other types of errors are -// encountered, then it's strict. -function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true - } - - return false -} diff --git a/deps/npm/node_modules/has-unicode/LICENSE b/deps/npm/node_modules/has-unicode/LICENSE deleted file mode 100644 index d42e25e9565..00000000000 --- a/deps/npm/node_modules/has-unicode/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2014, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/deps/npm/node_modules/has-unicode/README.md b/deps/npm/node_modules/has-unicode/README.md deleted file mode 100644 index 5a03e5991c5..00000000000 --- a/deps/npm/node_modules/has-unicode/README.md +++ /dev/null @@ -1,43 +0,0 @@ -has-unicode -=========== - -Try to guess if your terminal supports unicode - -```javascript -var hasUnicode = require("has-unicode") - -if (hasUnicode()) { - // the terminal probably has unicode support -} -``` -```javascript -var hasUnicode = require("has-unicode").tryHarder -hasUnicode(function(unicodeSupported) { - if (unicodeSupported) { - // the terminal probably has unicode support - } -}) -``` - -## Detecting Unicode - -What we actually detect is UTF-8 support, as that's what Node itself supports. -If you have a UTF-16 locale then you won't be detected as unicode capable. - -### Windows - -Since at least Windows 7, `cmd` and `powershell` have been unicode capable, -but unfortunately even then it's not guaranteed. In many localizations it -still uses legacy code pages and there's no facility short of running -programs or linking C++ that will let us detect this. As such, we -report any Windows installation as NOT unicode capable, and recommend -that you encourage your users to override this via config. - -### Unix Like Operating Systems - -We look at the environment variables `LC_ALL`, `LC_CTYPE`, and `LANG` in -that order. For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. -For `LC_CTYPE` it looks to see if the value is `UTF-8`. This is sufficient -for most POSIX systems. While locale data can be put in `/etc/locale.conf` -as well, AFAIK it's always copied into the environment. - diff --git a/deps/npm/node_modules/has-unicode/index.js b/deps/npm/node_modules/has-unicode/index.js deleted file mode 100644 index 9b0fe445401..00000000000 --- a/deps/npm/node_modules/has-unicode/index.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict" -var os = require("os") - -var hasUnicode = module.exports = function () { - // Recent Win32 platforms (>XP) CAN support unicode in the console but - // don't have to, and in non-english locales often use traditional local - // code pages. There's no way, short of windows system calls or execing - // the chcp command line program to figure this out. As such, we default - // this to false and encourage your users to override it via config if - // appropriate. - if (os.type() == "Windows_NT") { return false } - - var isUTF8 = /UTF-?8$/i - var ctype = process.env.LC_ALL || process.env.LC_CTYPE || process.env.LANG - return isUTF8.test(ctype) -} diff --git a/deps/npm/node_modules/has-unicode/package.json b/deps/npm/node_modules/has-unicode/package.json deleted file mode 100644 index d6794e54b33..00000000000 --- a/deps/npm/node_modules/has-unicode/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "_from": "has-unicode@~2.0.1", - "_id": "has-unicode@2.0.1", - "_integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "_location": "/has-unicode", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "has-unicode@~2.0.1", - "name": "has-unicode", - "escapedName": "has-unicode", - "rawSpec": "~2.0.1", - "saveSpec": null, - "fetchSpec": "~2.0.1" - }, - "_requiredBy": [ - "/", - "/npmlog/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", - "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", - "tap": "^2.3.1" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/iarna/has-unicode", - "keywords": [ - "unicode", - "terminal" - ], - "license": "ISC", - "main": "index.js", - "name": "has-unicode", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/has-unicode.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "2.0.1" -} diff --git a/deps/npm/node_modules/hosted-git-info/LICENSE b/deps/npm/node_modules/hosted-git-info/LICENSE deleted file mode 100644 index 45055763dc8..00000000000 --- a/deps/npm/node_modules/hosted-git-info/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/hosted-git-info/README.md b/deps/npm/node_modules/hosted-git-info/README.md deleted file mode 100644 index f9db5dd959e..00000000000 --- a/deps/npm/node_modules/hosted-git-info/README.md +++ /dev/null @@ -1,132 +0,0 @@ -# hosted-git-info - -This will let you identify and transform various git hosts URLs between -protocols. It also can tell you what the URL is for the raw path for -particular file for direct access without git. - -## Example - -```javascript -var hostedGitInfo = require("hosted-git-info") -var info = hostedGitInfo.fromUrl("git@github.com:npm/hosted-git-info.git", opts) -/* info looks like: -{ - type: "github", - domain: "github.com", - user: "npm", - project: "hosted-git-info" -} -*/ -``` - -If the URL can't be matched with a git host, `null` will be returned. We -can match git, ssh and https urls. Additionally, we can match ssh connect -strings (`git@github.com:npm/hosted-git-info`) and shortcuts (eg, -`github:npm/hosted-git-info`). Github specifically, is detected in the case -of a third, unprefixed, form: `npm/hosted-git-info`. - -If it does match, the returned object has properties of: - -* info.type -- The short name of the service -* info.domain -- The domain for git protocol use -* info.user -- The name of the user/org on the git host -* info.project -- The name of the project on the git host - -## Version Contract - -The major version will be bumped any time… - -* The constructor stops accepting URLs that it previously accepted. -* A method is removed. -* A method can no longer accept the number and type of arguments it previously accepted. -* A method can return a different type than it currently returns. - -Implications: - -* I do not consider the specific format of the urls returned from, say - `.https()` to be a part of the contract. The contract is that it will - return a string that can be used to fetch the repo via HTTPS. But what - that string looks like, specifically, can change. -* Dropping support for a hosted git provider would constitute a breaking - change. - -## Usage - -### var info = hostedGitInfo.fromUrl(gitSpecifier[, options]) - -* *gitSpecifer* is a URL of a git repository or a SCP-style specifier of one. -* *options* is an optional object. It can have the following properties: - * *noCommittish* — If true then committishes won't be included in generated URLs. - * *noGitPlus* — If true then `git+` won't be prefixed on URLs. - -## Methods - -All of the methods take the same options as the `fromUrl` factory. Options -provided to a method override those provided to the constructor. - -* info.file(path, opts) - -Given the path of a file relative to the repository, returns a URL for -directly fetching it from the githost. If no committish was set then -`master` will be used as the default. - -For example `hostedGitInfo.fromUrl("git@github.com:npm/hosted-git-info.git#v1.0.0").file("package.json")` -would return `https://raw.githubusercontent.com/npm/hosted-git-info/v1.0.0/package.json` - -* info.shortcut(opts) - -eg, `github:npm/hosted-git-info` - -* info.browse(opts) - -eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0` - -* info.bugs(opts) - -eg, `https://github.com/npm/hosted-git-info/issues` - -* info.docs(opts) - -eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0#readme` - -* info.https(opts) - -eg, `git+https://github.com/npm/hosted-git-info.git` - -* info.sshurl(opts) - -eg, `git+ssh://git@github.com/npm/hosted-git-info.git` - -* info.ssh(opts) - -eg, `git@github.com:npm/hosted-git-info.git` - -* info.path(opts) - -eg, `npm/hosted-git-info` - -* info.tarball(opts) - -eg, `https://github.com/npm/hosted-git-info/archive/v1.2.0.tar.gz` - -* info.getDefaultRepresentation() - -Returns the default output type. The default output type is based on the -string you passed in to be parsed - -* info.toString(opts) - -Uses the getDefaultRepresentation to call one of the other methods to get a URL for -this resource. As such `hostedGitInfo.fromUrl(url).toString()` will give -you a normalized version of the URL that still uses the same protocol. - -Shortcuts will still be returned as shortcuts, but the special case github -form of `org/project` will be normalized to `github:org/project`. - -SSH connect strings will be normalized into `git+ssh` URLs. - -## Supported hosts - -Currently this supports Github, Bitbucket and Gitlab. Pull requests for -additional hosts welcome. - 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 deleted file mode 100644 index 93cf6174400..00000000000 --- a/deps/npm/node_modules/hosted-git-info/git-host-info.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict' - -var gitHosts = module.exports = { - github: { - // First two are insecure and generally shouldn't be used any more, but - // they are still supported. - 'protocols': [ 'git', 'http', 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'github.com', - 'treepath': 'tree', - 'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}', - 'bugstemplate': 'https://{domain}/{user}/{project}/issues', - 'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}', - 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz' - }, - bitbucket: { - 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'bitbucket.org', - 'treepath': 'src', - 'tarballtemplate': 'https://{domain}/{user}/{project}/get/{committish}.tar.gz' - }, - gitlab: { - 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'gitlab.com', - 'treepath': 'tree', - 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#README', - 'bugstemplate': 'https://{domain}/{user}/{project}/issues', - 'tarballtemplate': 'https://{domain}/{user}/{project}/repository/archive.tar.gz?ref={committish}' - }, - gist: { - 'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'gist.github.com', - 'pathmatch': /^[/](?:([^/]+)[/])?([a-z0-9]+)(?:[.]git)?$/, - 'filetemplate': 'https://gist.githubusercontent.com/{user}/{project}/raw{/committish}/{path}', - 'bugstemplate': 'https://{domain}/{project}', - 'gittemplate': 'git://{domain}/{project}.git{#committish}', - 'sshtemplate': 'git@{domain}:/{project}.git{#committish}', - 'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}', - 'browsetemplate': 'https://{domain}/{project}{/committish}', - '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' - } -} - -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}', - '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|[/])?$/ -} - -Object.keys(gitHosts).forEach(function (name) { - Object.keys(gitHostDefaults).forEach(function (key) { - if (gitHosts[name][key]) return - gitHosts[name][key] = gitHostDefaults[key] - }) - gitHosts[name].protocols_re = RegExp('^(' + - gitHosts[name].protocols.map(function (protocol) { - return protocol.replace(/([\\+*{}()[\]$^|])/g, '\\$1') - }).join('|') + '):$') -}) diff --git a/deps/npm/node_modules/hosted-git-info/git-host.js b/deps/npm/node_modules/hosted-git-info/git-host.js deleted file mode 100644 index 4c6641bbf7f..00000000000 --- a/deps/npm/node_modules/hosted-git-info/git-host.js +++ /dev/null @@ -1,114 +0,0 @@ -'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 - gitHostInfo.type = type - Object.keys(gitHosts[type]).forEach(function (key) { - gitHostInfo[key] = gitHosts[type][key] - }) - gitHostInfo.user = user - gitHostInfo.auth = auth - gitHostInfo.project = project - gitHostInfo.committish = committish - gitHostInfo.default = defaultRepresentation - gitHostInfo.opts = opts || {} -} -GitHost.prototype = {} - -GitHost.prototype.hash = function () { - return this.committish ? '#' + this.committish : '' -} - -GitHost.prototype._fill = function (template, opts) { - if (!template) return - var vars = extend({}, opts) - opts = extend(extend({}, 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 - Object.keys(vars).forEach(function (key) { - vars[key] = encodeURIComponent(vars[key]) - }) - vars['auth@'] = rawAuth ? rawAuth + '@' : '' - if (opts.noCommittish) { - vars['#committish'] = '' - vars['/tree/committish'] = '' - vars['/comittish'] = '' - vars.comittish = '' - } else { - vars['#committish'] = rawComittish ? '#' + rawComittish : '' - vars['/tree/committish'] = vars.committish - ? '/' + vars.treepath + '/' + vars.committish - : '' - vars['/committish'] = vars.committish ? '/' + vars.committish : '' - vars.committish = vars.committish || 'master' - } - var res = template - Object.keys(vars).forEach(function (key) { - res = res.replace(new RegExp('[{]' + key + '[}]', 'g'), vars[key]) - }) - if (opts.noGitPlus) { - return res.replace(/^git[+]/, '') - } else { - return res - } -} - -GitHost.prototype.ssh = function (opts) { - return this._fill(this.sshtemplate, opts) -} - -GitHost.prototype.sshurl = function (opts) { - return this._fill(this.sshurltemplate, opts) -} - -GitHost.prototype.browse = function (opts) { - return this._fill(this.browsetemplate, opts) -} - -GitHost.prototype.docs = function (opts) { - return this._fill(this.docstemplate, opts) -} - -GitHost.prototype.bugs = function (opts) { - return this._fill(this.bugstemplate, opts) -} - -GitHost.prototype.https = function (opts) { - return this._fill(this.httpstemplate, opts) -} - -GitHost.prototype.git = function (opts) { - return this._fill(this.gittemplate, opts) -} - -GitHost.prototype.shortcut = function (opts) { - return this._fill(this.shortcuttemplate, opts) -} - -GitHost.prototype.path = function (opts) { - return this._fill(this.pathtemplate, opts) -} - -GitHost.prototype.tarball = function (opts) { - return this._fill(this.tarballtemplate, opts) -} - -GitHost.prototype.file = function (P, opts) { - return this._fill(this.filetemplate, extend({ - path: P.replace(/^[/]+/g, '') - }, opts)) -} - -GitHost.prototype.getDefaultRepresentation = function () { - return this.default -} - -GitHost.prototype.toString = function (opts) { - return (this[this.default] || this.sshurl).call(this, opts) -} diff --git a/deps/npm/node_modules/hosted-git-info/index.js b/deps/npm/node_modules/hosted-git-info/index.js deleted file mode 100644 index 9055ab1853d..00000000000 --- a/deps/npm/node_modules/hosted-git-info/index.js +++ /dev/null @@ -1,121 +0,0 @@ -'use strict' -var url = require('url') -var gitHosts = require('./git-host-info.js') -var GitHost = module.exports = require('./git-host.js') - -var protocolToRepresentationMap = { - 'git+ssh': 'sshurl', - 'git+https': 'https', - 'ssh': 'sshurl', - 'git': 'git' -} - -function protocolToRepresentation (protocol) { - if (protocol.substr(-1) === ':') protocol = protocol.slice(0, -1) - return protocolToRepresentationMap[protocol] || protocol -} - -var authProtocols = { - 'git:': true, - 'https:': true, - 'git+https:': true, - 'http:': true, - 'git+http:': true -} - -var cache = {} - -module.exports.fromUrl = function (giturl, opts) { - var key = giturl + JSON.stringify(opts || {}) - - if (!(key in cache)) { - cache[key] = fromUrl(giturl, opts) - } - - return cache[key] -} - -function fromUrl (giturl, opts) { - if (giturl == null || giturl === '') return - var url = fixupUnqualifiedGist( - isGitHubShorthand(giturl) ? 'github:' + giturl : giturl - ) - var parsed = parseGitUrl(url) - var shortcutMatch = url.match(new RegExp('^([^:]+):(?:(?:[^@:]+(?:[^@]+)?@)?([^/]*))[/](.+?)(?:[.]git)?($|#)')) - var matches = Object.keys(gitHosts).map(function (gitHostName) { - try { - var gitHostInfo = gitHosts[gitHostName] - var auth = null - if (parsed.auth && authProtocols[parsed.protocol]) { - auth = decodeURIComponent(parsed.auth) - } - var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null - var user = null - var project = null - var defaultRepresentation = null - if (shortcutMatch && shortcutMatch[1] === gitHostName) { - user = shortcutMatch[2] && decodeURIComponent(shortcutMatch[2]) - project = decodeURIComponent(shortcutMatch[3]) - defaultRepresentation = 'shortcut' - } else { - if (parsed.host !== gitHostInfo.domain) return - if (!gitHostInfo.protocols_re.test(parsed.protocol)) return - if (!parsed.path) return - var pathmatch = gitHostInfo.pathmatch - var matched = parsed.path.match(pathmatch) - if (!matched) return - if (matched[1] != null) user = decodeURIComponent(matched[1].replace(/^:/, '')) - if (matched[2] != null) project = decodeURIComponent(matched[2]) - defaultRepresentation = protocolToRepresentation(parsed.protocol) - } - return new GitHost(gitHostName, user, auth, project, committish, defaultRepresentation, opts) - } catch (ex) { - if (!(ex instanceof URIError)) throw ex - } - }).filter(function (gitHostInfo) { return gitHostInfo }) - if (matches.length !== 1) return - return matches[0] -} - -function isGitHubShorthand (arg) { - // Note: This does not fully test the git ref format. - // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html - // - // The only way to do this properly would be to shell out to - // git-check-ref-format, and as this is a fast sync function, - // we don't want to do that. Just let git fail if it turns - // out that the commit-ish is invalid. - // GH usernames cannot start with . or - - return /^[^:@%/\s.-][^:@%/\s]*[/][^:@\s/%]+(?:#.*)?$/.test(arg) -} - -function fixupUnqualifiedGist (giturl) { - // necessary for round-tripping gists - var parsed = url.parse(giturl) - if (parsed.protocol === 'gist:' && parsed.host && !parsed.path) { - return parsed.protocol + '/' + parsed.host - } else { - return giturl - } -} - -function parseGitUrl (giturl) { - if (typeof giturl !== 'string') giturl = '' + giturl - var matched = giturl.match(/^([^@]+)@([^:/]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/) - if (!matched) return url.parse(giturl) - return { - protocol: 'git+ssh:', - slashes: true, - auth: matched[1], - host: matched[2], - port: null, - hostname: matched[2], - hash: matched[4], - search: null, - query: null, - pathname: '/' + matched[3], - path: '/' + matched[3], - href: 'git+ssh://' + matched[1] + '@' + matched[2] + - '/' + matched[3] + (matched[4] || '') - } -} diff --git a/deps/npm/node_modules/hosted-git-info/package.json b/deps/npm/node_modules/hosted-git-info/package.json deleted file mode 100644 index de691a86c0d..00000000000 --- a/deps/npm/node_modules/hosted-git-info/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_from": "hosted-git-info@2.5.0", - "_id": "hosted-git-info@2.5.0", - "_inBundle": false, - "_integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", - "_location": "/hosted-git-info", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "hosted-git-info@2.5.0", - "name": "hosted-git-info", - "escapedName": "hosted-git-info", - "rawSpec": "2.5.0", - "saveSpec": null, - "fetchSpec": "2.5.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", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "url": "http://re-becca.org" - }, - "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", - "tap": "^10.3.0" - }, - "files": [ - "index.js", - "git-host.js", - "git-host-info.js" - ], - "homepage": "https://github.com/npm/hosted-git-info", - "keywords": [ - "git", - "github", - "bitbucket", - "gitlab" - ], - "license": "ISC", - "main": "index.js", - "name": "hosted-git-info", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/hosted-git-info.git" - }, - "scripts": { - "test": "standard && tap -J --coverage test/*.js" - }, - "version": "2.5.0" -} diff --git a/deps/npm/node_modules/iferr/.npmignore b/deps/npm/node_modules/iferr/.npmignore deleted file mode 100644 index 3c3629e647f..00000000000 --- a/deps/npm/node_modules/iferr/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/deps/npm/node_modules/iferr/LICENSE b/deps/npm/node_modules/iferr/LICENSE deleted file mode 100644 index 19d5f4bce54..00000000000 --- a/deps/npm/node_modules/iferr/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/iferr/README.md b/deps/npm/node_modules/iferr/README.md deleted file mode 100644 index 0940763fa94..00000000000 --- a/deps/npm/node_modules/iferr/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# 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/iferr/index.coffee deleted file mode 100644 index da6d00719f1..00000000000 --- a/deps/npm/node_modules/iferr/index.coffee +++ /dev/null @@ -1,24 +0,0 @@ -# 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/iferr/index.js b/deps/npm/node_modules/iferr/index.js deleted file mode 100644 index 78fce3d2b09..00000000000 --- a/deps/npm/node_modules/iferr/index.js +++ /dev/null @@ -1,49 +0,0 @@ -// 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/iferr/package.json b/deps/npm/node_modules/iferr/package.json deleted file mode 100644 index 6a935da8278..00000000000 --- a/deps/npm/node_modules/iferr/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_from": "iferr@~0.1.5", - "_id": "iferr@0.1.5", - "_integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "_location": "/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", - "/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", - "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" - }, - "homepage": "https://github.com/shesek/iferr", - "keywords": [ - "error", - "errors" - ], - "license": "MIT", - "main": "index.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" -} diff --git a/deps/npm/node_modules/iferr/test/index.coffee b/deps/npm/node_modules/iferr/test/index.coffee deleted file mode 100644 index be0bc56fdf1..00000000000 --- a/deps/npm/node_modules/iferr/test/index.coffee +++ /dev/null @@ -1,42 +0,0 @@ -{ 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/iferr/test/mocha.opts b/deps/npm/node_modules/iferr/test/mocha.opts deleted file mode 100644 index 019defcf152..00000000000 --- a/deps/npm/node_modules/iferr/test/mocha.opts +++ /dev/null @@ -1,2 +0,0 @@ ---compilers coffee:coffee-script/register ---reporter spec diff --git a/deps/npm/node_modules/imurmurhash/README.md b/deps/npm/node_modules/imurmurhash/README.md deleted file mode 100644 index f35b20a0ef5..00000000000 --- a/deps/npm/node_modules/imurmurhash/README.md +++ /dev/null @@ -1,122 +0,0 @@ -iMurmurHash.js -============== - -An incremental implementation of the MurmurHash3 (32-bit) hashing algorithm for JavaScript based on [Gary Court's implementation](https://github.com/garycourt/murmurhash-js) with [kazuyukitanimura's modifications](https://github.com/kazuyukitanimura/murmurhash-js). - -This version works significantly faster than the non-incremental version if you need to hash many small strings into a single hash, since string concatenation (to build the single string to pass the non-incremental version) is fairly costly. In one case tested, using the incremental version was about 50% faster than concatenating 5-10 strings and then hashing. - -Installation ------------- - -To use iMurmurHash in the browser, [download the latest version](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) and include it as a script on your site. - -```html - - -``` - ---- - -To use iMurmurHash in Node.js, install the module using NPM: - -```bash -npm install imurmurhash -``` - -Then simply include it in your scripts: - -```javascript -MurmurHash3 = require('imurmurhash'); -``` - -Quick Example -------------- - -```javascript -// Create the initial hash -var hashState = MurmurHash3('string'); - -// Incrementally add text -hashState.hash('more strings'); -hashState.hash('even more strings'); - -// All calls can be chained if desired -hashState.hash('and').hash('some').hash('more'); - -// Get a result -hashState.result(); -// returns 0xe4ccfe6b -``` - -Functions ---------- - -### MurmurHash3 ([string], [seed]) -Get a hash state object, optionally initialized with the given _string_ and _seed_. _Seed_ must be a positive integer if provided. Calling this function without the `new` keyword will return a cached state object that has been reset. This is safe to use as long as the object is only used from a single thread and no other hashes are created while operating on this one. If this constraint cannot be met, you can use `new` to create a new state object. For example: - -```javascript -// Use the cached object, calling the function again will return the same -// object (but reset, so the current state would be lost) -hashState = MurmurHash3(); -... - -// Create a new object that can be safely used however you wish. Calling the -// function again will simply return a new state object, and no state loss -// will occur, at the cost of creating more objects. -hashState = new MurmurHash3(); -``` - -Both methods can be mixed however you like if you have different use cases. - ---- - -### MurmurHash3.prototype.hash (string) -Incrementally add _string_ to the hash. This can be called as many times as you want for the hash state object, including after a call to `result()`. Returns `this` so calls can be chained. - ---- - -### MurmurHash3.prototype.result () -Get the result of the hash as a 32-bit positive integer. This performs the tail and finalizer portions of the algorithm, but does not store the result in the state object. This means that it is perfectly safe to get results and then continue adding strings via `hash`. - -```javascript -// Do the whole string at once -MurmurHash3('this is a test string').result(); -// 0x70529328 - -// Do part of the string, get a result, then the other part -var m = MurmurHash3('this is a'); -m.result(); -// 0xbfc4f834 -m.hash(' test string').result(); -// 0x70529328 (same as above) -``` - ---- - -### MurmurHash3.prototype.reset ([seed]) -Reset the state object for reuse, optionally using the given _seed_ (defaults to 0 like the constructor). Returns `this` so calls can be chained. - ---- - -License (MIT) -------------- -Copyright (c) 2013 Gary Court, Jens Taylor - -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/imurmurhash/imurmurhash.js b/deps/npm/node_modules/imurmurhash/imurmurhash.js deleted file mode 100644 index e63146a2b7e..00000000000 --- a/deps/npm/node_modules/imurmurhash/imurmurhash.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -(function(){ - var cache; - - // Call this function without `new` to use the cached object (good for - // single-threaded environments), or with `new` to create a new object. - // - // @param {string} key A UTF-16 or ASCII string - // @param {number} seed An optional positive integer - // @return {object} A MurmurHash3 object for incremental hashing - function MurmurHash3(key, seed) { - var m = this instanceof MurmurHash3 ? this : cache; - m.reset(seed) - if (typeof key === 'string' && key.length > 0) { - m.hash(key); - } - - if (m !== this) { - return m; - } - }; - - // Incrementally add a string to this hash - // - // @param {string} key A UTF-16 or ASCII string - // @return {object} this - MurmurHash3.prototype.hash = function(key) { - var h1, k1, i, top, len; - - len = key.length; - this.len += len; - - k1 = this.k1; - i = 0; - switch (this.rem) { - case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; - case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; - case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; - case 3: - k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; - k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; - } - - this.rem = (len + this.rem) & 3; // & 3 is same as % 4 - len -= this.rem; - if (len > 0) { - h1 = this.h1; - while (1) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - - h1 ^= k1; - h1 = (h1 << 13) | (h1 >>> 19); - h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; - - if (i >= len) { - break; - } - - k1 = ((key.charCodeAt(i++) & 0xffff)) ^ - ((key.charCodeAt(i++) & 0xffff) << 8) ^ - ((key.charCodeAt(i++) & 0xffff) << 16); - top = key.charCodeAt(i++); - k1 ^= ((top & 0xff) << 24) ^ - ((top & 0xff00) >> 8); - } - - k1 = 0; - switch (this.rem) { - case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; - case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; - case 1: k1 ^= (key.charCodeAt(i) & 0xffff); - } - - this.h1 = h1; - } - - this.k1 = k1; - return this; - }; - - // Get the result of this hash - // - // @return {number} The 32-bit hash - MurmurHash3.prototype.result = function() { - var k1, h1; - - k1 = this.k1; - h1 = this.h1; - - if (k1 > 0) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - h1 ^= k1; - } - - h1 ^= this.len; - - h1 ^= h1 >>> 16; - h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; - h1 ^= h1 >>> 13; - h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; - h1 ^= h1 >>> 16; - - return h1 >>> 0; - }; - - // Reset the hash object for reuse - // - // @param {number} seed An optional positive integer - MurmurHash3.prototype.reset = function(seed) { - this.h1 = typeof seed === 'number' ? seed : 0; - this.rem = this.k1 = this.len = 0; - return this; - }; - - // A cached object to use. This can be safely used if you're in a single- - // threaded environment, otherwise you need to create new hashes to use. - cache = new MurmurHash3(); - - if (typeof(module) != 'undefined') { - module.exports = MurmurHash3; - } else { - this.MurmurHash3 = MurmurHash3; - } -}()); diff --git a/deps/npm/node_modules/imurmurhash/imurmurhash.min.js b/deps/npm/node_modules/imurmurhash/imurmurhash.min.js deleted file mode 100644 index dc0ee88d6b6..00000000000 --- a/deps/npm/node_modules/imurmurhash/imurmurhash.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -!function(){function t(h,r){var s=this instanceof t?this:e;return s.reset(r),"string"==typeof h&&h.length>0&&s.hash(h),s!==this?s:void 0}var e;t.prototype.hash=function(t){var e,h,r,s,i;switch(i=t.length,this.len+=i,h=this.k1,r=0,this.rem){case 0:h^=i>r?65535&t.charCodeAt(r++):0;case 1:h^=i>r?(65535&t.charCodeAt(r++))<<8:0;case 2:h^=i>r?(65535&t.charCodeAt(r++))<<16:0;case 3:h^=i>r?(255&t.charCodeAt(r))<<24:0,h^=i>r?(65280&t.charCodeAt(r++))>>8:0}if(this.rem=3&i+this.rem,i-=this.rem,i>0){for(e=this.h1;;){if(h=4294967295&11601*h+3432906752*(65535&h),h=h<<15|h>>>17,h=4294967295&13715*h+461832192*(65535&h),e^=h,e=e<<13|e>>>19,e=4294967295&5*e+3864292196,r>=i)break;h=65535&t.charCodeAt(r++)^(65535&t.charCodeAt(r++))<<8^(65535&t.charCodeAt(r++))<<16,s=t.charCodeAt(r++),h^=(255&s)<<24^(65280&s)>>8}switch(h=0,this.rem){case 3:h^=(65535&t.charCodeAt(r+2))<<16;case 2:h^=(65535&t.charCodeAt(r+1))<<8;case 1:h^=65535&t.charCodeAt(r)}this.h1=e}return this.k1=h,this},t.prototype.result=function(){var t,e;return t=this.k1,e=this.h1,t>0&&(t=4294967295&11601*t+3432906752*(65535&t),t=t<<15|t>>>17,t=4294967295&13715*t+461832192*(65535&t),e^=t),e^=this.len,e^=e>>>16,e=4294967295&51819*e+2246770688*(65535&e),e^=e>>>13,e=4294967295&44597*e+3266445312*(65535&e),e^=e>>>16,e>>>0},t.prototype.reset=function(t){return this.h1="number"==typeof t?t:0,this.rem=this.k1=this.len=0,this},e=new t,"undefined"!=typeof module?module.exports=t:this.MurmurHash3=t}(); \ No newline at end of file diff --git a/deps/npm/node_modules/imurmurhash/package.json b/deps/npm/node_modules/imurmurhash/package.json deleted file mode 100644 index 10b98d1e5b7..00000000000 --- a/deps/npm/node_modules/imurmurhash/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_from": "imurmurhash@*", - "_id": "imurmurhash@0.1.4", - "_integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "_location": "/imurmurhash", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "imurmurhash@*", - "name": "imurmurhash", - "escapedName": "imurmurhash", - "rawSpec": "*", - "saveSpec": null, - "fetchSpec": "*" - }, - "_requiredBy": [ - "/", - "/fs-write-stream-atomic", - "/unique-filename/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", - "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": { - "node": ">=0.8.19" - }, - "files": [ - "imurmurhash.js", - "imurmurhash.min.js", - "package.json", - "README.md" - ], - "homepage": "https://github.com/jensyt/imurmurhash-js", - "keywords": [ - "murmur", - "murmurhash", - "murmurhash3", - "hash", - "incremental" - ], - "license": "MIT", - "main": "imurmurhash.js", - "name": "imurmurhash", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/jensyt/imurmurhash-js.git" - }, - "version": "0.1.4" -} diff --git a/deps/npm/node_modules/inflight/LICENSE b/deps/npm/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb88c2e..00000000000 --- a/deps/npm/node_modules/inflight/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/inflight/README.md b/deps/npm/node_modules/inflight/README.md deleted file mode 100644 index 6dc8929171a..00000000000 --- a/deps/npm/node_modules/inflight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# inflight - -Add callbacks to requests in flight to avoid async duplication - -## USAGE - -```javascript -var inflight = require('inflight') - -// some request that does some stuff -function req(key, callback) { - // key is any random string. like a url or filename or whatever. - // - // will return either a falsey value, indicating that the - // request for this key is already in flight, or a new callback - // which when called will call all callbacks passed to inflightk - // with the same key - callback = inflight(key, callback) - - // If we got a falsey value back, then there's already a req going - if (!callback) return - - // this is where you'd fetch the url or whatever - // callback is also once()-ified, so it can safely be assigned - // to multiple events etc. First call wins. - setTimeout(function() { - callback(null, key) - }, 100) -} - -// only assigns a single setTimeout -// when it dings, all cbs get called -req('foo', cb1) -req('foo', cb2) -req('foo', cb3) -req('foo', cb4) -``` diff --git a/deps/npm/node_modules/inflight/inflight.js b/deps/npm/node_modules/inflight/inflight.js deleted file mode 100644 index 48202b3ca41..00000000000 --- a/deps/npm/node_modules/inflight/inflight.js +++ /dev/null @@ -1,54 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/deps/npm/node_modules/inflight/package.json b/deps/npm/node_modules/inflight/package.json deleted file mode 100644 index 84199ee5a74..00000000000 --- a/deps/npm/node_modules/inflight/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_from": "inflight@~1.0.6", - "_id": "inflight@1.0.6", - "_integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "_location": "/inflight", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "inflight@~1.0.6", - "name": "inflight", - "escapedName": "inflight", - "rawSpec": "~1.0.6", - "saveSpec": null, - "fetchSpec": "~1.0.6" - }, - "_requiredBy": [ - "/", - "/glob", - "/standard/eslint/file-entry-cache/flat-cache/del/globby/glob", - "/standard/eslint/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", - "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" - }, - "files": [ - "inflight.js" - ], - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC", - "main": "inflight.js", - "name": "inflight", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/inflight.git" - }, - "scripts": { - "test": "tap test.js --100" - }, - "version": "1.0.6" -} diff --git a/deps/npm/node_modules/inherits/LICENSE b/deps/npm/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d671..00000000000 --- a/deps/npm/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +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/inherits/README.md b/deps/npm/node_modules/inherits/README.md deleted file mode 100644 index b1c56658557..00000000000 --- a/deps/npm/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/deps/npm/node_modules/inherits/inherits.js b/deps/npm/node_modules/inherits/inherits.js deleted file mode 100644 index 3b94763a76e..00000000000 --- a/deps/npm/node_modules/inherits/inherits.js +++ /dev/null @@ -1,7 +0,0 @@ -try { - var util = require('util'); - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - module.exports = require('./inherits_browser.js'); -} diff --git a/deps/npm/node_modules/inherits/inherits_browser.js b/deps/npm/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a75e6b..00000000000 --- a/deps/npm/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/deps/npm/node_modules/inherits/package.json b/deps/npm/node_modules/inherits/package.json deleted file mode 100644 index f5304235d39..00000000000 --- a/deps/npm/node_modules/inherits/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_from": "inherits@~2.0.3", - "_id": "inherits@2.0.3", - "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "_location": "/inherits", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "inherits@~2.0.3", - "name": "inherits", - "escapedName": "inherits", - "rawSpec": "~2.0.3", - "saveSpec": null, - "fetchSpec": "~2.0.3" - }, - "_requiredBy": [ - "/", - "/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", - "/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" - ], - "_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, - "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" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ], - "homepage": "https://github.com/isaacs/inherits#readme", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "license": "ISC", - "main": "./inherits.js", - "name": "inherits", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "scripts": { - "test": "node test" - }, - "version": "2.0.3" -} diff --git a/deps/npm/node_modules/ini/LICENSE b/deps/npm/node_modules/ini/LICENSE deleted file mode 100644 index 19129e315fe..00000000000 --- a/deps/npm/node_modules/ini/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/ini/README.md b/deps/npm/node_modules/ini/README.md deleted file mode 100644 index 33df258297d..00000000000 --- a/deps/npm/node_modules/ini/README.md +++ /dev/null @@ -1,102 +0,0 @@ -An ini format parser and serializer for node. - -Sections are treated as nested objects. Items before the first -heading are saved on the object directly. - -## Usage - -Consider an ini-file `config.ini` that looks like this: - - ; this comment is being ignored - scope = global - - [database] - user = dbuser - password = dbpassword - database = use_this_database - - [paths.default] - datadir = /var/lib/data - array[] = first value - array[] = second value - array[] = third value - -You can read, manipulate and write the ini-file like so: - - var fs = require('fs') - , ini = require('ini') - - var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8')) - - config.scope = 'local' - config.database.database = 'use_another_database' - config.paths.default.tmpdir = '/tmp' - delete config.paths.default.datadir - config.paths.default.array.push('fourth value') - - fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' })) - -This will result in a file called `config_modified.ini` being written -to the filesystem with the following content: - - [section] - scope=local - [section.database] - user=dbuser - password=dbpassword - database=use_another_database - [section.paths.default] - tmpdir=/tmp - array[]=first value - array[]=second value - array[]=third value - array[]=fourth value - - -## API - -### decode(inistring) - -Decode the ini-style formatted `inistring` into a nested object. - -### parse(inistring) - -Alias for `decode(inistring)` - -### encode(object, [options]) - -Encode the object `object` into an ini-style formatted string. If the -optional parameter `section` is given, then all top-level properties -of the object are put into this section and the `section`-string is -prepended to all sub-sections, see the usage example above. - -The `options` object may contain the following: - -* `section` A string which will be the first `section` in the encoded - ini data. Defaults to none. -* `whitespace` Boolean to specify whether to put whitespace around the - `=` character. By default, whitespace is omitted, to be friendly to - some persnickety old parsers that don't tolerate it well. But some - find that it's more human-readable and pretty with the whitespace. - -For backwards compatibility reasons, if a `string` options is passed -in, then it is assumed to be the `section` value. - -### stringify(object, [options]) - -Alias for `encode(object, [options])` - -### safe(val) - -Escapes the string `val` such that it is safe to be used as a key or -value in an ini-file. Basically escapes quotes. For example - - ini.safe('"unsafe string"') - -would result in - - "\"unsafe string\"" - -### unsafe(val) - -Unescapes the string `val` diff --git a/deps/npm/node_modules/ini/ini.js b/deps/npm/node_modules/ini/ini.js deleted file mode 100644 index ddf5bd9cc6b..00000000000 --- a/deps/npm/node_modules/ini/ini.js +++ /dev/null @@ -1,190 +0,0 @@ - -exports.parse = exports.decode = decode -exports.stringify = exports.encode = encode - -exports.safe = safe -exports.unsafe = unsafe - -var eol = process.platform === "win32" ? "\r\n" : "\n" - -function encode (obj, opt) { - var children = [] - , out = "" - - if (typeof opt === "string") { - opt = { - section: opt, - whitespace: false - } - } else { - opt = opt || {} - opt.whitespace = opt.whitespace === true - } - - 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") { - children.push(k) - } else { - out += safe(k) + separator + safe(val) + eol - } - }) - - if (opt.section && out.length) { - out = "[" + safe(opt.section) + "]" + eol + out - } - - children.forEach(function (k, _, __) { - var nk = dotSplit(k).join('\\.') - var section = (opt.section ? opt.section + "." : "") + nk - var child = encode(obj[k], { - section: section, - whitespace: opt.whitespace - }) - if (out.length && child.length) { - out += eol - } - out += child - }) - - return out -} - -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') - }) -} - -function decode (str) { - var out = {} - , p = out - , section = null - , state = "START" - // section |key = value - , re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i - , lines = str.split(/[\r\n]+/g) - , section = null - - lines.forEach(function (line, _, __) { - if (!line || line.match(/^\s*[;#]/)) return - var match = line.match(re) - if (!match) return - if (match[1] !== undefined) { - section = unsafe(match[1]) - p = out[section] = out[section] || {} - return - } - var key = unsafe(match[2]) - , value = match[3] ? unsafe((match[4] || "")) : true - switch (value) { - case 'true': - case 'false': - case 'null': value = JSON.parse(value) - } - - // 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]] - } - } - - // safeguard against resetting a previously defined - // array by accidentally forgetting the brackets - if (Array.isArray(p[key])) { - p[key].push(value) - } - else { - p[key] = value - } - }) - - // {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 - // 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, '.') - parts.forEach(function (part, _, __) { - if (!p[part] || typeof p[part] !== "object") p[part] = {} - p = p[part] - }) - if (p === out && nl === l) return false - p[nl] = out[k] - return true - }).forEach(function (del, _, __) { - delete out[del] - }) - - return out -} - -function isQuoted (val) { - 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, "\\#") -} - -function unsafe (val, doUnesc) { - 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); - } - try { val = JSON.parse(val) } catch (_) {} - } else { - // walk the val to find the first not-escaped ; character - var esc = false - var unesc = ""; - for (var i = 0, l = val.length; i < l; i++) { - var c = val.charAt(i) - if (esc) { - if ("\\;#".indexOf(c) !== -1) - unesc += c - else - unesc += "\\" + c - esc = false - } else if (";#".indexOf(c) !== -1) { - break - } else if (c === "\\") { - esc = true - } else { - unesc += c - } - } - if (esc) - unesc += "\\" - return unesc - } - return val -} diff --git a/deps/npm/node_modules/ini/package.json b/deps/npm/node_modules/ini/package.json deleted file mode 100644 index 8e13a10d4fa..00000000000 --- a/deps/npm/node_modules/ini/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_from": "ini@~1.3.4", - "_id": "ini@1.3.4", - "_integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "_location": "/ini", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "ini@~1.3.4", - "name": "ini", - "escapedName": "ini", - "rawSpec": "~1.3.4", - "saveSpec": null, - "fetchSpec": "~1.3.4" - }, - "_requiredBy": [ - "/", - "/config-chain", - "/update-notifier/latest-version/package-json/registry-auth-token/rc", - "/update-notifier/latest-version/package-json/registry-url/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", - "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" - }, - "engines": { - "node": "*" - }, - "files": [ - "ini.js" - ], - "homepage": "https://github.com/isaacs/ini#readme", - "license": "ISC", - "main": "ini.js", - "name": "ini", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/ini.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.3.4" -} diff --git a/deps/npm/node_modules/init-package-json/LICENSE b/deps/npm/node_modules/init-package-json/LICENSE deleted file mode 100644 index 05eeeb88c2e..00000000000 --- a/deps/npm/node_modules/init-package-json/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/README.md b/deps/npm/node_modules/init-package-json/README.md deleted file mode 100644 index bd64c123098..00000000000 --- a/deps/npm/node_modules/init-package-json/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# init-package-json - -A node module to get your node module started. - -[![Build Status](https://secure.travis-ci.org/npm/init-package-json.svg)](http://travis-ci.org/npm/init-package-json) - -## Usage - -```javascript -var init = require('init-package-json') -var path = require('path') - -// a path to a promzard module. In the event that this file is -// not found, one will be provided for you. -var initFile = path.resolve(process.env.HOME, '.npm-init') - -// the dir where we're doin stuff. -var dir = process.cwd() - -// extra stuff that gets put into the PromZard module's context. -// In npm, this is the resolved config object. Exposed as 'config' -// Optional. -var configData = { some: 'extra stuff' } - -// Any existing stuff from the package.json file is also exposed in the -// PromZard module as the `package` object. There will also be free -// vars for: -// * `filename` path to the package.json file -// * `basename` the tip of the package dir -// * `dirname` the parent of the package dir - -init(dir, initFile, configData, function (er, data) { - // the data's already been written to {dir}/package.json - // now you can do stuff with it -}) -``` - -Or from the command line: - -``` -$ npm-init -``` - -See [PromZard](https://github.com/npm/promzard) for details about -what can go in the config file. diff --git a/deps/npm/node_modules/init-package-json/default-input.js b/deps/npm/node_modules/init-package-json/default-input.js deleted file mode 100644 index 06a3de477ef..00000000000 --- a/deps/npm/node_modules/init-package-json/default-input.js +++ /dev/null @@ -1,239 +0,0 @@ -var fs = require('fs') -var glob = require('glob') -var path = require('path') -var validateLicense = require('validate-npm-package-license') -var validateName = require('validate-npm-package-name') -var npa = require('npm-package-arg') -var semver = require('semver') - -// more popular packages should go here, maybe? -function isTestPkg (p) { - return !!p.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/) -} - -function niceName (n) { - return n.replace(/^node-|[.-]js$/g, '').toLowerCase() -} - -function readDeps (test, excluded) { return function (cb) { - fs.readdir('node_modules', function (er, dir) { - if (er) return cb() - var deps = {} - var n = dir.length - if (n === 0) return cb(null, deps) - dir.forEach(function (d) { - if (d.match(/^\./)) return next() - if (test !== isTestPkg(d) || excluded[d]) - return next() - - var dp = path.join(dirname, 'node_modules', d, 'package.json') - fs.readFile(dp, 'utf8', function (er, p) { - if (er) return next() - try { p = JSON.parse(p) } - catch (e) { return next() } - if (!p.version) return next() - if (p._requiredBy) { - if (!p._requiredBy.some(function (req) { return req === '#USER' })) return next() - } - deps[d] = config.get('save-exact') ? p.version : config.get('save-prefix') + p.version - return next() - }) - }) - function next () { - if (--n === 0) return cb(null, deps) - } - }) -}} - -var name = package.name || basename -var spec = npa(name) -var scope = config.get('scope') -if (scope) { - if (scope.charAt(0) !== '@') scope = '@' + scope - if (spec.scope) { - name = scope + '/' + spec.name.split('/')[1] - } else { - name = scope + '/' + name - } -} -exports.name = yes ? name : prompt('package name', niceName(name), function (data) { - var its = validateName(data) - if (its.validForNewPackages) return data - var errors = (its.errors || []).concat(its.warnings || []) - var er = new Error('Sorry, ' + errors.join(' and ') + '.') - er.notValid = true - return er -}) - -var version = package.version || - config.get('init.version') || - config.get('init-version') || - '1.0.0' -exports.version = yes ? - version : - prompt('version', version, function (version) { - if (semver.valid(version)) return version - var er = new Error('Invalid version: "' + version + '"') - er.notValid = true - return er - }) - -if (!package.description) { - exports.description = yes ? '' : prompt('description') -} - -if (!package.main) { - exports.main = function (cb) { - fs.readdir(dirname, function (er, f) { - if (er) f = [] - - f = f.filter(function (f) { - return f.match(/\.js$/) - }) - - if (f.indexOf('index.js') !== -1) - f = 'index.js' - else if (f.indexOf('main.js') !== -1) - f = 'main.js' - else if (f.indexOf(basename + '.js') !== -1) - f = basename + '.js' - else - f = f[0] - - var index = f || 'index.js' - return cb(null, yes ? index : prompt('entry point', index)) - }) - } -} - -if (!package.bin) { - exports.bin = function (cb) { - fs.readdir(path.resolve(dirname, 'bin'), function (er, d) { - // no bins - if (er) return cb() - // just take the first js file we find there, or nada - return cb(null, d.filter(function (f) { - return f.match(/\.js$/) - })[0]) - }) - } -} - -exports.directories = function (cb) { - fs.readdir(dirname, function (er, dirs) { - if (er) return cb(er) - var res = {} - dirs.forEach(function (d) { - switch (d) { - case 'example': case 'examples': return res.example = d - case 'test': case 'tests': return res.test = d - case 'doc': case 'docs': return res.doc = d - case 'man': return res.man = d - case 'lib': return res.lib = d - } - }) - if (Object.keys(res).length === 0) res = undefined - return cb(null, res) - }) -} - -if (!package.dependencies) { - exports.dependencies = readDeps(false, package.devDependencies || {}) -} - -if (!package.devDependencies) { - exports.devDependencies = readDeps(true, package.dependencies || {}) -} - -// MUST have a test script! -var s = package.scripts || {} -var notest = 'echo "Error: no test specified" && exit 1' -if (!package.scripts) { - exports.scripts = function (cb) { - fs.readdir(path.join(dirname, 'node_modules'), function (er, d) { - setupScripts(d || [], cb) - }) - } -} -function setupScripts (d, cb) { - // check to see what framework is in use, if any - function tx (test) { - return test || notest - } - if (!s.test || s.test === notest) { - var commands = { - 'tap':'tap test/*.js' - , 'expresso':'expresso test' - , 'mocha':'mocha' - } - var command - Object.keys(commands).forEach(function (k) { - if (d.indexOf(k) !== -1) command = commands[k] - }) - var ps = 'test command' - if (yes) { - s.test = command || notest - } else { - s.test = command ? prompt(ps, command, tx) : prompt(ps, tx) - } - } - return cb(null, s) -} - -if (!package.repository) { - exports.repository = function (cb) { - fs.readFile('.git/config', 'utf8', function (er, gconf) { - if (er || !gconf) { - return cb(null, yes ? '' : prompt('git repository')) - } - gconf = gconf.split(/\r?\n/) - var i = gconf.indexOf('[remote "origin"]') - if (i !== -1) { - var u = gconf[i + 1] - if (!u.match(/^\s*url =/)) u = gconf[i + 2] - if (!u.match(/^\s*url =/)) u = null - else u = u.replace(/^\s*url = /, '') - } - if (u && u.match(/^git@github.com:/)) - u = u.replace(/^git@github.com:/, 'https://github.com/') - - return cb(null, yes ? u : prompt('git repository', u)) - }) - } -} - -if (!package.keywords) { - exports.keywords = yes ? '' : prompt('keywords', function (s) { - if (!s) return undefined - if (Array.isArray(s)) s = s.join(' ') - if (typeof s !== 'string') return s - return s.split(/[\s,]+/) - }) -} - -if (!package.author) { - exports.author = config.get('init.author.name') || - config.get('init-author-name') - ? { - "name" : config.get('init.author.name') || - config.get('init-author-name'), - "email" : config.get('init.author.email') || - config.get('init-author-email'), - "url" : config.get('init.author.url') || - config.get('init-author-url') - } - : yes ? '' : prompt('author') -} - -var license = package.license || - config.get('init.license') || - config.get('init-license') || - 'ISC' -exports.license = yes ? license : prompt('license', license, function (data) { - var its = validateLicense(data) - if (its.validForNewPackages) return data - var errors = (its.errors || []).concat(its.warnings || []) - var er = new Error('Sorry, ' + errors.join(' and ') + '.') - er.notValid = true - return er -}) 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 deleted file mode 100644 index 31758281d6f..00000000000 --- a/deps/npm/node_modules/init-package-json/init-package-json.js +++ /dev/null @@ -1,154 +0,0 @@ - -module.exports = init -module.exports.yes = yes - -var PZ = require('promzard').PromZard -var path = require('path') -var def = require.resolve('./default-input.js') - -var fs = require('fs') -var semver = require('semver') -var read = require('read') - -// to validate the data object at the end as a worthwhile package -// and assign default values for things. -// readJson.extras(file, data, cb) -var readJson = require('read-package-json') - -function yes (conf) { - return !!( - conf.get('yes') || conf.get('y') || - conf.get('force') || conf.get('f') - ) -} - -function init (dir, input, config, cb) { - if (typeof config === 'function') - cb = config, config = {} - - // accept either a plain-jane object, or a config object - // with a "get" method. - if (typeof config.get !== 'function') { - var data = config - config = { - get: function (k) { - return data[k] - }, - toJSON: function () { - return data - } - } - } - - var packageFile = path.resolve(dir, 'package.json') - input = path.resolve(input) - var pkg - var ctx = { yes: yes(config) } - - var es = readJson.extraSet - readJson.extraSet = es.filter(function (fn) { - return fn.name !== 'authors' && fn.name !== 'mans' - }) - readJson(packageFile, function (er, d) { - readJson.extraSet = es - - if (er) pkg = {} - else pkg = d - - ctx.filename = packageFile - ctx.dirname = path.dirname(packageFile) - ctx.basename = path.basename(ctx.dirname) - if (!pkg.version || !semver.valid(pkg.version)) - delete pkg.version - - ctx.package = pkg - ctx.config = config || {} - - // make sure that the input is valid. - // if not, use the default - var pz = new PZ(input, ctx) - pz.backupFile = def - pz.on('error', cb) - pz.on('data', function (data) { - Object.keys(data).forEach(function (k) { - if (data[k] !== undefined && data[k] !== null) pkg[k] = data[k] - }) - - // only do a few of these. - // no need for mans or contributors if they're in the files - var es = readJson.extraSet - readJson.extraSet = es.filter(function (fn) { - return fn.name !== 'authors' && fn.name !== 'mans' - }) - readJson.extras(packageFile, pkg, function (er, pkg) { - readJson.extraSet = es - if (er) return cb(er, pkg) - pkg = unParsePeople(pkg) - // no need for the readme now. - delete pkg.readme - delete pkg.readmeFilename - - // really don't want to have this lying around in the file - delete pkg._id - - // ditto - delete pkg.gitHead - - // if the repo is empty, remove it. - if (!pkg.repository) - delete pkg.repository - - // readJson filters out empty descriptions, but init-package-json - // traditionally leaves them alone - if (!pkg.description) - pkg.description = data.description - - var d = JSON.stringify(pkg, null, 2) + '\n' - function write (yes) { - fs.writeFile(packageFile, d, 'utf8', function (er) { - if (!er && yes && !config.get('silent')) { - console.log('Wrote to %s:\n\n%s\n', packageFile, d) - } - return cb(er, pkg) - }) - } - if (ctx.yes) { - 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) { - if (er) { - return cb(er) - } - if (!ok || ok.toLowerCase().charAt(0) !== 'y') { - console.log('Aborted.') - } else { - return write() - } - }) - }) - }) - }) - -} - -// turn the objects into somewhat more humane strings. -function unParsePeople (data) { - if (data.author) data.author = unParsePerson(data.author) - ;["maintainers", "contributors"].forEach(function (set) { - if (!Array.isArray(data[set])) return; - data[set] = data[set].map(unParsePerson) - }) - return data -} - -function unParsePerson (person) { - if (typeof person === "string") return person - var name = person.name || "" - var u = person.url || person.web - var url = u ? (" ("+u+")") : "" - var e = person.email || person.mail - var email = e ? (" <"+e+">") : "" - return name+email+url -} - diff --git a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE b/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE deleted file mode 100644 index 05eeeb88c2e..00000000000 --- a/deps/npm/node_modules/init-package-json/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/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 d45032dc74a..00000000000 --- 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 a61c0574298..00000000000 --- 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 61a2c444aa6..00000000000 --- 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/.npmignore b/deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore deleted file mode 100644 index 15a1789a695..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore +++ /dev/null @@ -1 +0,0 @@ -example/npm-init/package.json 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 05eeeb88c2e..00000000000 --- 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/README.md b/deps/npm/node_modules/init-package-json/node_modules/promzard/README.md deleted file mode 100644 index 93c0418a6c6..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# promzard - -A prompting wizard for building files from specialized PromZard modules. -Used by `npm init`. - -A reimplementation of @SubStack's -[prompter](https://github.com/substack/node-prompter), which does not -use AST traversal. - -From another point of view, it's a reimplementation of -[@Marak](https://github.com/marak)'s -[wizard](https://github.com/Marak/wizard) which doesn't use schemas. - -The goal is a nice drop-in enhancement for `npm init`. - -## Usage - -```javascript -var promzard = require('promzard') -promzard(inputFile, optionalContextAdditions, function (er, data) { - // .. you know what you doing .. -}) -``` - -In the `inputFile` you can have something like this: - -```javascript -var fs = require('fs') -module.exports = { - "greeting": prompt("Who shall you greet?", "world", function (who) { - return "Hello, " + who - }), - "filename": __filename, - "directory": function (cb) { - fs.readdir(__dirname, cb) - } -} -``` - -When run, promzard will display the prompts and resolve the async -functions in order, and then either give you an error, or the resolved -data, ready to be dropped into a JSON file or some other place. - - -### promzard(inputFile, ctx, callback) - -The inputFile is just a node module. You can require() things, set -module.exports, etc. Whatever that module exports is the result, and it -is walked over to call any functions as described below. - -The only caveat is that you must give PromZard the full absolute path -to the module (you can get this via Node's `require.resolve`.) Also, -the `prompt` function is injected into the context object, so watch out. - -Whatever you put in that `ctx` will of course also be available in the -module. You can get quite fancy with this, passing in existing configs -and so on. - -### Class: promzard.PromZard(file, ctx) - -Just like the `promzard` function, but the EventEmitter that makes it -all happen. Emits either a `data` event with the data, or a `error` -event if it blows up. - -If `error` is emitted, then `data` never will be. - -### prompt(...) - -In the promzard input module, you can call the `prompt` function. -This prompts the user to input some data. The arguments are interpreted -based on type: - -1. `string` The first string encountered is the prompt. The second is - the default value. -2. `function` A transformer function which receives the data and returns - something else. More than meets the eye. -3. `object` The `prompt` member is the prompt, the `default` member is - the default value, and the `transform` is the transformer. - -Whatever the final value is, that's what will be put on the resulting -object. - -### Functions - -If there are any functions on the promzard input module's exports, then -promzard will call each of them with a callback. This way, your module -can do asynchronous actions if necessary to validate or ascertain -whatever needs verification. - -The functions are called in the context of the ctx object, and are given -a single argument, which is a callback that should be called with either -an error, or the result to assign to that spot. - -In the async function, you can also call prompt() and return the result -of the prompt in the callback. - -For example, this works fine in a promzard module: - -``` -exports.asyncPrompt = function (cb) { - fs.stat(someFile, function (er, st) { - // if there's an error, no prompt, just error - // otherwise prompt and use the actual file size as the default - cb(er, prompt('file size', st.size)) - }) -} -``` - -You can also return other async functions in the async function -callback. Though that's a bit silly, it could be a handy way to reuse -functionality in some cases. - -### Sync vs Async - -The `prompt()` function is not synchronous, though it appears that way. -It just returns a token that is swapped out when the data object is -walked over asynchronously later, and returns a token. - -For that reason, prompt() calls whose results don't end up on the data -object are never shown to the user. For example, this will only prompt -once: - -``` -exports.promptThreeTimes = prompt('prompt me once', 'shame on you') -exports.promptThreeTimes = prompt('prompt me twice', 'um....') -exports.promptThreeTimes = prompt('you cant prompt me again') -``` - -### Isn't this exactly the sort of 'looks sync' that you said was bad about other libraries? - -Yeah, sorta. I wouldn't use promzard for anything more complicated than -a wizard that spits out prompts to set up a config file or something. -Maybe there are other use cases I haven't considered. diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js deleted file mode 100644 index 828f9d1df9d..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js +++ /dev/null @@ -1,12 +0,0 @@ -var pz = require('../promzard') - -var path = require('path') -var file = path.resolve(__dirname, 'substack-input.js') -var buf = require('fs').readFileSync(file) -var ctx = { basename: path.basename(path.dirname(file)) } - -pz.fromBuffer(buf, ctx, function (er, res) { - if (er) - throw er - console.error(JSON.stringify(res, null, 2)) -}) diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js deleted file mode 100644 index 435131f3a6d..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js +++ /dev/null @@ -1,11 +0,0 @@ -var pz = require('../promzard') - -var path = require('path') -var file = path.resolve(__dirname, 'substack-input.js') -var ctx = { basename: path.basename(path.dirname(file)) } - -pz(file, ctx, function (er, res) { - if (er) - throw er - console.error(JSON.stringify(res, null, 2)) -}) diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md deleted file mode 100644 index 46e5592c304..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# npm-init - -An initter you init wit, innit? - -## More stuff here - -Blerp derp herp lerg borgle pop munch efemerate baz foo a gandt synergy -jorka chatt slurm. diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js deleted file mode 100644 index ba7781b3539..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js +++ /dev/null @@ -1,191 +0,0 @@ -var fs = require('fs') -var path = require('path'); - -module.exports = { - "name" : prompt('name', - typeof name === 'undefined' - ? basename.replace(/^node-|[.-]js$/g, ''): name), - "version" : prompt('version', typeof version !== "undefined" - ? version : '0.0.0'), - "description" : (function () { - if (typeof description !== 'undefined' && description) { - return description - } - var value; - try { - var src = fs.readFileSync('README.md', 'utf8'); - value = src.split('\n').filter(function (line) { - return /\s+/.test(line) - && line.trim() !== basename.replace(/^node-/, '') - && !line.trim().match(/^#/) - ; - })[0] - .trim() - .replace(/^./, function (c) { return c.toLowerCase() }) - .replace(/\.$/, '') - ; - } - catch (e) { - try { - // Wouldn't it be nice if that file mattered? - var d = fs.readFileSync('.git/description', 'utf8') - } catch (e) {} - if (d.trim() && !value) value = d - } - return prompt('description', value); - })(), - "main" : (function () { - var f - try { - f = fs.readdirSync(dirname).filter(function (f) { - return f.match(/\.js$/) - }) - if (f.indexOf('index.js') !== -1) - f = 'index.js' - else if (f.indexOf('main.js') !== -1) - f = 'main.js' - else if (f.indexOf(basename + '.js') !== -1) - f = basename + '.js' - else - f = f[0] - } catch (e) {} - - return prompt('entry point', f || 'index.js') - })(), - "bin" : function (cb) { - fs.readdir(dirname + '/bin', function (er, d) { - // no bins - if (er) return cb() - // just take the first js file we find there, or nada - return cb(null, d.filter(function (f) { - return f.match(/\.js$/) - })[0]) - }) - }, - "directories" : function (cb) { - fs.readdir('.', function (er, dirs) { - if (er) return cb(er) - var res = {} - dirs.forEach(function (d) { - switch (d) { - case 'example': case 'examples': return res.example = d - case 'test': case 'tests': return res.test = d - case 'doc': case 'docs': return res.doc = d - case 'man': return res.man = d - } - }) - if (Object.keys(res).length === 0) res = undefined - return cb(null, res) - }) - }, - "dependencies" : typeof dependencies !== 'undefined' ? dependencies - : function (cb) { - fs.readdir('node_modules', function (er, dir) { - if (er) return cb() - var deps = {} - var n = dir.length - dir.forEach(function (d) { - if (d.match(/^\./)) return next() - if (d.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/)) - return next() - fs.readFile('node_modules/' + d + '/package.json', function (er, p) { - if (er) return next() - try { p = JSON.parse(p) } catch (e) { return next() } - if (!p.version) return next() - deps[d] = '~' + p.version - return next() - }) - }) - function next () { - if (--n === 0) return cb(null, deps) - } - }) - }, - "devDependencies" : typeof devDependencies !== 'undefined' ? devDependencies - : function (cb) { - // same as dependencies but for dev deps - fs.readdir('node_modules', function (er, dir) { - if (er) return cb() - var deps = {} - var n = dir.length - dir.forEach(function (d) { - if (d.match(/^\./)) return next() - if (!d.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/)) - return next() - fs.readFile('node_modules/' + d + '/package.json', function (er, p) { - if (er) return next() - try { p = JSON.parse(p) } catch (e) { return next() } - if (!p.version) return next() - deps[d] = '~' + p.version - return next() - }) - }) - function next () { - if (--n === 0) return cb(null, deps) - } - }) - }, - "scripts" : (function () { - // check to see what framework is in use, if any - try { var d = fs.readdirSync('node_modules') } - catch (e) { d = [] } - var s = typeof scripts === 'undefined' ? {} : scripts - - if (d.indexOf('coffee-script') !== -1) - s.prepublish = prompt('build command', - s.prepublish || 'coffee src/*.coffee -o lib') - - var notest = 'echo "Error: no test specified" && exit 1' - function tx (test) { - return test || notest - } - - if (!s.test || s.test === notest) { - if (d.indexOf('tap') !== -1) - s.test = prompt('test command', 'tap test/*.js', tx) - else if (d.indexOf('expresso') !== -1) - s.test = prompt('test command', 'expresso test', tx) - else if (d.indexOf('mocha') !== -1) - s.test = prompt('test command', 'mocha', tx) - else - s.test = prompt('test command', tx) - } - - return s - - })(), - - "repository" : (function () { - try { var gconf = fs.readFileSync('.git/config') } - catch (e) { gconf = null } - if (gconf) { - gconf = gconf.split(/\r?\n/) - var i = gconf.indexOf('[remote "origin"]') - if (i !== -1) { - var u = gconf[i + 1] - if (!u.match(/^\s*url =/)) u = gconf[i + 2] - if (!u.match(/^\s*url =/)) u = null - else u = u.replace(/^\s*url = /, '') - } - if (u && u.match(/^git@github.com:/)) - u = u.replace(/^git@github.com:/, 'git://github.com/') - } - - return prompt('git repository', u) - })(), - - "keywords" : prompt(function (s) { - if (!s) return undefined - if (Array.isArray(s)) s = s.join(' ') - if (typeof s !== 'string') return s - return s.split(/[\s,]+/) - }), - "author" : config['init.author.name'] - ? { - "name" : config['init.author.name'], - "email" : config['init.author.email'], - "url" : config['init.author.url'] - } - : undefined, - "license" : prompt('license', 'BSD') -} diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js deleted file mode 100644 index 09484cd1c19..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js +++ /dev/null @@ -1,37 +0,0 @@ -var PZ = require('../../promzard').PromZard -var path = require('path') -var input = path.resolve(__dirname, 'init-input.js') - -var fs = require('fs') -var package = path.resolve(__dirname, 'package.json') -var pkg - -fs.readFile(package, 'utf8', function (er, d) { - if (er) ctx = {} - try { ctx = JSON.parse(d); pkg = JSON.parse(d) } - catch (e) { ctx = {} } - - ctx.dirname = path.dirname(package) - ctx.basename = path.basename(ctx.dirname) - if (!ctx.version) ctx.version = undefined - - // this should be replaced with the npm conf object - ctx.config = {} - - console.error('ctx=', ctx) - - var pz = new PZ(input, ctx) - - pz.on('data', function (data) { - console.error('pz data', data) - if (!pkg) pkg = {} - Object.keys(data).forEach(function (k) { - if (data[k] !== undefined && data[k] !== null) pkg[k] = data[k] - }) - console.error('package data %s', JSON.stringify(data, null, 2)) - fs.writeFile(package, JSON.stringify(pkg, null, 2), function (er) { - if (er) throw er - console.log('ok') - }) - }) -}) diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json deleted file mode 100644 index 89c6d1fb6e2..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "npm-init", - "version": "0.0.0", - "description": "an initter you init wit, innit?", - "main": "index.js", - "scripts": { - "test": "asdf" - }, - "license": "BSD" -} \ No newline at end of file diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js deleted file mode 100644 index bf7aedb82d4..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js +++ /dev/null @@ -1,61 +0,0 @@ -module.exports = { - "name" : basename.replace(/^node-/, ''), - "version" : "0.0.0", - "description" : (function (cb) { - var fs = require('fs'); - var value; - try { - var src = fs.readFileSync('README.markdown', 'utf8'); - value = src.split('\n').filter(function (line) { - return /\s+/.test(line) - && line.trim() !== basename.replace(/^node-/, '') - ; - })[0] - .trim() - .replace(/^./, function (c) { return c.toLowerCase() }) - .replace(/\.$/, '') - ; - } - catch (e) {} - - return prompt('description', value); - })(), - "main" : prompt('entry point', 'index.js'), - "bin" : function (cb) { - var path = require('path'); - var fs = require('fs'); - var exists = fs.exists || path.exists; - exists('bin/cmd.js', function (ex) { - var bin - if (ex) { - var bin = {} - bin[basename.replace(/^node-/, '')] = 'bin/cmd.js' - } - cb(null, bin); - }); - }, - "directories" : { - "example" : "example", - "test" : "test" - }, - "dependencies" : {}, - "devDependencies" : { - "tap" : "~0.2.5" - }, - "scripts" : { - "test" : "tap test/*.js" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/" + basename + ".git" - }, - "homepage" : "https://github.com/substack/" + basename, - "keywords" : prompt(function (s) { return s.split(/\s+/) }), - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "license" : "MIT", - "engine" : { "node" : ">=0.6" } -} 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 a7e35210056..00000000000 --- 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/node_modules/promzard/promzard.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js deleted file mode 100644 index da1abca9535..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js +++ /dev/null @@ -1,238 +0,0 @@ -module.exports = promzard -promzard.PromZard = PromZard - -var fs = require('fs') -var vm = require('vm') -var util = require('util') -var files = {} -var crypto = require('crypto') -var EventEmitter = require('events').EventEmitter -var read = require('read') - -var Module = require('module').Module -var path = require('path') - -function promzard (file, ctx, cb) { - if (typeof ctx === 'function') cb = ctx, ctx = null; - if (!ctx) ctx = {}; - var pz = new PromZard(file, ctx) - pz.on('error', cb) - pz.on('data', function (data) { - cb(null, data) - }) -} -promzard.fromBuffer = function (buf, ctx, cb) { - var filename = 0 - do { - filename = '\0' + Math.random(); - } while (files[filename]) - files[filename] = buf - var ret = promzard(filename, ctx, cb) - delete files[filename] - return ret -} - -function PromZard (file, ctx) { - if (!(this instanceof PromZard)) - return new PromZard(file, ctx) - EventEmitter.call(this) - this.file = file - this.ctx = ctx - this.unique = crypto.randomBytes(8).toString('hex') - this.load() -} - -PromZard.prototype = Object.create( - EventEmitter.prototype, - { constructor: { - value: PromZard, - readable: true, - configurable: true, - writable: true, - enumerable: false } } ) - -PromZard.prototype.load = function () { - if (files[this.file]) - return this.loaded() - - fs.readFile(this.file, 'utf8', function (er, d) { - if (er && this.backupFile) { - this.file = this.backupFile - delete this.backupFile - return this.load() - } - if (er) - return this.emit('error', this.error = er) - files[this.file] = d - this.loaded() - }.bind(this)) -} - -PromZard.prototype.loaded = function () { - this.ctx.prompt = this.makePrompt() - this.ctx.__filename = this.file - this.ctx.__dirname = path.dirname(this.file) - this.ctx.__basename = path.basename(this.file) - var mod = this.ctx.module = this.makeModule() - this.ctx.require = function (path) { - return mod.require(path) - } - this.ctx.require.resolve = function(path) { - return Module._resolveFilename(path, mod); - } - this.ctx.exports = mod.exports - - this.script = this.wrap(files[this.file]) - var fn = vm.runInThisContext(this.script, this.file) - var args = Object.keys(this.ctx).map(function (k) { - return this.ctx[k] - }.bind(this)) - try { var res = fn.apply(this.ctx, args) } - catch (er) { this.emit('error', er) } - if (res && - typeof res === 'object' && - exports === mod.exports && - Object.keys(exports).length === 1) { - this.result = res - } else { - this.result = mod.exports - } - this.walk() -} - -PromZard.prototype.makeModule = function () { - var mod = new Module(this.file, module) - mod.loaded = true - mod.filename = this.file - mod.id = this.file - mod.paths = Module._nodeModulePaths(path.dirname(this.file)) - return mod -} - -PromZard.prototype.wrap = function (body) { - var s = '(function( %s ) { %s\n })' - var args = Object.keys(this.ctx).join(', ') - return util.format(s, args, body) -} - -PromZard.prototype.makePrompt = function () { - this.prompts = [] - return prompt.bind(this) - function prompt () { - var p, d, t - for (var i = 0; i < arguments.length; i++) { - var a = arguments[i] - if (typeof a === 'string' && p) - d = a - else if (typeof a === 'string') - p = a - else if (typeof a === 'function') - t = a - else if (a && typeof a === 'object') { - p = a.prompt || p - d = a.default || d - t = a.transform || t - } - } - - try { return this.unique + '-' + this.prompts.length } - finally { this.prompts.push([p, d, t]) } - } -} - -PromZard.prototype.walk = function (o, cb) { - o = o || this.result - cb = cb || function (er, res) { - if (er) - return this.emit('error', this.error = er) - this.result = res - return this.emit('data', res) - } - cb = cb.bind(this) - var keys = Object.keys(o) - var i = 0 - var len = keys.length - - L.call(this) - function L () { - if (this.error) - return - while (i < len) { - var k = keys[i] - var v = o[k] - i++ - - if (v && typeof v === 'object') { - return this.walk(v, function (er, res) { - if (er) return cb(er) - o[k] = res - L.call(this) - }.bind(this)) - } else if (v && - typeof v === 'string' && - v.indexOf(this.unique) === 0) { - var n = +v.substr(this.unique.length + 1) - var prompt = this.prompts[n] - if (isNaN(n) || !prompt) - continue - - // default to the key - if (undefined === prompt[0]) - prompt[0] = k - - // default to the ctx value, if there is one - if (undefined === prompt[1]) - prompt[1] = this.ctx[k] - - return this.prompt(prompt, function (er, res) { - if (er) { - if (!er.notValid) { - return this.emit('error', this.error = er); - } - console.log(er.message) - i -- - return L.call(this) - } - o[k] = res - L.call(this) - }.bind(this)) - } else if (typeof v === 'function') { - try { return v.call(this.ctx, function (er, res) { - if (er) - return this.emit('error', this.error = er) - o[k] = res - // back up so that we process this one again. - // this is because it might return a prompt() call in the cb. - i -- - L.call(this) - }.bind(this)) } - catch (er) { this.emit('error', er) } - } - } - // made it to the end of the loop, maybe - if (i >= len) - return cb(null, o) - } -} - -PromZard.prototype.prompt = function (pdt, cb) { - var prompt = pdt[0] - var def = pdt[1] - var tx = pdt[2] - - if (tx) { - cb = function (cb) { return function (er, data) { - try { - var res = tx(data) - if (!er && res instanceof Error && !!res.notValid) { - return cb(res, null) - } - return cb(er, res) - } - catch (er) { this.emit('error', er) } - }}(cb).bind(this) - } - - 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/init-package-json/node_modules/promzard/test/basic.js deleted file mode 100644 index ad1c92df9c4..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js +++ /dev/null @@ -1,91 +0,0 @@ -var tap = require('tap') -var pz = require('../promzard.js') -var spawn = require('child_process').spawn - -tap.test('run the example', function (t) { - - var example = require.resolve('../example/index.js') - var node = process.execPath - - var expect = { - "name": "example", - "version": "0.0.0", - "description": "testing description", - "main": "test-entry.js", - "directories": { - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.5" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/example.git" - }, - "homepage": "https://github.com/substack/example", - "keywords": [ - "fugazi", - "function", - "waiting", - "room" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "engine": { - "node": ">=0.6" - } - } - - console.error('%s %s', node, example) - var c = spawn(node, [example], { customFds: [-1,-1,-1] }) - var output = '' - c.stdout.on('data', function (d) { - output += d - respond() - }) - - var actual = '' - c.stderr.on('data', function (d) { - actual += d - }) - - function respond () { - console.error('respond', output) - if (output.match(/description: $/)) { - c.stdin.write('testing description\n') - return - } - if (output.match(/entry point: \(index\.js\) $/)) { - c.stdin.write('test-entry.js\n') - return - } - if (output.match(/keywords: $/)) { - c.stdin.write('fugazi function waiting room\n') - // "read" module is weird on node >= 0.10 when not a TTY - // requires explicit ending for reasons. - // could dig in, but really just wanna make tests pass, whatever. - c.stdin.end() - return - } - } - - c.on('exit', function () { - console.error('exit event') - }) - - c.on('close', function () { - console.error('actual', actual) - actual = JSON.parse(actual) - t.deepEqual(actual, expect) - t.end() - }) -}) diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js deleted file mode 100644 index e1d240e2e4f..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js +++ /dev/null @@ -1,84 +0,0 @@ -var tap = require('tap') -var pz = require('../promzard.js') -var spawn = require('child_process').spawn - -tap.test('run the example using a buffer', function (t) { - - var example = require.resolve('../example/buffer.js') - var node = process.execPath - - var expect = { - "name": "example", - "version": "0.0.0", - "description": "testing description", - "main": "test-entry.js", - "directories": { - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.5" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/example.git" - }, - "homepage": "https://github.com/substack/example", - "keywords": [ - "fugazi", - "function", - "waiting", - "room" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "engine": { - "node": ">=0.6" - } - } - - var c = spawn(node, [example], { customFds: [-1,-1,-1] }) - var output = '' - c.stdout.on('data', function (d) { - output += d - respond() - }) - - var actual = '' - c.stderr.on('data', function (d) { - actual += d - }) - - function respond () { - if (output.match(/description: $/)) { - c.stdin.write('testing description\n') - return - } - if (output.match(/entry point: \(index\.js\) $/)) { - c.stdin.write('test-entry.js\n') - return - } - if (output.match(/keywords: $/)) { - c.stdin.write('fugazi function waiting room\n') - // "read" module is weird on node >= 0.10 when not a TTY - // requires explicit ending for reasons. - // could dig in, but really just wanna make tests pass, whatever. - c.stdin.end() - return - } - } - - c.on('close', function () { - actual = JSON.parse(actual) - t.deepEqual(actual, expect) - t.end() - }) -}) diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input deleted file mode 100644 index 061cbfe1055..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input +++ /dev/null @@ -1,5 +0,0 @@ -exports.a = 1 + 2 -exports.b = prompt('To be or not to be?', '!2b') -exports.c = {} -exports.c.x = prompt() -exports.c.y = tmpdir + "/y/file.txt" diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js deleted file mode 100644 index c17993a4e9e..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js +++ /dev/null @@ -1,48 +0,0 @@ -var test = require('tap').test; -var promzard = require('../'); - -if (process.argv[2] === 'child') { - return child() -} - -test('exports', function (t) { - t.plan(1); - - var spawn = require('child_process').spawn - var child = spawn(process.execPath, [__filename, 'child']) - - var output = '' - child.stderr.on('data', function (c) { - output += c - }) - - setTimeout(function () { - child.stdin.write('\n'); - }, 100) - setTimeout(function () { - child.stdin.end('55\n'); - }, 200) - - child.on('close', function () { - console.error('output=%j', output) - output = JSON.parse(output) - t.same({ - a : 3, - b : '!2b', - c : { - x : 55, - y : '/tmp/y/file.txt', - } - }, output); - t.end() - }) -}); - -function child () { - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/exports.input'; - - promzard(file, ctx, function (err, output) { - console.error(JSON.stringify(output)) - }); -} diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input deleted file mode 100644 index ed6c3f1c80c..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input +++ /dev/null @@ -1,18 +0,0 @@ -var fs = require('fs') - -module.exports = { - "a": 1 + 2, - "b": prompt('To be or not to be?', '!2b', function (s) { - return s.toUpperCase() + '...' - }), - "c": { - "x": prompt(function (x) { return x * 100 }), - "y": tmpdir + "/y/file.txt" - }, - a_function: function (cb) { - fs.readFile(__filename, 'utf8', cb) - }, - asyncPrompt: function (cb) { - return cb(null, prompt('a prompt at any other time would smell as sweet')) - } -} diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js deleted file mode 100644 index 899ebedbdd0..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js +++ /dev/null @@ -1,56 +0,0 @@ -var test = require('tap').test; -var promzard = require('../'); -var fs = require('fs') -var file = __dirname + '/fn.input'; - -var expect = { - a : 3, - b : '!2B...', - c : { - x : 5500, - y : '/tmp/y/file.txt', - } -} -expect.a_function = fs.readFileSync(file, 'utf8') -expect.asyncPrompt = 'async prompt' - -if (process.argv[2] === 'child') { - return child() -} - -test('prompt callback param', function (t) { - t.plan(1); - - var spawn = require('child_process').spawn - var child = spawn(process.execPath, [__filename, 'child']) - - var output = '' - child.stderr.on('data', function (c) { - output += c - }) - - child.on('close', function () { - console.error('output=%j', output) - output = JSON.parse(output) - t.same(output, expect); - t.end() - }) - - setTimeout(function () { - child.stdin.write('\n') - }, 100) - setTimeout(function () { - child.stdin.write('55\n') - }, 150) - setTimeout(function () { - child.stdin.end('async prompt\n') - }, 200) -}) - -function child () { - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/fn.input'; - promzard(file, ctx, function (err, output) { - console.error(JSON.stringify(output)) - }) -} diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input deleted file mode 100644 index e49def6470d..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - "a": 1 + 2, - "b": prompt('To be or not to be?', '!2b'), - "c": { - "x": prompt(), - "y": tmpdir + "/y/file.txt" - } -} diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js deleted file mode 100644 index 034a86475af..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js +++ /dev/null @@ -1,30 +0,0 @@ -var test = require('tap').test; -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) { - t.same( - { - a : 3, - b : '!2b', - c : { - x : 55, - y : '/tmp/y/file.txt', - } - }, - 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/init-package-json/node_modules/promzard/test/validate.input deleted file mode 100644 index 839c0652294..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - "name": prompt("name", function (data) { - if (data === 'cool') return data - var er = new Error('not cool') - er.notValid = true - return er - }) -} diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js b/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js deleted file mode 100644 index a120681494e..00000000000 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js +++ /dev/null @@ -1,20 +0,0 @@ - -var promzard = require('../') -var test = require('tap').test - -test('validate', function (t) { - t.plan(2) - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/validate.input' - promzard(file, ctx, function (er, found) { - t.ok(!er) - var wanted = { name: 'cool' } - t.same(found, wanted) - }) - setTimeout(function () { - process.stdin.emit('data', 'not cool\n') - }, 100) - setTimeout(function () { - process.stdin.emit('data', 'cool\n') - }, 200) -}) diff --git a/deps/npm/node_modules/init-package-json/package.json b/deps/npm/node_modules/init-package-json/package.json deleted file mode 100644 index 7a6373a695a..00000000000 --- a/deps/npm/node_modules/init-package-json/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_from": "init-package-json@~1.10.1", - "_id": "init-package-json@1.10.1", - "_integrity": "sha1-zYc6FneWvvuZYSsodioLY5P9j2o=", - "_location": "/init-package-json", - "_phantomChildren": { - "read": "1.0.7" - }, - "_requested": { - "type": "range", - "registry": true, - "raw": "init-package-json@~1.10.1", - "name": "init-package-json", - "escapedName": "init-package-json", - "rawSpec": "~1.10.1", - "saveSpec": null, - "fetchSpec": "~1.10.1" - }, - "_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", - "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", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "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", - "rimraf": "^2.1.4", - "tap": "^10.3.0" - }, - "files": [ - "default-input.js", - "init-package-json.js" - ], - "homepage": "https://github.com/npm/init-package-json#readme", - "keywords": [ - "init", - "package.json", - "package", - "helper", - "wizard", - "wizerd", - "prompt", - "start" - ], - "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" - }, - "version": "1.10.1" -} diff --git a/deps/npm/node_modules/is-cidr/.npmignore b/deps/npm/node_modules/is-cidr/.npmignore deleted file mode 100644 index 8eba6c8dd4d..00000000000 --- 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 6eeec8aa940..00000000000 --- 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/README.md b/deps/npm/node_modules/is-cidr/README.md deleted file mode 100644 index 403071bba8d..00000000000 --- a/deps/npm/node_modules/is-cidr/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# is-cidr - -Check if a string is a valid 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) - -## 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 - -// is a CIDR v4 -isCidr('18.101.25.153/24') // true - -// is not a CIDR v4 -isCidrV4('999.999.999.999/12') // false - -// 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 -``` - -## API - -### isCidr(string) - -Check if a string is CIDR IPv4. - -### isCidrV4(string) - -Check if a string is CIDR IPv4. - -### isCidrV6(string) - -Check if a string is CIDR IPv6. - -## License - -MIT © [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 d64bb9176d3..00000000000 --- 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/lib/index.js b/deps/npm/node_modules/is-cidr/lib/index.js deleted file mode 100644 index a3670604917..00000000000 --- 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 8eba6c8dd4d..00000000000 --- 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 df715efc2b2..00000000000 --- 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 44533ae3a4e..00000000000 --- 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 0c23adf2002..00000000000 --- 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 8442b67ec84..00000000000 --- 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 deleted file mode 100644 index 982863d837a..00000000000 --- a/deps/npm/node_modules/is-cidr/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "_from": "is-cidr", - "_id": "is-cidr@1.0.0", - "_inBundle": false, - "_integrity": "sha1-+1qs9lklUxA1naMsrgPkDGocKvw=", - "_location": "/is-cidr", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "is-cidr", - "name": "is-cidr", - "escapedName": "is-cidr", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-1.0.0.tgz", - "_shasum": "fb5aacf659255310359da32cae03e40c6a1c2afc", - "_spec": "is-cidr", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Felipe Apostol", - "email": "flipjs.io@gmail.com", - "url": "http://flipjs.io/" - }, - "babel": { - "presets": [ - "es2015" - ] - }, - "bugs": { - "url": "https://github.com/flipjs/is-cidr/issues" - }, - "bundleDependencies": false, - "config": { - "commitizen": { - "path": "node_modules/cz-conventional-changelog" - }, - "ghooks": { - "pre-commit": "npm run test && npm run build" - } - }, - "dependencies": { - "cidr-regex": "1.0.6" - }, - "deprecated": false, - "description": "Check if a string is a valid CIDR", - "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" - }, - "homepage": "https://github.com/flipjs/is-cidr#readme", - "keywords": [ - "ip", - "ip address", - "cidr", - "netblock", - "regex" - ], - "license": "MIT", - "main": "lib/index.js", - "name": "is-cidr", - "repository": { - "type": "git", - "url": "git+https://github.com/flipjs/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" - }, - "version": "1.0.0" -} 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 4804bb02b46..00000000000 --- 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/lazy-property/.npmignore b/deps/npm/node_modules/lazy-property/.npmignore deleted file mode 100644 index 038e0242ebf..00000000000 --- a/deps/npm/node_modules/lazy-property/.npmignore +++ /dev/null @@ -1,16 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log -node_modules/* -test/* \ No newline at end of file diff --git a/deps/npm/node_modules/lazy-property/LICENSE b/deps/npm/node_modules/lazy-property/LICENSE deleted file mode 100644 index 8ce206a8454..00000000000 --- a/deps/npm/node_modules/lazy-property/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2013 Mikola Lysenko - -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/lazy-property/README.md b/deps/npm/node_modules/lazy-property/README.md deleted file mode 100644 index d339c8f460e..00000000000 --- a/deps/npm/node_modules/lazy-property/README.md +++ /dev/null @@ -1,44 +0,0 @@ -lazy-property -============= -Adds a lazily initialized property to an object. - -## Example - -```javascript -var addLazyProperty = require("lazy-property") - -var obj = {} - -addLazyProperty(obj, "foo", function() { - console.log("initialized!") - return "bar" -}) - -//Access the property -console.log(obj.foo) -console.log(obj.foo) - -//Prints out: -// -// initialized! -// bar -// bar -// -``` - -## Install - - npm install lazy-property - -## API - -### `require("lazy-property")(obj, name, init[, enumerable])` -Adds a lazily initialized property to the object. - -* `obj` is the object to add the property to -* `name` is the name of the property -* `init` is a function that computes the value of the property -* `enumerable` if the property is enumerable (default `false`) - -## Credits -(c) 2013 Mikola Lysenko. MIT License diff --git a/deps/npm/node_modules/lazy-property/component.json b/deps/npm/node_modules/lazy-property/component.json deleted file mode 100644 index 142938e4968..00000000000 --- a/deps/npm/node_modules/lazy-property/component.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "lazy-property", - "version": "0.0.2", - "description": "Lazily initialized properties for objects", - "main": "lazyProperty.js", - "scripts": ["lazyProperty.js"] -} diff --git a/deps/npm/node_modules/lazy-property/lazyProperty.js b/deps/npm/node_modules/lazy-property/lazyProperty.js deleted file mode 100644 index 20e5fe19129..00000000000 --- a/deps/npm/node_modules/lazy-property/lazyProperty.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict" - -function addLazyProperty(object, name, initializer, enumerable) { - Object.defineProperty(object, name, { - get: function() { - var v = initializer.call(this) - Object.defineProperty(this, name, { value: v, enumerable: !!enumerable, writable: true }) - return v - }, - set: function(v) { - Object.defineProperty(this, name, { value: v, enumerable: !!enumerable, writable: true }) - return v - }, - enumerable: !!enumerable, - configurable: true - }) -} - -module.exports = addLazyProperty diff --git a/deps/npm/node_modules/lazy-property/package.json b/deps/npm/node_modules/lazy-property/package.json deleted file mode 100644 index f921ada2ec5..00000000000 --- a/deps/npm/node_modules/lazy-property/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "_from": "lazy-property@~1.0.0", - "_id": "lazy-property@1.0.0", - "_integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", - "_location": "/lazy-property", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "lazy-property@~1.0.0", - "name": "lazy-property", - "escapedName": "lazy-property", - "rawSpec": "~1.0.0", - "saveSpec": null, - "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", - "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" - }, - "directories": { - "test": "test" - }, - "gitHead": "850a27f710ec72f05b534805c31f095ff590f1ea", - "homepage": "https://github.com/mikolalysenko/lazy-property#readme", - "keywords": [ - "lazy", - "property", - "object", - "initialize", - "array", - "dictionary" - ], - "license": "MIT", - "main": "lazyProperty.js", - "name": "lazy-property", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/mikolalysenko/lazy-property.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "version": "1.0.0" -} diff --git a/deps/npm/node_modules/libnpx/CHANGELOG.md b/deps/npm/node_modules/libnpx/CHANGELOG.md deleted file mode 100644 index 802f8406898..00000000000 --- a/deps/npm/node_modules/libnpx/CHANGELOG.md +++ /dev/null @@ -1,740 +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. - - -## [9.7.1](https://github.com/zkat/npx/compare/v9.7.0...v9.7.1) (2017-10-19) - - -### Bug Fixes - -* **main:** err... oops? ([f24b4e3](https://github.com/zkat/npx/commit/f24b4e3)) - - - - -# [9.7.0](https://github.com/zkat/npx/compare/v9.6.0...v9.7.0) (2017-10-19) - - -### Bug Fixes - -* **exec:** fixed unix binary pathing issues (#120) ([f80a970](https://github.com/zkat/npx/commit/f80a970)), closes [#120](https://github.com/zkat/npx/issues/120) - - -### Features - -* **child:** add opts.installerStdio (#126) ([ade03f7](https://github.com/zkat/npx/commit/ade03f7)) - - - - -# [9.6.0](https://github.com/zkat/npx/compare/v9.5.0...v9.6.0) (2017-08-17) - - -### Features - -* **i18n:** add Arabic translation (#111) ([3c5b99a](https://github.com/zkat/npx/commit/3c5b99a)) -* **i18n:** add Dutch (#108) ([ed116fd](https://github.com/zkat/npx/commit/ed116fd)) - - - - -# [9.5.0](https://github.com/zkat/npx/compare/v9.4.1...v9.5.0) (2017-07-28) - - -### Features - -* **i18n:** add Polish translations (#99) ([8442f59](https://github.com/zkat/npx/commit/8442f59)) - - - - -## [9.4.1](https://github.com/zkat/npx/compare/v9.4.0...v9.4.1) (2017-07-21) - - -### Bug Fixes - -* **i18n:** fix filename for uk.json locale ([2c770e4](https://github.com/zkat/npx/commit/2c770e4)) - - - - -# [9.4.0](https://github.com/zkat/npx/compare/v9.3.2...v9.4.0) (2017-07-21) - - -### Bug Fixes - -* **i18n:** minor fixes to ru locale (#92) ([f4d5051](https://github.com/zkat/npx/commit/f4d5051)), closes [#92](https://github.com/zkat/npx/issues/92) - - -### Features - -* **i18n:** `no` locale fallback for Norwegian bokmål ⚠️ In case of weird setups ⚠️ (#91) ([74f0e4c](https://github.com/zkat/npx/commit/74f0e4c)) -* **i18n:** add Bahasa Indonesia locale (#95) ([80dceeb](https://github.com/zkat/npx/commit/80dceeb)) -* **i18n:** add serbian translation (#96) ([040de7a](https://github.com/zkat/npx/commit/040de7a)) -* **i18n:** add Ukrainian locale (#93) ([9a3ef33](https://github.com/zkat/npx/commit/9a3ef33)) -* **i18n:** Added Norwegian (bokmål and nynorsk) translations (#90) ([6c5c733](https://github.com/zkat/npx/commit/6c5c733)) - - - - -## [9.3.2](https://github.com/zkat/npx/compare/v9.3.1...v9.3.2) (2017-07-17) - - -### Bug Fixes - -* **exec:** detect a wider range of shebang lines for node scripts (#89) ([1841b6f](https://github.com/zkat/npx/commit/1841b6f)) -* **windows:** escape spawn args because windows is picky (#87) ([314e5eb](https://github.com/zkat/npx/commit/314e5eb)) -* **windows:** get magic shim detection working on Windows (#88) ([255aeeb](https://github.com/zkat/npx/commit/255aeeb)) - - - - -## [9.3.1](https://github.com/zkat/npx/compare/v9.3.0...v9.3.1) (2017-07-17) - - -### Bug Fixes - -* **deps:** update to npm[@5](https://github.com/5).3.0 ([2b14de2](https://github.com/zkat/npx/commit/2b14de2)) - - - - -# [9.3.0](https://github.com/zkat/npx/compare/v9.2.3...v9.3.0) (2017-07-17) - - -### Features - -* **i18n:** add Korean locale (#86) ([3655314](https://github.com/zkat/npx/commit/3655314)) - - - - -## [9.2.3](https://github.com/zkat/npx/compare/v9.2.2...v9.2.3) (2017-07-17) - - -### Bug Fixes - -* **paths:** support npm/npx paths with spaces in them ([8f3b829](https://github.com/zkat/npx/commit/8f3b829)) - - - - -## [9.2.2](https://github.com/zkat/npx/compare/v9.2.1...v9.2.2) (2017-07-15) - - -### Bug Fixes - -* **npm:** escape path to npm, too ([333d2ff](https://github.com/zkat/npx/commit/333d2ff)) - - - - -## [9.2.1](https://github.com/zkat/npx/compare/v9.2.0...v9.2.1) (2017-07-14) - - -### Bug Fixes - -* **windows:** fixed windows binary pathing issues ([761dfe9](https://github.com/zkat/npx/commit/761dfe9)) - - - - -# [9.2.0](https://github.com/zkat/npx/compare/v9.1.0...v9.2.0) (2017-07-14) - - -### Bug Fixes - -* **binpath:** fix calling binaries from subdirectories ([f185d0d](https://github.com/zkat/npx/commit/f185d0d)) -* **i18n:** Fix typos in french locale (#78) ([f277fc7](https://github.com/zkat/npx/commit/f277fc7)), closes [#78](https://github.com/zkat/npx/issues/78) - - -### Features - -* **i18n:** Add German translations (#79) ([c81e26d](https://github.com/zkat/npx/commit/c81e26d)) -* **i18n:** add zh_TW translation (#80) ([98288d8](https://github.com/zkat/npx/commit/98288d8)) - - - - -# [9.1.0](https://github.com/zkat/npx/compare/v9.0.7...v9.1.0) (2017-07-12) - - -### Bug Fixes - -* **call:** only npm run env if package.json exists ([370f395](https://github.com/zkat/npx/commit/370f395)) -* **i18n:** Fix grammar and spelling for de.json (#63) ([b14020f](https://github.com/zkat/npx/commit/b14020f)), closes [#63](https://github.com/zkat/npx/issues/63) -* **i18n:** wording revisions for Brazilian Portuguese (#75) ([b5dc536](https://github.com/zkat/npx/commit/b5dc536)) -* **npm:** path directly to the npm-cli.js script ([d531206](https://github.com/zkat/npx/commit/d531206)) -* **rimraf:** fix rimraf.sync is not a function issue ([d2ecba3](https://github.com/zkat/npx/commit/d2ecba3)) -* **windows:** get npx working well on Windows again (#69) ([6cfb8de](https://github.com/zkat/npx/commit/6cfb8de)), closes [#60](https://github.com/zkat/npx/issues/60) [#58](https://github.com/zkat/npx/issues/58) [#62](https://github.com/zkat/npx/issues/62) - - -### Features - -* **i18n:** add Czech translation (#76) ([8a0b3f6](https://github.com/zkat/npx/commit/8a0b3f6)) -* **i18n:** Add Turkish translation (#73) ([26e5edf](https://github.com/zkat/npx/commit/26e5edf)) -* **i18n:** Added support for Italian language (#71) ([6883e75](https://github.com/zkat/npx/commit/6883e75)) -* **i18n:** Fix Romanian translation (#70) ([fd6bbcf](https://github.com/zkat/npx/commit/fd6bbcf)), closes [#70](https://github.com/zkat/npx/issues/70) -* **node:** add --node-arg support to pass flags to node for script binaries (#77) ([65665bd](https://github.com/zkat/npx/commit/65665bd)) - - - - -## [9.0.7](https://github.com/zkat/npx/compare/v9.0.6...v9.0.7) (2017-07-11) - - -### Bug Fixes - -* **i18n:** Fix some Catalan translations (#59) ([11c8a19](https://github.com/zkat/npx/commit/11c8a19)), closes [#59](https://github.com/zkat/npx/issues/59) - - - - -## [9.0.6](https://github.com/zkat/npx/compare/v9.0.5...v9.0.6) (2017-07-11) - - -### Bug Fixes - -* **auto-fallback:** fix syntax error in bash/zsh auto-fallback ([d8b19db](https://github.com/zkat/npx/commit/d8b19db)) - - - - -## [9.0.5](https://github.com/zkat/npx/compare/v9.0.4...v9.0.5) (2017-07-11) - - -### Bug Fixes - -* **npx:** something went wrong with the 9.0.4 build and bundledeps ([75fc436](https://github.com/zkat/npx/commit/75fc436)) - - - - -## [9.0.4](https://github.com/zkat/npx/compare/v9.0.3...v9.0.4) (2017-07-11) - - -### Bug Fixes - -* **auto-fallback:** prevent infinite loop if npx disappears ([6c24e58](https://github.com/zkat/npx/commit/6c24e58)) -* **bin:** add repository and more detailed author info ([906574e](https://github.com/zkat/npx/commit/906574e)) -* **bin:** pin the npx bin's dependencies ([ae62f7a](https://github.com/zkat/npx/commit/ae62f7a)) -* **build:** make sure changelog and license are copied to bin ([4fbb599](https://github.com/zkat/npx/commit/4fbb599)) -* **deps:** stop bundling deps in libnpx itself ([c3e56e9](https://github.com/zkat/npx/commit/c3e56e9)) -* **errors:** print command not found for packages without valid binaries ([9b24359](https://github.com/zkat/npx/commit/9b24359)) -* **help:** --no-install help text was contradicting itself ([9d96f5e](https://github.com/zkat/npx/commit/9d96f5e)) -* **install:** prevent concurrent npx runs from clobbering each other ([6b35c91](https://github.com/zkat/npx/commit/6b35c91)) -* **npx:** npx npx npx npx npx npx npx npx npx works again ([875d4cd](https://github.com/zkat/npx/commit/875d4cd)) -* **updater:** dependency injection for update-notifier target ([c3027a9](https://github.com/zkat/npx/commit/c3027a9)) -* **updater:** ignore some kinds of update-notifier errors ([7631bbe](https://github.com/zkat/npx/commit/7631bbe)) - - - - -## [9.0.3](https://github.com/zkat/npx/compare/v9.0.2...v9.0.3) (2017-07-08) - - -### Bug Fixes - -* **version:** hand version to yargs directly ([e0b5eeb](https://github.com/zkat/npx/commit/e0b5eeb)) - - - - -## [9.0.2](https://github.com/zkat/npx/compare/v9.0.1...v9.0.2) (2017-07-08) - - -### Bug Fixes - -* **manpage:** fix manpage for real because files syntax is weird ([9145e2a](https://github.com/zkat/npx/commit/9145e2a)) - - - - -## [9.0.1](https://github.com/zkat/npx/compare/v9.0.0...v9.0.1) (2017-07-08) - - -### Bug Fixes - -* **man:** make sure manpage is used in npx bin ([704b94f](https://github.com/zkat/npx/commit/704b94f)) - - - - -# [9.0.0](https://github.com/zkat/npx/compare/v8.1.1...v9.0.0) (2017-07-08) - - -### Features - -* **libnpx:** libify main npx codebase ([643f58e](https://github.com/zkat/npx/commit/643f58e)) -* **npx:** create a new binary for standalone publishing ([da5a3b7](https://github.com/zkat/npx/commit/da5a3b7)) - - -### BREAKING CHANGES - -* **libnpx:** This version of npx can no longer be used as a -standalone binary. It will be available on the registry as `libnpx`, -and a separate project will take over the role of the main `npx` binary. - - - - -## [8.1.1](https://github.com/zkat/npx/compare/v8.1.0...v8.1.1) (2017-07-06) - - -### Bug Fixes - -* **deps:** bump all deps ([6ea24bf](https://github.com/zkat/npx/commit/6ea24bf)) -* **npm:** bump npm to 5.1.0 for a bunch of fixes ([18e4587](https://github.com/zkat/npx/commit/18e4587)) - - - - -# [8.1.0](https://github.com/zkat/npx/compare/v8.0.1...v8.1.0) (2017-06-27) - - -### Bug Fixes - -* **i18n:** minor tweaks to ja.json (#46) ([1ed63c2](https://github.com/zkat/npx/commit/1ed63c2)) - - -### Features - -* **i18n:** Update pt_BR.json (#51) ([d292f22](https://github.com/zkat/npx/commit/d292f22)) - - - - -## [8.0.1](https://github.com/zkat/npx/compare/v8.0.0...v8.0.1) (2017-06-27) - - -### Bug Fixes - -* **npm:** bump npm version for more bugfixes ([30711a8](https://github.com/zkat/npx/commit/30711a8)) -* **npm:** Use --parseable option to work around output quirks ([8cb75a2](https://github.com/zkat/npx/commit/8cb75a2)) - - - - -# [8.0.0](https://github.com/zkat/npx/compare/v7.0.0...v8.0.0) (2017-06-24) - - -### Features - -* **exec:** auto-guess binaries when different from pkg name ([139c434](https://github.com/zkat/npx/commit/139c434)) - - -### BREAKING CHANGES - -* **exec:** `npx ember-cli` and such things will now execute the -binary based on some guesswork, but only when using the shorthand format -for npx execution, with no `-p` option or `-c`. This might cause npx to -unintentionally execute the wrong binary if the package in question has -multiple non-matching binaries, but that should be rare. - - - - -# [7.0.0](https://github.com/zkat/npx/compare/v6.2.0...v7.0.0) (2017-06-24) - - -### Bug Fixes - -* **win32:** improve win32 situation a bit (#50) ([b7ad934](https://github.com/zkat/npx/commit/b7ad934)) - - -### Features - -* **local:** improve the behavior when calling ./local paths (#48) ([2e418d1](https://github.com/zkat/npx/commit/2e418d1)) - - -### BREAKING CHANGES - -* **local:** `npx ./something` will now execute `./something` as a -binary or script instead of trying to install it as npm would. Other behavior -related to local path deps has likewise been changed. See -[#49](https://github.com/zkat/npx/issues/49) for a detailed explanation -of all the various cases and how each of them is handled. - - - - -# [6.2.0](https://github.com/zkat/npx/compare/v6.1.0...v6.2.0) (2017-06-23) - - -### Bug Fixes - -* **child:** iron out a few crinkles and add tests ([b3b5ef6](https://github.com/zkat/npx/commit/b3b5ef6)) -* **execCmd:** only reuse the current process if no shell passed in ([e413cff](https://github.com/zkat/npx/commit/e413cff)) -* **execCmd:** use the module built-in directly ([6f741c2](https://github.com/zkat/npx/commit/6f741c2)) -* **help:** fuck it. just hard-code it ([d5d5085](https://github.com/zkat/npx/commit/d5d5085)) -* **main:** only exec if this is the main module ([9631e2a](https://github.com/zkat/npx/commit/9631e2a)) - - -### Features - -* **i18n:** Update fr.json (#44) ([ea47c4f](https://github.com/zkat/npx/commit/ea47c4f)) -* **i18n:** update the Romanian translation. (#42) ([2ed36b6](https://github.com/zkat/npx/commit/2ed36b6)) - - - - -# [6.1.0](https://github.com/zkat/npx/compare/v6.0.0...v6.1.0) (2017-06-21) - - -### Bug Fixes - -* **deps:** remove unused gauge dep ([aa40a34](https://github.com/zkat/npx/commit/aa40a34)) - - -### Features - -* **i18n:** update ru locale (#41) ([7c84dee](https://github.com/zkat/npx/commit/7c84dee)) -* **i18n:** update zh_CN (#40) ([da4ec67](https://github.com/zkat/npx/commit/da4ec67)) -* **perf:** run node-based commands in the current process ([6efcde4](https://github.com/zkat/npx/commit/6efcde4)) - - - - -# [6.0.0](https://github.com/zkat/npx/compare/v5.4.0...v6.0.0) (2017-06-20) - - -### Bug Fixes - -* **call:** stop parsing -c for commands + fix corner cases ([bd4e538](https://github.com/zkat/npx/commit/bd4e538)) -* **child:** exec does not have the information needed to correctly escape its args ([6714992](https://github.com/zkat/npx/commit/6714992)) -* **guessCmdName:** tests failed because of lazy npa ([53a0119](https://github.com/zkat/npx/commit/53a0119)) -* **i18n:** gender inclusiveness fix for french version (#37) ([04920ae](https://github.com/zkat/npx/commit/04920ae)), closes [#37](https://github.com/zkat/npx/issues/37) -* **i18n:** typo 😇 (#38) ([ede4a53](https://github.com/zkat/npx/commit/ede4a53)) -* **install:** handle JSON parsing failures ([bec2887](https://github.com/zkat/npx/commit/bec2887)) -* **output:** stop printing out Command Failed messages ([873cffe](https://github.com/zkat/npx/commit/873cffe)) -* **parseArgs:** fix booboo in fast path ([d1e5487](https://github.com/zkat/npx/commit/d1e5487)) -* **perf:** fast-path `npx foo` arg parsing ([ba4fe71](https://github.com/zkat/npx/commit/ba4fe71)) -* **perf:** remove bluebird and defer some requires for SPEED ([00fc313](https://github.com/zkat/npx/commit/00fc313)) - - -### Features - -* **i18n:** add Romanian translations. (#34) ([9e98bd0](https://github.com/zkat/npx/commit/9e98bd0)) -* **i18n:** added a few more localizable strings ([779d950](https://github.com/zkat/npx/commit/779d950)) -* **i18n:** updated ca.json ([af7a035](https://github.com/zkat/npx/commit/af7a035)) -* **i18n:** updated es.json ([414644f](https://github.com/zkat/npx/commit/414644f)) -* **i18n:** updated ja.json ([448b082](https://github.com/zkat/npx/commit/448b082)) -* **i18n:** Ze German Translation (#35) ([6f003f5](https://github.com/zkat/npx/commit/6f003f5)) -* **package:** report number of temp packages installed ([5b7fe8d](https://github.com/zkat/npx/commit/5b7fe8d)) -* **perf:** only launch update-notifier when npx installs stuff ([549d413](https://github.com/zkat/npx/commit/549d413)) -* **quiet:** added -q/--quiet to suppress output from npx itself ([16607d9](https://github.com/zkat/npx/commit/16607d9)) - - -### BREAKING CHANGES - -* **call:** `npx -c "foo"` will no longer install `foo`. Use `-p` to specicify packages to install. npx will no longer assume any particular format or escape status for `-c` strings: they will be passed directly, unparsed, and unaltered, to child_process.spawn. - - - - -# [5.4.0](https://github.com/zkat/npx/compare/v5.3.0...v5.4.0) (2017-06-17) - - -### Bug Fixes - -* **i18n:** some corrections for es.json ([4d50b71](https://github.com/zkat/npx/commit/4d50b71)) -* **i18n:** update locale files with bugfixes ([77caf82](https://github.com/zkat/npx/commit/77caf82)) -* **i18n:** Y utility was ignoring falsy entries ([f22a4d0](https://github.com/zkat/npx/commit/f22a4d0)) -* **i18n:** してください -> します ([01671af](https://github.com/zkat/npx/commit/01671af)) - - -### Features - -* **i18n:** add catalan translation ([579efa1](https://github.com/zkat/npx/commit/579efa1)) -* **i18n:** add pt-br translation (#33) ([6142551](https://github.com/zkat/npx/commit/6142551)) -* **i18n:** added largely machine-translated ja.json ([827705f](https://github.com/zkat/npx/commit/827705f)) -* **i18n:** adds russian translation (#32) ([b2619c1](https://github.com/zkat/npx/commit/b2619c1)) - - - - -# [5.3.0](https://github.com/zkat/npx/compare/v5.2.0...v5.3.0) (2017-06-13) - - -### Features - -* **i18n:** add Chinese translation (#31) ([24e1b31](https://github.com/zkat/npx/commit/24e1b31)) - - - - -# [5.2.0](https://github.com/zkat/npx/compare/v5.1.3...v5.2.0) (2017-06-12) - - -### Bug Fixes - -* **i18n:** removing extra spacing in fr.json ([002e2b8](https://github.com/zkat/npx/commit/002e2b8)) - - -### Features - -* **i18n:** add french locale (#29) ([662395b](https://github.com/zkat/npx/commit/662395b)) - - - - -## [5.1.3](https://github.com/zkat/npx/compare/v5.1.2...v5.1.3) (2017-06-12) - - -### Bug Fixes - -* **fallback:** put the Y in the wrong place lol ([d6bf8aa](https://github.com/zkat/npx/commit/d6bf8aa)) - - - - -## [5.1.2](https://github.com/zkat/npx/compare/v5.1.1...v5.1.2) (2017-06-10) - - - - -## [5.1.1](https://github.com/zkat/npx/compare/v5.1.0...v5.1.1) (2017-06-10) - - -### Bug Fixes - -* **i18n:** forgot to add locales to files ([4118d6a](https://github.com/zkat/npx/commit/4118d6a)) - - - - -# [5.1.0](https://github.com/zkat/npx/compare/v5.0.3...v5.1.0) (2017-06-10) - - -### Bug Fixes - -* **exit:** let process exit normally to finish writes ([c50a398](https://github.com/zkat/npx/commit/c50a398)) - - -### Features - -* **i18n:** added es.json ([6cf58b9](https://github.com/zkat/npx/commit/6cf58b9)) -* **i18n:** set up i18n plus baseline en.json locale ([b67bb3a](https://github.com/zkat/npx/commit/b67bb3a)) - - - - -## [5.0.3](https://github.com/zkat/npx/compare/v5.0.2...v5.0.3) (2017-06-09) - - -### Bug Fixes - -* **fallback:** exec is no ([42c1d30](https://github.com/zkat/npx/commit/42c1d30)) - - - - -## [5.0.2](https://github.com/zkat/npx/compare/v5.0.1...v5.0.2) (2017-06-09) - - -### Bug Fixes - -* **fallback:** allow fallback to local anyway ([569cf2c](https://github.com/zkat/npx/commit/569cf2c)) - - - - -## [5.0.1](https://github.com/zkat/npx/compare/v5.0.0...v5.0.1) (2017-06-09) - - - - -# [5.0.0](https://github.com/zkat/npx/compare/v4.0.3...v5.0.0) (2017-06-09) - - -### Features - -* **fallback:** by default, only fall back if you have an @ in the name ([bea08a0](https://github.com/zkat/npx/commit/bea08a0)) - - -### BREAKING CHANGES - -* **fallback:** auto-fallback will no longer fall back unless there was -an @ sign in the command. - - - - -## [4.0.3](https://github.com/zkat/npx/compare/v4.0.2...v4.0.3) (2017-06-04) - - -### Bug Fixes - -* **npm:** use --userconfig when querying for npm cache config (#28) ([21bc3bf](https://github.com/zkat/npx/commit/21bc3bf)) - - - - -## [4.0.2](https://github.com/zkat/npx/compare/v4.0.1...v4.0.2) (2017-06-04) - - -### Bug Fixes - -* **install:** get windows workin (#27) ([9472175](https://github.com/zkat/npx/commit/9472175)) - - - - -## [4.0.1](https://github.com/zkat/npx/compare/v4.0.0...v4.0.1) (2017-06-04) - - -### Bug Fixes - -* **cmd:** make sure to use our own, enriched path ([9c89c2a](https://github.com/zkat/npx/commit/9c89c2a)) -* **error:** join args with a space on Command failed error ([c2f6f18](https://github.com/zkat/npx/commit/c2f6f18)) - - - - -# [4.0.0](https://github.com/zkat/npx/compare/v3.0.0...v4.0.0) (2017-06-03) - - -### Features - -* **call:** -c now loads same env as run-script ([76ae44c](https://github.com/zkat/npx/commit/76ae44c)) -* **npm:** allow configuration of npm binary ([e5d5634](https://github.com/zkat/npx/commit/e5d5634)) -* **npm:** embed npm binary ([a2cae9d](https://github.com/zkat/npx/commit/a2cae9d)) - - -### BREAKING CHANGES - -* **call:** scripts invoked with -c will now have a bunch of -variables added to them that were not there before. -* **npm:** npx will no longer use the system npm -- it embeds its own - - - - -# [3.0.0](https://github.com/zkat/npx/compare/v2.1.0...v3.0.0) (2017-06-03) - - -### Bug Fixes - -* **args:** accept argv as arg and fix minor bugs ([46f10fe](https://github.com/zkat/npx/commit/46f10fe)) -* **deps:** explicitly add mkdirp and rimraf to devDeps ([832c75d](https://github.com/zkat/npx/commit/832c75d)) -* **docs:** misc tweaks to docs ([ed70a7b](https://github.com/zkat/npx/commit/ed70a7b)) -* **exec:** escape binaries and args to cp.exec (#18) ([55d6a11](https://github.com/zkat/npx/commit/55d6a11)) -* **fallback:** shells were sometimes ignored based on $SHELL ([07b7efc](https://github.com/zkat/npx/commit/07b7efc)) -* **get-prefix:** nudge isRootPath ([1ab31eb](https://github.com/zkat/npx/commit/1ab31eb)) -* **help:** correctly enable -h and --help ([adc2f45](https://github.com/zkat/npx/commit/adc2f45)) -* **startup:** delay loading some things to speed up startup ([6b32bf5](https://github.com/zkat/npx/commit/6b32bf5)) - - -### Features - -* **cmd:** do some heuristic guesswork on default command names (#23) ([2404420](https://github.com/zkat/npx/commit/2404420)) -* **ignore:** add --ignore-existing option (#20) ([0866a83](https://github.com/zkat/npx/commit/0866a83)) -* **install:** added --no-install option to prevent install fallbacks ([a5fbdaf](https://github.com/zkat/npx/commit/a5fbdaf)) -* **package:** multiple --package options are now accepted ([f2fa6b3](https://github.com/zkat/npx/commit/f2fa6b3)) -* **save:** remove all save-related functionality (#19) ([ab77f6c](https://github.com/zkat/npx/commit/ab77f6c)) -* **shell:** run -c strings inside a system shell (#22) ([17db461](https://github.com/zkat/npx/commit/17db461)) - - -### BREAKING CHANGES - -* **save:** npx can no longer be used to save packages locally or globally. Use an actual package manager for that, instead. - - - - -# [2.1.0](https://github.com/zkat/npx/compare/v2.0.1...v2.1.0) (2017-06-01) - - -### Features - -* **opts:** add --shell-auto-fallback (#7) ([ac9cb40](https://github.com/zkat/npx/commit/ac9cb40)) - - - - -## [2.0.1](https://github.com/zkat/npx/compare/v2.0.0...v2.0.1) (2017-05-31) - - -### Bug Fixes - -* **exec:** use command lookup joined with current PATH ([d9175e8](https://github.com/zkat/npx/commit/d9175e8)) - - - - -# [2.0.0](https://github.com/zkat/npx/compare/v1.1.1...v2.0.0) (2017-05-31) - - -### Bug Fixes - -* **npm:** manually look up npm path for Windows compat ([0fe8fbf](https://github.com/zkat/npx/commit/0fe8fbf)) - - -### Features - -* **commands:** -p and [@version](https://github.com/version) now trigger installs ([9668c83](https://github.com/zkat/npx/commit/9668c83)) - - -### BREAKING CHANGES - -* **commands:** If a command has an explicit --package option, or if the command has an @version part, any version of the command in $PATH will be ignored and a regular install will be executed. - - - - -## [1.1.1](https://github.com/zkat/npx/compare/v1.1.0...v1.1.1) (2017-05-30) - - -### Bug Fixes - -* **docs:** make sure man page gets installed ([2aadc16](https://github.com/zkat/npx/commit/2aadc16)) - - - - -# [1.1.0](https://github.com/zkat/npx/compare/v1.0.2...v1.1.0) (2017-05-30) - - -### Bug Fixes - -* **help:** update usage string for help ([0747cff](https://github.com/zkat/npx/commit/0747cff)) -* **main:** exit if no package was parsed ([cdb579d](https://github.com/zkat/npx/commit/cdb579d)) -* **opts:** allow -- to prevent further parsing ([db7a0e4](https://github.com/zkat/npx/commit/db7a0e4)) - - -### Features - -* **updates:** added update-notifier ([8dc91d4](https://github.com/zkat/npx/commit/8dc91d4)) - - - - -## [1.0.2](https://github.com/zkat/npx/compare/v1.0.1...v1.0.2) (2017-05-30) - - -### Bug Fixes - -* **pkg:** bundle deps to guarantee global install precision ([3e21217](https://github.com/zkat/npx/commit/3e21217)) - - - - -## [1.0.1](https://github.com/zkat/npx/compare/v1.0.0...v1.0.1) (2017-05-30) - - -### Bug Fixes - -* **build:** add dummy test file to let things build ([6199eb6](https://github.com/zkat/npx/commit/6199eb6)) -* **docs:** fix arg documentation in readme/manpage ([d1cf44c](https://github.com/zkat/npx/commit/d1cf44c)) -* **opts:** add --version/-v ([2633a0e](https://github.com/zkat/npx/commit/2633a0e)) - - - - -# 1.0.0 (2017-05-30) - - -### Features - -* **npx:** initial working implementation ([a83a67d](https://github.com/zkat/npx/commit/a83a67d)) diff --git a/deps/npm/node_modules/libnpx/LICENSE.md b/deps/npm/node_modules/libnpx/LICENSE.md deleted file mode 100644 index c05cb09586f..00000000000 --- a/deps/npm/node_modules/libnpx/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/libnpx/README.md b/deps/npm/node_modules/libnpx/README.md deleted file mode 100644 index 436bdd02402..00000000000 --- a/deps/npm/node_modules/libnpx/README.md +++ /dev/null @@ -1,159 +0,0 @@ -[![npm](https://img.shields.io/npm/v/npx.svg)](https://npm.im/npx) [![license](https://img.shields.io/npm/l/npx.svg)](https://npm.im/npx) [![Travis](https://img.shields.io/travis/zkat/npx.svg)](https://travis-ci.org/zkat/npx) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/npx?svg=true)](https://ci.appveyor.com/project/zkat/npx) [![Coverage Status](https://coveralls.io/repos/github/zkat/npx/badge.svg?branch=latest)](https://coveralls.io/github/zkat/npx?branch=latest) - -# npx(1) -- execute npm package binaries - -## SYNOPSIS - -`npx [options] [@version] [command-arg]...` - -`npx [options] [-p|--package ]... [command-arg]...` - -`npx [options] -c ''` - -`npx --shell-auto-fallback [shell]` - -## INSTALL - -`npm install -g npx` - -## DESCRIPTION - -Executes `` either from a local `node_modules/.bin`, or from a central cache, installing any packages needed in order for `` to run. - -By default, `npx` will check whether `` exists in `$PATH`, or in the local project binaries, and execute that. If `` is not found, it will be installed prior to execution. - -Unless a `--package` option is specified, `npx` will try to guess the name of the binary to invoke depending on the specifier provided. All package specifiers understood by `npm` may be used with `npx`, including git specifiers, remote tarballs, local directories, or scoped packages. - -If a full specifier is included, or if `--package` is used, npx will always use a freshly-installed, temporary version of the package. This can also be forced with the `--ignore-existing` flag. - -* `-p, --package ` - define the package to be installed. This defaults to the value of ``. This is only needed for packages with multiple binaries if you want to call one of the other executables, or where the binary name does not match the package name. If this option is provided `` will be executed as-is, without interpreting `@version` if it's there. Multiple `--package` options may be provided, and all the packages specified will be installed. - -* `--no-install` - If passed to `npx`, it will only try to run `` if it already exists in the current path or in `$prefix/node_modules/.bin`. It won't try to install missing commands. - -* `--cache ` - set the location of the npm cache. Defaults to npm's own cache settings. - -* `--userconfig ` - path to the user configuration file to pass to npm. Defaults to whatever npm's current default is. - -* `-c ` - Execute `` inside an `npm run-script`-like shell environment, with all the usual environment variables available. Only the first item in `` will be automatically used as ``. Any others _must_ use `-p`. - -* `--shell ` - The shell to invoke the command with, if any. - -* `--shell-auto-fallback []` - Generates shell code to override your shell's "command not found" handler with one that calls `npx`. Tries to figure out your shell, or you can pass its name (either `bash`, `fish`, or `zsh`) as an option. See below for how to install. - -* `--ignore-existing` - If this flag is set, npx will not look in `$PATH`, or in the current package's `node_modules/.bin` for an existing version before deciding whether to install. Binaries in those paths will still be available for execution, but will be shadowed by any packages requested by this install. - -* `-q, --quiet` - Suppressed any output from npx itself (progress bars, error messages, install reports). Subcommand output itself will not be silenced. - -* `-n, --node-arg` - Extra node argument to supply to node when binary is a node script. You can supply this option multiple times to add more arguments. - -* `-v, --version` - Show the current npx version. - -## EXAMPLES - -### Running a project-local bin - -``` -$ npm i -D webpack -$ npx webpack ... -``` - -### One-off invocation without local installation - -``` -$ npm rm webpack -$ npx webpack -- ... -$ cat package.json -...webpack not in "devDependencies"... -``` - -### Invoking a command from a github repository - -``` -$ npx github:piuccio/cowsay -...or... -$ npx git+ssh://my.hosted.git:cowsay.git#semver:^1 -...etc... -``` - -### Execute a full shell command using one npx call w/ multiple packages - -``` -$ npx -p lolcatjs -p cowsay -c \ - 'echo "$npm_package_name@$npm_package_version" | cowsay | lolcatjs' -... - _____ -< your-cool-package@1.2.3 > - ----- - \ ^__^ - \ (oo)\_______ - (__)\ )\/\ - ||----w | - || || -``` - -### Run node binary with --inspect - -``` -$ npx --node-arg=--inspect cowsay -Debugger listening on ws://127.0.0.1:9229/.... -``` - -## 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. - -For example: - -``` -$ npm@4 --version -(stderr) npm@4 not found. Trying with npx... -4.6.1 -$ asdfasdfasf -zsh: command not found: asfdasdfasdf -``` - -Currently, `zsh`, `bash` (>= 4), and `fish` are supported. You can access these completion scripts using `npx --shell-auto-fallback `. - -To install permanently, add the relevant line below to your `~/.bashrc`, `~/.zshrc`, `~/.config/fish/config.fish`, or as needed. To install just for the shell session, simply run the line. - -You can optionally pass through `--no-install` when generating the fallback to prevent it from installing packages if the command is missing. - -### For bash@>=4: - -``` -$ source <(npx --shell-auto-fallback bash) -``` - -### For zsh: - -``` -$ source <(npx --shell-auto-fallback zsh) -``` - -### For fish: - -``` -$ source (npx --shell-auto-fallback fish | psub) -``` - -## ACKNOWLEDGEMENTS - -Huge thanks to [Kwyn Meagher](https://blog.kwyn.io) for generously donating the package name in the main npm registry. Previously `npx` was used for a Tessel board Neopixels library, which can now be found under [`npx-tessel`](https://npm.im/npx-tessel). - -## AUTHOR - -Written by [Kat Marchan](https://github.com/zkat). - -## REPORTING BUGS - -Please file any relevant issues [on Github.](https://github.com/zkat/npx) - -## LICENSE - -This work is released by its authors into the public domain under CC0-1.0. See `LICENSE.md` for details. - -## SEE ALSO - -* `npm(1)` -* `npm-run-script(1)` -* `npm-config(7)` diff --git a/deps/npm/node_modules/libnpx/auto-fallback.js b/deps/npm/node_modules/libnpx/auto-fallback.js deleted file mode 100644 index 75fb60f4c2c..00000000000 --- a/deps/npm/node_modules/libnpx/auto-fallback.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' - -const Y = require('./y.js') - -function mkPosix (opts) { - return ` -command_not_found_${opts.isBash ? 'handle' : 'handler'}() { - # Do not run within a pipe - if test ! -t 1; then - >&2 echo "${Y`command not found: ${'$1'}`}" - return 127 - fi - if which npx > /dev/null; then - echo "${Y`${'$1'} not found. Trying with npx...`}" >&2 - else - return 127 - fi - if ! [[ $1 =~ @ ]]; then - npx --no-install "$@" - else - npx "$@" - fi - return $? -}` -} - -function mkFish (opts) { - return ` -function __fish_command_not_found_on_interactive --on-event fish_prompt - functions --erase __fish_command_not_found_handler - functions --erase __fish_command_not_found_setup - - function __fish_command_not_found_handler --on-event fish_command_not_found - if which npx > /dev/null - echo "${Y`${'$argv[1]'} not found. Trying with npx...`}" >&2 - else - return 127 - end - if string match -q -r @ $argv[1] - npx $argv - else - npx --no-install $argv - end - end - - functions --erase __fish_command_not_found_on_interactive -end` -} - -module.exports = autoFallback -function autoFallback (shell, fromEnv, opts) { - if (shell.includes('bash')) { - return mkPosix({isBash: true, install: opts.install}) - } - - if (shell.includes('zsh')) { - return mkPosix({isBash: false, install: opts.install}) - } - - if (shell.includes('fish')) { - return mkFish(opts) - } - - if (fromEnv) { - return autoFallback(fromEnv, null, opts) - } - - console.error(Y`Only Bash, Zsh, and Fish shells are supported :(`) -} diff --git a/deps/npm/node_modules/libnpx/child.js b/deps/npm/node_modules/libnpx/child.js deleted file mode 100644 index 1b7c4c6215b..00000000000 --- a/deps/npm/node_modules/libnpx/child.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict' - -const cp = require('child_process') -const path = require('path') - -module.exports.runCommand = runCommand -function runCommand (command, opts) { - const cmd = opts.call || command || opts.command - const copts = (opts.call ? [] : opts.cmdOpts) || [] - return spawn(cmd, copts, { - shell: opts.shell || !!opts.call, - stdio: opts.stdio || 'inherit' - }).catch(err => { - if (err.code === 'ENOENT') { - err = new Error( - `npx: ${ - require('./y.js')`command not found: ${path.basename(cmd)}` - }` - ) - err.exitCode = 127 - } else { - err.message = require('./y.js')`Command failed: ${cmd} ${err.message}` - } - throw err - }) -} - -module.exports.spawn = spawn -function spawn (cmd, args, opts) { - opts = opts || {} - opts.shell = opts.shell || process.platform === 'win32' - return new Promise((resolve, reject) => { - const child = cp.spawn(cmd, args, opts) - let stdout = '' - let stderr = '' - child.stdout && child.stdout.on('data', d => { stdout += d }) - child.stderr && child.stderr.on('data', d => { stderr += d }) - child.on('error', reject) - child.on('close', code => { - if (code) { - const err = new Error( - require('./y.js')`Command failed: ${cmd} ${args.join(' ')}` - ) - err.isOperational = true - err.stderr = stderr - err.exitCode = code - reject(err) - } else { - resolve({code, stdout, stderr}) - } - }) - }) -} - -module.exports.exec = exec -function exec (cmd, args, opts) { - opts = opts || {} - return new Promise((resolve, reject) => { - cp.exec(`${escapeArg(cmd, true)} ${ - args.join(' ') - }`, opts, (err, stdout) => { - if (err) { - if (typeof err.code === 'number') { - err.exitCode = err.code - } - reject(err) - } else { - resolve(stdout) - } - }) - }) -} - -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 -} diff --git a/deps/npm/node_modules/libnpx/get-prefix.js b/deps/npm/node_modules/libnpx/get-prefix.js deleted file mode 100644 index 71bedffc580..00000000000 --- a/deps/npm/node_modules/libnpx/get-prefix.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict' - -const promisify = require('./util.js').promisify - -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) - } - } - if (isRootPath(current, process.platform)) { - return Promise.resolve(root) - } else { - return Promise.all([ - fileExists(path.join(current, 'package.json')), - fileExists(path.join(current, 'node_modules')) - ]).then(args => { - const hasPkg = args[0] - const hasModules = args[1] - if (hasPkg || hasModules) { - return current - } else { - const parent = path.dirname(current) - return getPrefix(parent, root) - } - }) - } -} - -module.exports._fileExists = fileExists -function fileExists (f) { - return statAsync(f).catch(err => { - if (err.code !== 'ENOENT') { - throw err - } - }) -} - -module.exports._isRootPath = isRootPath -function isRootPath (p, platform) { - return platform === 'win32' - ? p.match(/^[a-z]+:[/\\]?$/i) - : p === '/' -} diff --git a/deps/npm/node_modules/libnpx/index.js b/deps/npm/node_modules/libnpx/index.js deleted file mode 100644 index 3033e9cd06a..00000000000 --- a/deps/npm/node_modules/libnpx/index.js +++ /dev/null @@ -1,366 +0,0 @@ -'use strict' - -const Buffer = require('safe-buffer').Buffer -const promisify = require('./util.js').promisify - -const child = require('./child') -const fs = require('fs') -const parseArgs = require('./parse-args.js') -const path = require('path') -const which = promisify(require('which')) - -module.exports = npx -module.exports.parseArgs = parseArgs -function npx (argv) { - const shell = argv['shell-auto-fallback'] - if (shell || shell === '') { - const fallback = require('./auto-fallback.js')( - shell, process.env.SHELL, argv - ) - if (fallback) { - return console.log(fallback) - } else { - process.exitCode = 1 - return - } - } - - if (!argv.call && (!argv.command || !argv.package)) { - !argv.q && console.error(Y()`\nERROR: You must supply a command.\n`) - !argv.q && parseArgs.showHelp() - process.exitCode = 1 - return - } - - const startTime = Date.now() - - // First, we look to see if we're inside an npm project, and grab its - // bin path. This is exactly the same as running `$ npm bin`. - return localBinPath(process.cwd()).then(local => { - if (local) { - // Local project paths take priority. Go ahead and prepend it. - process.env.PATH = `${local}${path.delimiter}${process.env.PATH}` - } - return Promise.all([ - // Figuring out if a command exists, early on, lets us maybe - // short-circuit a few things later. This bit here primarily benefits - // calls like `$ npx foo`, where we might just be trying to invoke - // a single command and use whatever is already in the path. - argv.command && getExistingPath(argv.command, argv), - // The `-c` flag involves special behavior when used: in this case, - // we take a bit of extra time to pick up npm's full lifecycle script - // environment (so you can use `$npm_package_xxxxx` and company). - // Without that flag, we just use the current env. - argv.call && local && getEnv(argv) - ]).then(args => { - const existing = args[0] - const newEnv = args[1] - if (newEnv) { - // NOTE - we don't need to manipulate PATH further here, because - // npm has already done so. And even added the node-gyp path! - Object.assign(process.env, newEnv) - } - if ((!existing && !argv.call) || argv.packageRequested) { - // We only fire off the updateNotifier if we're installing things - if (argv.npxPkg) { - try { - require('update-notifier')({ - pkg: require(argv.npxPkg) - }).notify() - } catch (e) {} - } - // Some npm packages need to be installed. Let's install them! - return ensurePackages(argv.package, argv).then(results => { - if (results && results.added && results.updated && !argv.q) { - console.error(Y()`npx: installed ${ - results.added.length + results.updated.length - } in ${(Date.now() - startTime) / 1000}s`) - } - if ( - argv.command && - !existing && - !argv.packageRequested && - argv.package.length === 1 - ) { - return promisify(fs.readdir)(results.bin).then(bins => { - if (process.platform === 'win32') { - bins = bins.filter(b => b !== 'etc' && b !== 'node_modules') - } - 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]) - }, err => { - if (err.code === 'ENOENT') { - throw new Error(Y()`command not found: ${argv.command}`) - } else { - throw err - } - }) - } else { - return existing - } - }) - } else { - // We can skip any extra installation, 'cause everything exists. - return existing - } - }).then(existing => { - return execCommand(existing, argv) - }).catch(err => { - !argv.q && console.error(err.message) - process.exitCode = err.exitCode || 1 - }) - }) -} - -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 } - ) - }) -} - -module.exports._getEnv = getEnv -function getEnv (opts) { - const args = ['run', 'env', '--parseable'] - return findNodeScript(opts.npm, {isLocal: true}).then(npmPath => { - if (npmPath) { - args.unshift(child.escapeArg(opts.npm)) - return process.argv[0] - } else { - return opts.npm - } - }).then(npmPath => { - return child.exec(npmPath, args) - }).then(require('dotenv').parse) -} - -module.exports._ensurePackages = ensurePackages -function ensurePackages (specs, opts) { - return ( - opts.cache ? Promise.resolve(opts.cache) : getNpmCache(opts) - ).then(cache => { - const prefix = path.join(cache, '_npx', process.pid.toString()) - const bins = process.platform === 'win32' - ? prefix - : path.join(prefix, 'bin') - const rimraf = require('rimraf') - process.on('exit', () => rimraf.sync(prefix)) - return promisify(rimraf)(bins).then(() => { - return installPackages(specs, prefix, opts) - }).then(info => { - // This will make temp bins _higher priority_ than even local bins. - // This is intentional, since npx assumes that if you went through - // the trouble of doing `-p`, you're rather have that one. Right? ;) - process.env.PATH = `${bins}${path.delimiter}${process.env.PATH}` - if (!info) { info = {} } - info.prefix = prefix - info.bin = bins - return info - }) - }) -} - -module.exports._getExistingPath = getExistingPath -function getExistingPath (command, opts) { - if (opts.isLocal) { - return Promise.resolve(command) - } else if ( - opts.cmdHadVersion || opts.packageRequested || opts.ignoreExisting - ) { - return Promise.resolve(false) - } else { - return which(command).catch(err => { - if (err.code === 'ENOENT') { - if (opts.install === false) { - err.exitCode = 127 - throw err - } - } else { - throw err - } - }) - } -} - -module.exports._getNpmCache = getNpmCache -function getNpmCache (opts) { - const args = ['config', 'get', 'cache', '--parseable'] - if (opts.userconfig) { - args.push('--userconfig', child.escapeArg(opts.userconfig, true)) - } - return findNodeScript(opts.npm, {isLocal: true}).then(npmPath => { - if (npmPath) { - // This one is NOT escaped as a path because it's handed to Node. - args.unshift(child.escapeArg(opts.npm)) - return process.argv[0] - } else { - return opts.npm - } - }).then(npmPath => { - return child.exec(npmPath, args) - }).then(cache => cache.trim()) -} - -module.exports._buildArgs = buildArgs -function buildArgs (specs, prefix, opts) { - const args = ['install'].concat(specs) - args.push('--global', '--prefix', prefix) - if (opts.cache) args.push('--cache', opts.cache) - if (opts.userconfig) args.push('--userconfig', opts.userconfig) - args.push('--loglevel', 'error', '--json') - - return args -} - -module.exports._installPackages = installPackages -function installPackages (specs, prefix, opts) { - const args = buildArgs(specs, prefix, opts) - return findNodeScript(opts.npm, {isLocal: true}).then(npmPath => { - if (npmPath) { - args.unshift( - process.platform === 'win32' - ? child.escapeArg(opts.npm) - : opts.npm - ) - return process.argv[0] - } else { - return opts.npm - } - }).then(npmPath => { - return process.platform === 'win32' ? child.escapeArg(npmPath, true) : npmPath - }).then(npmPath => { - return child.spawn(npmPath, args, { - stdio: opts.installerStdio - ? opts.installerStdio - : [0, 'pipe', opts.q ? 'ignore' : 2] - }).then(deets => { - try { - return deets.stdout ? JSON.parse(deets.stdout) : null - } catch (e) { } - }, err => { - if (err.exitCode) { - err.message = Y()`Install for ${specs} failed with code ${err.exitCode}` - } - throw err - }) - }) -} - -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 Module = require('module') - // let it take over the process. This means we can skip node startup! - if (!argv.noYargs) { - // blow away built-up yargs crud - require('yargs').reset() - } - 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 - 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) { - // 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] - } - // 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) => { - return acc.concat(arg.split(/\s+/)) - }, []) - cmd = process.argv[0] - opts = Object.assign({}, argv, { - cmdOpts: nargs.concat([existing], 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 - // we were just running the command. That means no extra msg logging - process.exitCode = err.exitCode - } else { - // But if it's not just a regular child-level error, blow up normally - throw err - } - }) - } - }) -} - -module.exports._findNodeScript = findNodeScript -function findNodeScript (existing, opts) { - if (!existing) { - return Promise.resolve(false) - } else { - return promisify(fs.stat)(existing).then(stat => { - if (opts && opts.isLocal && path.extname(existing) === '.js') { - return existing - } else if (opts && opts.isLocal && stat.isDirectory()) { - // npx will execute the directory itself - try { - const pkg = require(path.resolve(existing, 'package.json')) - const target = path.resolve(existing, pkg.bin || pkg.main || 'index.js') - return findNodeScript(target, opts).then(script => { - if (script) { - return script - } else { - throw new Error(Y()`command not found: ${target}`) - } - }) - } catch (e) { - throw new Error(Y()`command not found: ${existing}`) - } - } else if (process.platform !== 'win32') { - const bytecount = 400 - const buf = Buffer.alloc(bytecount) - return promisify(fs.open)(existing, 'r').then(fd => { - return promisify(fs.read)(fd, buf, 0, bytecount, 0).then(() => { - return promisify(fs.close)(fd) - }, err => { - return promisify(fs.close)(fd).then(() => { throw err }) - }) - }).then(() => { - const re = /#!\s*(?:\/usr\/bin\/env\s*node|\/usr\/local\/bin\/node|\/usr\/bin\/node)\s*\r?\n/i - return buf.toString('utf8').match(re) && existing - }) - } else if (process.platform === 'win32') { - const buf = Buffer.alloc(1000) - return promisify(fs.open)(existing, 'r').then(fd => { - return promisify(fs.read)(fd, buf, 0, 1000, 0).then(() => { - return promisify(fs.close)(fd) - }, err => { - return promisify(fs.close)(fd).then(() => { throw err }) - }) - }).then(() => { - return buf.toString('utf8').trim() - }).then(str => { - const cmd = /"%~dp0\\node\.exe"\s+"%~dp0\\(.*)"\s+%\*/ - const mingw = /"\$basedir\/node"\s+"\$basedir\/(.*)"\s+"\$@"/i - return str.match(cmd) || str.match(mingw) - }).then(match => { - return match && path.join(path.dirname(existing), match[1]) - }).then(x => console.log(x) || x) - } - }) - } -} - -function Y () { - return require('./y.js') -} diff --git a/deps/npm/node_modules/libnpx/libnpx.1 b/deps/npm/node_modules/libnpx/libnpx.1 deleted file mode 100644 index e8049194bcf..00000000000 --- a/deps/npm/node_modules/libnpx/libnpx.1 +++ /dev/null @@ -1,167 +0,0 @@ -.TH "NPX" "1" "October 2017" "libnpx@9.7.0" "User Commands" -.SH "NAME" -\fBnpx\fR \- execute npm package binaries -.SH SYNOPSIS -.P -\fBnpx [options] [@version] [command\-arg]\.\.\.\fP -.P -\fBnpx [options] [\-p|\-\-package ]\.\.\. [command\-arg]\.\.\.\fP -.P -\fBnpx [options] \-c ''\fP -.P -\fBnpx \-\-shell\-auto\-fallback [shell]\fP -.SH INSTALL -.P -\fBnpm install \-g npx\fP -.SH DESCRIPTION -.P -Executes \fB\fP either from a local \fBnode_modules/\.bin\fP, or from a central cache, installing any packages needed in order for \fB\fP to run\. -.P -By default, \fBnpx\fP will check whether \fB\fP exists in \fB$PATH\fP, or in the local project binaries, and execute that\. If \fB\fP is not found, it will be installed prior to execution\. -.P -Unless a \fB\-\-package\fP option is specified, \fBnpx\fP will try to guess the name of the binary to invoke depending on the specifier provided\. All package specifiers understood by \fBnpm\fP may be used with \fBnpx\fP, including git specifiers, remote tarballs, local directories, or scoped packages\. -.P -If a full specifier is included, or if \fB\-\-package\fP is used, npx will always use a freshly\-installed, temporary version of the package\. This can also be forced with the \fB\-\-ignore\-existing\fP flag\. -.RS 0 -.IP \(bu 2 -\fB\-p, \-\-package \fP \- define the package to be installed\. This defaults to the value of \fB\fP\|\. This is only needed for packages with multiple binaries if you want to call one of the other executables, or where the binary name does not match the package name\. If this option is provided \fB\fP will be executed as\-is, without interpreting \fB@version\fP if it's there\. Multiple \fB\-\-package\fP options may be provided, and all the packages specified will be installed\. -.IP \(bu 2 -\fB\-\-no\-install\fP \- If passed to \fBnpx\fP, it will only try to run \fB\fP if it already exists in the current path or in \fB$prefix/node_modules/\.bin\fP\|\. It won't try to install missing commands\. -.IP \(bu 2 -\fB\-\-cache \fP \- set the location of the npm cache\. Defaults to npm's own cache settings\. -.IP \(bu 2 -\fB\-\-userconfig \fP \- path to the user configuration file to pass to npm\. Defaults to whatever npm's current default is\. -.IP \(bu 2 -\fB\-c \fP \- Execute \fB\fP inside an \fBnpm run\-script\fP\-like shell environment, with all the usual environment variables available\. Only the first item in \fB\fP will be automatically used as \fB\fP\|\. Any others \fImust\fR use \fB\-p\fP\|\. -.IP \(bu 2 -\fB\-\-shell \fP \- The shell to invoke the command with, if any\. -.IP \(bu 2 -\fB\-\-shell\-auto\-fallback []\fP \- Generates shell code to override your shell's "command not found" handler with one that calls \fBnpx\fP\|\. Tries to figure out your shell, or you can pass its name (either \fBbash\fP, \fBfish\fP, or \fBzsh\fP) as an option\. See below for how to install\. -.IP \(bu 2 -\fB\-\-ignore\-existing\fP \- If this flag is set, npx will not look in \fB$PATH\fP, or in the current package's \fBnode_modules/\.bin\fP for an existing version before deciding whether to install\. Binaries in those paths will still be available for execution, but will be shadowed by any packages requested by this install\. -.IP \(bu 2 -\fB\-q, \-\-quiet\fP \- Suppressed any output from npx itself (progress bars, error messages, install reports)\. Subcommand output itself will not be silenced\. -.IP \(bu 2 -\fB\-n, \-\-node\-arg\fP \- Extra node argument to supply to node when binary is a node script\. You can supply this option multiple times to add more arguments\. -.IP \(bu 2 -\fB\-v, \-\-version\fP \- Show the current npx version\. - -.RE -.SH EXAMPLES -.SS Running a project\-local bin -.P -.RS 2 -.nf -$ npm i \-D webpack -$ npx webpack \.\.\. -.fi -.RE -.SS One\-off invocation without local installation -.P -.RS 2 -.nf -$ npm rm webpack -$ npx webpack \-\- \.\.\. -$ cat package\.json -\|\.\.\.webpack not in "devDependencies"\.\.\. -.fi -.RE -.SS Invoking a command from a github repository -.P -.RS 2 -.nf -$ npx github:piuccio/cowsay -\|\.\.\.or\.\.\. -$ npx git+ssh://my\.hosted\.git:cowsay\.git#semver:^1 -\|\.\.\.etc\.\.\. -.fi -.RE -.SS Execute a full shell command using one npx call w/ multiple packages -.P -.RS 2 -.nf -$ npx \-p lolcatjs \-p cowsay \-c \\ - 'echo "$npm_package_name@$npm_package_version" | cowsay | lolcatjs' -\|\.\.\. - _____ -< your\-cool\-package@1\.2\.3 > - \-\-\-\-\- - \\ ^__^ - \\ (oo)\\_______ - (__)\\ )\\/\\ - ||\-\-\-\-w | - || || -.fi -.RE -.SS Run node binary with \-\-inspect -.P -.RS 2 -.nf -$ npx \-\-node\-arg=\-\-inspect cowsay -Debugger listening on ws://127\.0\.0\.1:9229/\.\.\.\. -.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\. -.P -For example: -.P -.RS 2 -.nf -$ npm@4 \-\-version -(stderr) npm@4 not found\. Trying with npx\.\.\. -4\.6\.1 -$ asdfasdfasf -zsh: command not found: asfdasdfasdf -.fi -.RE -.P -Currently, \fBzsh\fP, \fBbash\fP (>= 4), and \fBfish\fP are supported\. You can access these completion scripts using \fBnpx \-\-shell\-auto\-fallback \fP\|\. -.P -To install permanently, add the relevant line below to your \fB~/\.bashrc\fP, \fB~/\.zshrc\fP, \fB~/\.config/fish/config\.fish\fP, or as needed\. To install just for the shell session, simply run the line\. -.P -You can optionally pass through \fB\-\-no\-install\fP when generating the fallback to prevent it from installing packages if the command is missing\. -.SS For bash@>=4: -.P -.RS 2 -.nf -$ source <(npx \-\-shell\-auto\-fallback bash) -.fi -.RE -.SS For zsh: -.P -.RS 2 -.nf -$ source <(npx \-\-shell\-auto\-fallback zsh) -.fi -.RE -.SS For fish: -.P -.RS 2 -.nf -$ source (npx \-\-shell\-auto\-fallback fish | psub) -.fi -.RE -.SH ACKNOWLEDGEMENTS -.P -Huge thanks to Kwyn Meagher \fIhttps://blog\.kwyn\.io\fR for generously donating the package name in the main npm registry\. Previously \fBnpx\fP was used for a Tessel board Neopixels library, which can now be found under \fBnpx\-tessel\fP \fIhttps://npm\.im/npx\-tessel\fR\|\. -.SH AUTHOR -.P -Written by Kat Marchan \fIhttps://github\.com/zkat\fR\|\. -.SH REPORTING BUGS -.P -Please file any relevant issues on Github\. \fIhttps://github\.com/zkat/npx\fR -.SH LICENSE -.P -This work is released by its authors into the public domain under CC0\-1\.0\. See \fBLICENSE\.md\fP for details\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -\fBnpm(1)\fP -.IP \(bu 2 -\fBnpm\-run\-script(1)\fP -.IP \(bu 2 -\fBnpm\-config(7)\fP - -.RE 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 8ca0fcc66e9..00000000000 --- 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/ca.json b/deps/npm/node_modules/libnpx/locales/ca.json deleted file mode 100644 index d9faf1c08b0..00000000000 --- a/deps/npm/node_modules/libnpx/locales/ca.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Executa comandes de paquets de npm.\n%s", - "Package to be installed.": "Paquet per a instal·lar.", - "Location of the npm cache.": "Ruta de la memòria cau de npm.", - "Skip installation if a package is missing.": "Salta el pas d'instal·lació si el paquet no està present.", - "Path to user npmrc.": "Ruta al npmrc de l'usuari.", - "Execute string as if inside `npm run-script`.": "Executa l'argument com si estigués dins de `npm run-script`.", - "Shell to execute the command with, if any.": "Shell amb el qual s'executarà la comanda, si hi ha algun.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Genera codi de shell per utilizar npx com el replegament quan la comanda no existeix.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignora comandaments en $PATH, o en el projecte local. Això obliga a npx a fer una instal·lació temporal i usar la versió més recent de la comanda.", - "npm binary to use for internal operations.": "Comando d'npm que es farà servir per a operacions internes de npx.", - "For the full documentation, see the manual page for npx(1).": "Per documentació completa, vegeu la pàgina del manual npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "No s'ha pogut endevinar el nom de la comanda usant %s. Si us plau utilitza --package.", - "\nERROR: You must supply a command.\n": "\nERROR: Has proveir una comanda.\n", - "Command failed: %s %s": "La comanda va fracasar: %s %s", - "Install for %s failed with code %s": "instal·lació de %s fracassar amb codi %s", - "%s not found. Trying with npx...": "%s no existeix. Provant-ho amb npx...", - "command not found: %s": "comanda no existeix: %s", - "options": "opcions", - "command": "comanda", - "version": "versió", - "command-arg": "argument-de-comanda", - "command-string": "text-de-comanda", - "shell": "shell", - "package": "paquet", - "npx: installed %s in %ss": "npx: instal·lat %s en %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Suprimir la sortida d' npx. Les sub-comandes no es veuran afectades." -} diff --git a/deps/npm/node_modules/libnpx/locales/cs.json b/deps/npm/node_modules/libnpx/locales/cs.json deleted file mode 100644 index c3ecc402cf9..00000000000 --- a/deps/npm/node_modules/libnpx/locales/cs.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Spouštění skriptů z npm balíčků.\n%s", - "Package to be installed.": "Balíček k instalaci.", - "Location of the npm cache.": "Umístění npm keše.", - "Skip installation if a package is missing.": "Neinstalovat chybějící balíčky.", - "Path to user npmrc.": "Cesta k uživatelskému npmrc souboru.", - "Execute string as if inside `npm run-script`.": "Příkaz, který se spustí jakoby uvnitř `npm run-script`.", - "Shell to execute the command with, if any.": "Shell ke spuštění příkazu, pokud je třeba.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Vygenerovat shell kód použitelný jako \"command not found\" fallback.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignorovat existující skripty v $PATH i v lokálním projektu, npx tak udělá dočasnou instalaci a použije poslední verzi balíčku.", - "npm binary to use for internal operations.": "npm použité pro interní operace.", - "For the full documentation, see the manual page for npx(1).": "Úplná dokumentace je dostupná v manuálu pro npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Nelze uhodnout jméno skriptu z %s, použijte prosím --package.", - "\nERROR: You must supply a command.\n": "\nCHYBA: Musíte zadat nějaký příkaz.\n", - "Command failed: %s %s": "Příkaz selhal: %s %s", - "Install for %s failed with code %s": "Instalace %s selhala s kódem %s", - "%s not found. Trying with npx...": "%s nenalezen. Zkouším npx...", - "command not found: %s": "příkaz nenalezen: %s", - "options": "parametry", - "command": "příkaz", - "version": "verze", - "command-arg": "argument", - "command-string": "příkaz v řetězci", - "shell": "shell", - "package": "balíček", - "npx: installed %s in %ss": "npx: nainstalováno %s za %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Potlačit výstup z npx. Spuštěné příkazy nebudou ovlivněné." -} diff --git a/deps/npm/node_modules/libnpx/locales/de.json b/deps/npm/node_modules/libnpx/locales/de.json deleted file mode 100644 index f732607063c..00000000000 --- a/deps/npm/node_modules/libnpx/locales/de.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Führt Programme aus, die von npm Paketen bereitgestellt werden.\n%s", - "Package to be installed.": "Das zu installierende Paket.", - "Location of the npm cache.": "Ort des npm Zwischenspeichers.", - "Skip installation if a package is missing.": "Überspringe die Installation, falls ein Paket fehlt.", - "Path to user npmrc.": "Pfad zu npmrc im Benutzerverzeichnis.", - "Execute string as if inside `npm run-script`.": "Führe Zeichenkette aus, als wäre sie innerhalb von `npm run-script`.", - "Shell to execute the command with, if any.": "Shell, mit der Programme ausgeführt werden soll, wenn überhaupt.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Erzeuge Shellcode, um npx als Alternative zu \"Programm konnte nicht gefunden werden\" zu benutzen.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignoriere bestehende Programme innerhalb von $PATH oder im lokalen Projekt. Dies zwingt npx dazu, die neuste Version herunterzuladen und zu benutzen.", - "npm binary to use for internal operations.": "npm-Programm für die interne Benutzung.", - "For the full documentation, see the manual page for npx(1).": "In der Manpage npx(1) ist die gesamte Dokumentation einzusehen.", - "Unable to guess a binary name from %s. Please use --package.": "Der Programmname von %s kann nicht automatisch ermittelt werden. Bitte benutze --package.", - "\nERROR: You must supply a command.\n": "\nFEHLER: Du musst einen Befehl angeben.\n", - "Command failed: %s %s": "Befehl fehlgeschlagen: %s %s", - "Install for %s failed with code %s": "Die Installation von %s ist mit dem Code %s fehlgeschlagen", - "%s not found. Trying with npx...": "%s konnte nicht gefunden werden. Versuche mit npx...", - "command not found: %s": "Programm konnte nicht gefunden werden: %s", - "options": "Optionen", - "command": "Befehl", - "version": "Version", - "command-arg": "Befehlsargument", - "command-string": "Befehlszeichenkette", - "shell": "Shell", - "package": "Paket", - "npx: installed %s in %ss": "npx: Installierte %s in %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Unterdrücke Output von npx. Unterbefehle sind nicht davon betroffen.", - "Extra node argument when calling a node binary.": "Extra node Argument, wenn eine node ausführbare Binärdatei gerufen ist." -} diff --git a/deps/npm/node_modules/libnpx/locales/en.json b/deps/npm/node_modules/libnpx/locales/en.json deleted file mode 100644 index 358e343421c..00000000000 --- a/deps/npm/node_modules/libnpx/locales/en.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Execute binaries from npm packages.\n%s", - "Package to be installed.": "Package to be installed.", - "Location of the npm cache.": "Location of the npm cache.", - "Skip installation if a package is missing.": "Skip installation if a package is missing.", - "Path to user npmrc.": "Path to user npmrc.", - "Execute string as if inside `npm run-script`.": "Execute string as if inside `npm run-script`.", - "Shell to execute the command with, if any.": "Shell to execute the command with, if any.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Generate shell code to use npx as the \"command not found\" fallback.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.", - "npm binary to use for internal operations.": "npm binary to use for internal operations.", - "For the full documentation, see the manual page for npx(1).": "For the full documentation, see the manual page for npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Unable to guess a binary name from %s. Please use --package.", - "\nERROR: You must supply a command.\n": "\nERROR: You must supply a command.\n", - "Command failed: %s %s": "Command failed: %s %s", - "Install for %s failed with code %s": "Install for %s failed with code %s", - "%s not found. Trying with npx...": "%s not found. Trying with npx...", - "command not found: %s": "command not found: %s", - "options": "options", - "command": "command", - "version": "version", - "command-arg": "command-arg", - "command-string": "command-string", - "shell": "shell", - "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." -} \ No newline at end of file diff --git a/deps/npm/node_modules/libnpx/locales/es.json b/deps/npm/node_modules/libnpx/locales/es.json deleted file mode 100644 index c89bceeb20b..00000000000 --- a/deps/npm/node_modules/libnpx/locales/es.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Ejecuta comandos de paquetes de npm.\n%s", - "Package to be installed.": "Paquete para instalar.", - "Location of the npm cache.": "Ruta del cache de npm.", - "Skip installation if a package is missing.": "Salta el paso de instalación si el paquete no está presente.", - "Path to user npmrc.": "Ruta al npmrc del usuario.", - "Execute string as if inside `npm run-script`.": "Ejecuta el argumento como si estuviera dentro de `npm run-script`.", - "Shell to execute the command with, if any.": "Shell con el que se ejecutará el comando, si alguno.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Genera código de shell para usar npx como el repliegue cuando el comando no existe.", - "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 en $PATH, o en el proyecto local. Esto obliga a npx a hacer una instalación temporanea y usar la version más reciente del comando.", - "npm binary to use for internal operations.": "Comando de npm que se usará para operaciones internas de npx.", - "For the full documentation, see the manual page for npx(1).": "Para documentación completa, véase la pagina del manual npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "No se pudo adivinar el nombre del comando usando %s. Por favor usa --package.", - "\nERROR: You must supply a command.\n": "\nERROR: Debes proveer un comando.\n", - "Command failed: %s %s": "Comando fracasó: %s %s", - "Install for %s failed with code %s": "La instalación de %s fracasó con código %s", - "%s not found. Trying with npx...": "%s no existe. Tratando con npx...", - "command not found: %s": "comando no existe: %s", - "options": "opciones", - "command": "comando", - "version": "versión", - "command-arg": "argumento-de-comando", - "command-string": "texto-de-comando", - "shell": "shell", - "package": "paquete", - "npx: installed %s in %ss": "npx: instaló %s en %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Suprimir producción de npx. Sub-comandos no serán afectados." -} diff --git a/deps/npm/node_modules/libnpx/locales/fr.json b/deps/npm/node_modules/libnpx/locales/fr.json deleted file mode 100644 index a6ddf60e6f5..00000000000 --- a/deps/npm/node_modules/libnpx/locales/fr.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Exécutez des binaires à partir de paquets de 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).", - "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.", - "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).", - "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", - "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", - "options": "options", - "command": "commande", - "version": "version", - "command-arg": "arguments-de-la-commande", - "command-string": "chaine-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." -} diff --git a/deps/npm/node_modules/libnpx/locales/id.json b/deps/npm/node_modules/libnpx/locales/id.json deleted file mode 100644 index 1e3e29fa5b1..00000000000 --- a/deps/npm/node_modules/libnpx/locales/id.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Jalankan berkas-berkas binari darpi paket-paket npm.\n%s", - "Package to be installed.": "Paket yang akan dipasang.", - "Location of the npm cache.": "Lokasi dari cache npm.", - "Skip installation if a package is missing.": "Lewati pemasangan jika paket tidak ditemukan.", - "Path to user npmrc.": "Jalur ke npmrc milik pengguna.", - "Execute string as if inside `npm run-script`.": "Jalankan string seperti ada di dalam `npm run-script`.", - "Shell to execute the command with, if any.": "Shell untuk menjalankan sebuah perintah, jika ada.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Membangkitkan kode shell untuk menggunakan npx sebagai cadangan dari \"perintah tidak ditemukan\" .", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Jangan hiraukan berkas-berkas binari yang ada di $PATH, atau yang ada di proyek lokal. Ini memaksa npx untuk melakukan pemasangan sementara dan menggunakan versi yang terakhir.", - "npm binary to use for internal operations.": "Binari npm yang digunakan untuk operasi internal.", - "For the full documentation, see the manual page for npx(1).": "Untuk dokumentasi lengkap, mohon baca laman manual untuk npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Tidak dapat menebak nama binari dari %s. Mohon gunakan --package.", - "\nERROR: You must supply a command.\n": "\nGALAT: Anda harus menyediakan sebuah perintah.\n", - "Command failed: %s %s": "Perintah tidak berhasil: %s %s", - "Install for %s failed with code %s": "Pemasangan untuk %s tidak berhasil dengan kode %s", - "%s not found. Trying with npx...": "%s tidak ditemukan. Mencoba dengan npx...", - "command not found: %s": "Perintah tidak ditemukan: %s", - "options": "opsi-opsi", - "command": "perintah", - "version": "versi", - "command-arg": "arg-perintah", - "command-string": "string-perintah", - "shell": "shell", - "package": "paket", - "npx: installed %s in %ss": "npx: %s terpasang di %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Hilangkan keluaran dari npx itu sendiri. Sub-sub perintah tidak akan terpengaruh.", - "Extra node argument when calling a node binary.": "Argumen node ekstra ketika memanggil binari node." -} \ No newline at end of file diff --git a/deps/npm/node_modules/libnpx/locales/it.json b/deps/npm/node_modules/libnpx/locales/it.json deleted file mode 100644 index 24e72b49195..00000000000 --- a/deps/npm/node_modules/libnpx/locales/it.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Esegui il binario del pacchetto npm.\n%s", - "Package to be installed.": "Pacchetto da installare.", - "Location of the npm cache.": "Percorso della cache npm.", - "Skip installation if a package is missing.": "Salta l'installazione se un pacchetto non è disponibile.", - "Path to user npmrc.": "Percorso utente per npmrc.", - "Execute string as if inside `npm run-script`.": "Esegui l'argomento come se fosse all'interno di `npm run-script`.", - "Shell to execute the command with, if any.": "Shell con cui eseguire il comando, se presente.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Generare un codice di shell per usare npx come ripiego quando il comando non esiste.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignora i binari esistenti in $PATH, oppure nel progetto locale. Questo forza temporaneamente npx a installare e usare l'ultima versione.", - "npm binary to use for internal operations.": "Binario npm da usare per le operazioni interne.", - "For the full documentation, see the manual page for npx(1).": "Per la documentazione completa, vedere la pagina del manuale npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Impossibile supporre il nome del binario da %s. Prego usare --package.", - "\nERROR: You must supply a command.\n": "\nERRORE: E necessario fornire un comando.\n", - "Command failed: %s %s": "Comando fallito: %s %s", - "Install for %s failed with code %s": "Installazione di %s fallita con codice %s", - "%s not found. Trying with npx...": "%s non trovato. Prova con npx...", - "command not found: %s": "comando non trovato: %s", - "options": "opzioni", - "command": "comando", - "version": "versione", - "command-arg": "argomento-del-comando", - "command-string": "stringa-di-comando", - "shell": "shell", - "package": "pacchetto", - "npx: installed %s in %ss": "npx: installato %s in %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Sopprimere l'output da npx stesso. I sottocomandi non saranno interessati." -} diff --git a/deps/npm/node_modules/libnpx/locales/ja.json b/deps/npm/node_modules/libnpx/locales/ja.json deleted file mode 100644 index e575edabedf..00000000000 --- a/deps/npm/node_modules/libnpx/locales/ja.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "npmパッケージのバイナリを実行します。", - "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.": "\"コマンドが見つかりません\" フォールバックとして使用するコードを生成します。", - "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を使用してください。", - "\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...": "%sが見つかりません。 npxで試してみて...", - "command not found: %s": "コマンドが見つかりません: %s", - "options": "オプション", - "command": "コマンド", - "version": "バージョン", - "command-arg": "コマンドの引数", - "command-string": "コマンドの文字列", - "shell": "シェル", - "package": "パッケージ", - "npx: installed %s in %ss": "npx: %s個のパッケージを%s秒でインストールしました。", - "Suppress output from npx itself. Subcommands will not be affected.": "npx自体の標準出力を抑止します。 サブコマンドは影響を受けません。" -} diff --git a/deps/npm/node_modules/libnpx/locales/ko.json b/deps/npm/node_modules/libnpx/locales/ko.json deleted file mode 100644 index 790537a29af..00000000000 --- a/deps/npm/node_modules/libnpx/locales/ko.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "npm 패키지에서 바이너리를 실행합니다.\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.": "$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 를 사용해 주세요.", - "\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로 시도해 보세요...", - "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 바이너리를 호출할 때 사용하는 추가 node 인자" -} diff --git a/deps/npm/node_modules/libnpx/locales/nb.json b/deps/npm/node_modules/libnpx/locales/nb.json deleted file mode 100644 index 5b3fa42788d..00000000000 --- a/deps/npm/node_modules/libnpx/locales/nb.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Kjør binærfiler fra npm-pakker.\n%s", - "Package to be installed.": "Pakken som skal installeres.", - "Location of the npm cache.": "Hvor npm-cachen er.", - "Skip installation if a package is missing.": "La være å installere dersom pakken mangler.", - "Path to user npmrc.": "Sti til brukerens npmrc.", - "Execute string as if inside `npm run-script`.": "Kjør streng som om den var inni `npm run-script`.", - "Shell to execute the command with, if any.": "Skall å kjøre kommandoen med, hvis noe.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Generer skallkode for å bruke npx som \"kommandoen finnes ikke\" fallback.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignorerer eksisterende binærfiler i $PATH eller i det lokale prosjektet. Dette tvinger npx til å installere siste versjon av pakken midlertidig.", - "npm binary to use for internal operations.": "npm-binærfil som skal brukes for interne operasjoner.", - "For the full documentation, see the manual page for npx(1).": "For hele dokumentasjonen, se brukermanualen for npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Klarer ikke å gjette en binærfils navn ut fra %s. Vennligst bruk --package.", - "\nERROR: You must supply a command.\n": "\nFEIL: Du må legge ved en kommando.\n", - "Command failed: %s %s": "Kommando feilet: %s %s", - "Install for %s failed with code %s": "Installasjon for %s feilet med kode %s", - "%s not found. Trying with npx...": "Kunne ikke finne%s. Prøver med npx...", - "command not found: %s": "kommando ikke funnet: %s", - "options": "innstillinger", - "command": "kommando", - "version": "versjon", - "command-arg": "kommando-argument", - "command-string": "kommando-streng", - "shell": "skall", - "package": "pakke", - "npx: installed %s in %ss": "npx: installerte %s på %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Skjul kommandoer fra npx. Sub-kommandoer vil ikke berøres.", - "Extra node argument when calling a node binary.": "Ekstra node-argument når en node-binærfil blir kalt." -} diff --git a/deps/npm/node_modules/libnpx/locales/nl.json b/deps/npm/node_modules/libnpx/locales/nl.json deleted file mode 100644 index 31fe4078566..00000000000 --- a/deps/npm/node_modules/libnpx/locales/nl.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Voer een programma van een npm package uit.\n%s", - "Package to be installed.": "De te installeren package.", - "Location of the npm cache.": "Plaats van de npm cache.", - "Skip installation if a package is missing.": "Sla installatie over als een package nog niet geïnstalleerd is.", - "Path to user npmrc.": "Pad naar je npmrc.", - "Execute string as if inside `npm run-script`.": "Voer de tekst uit, alsof het `npm run-script` was.", - "Shell to execute the command with, if any.": "De shell te gebruiken met dit commando, indien nodig.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Genereer shell-code als vervanging bij \"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.": "Negeer bestaande programmas in $PATH, of in het lokale prject. Dit forceert npx om een tijdelijke installatie te doen en de laatste versie te gebruiken.", - "npm binary to use for internal operations.": "npm programma te gebuiken voor interne operaties.", - "For the full documentation, see the manual page for npx(1).": "Voor de volledige documentatie, raadpleeg de man pagina van npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Vond geen programmanaam voor %S. Probeer opnieuw met --package.", - "\nERROR: You must supply a command.\n": "\nFOUT: Je moet een commando ingeven.\n", - "Command failed: %s %s": "Commando mislukt: %s %s", - "Install for %s failed with code %s": "De installatie van %s is mislukt met code %s", - "%s not found. Trying with npx...": "%s werd niet gevonden. Probeert nu met npx…", - "command not found: %s": "programma werd niet gevonden in %s", - "options": "opties", - "command": "commando", - "version": "versie", - "command-arg": "commandoargumenten", - "command-string": "commandotekst", - "shell": "shell", - "package": "package", - "npx: installed %s in %ss": "npx: heeft %s in %ss geïnstalleerd", - "Suppress output from npx itself. Subcommands will not be affected.": "Geef geen uitvoer voor npx zelf. Heeft geen invoed op subcommando's", - "Extra node argument when calling a node binary.": "Extra argumenten voor node, wanner een node-programma gebruikt wordt" -} diff --git a/deps/npm/node_modules/libnpx/locales/nn.json b/deps/npm/node_modules/libnpx/locales/nn.json deleted file mode 100644 index 6eef4268fd2..00000000000 --- a/deps/npm/node_modules/libnpx/locales/nn.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Køyr binærfiler frå npm-pakkar.\n%s", - "Package to be installed.": "Pakken som skal bli installert.", - "Location of the npm cache.": "Kvar npm-mellomlagringa ligg.", - "Skip installation if a package is missing.": "La være å installere viss pakken manglar.", - "Path to user npmrc.": "Sti til brukaren sin npmrc-fil.", - "Execute string as if inside `npm run-script`.": "Køyr streng som om den var inni `npm run-script`.", - "Shell to execute the command with, if any.": "Skall å køyre kommandoen med, viss noe.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Generer skallkode for å bruke npx som \"kommandoen finst ikkje\" fallback.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignorerer eksisterende binærfilar i $PATH eller i det lokale prosjektet. Dette tvingar npx til å installere siste versjon av pakken midlertidig.", - "npm binary to use for internal operations.": "npm-binærfil som skal brukes for interne operasjonar.", - "For the full documentation, see the manual page for npx(1).": "For heile dokumentasjonen, sjå brukarmanualen for npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Klarar ikkje å gjette ein binærfil sitt namn ut frå %s. Vennligst bruk --package.", - "\nERROR: You must supply a command.\n": "\nFEIL: Du må legge ved ein kommando.\n", - "Command failed: %s %s": "Kommando feilte: %s %s", - "Install for %s failed with code %s": "Installasjon for %s feilte med kode %s", - "%s not found. Trying with npx...": "Kunne ikkje finne%s. Prøver med npx...", - "command not found: %s": "kommando ikkje funnet: %s", - "options": "innstillinger", - "command": "kommando", - "version": "versjon", - "command-arg": "kommando-argument", - "command-string": "kommando-streng", - "shell": "skall", - "package": "pakke", - "npx: installed %s in %ss": "npx: installerte %s på %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Skjul kommandoer frå npx. Sub-kommandoer vil ikkje rørast.", - "Extra node argument when calling a node binary.": "Ekstra node-argument når ein node-binærfil blir kalt." - } diff --git a/deps/npm/node_modules/libnpx/locales/no.json b/deps/npm/node_modules/libnpx/locales/no.json deleted file mode 100644 index 5b3fa42788d..00000000000 --- a/deps/npm/node_modules/libnpx/locales/no.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Kjør binærfiler fra npm-pakker.\n%s", - "Package to be installed.": "Pakken som skal installeres.", - "Location of the npm cache.": "Hvor npm-cachen er.", - "Skip installation if a package is missing.": "La være å installere dersom pakken mangler.", - "Path to user npmrc.": "Sti til brukerens npmrc.", - "Execute string as if inside `npm run-script`.": "Kjør streng som om den var inni `npm run-script`.", - "Shell to execute the command with, if any.": "Skall å kjøre kommandoen med, hvis noe.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Generer skallkode for å bruke npx som \"kommandoen finnes ikke\" fallback.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignorerer eksisterende binærfiler i $PATH eller i det lokale prosjektet. Dette tvinger npx til å installere siste versjon av pakken midlertidig.", - "npm binary to use for internal operations.": "npm-binærfil som skal brukes for interne operasjoner.", - "For the full documentation, see the manual page for npx(1).": "For hele dokumentasjonen, se brukermanualen for npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Klarer ikke å gjette en binærfils navn ut fra %s. Vennligst bruk --package.", - "\nERROR: You must supply a command.\n": "\nFEIL: Du må legge ved en kommando.\n", - "Command failed: %s %s": "Kommando feilet: %s %s", - "Install for %s failed with code %s": "Installasjon for %s feilet med kode %s", - "%s not found. Trying with npx...": "Kunne ikke finne%s. Prøver med npx...", - "command not found: %s": "kommando ikke funnet: %s", - "options": "innstillinger", - "command": "kommando", - "version": "versjon", - "command-arg": "kommando-argument", - "command-string": "kommando-streng", - "shell": "skall", - "package": "pakke", - "npx: installed %s in %ss": "npx: installerte %s på %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Skjul kommandoer fra npx. Sub-kommandoer vil ikke berøres.", - "Extra node argument when calling a node binary.": "Ekstra node-argument når en node-binærfil blir kalt." -} diff --git a/deps/npm/node_modules/libnpx/locales/pl.json b/deps/npm/node_modules/libnpx/locales/pl.json deleted file mode 100644 index 6cf93db525d..00000000000 --- a/deps/npm/node_modules/libnpx/locales/pl.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Uruchamia pliki wykonywalne (binarki) z paczek npm.\n%s", - "Package to be installed.": "Paczka do zainstalowania.", - "Location of the npm cache.": "Lokalizacja cache npm.", - "Skip installation if a package is missing.": "Pomiń instalacje w przypadku braku paczki.", - "Path to user npmrc.": "Ścieżka do pliku npmrc.", - "Execute string as if inside `npm run-script`.": "Wykonaj polecenie jak gdyby znajdowało się w `npm run-script`.", - "Shell to execute the command with, if any.": "Shell do wykonania polecenia, jeśli potrzeba.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Wynegeruj kod dla shell-a aby używać npx zamiast \"nie znaleziono polecenia\".", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignoruje istniejące paczki w $PATH lub lokalnym projekcie. Wymusza na npx tymczasową instalację i użycie najnowszej wersji.", - "npm binary to use for internal operations.": "Ścieżka do binarki npm używanej przez npx.", - "For the full documentation, see the manual page for npx(1).": "Dla pełnej dokumentacji zobacz manual dla npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Nie udało się ustalić binarki dla %s. Proszę użyć --package.", - "\nERROR: You must supply a command.\n": "\nERROR: Musisz podać polecenie.\n", - "Command failed: %s %s": "Polecenie się nie powiodło: %s %s", - "Install for %s failed with code %s": "Instalacja %s nie udała się, kod błędu: %s", - "%s not found. Trying with npx...": "%s: nie znaleziono polecenia. Próba uruchomienia przy użyciu npx...", - "command not found: %s": "nie znaleziono polecenia: %s", - "options": "opcje", - "command": "polecenie", - "version": "wersja", - "command-arg": "argument polecenia", - "command-string": "tekst polecenia", - "shell": "shell", - "package": "paczka", - "npx: installed %s in %ss": "npx: zainstalowano %s w %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Wycisza wyjście z npx. Nie dotyczy podprocesów.", - "Extra node argument when calling a node binary.": "Dodatkowe argumenty przekazywane do node." -} \ No newline at end of file diff --git a/deps/npm/node_modules/libnpx/locales/pt_BR.json b/deps/npm/node_modules/libnpx/locales/pt_BR.json deleted file mode 100644 index d61f8f58f88..00000000000 --- a/deps/npm/node_modules/libnpx/locales/pt_BR.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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", - "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", - "options": "opções", - "command": "comando", - "version": "versão", - "command-arg": "argumento-do-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." -} diff --git a/deps/npm/node_modules/libnpx/locales/ro.json b/deps/npm/node_modules/libnpx/locales/ro.json deleted file mode 100644 index b6c15d6af48..00000000000 --- a/deps/npm/node_modules/libnpx/locales/ro.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Rulează executabilele binare din pachetele npm.\n%s", - "Package to be installed.": "Pachetul care va fi instalat.", - "Location of the npm cache.": "Locația cache-ului npm.", - "Skip installation if a package is missing.": "Sari peste instalare dacă lipsește un pachet.", - "Path to user npmrc.": "Calea către fișierul npmrc al utilizatorului.", - "Execute string as if inside `npm run-script`.": "Execută string-ul ca și cum ar fi în `npm run-script`.", - "Shell to execute the command with, if any.": "Shell-ul cu care să fie executată comandă, dacă există.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Generează cod shell pentru a folosi npx drept fallback pentru \"comanda nu a fost găsită\".", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignoră executabilele binare existente din $PATH, sau din proiectul local. Aceasta forțează npx să facă o instalare temporară și să folosească ultima versiune.", - "npm binary to use for internal operations.": "Executabilul binar npm care să fie folosit pentru operaţiunile interne.", - "For the full documentation, see the manual page for npx(1).": "Pentru documentația completă, vedeți pagina de manual pentru npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Imposibil de ghicit numele executabilului binar pentru %s. Vă rugăm folosiți --package.", - "\nERROR: You must supply a command.\n": "\nEROARE: Trebuie să specifici o comandă.\n", - "Command failed: %s %s": "Comanda a eșuat: %s %s", - "Install for %s failed with code %s": "Procesul de instalare pentru %s a eșuat cu codul %s", - "%s not found. Trying with npx...": "%s nu a fost găsită. Încercare cu npx...", - "command not found: %s": "comanda nu a fost găsită: %s", - "options": "opțiuni", - "command": "comandă", - "version": "versiune", - "command-arg": "comandă-argument", - "command-string": "comandă-string", - "shell": "shell", - "package": "pachet", - "npx: installed %s in %ss": "npx: instalat %s în %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Suprimă outputul de la npx însăși. Subcomenzile nu vor fi afectate." -} diff --git a/deps/npm/node_modules/libnpx/locales/ru.json b/deps/npm/node_modules/libnpx/locales/ru.json deleted file mode 100644 index 801aeb58bb7..00000000000 --- a/deps/npm/node_modules/libnpx/locales/ru.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Выполняйте скрипты из npm пакетов.\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.": "Shell, чтобы выполнить команду, если необходимо.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Создает код для shell, чтобы использовать npx при \"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.": "Игнорирует все существующие скрипты в $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.", - "\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...", - "command not found: %s": "команда не найдена: %s", - "options": "опции", - "command": "команда", - "version": "версия", - "command-arg": "аргумент", - "command-string": "команда-строка", - "shell": "shell", - "package": "пакет", - "npx: installed %s in %ss": "npx: установлен %s в %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Отключить вывод npx. Поведение подкоманд не будет изменено." -} diff --git a/deps/npm/node_modules/libnpx/locales/sr.json b/deps/npm/node_modules/libnpx/locales/sr.json deleted file mode 100644 index 467e380df61..00000000000 --- a/deps/npm/node_modules/libnpx/locales/sr.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Izvršavam binarne pakete iz npm packages.\n%s", - "Package to be installed.": "Paket će biti instaliran.", - "Location of the npm cache.": "Lokacija npm keša.", - "Skip installation if a package is missing.": "Preskoci instalaciju ako paket nedostaje.", - "Path to user npmrc.": "Putanja do korisnikovog npmrc.", - "Execute string as if inside `npm run-script`.": "Izvrši string kao da se nalazi unutar `npm run-script`.", - "Shell to execute the command with, if any.": "Skripta izvršava komandu sa, ako postoji.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Napravi kod u Terminalu koji će koristiti npx kao zamenu za \"komanda nije pronađena\".", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignoriše postojeće binarne pakete u $PATH, ili u lokalnom projektu. Ovo će naterati npx da izvrši privremenu instalaciju i koristi najnoviju verziju.", - "npm binary to use for internal operations.": "npm binarni paket za upotrebu u lokalnim operacijama.", - "For the full documentation, see the manual page for npx(1).": "Za kompletnu dokumentaciju, pogledajte stranicu sa uputstvima za npx(1).", - "Unable to guess a binary name from %s. Please use --package.": "Ne možemo da pogodimo ime binarnog paketa iz %s. Molimo koristite --package.", - "\nERROR: You must supply a command.\n": "\nERROR: Morate uneti komandu.\n", - "Command failed: %s %s": "Komanda nije uspela: %s %s", - "Install for %s failed with code %s": "Instalacija za %s nije uspela sa kodom %s", - "%s not found. Trying with npx...": "%s nije pronadjen. Pokušavam sa npx...", - "command not found: %s": "komanda nije pronadjena: %s", - "options": "opcije", - "command": "komanda", - "version": "verzija", - "command-arg": "command-arg", - "command-string": "command-string", - "shell": "shell", - "package": "paket", - "npx: installed %s in %ss": "npx: instaliran %s u %ss", - "Suppress output from npx itself. Subcommands will not be affected.": "Zabranjen izlaz iz samog npx. Na podkomande neće biti uticaja..", - "Extra node argument when calling a node binary.": "Dodatni node argument kada pozivate node binarni." -} \ No newline at end of file diff --git a/deps/npm/node_modules/libnpx/locales/tr.json b/deps/npm/node_modules/libnpx/locales/tr.json deleted file mode 100644 index 58ca49dbbdf..00000000000 --- a/deps/npm/node_modules/libnpx/locales/tr.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "npm paketlerinden program çalıştırın.\n%s", - "Package to be installed.": "Yüklenecek paketin adı.", - "Location of the npm cache.":"npm önbelleğinin yeri.", - "Skip installation if a package is missing.": "Eğer eksik paket varsa yükleme adımını atla.", - "Path to user npmrc.": "Kullanıcının npmrc dosyasının yeri.", - "Execute string as if inside `npm run-script`.": "Komutu 'npm run-script' kapsamında çalıştır.", - "Shell to execute the command with, if any.": "Komutların çalıştırılacağı shell.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Komut eğer 'command not found' hatası veriyorsa, komutu npx üzerinden bir daha dene.", - "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "$PATH ve lokal projede tanımlanmış programları pas geçer. Bu sayede, npx yeni bir yükleme yapar ve en son versiyonu kullanır.", - "npm binary to use for internal operations.": "Bu programın çalıştırılmasında kullanılacak npm.", - "For the full documentation, see the manual page for npx(1).": "Tamamını okumak için 'man npx'.", - "Unable to guess a binary name from %s. Please use --package.": "%s için hangi npm paketi bilemedim. Lütfen --package kullanın.", - "\nERROR: You must supply a command.\n": "\nHATA: Argüman vermelisiniz.\n", - "Command failed: %s %s": "Komut çalıştırılamadı: %s %s", - "Install for %s failed with code %s": "%s yüklenirken %s kodlu bir hata oluştu. Yükleme sonlandırıldı.", - "%s not found. Trying with npx...": "%s bulunamadı. npx ile deniyorum...", - "command not found": "komut bulunamadı", - "options": "seçenekler", - "command": "komut", - "version": "versiyon", - "command-arg": "argümanlar", - "command-string": "argümanlar", - "shell": "shell", - "package": "paket", - "npx": "npx", - "Suppress output from npx itself. Subcommands will not be affected.": "npx çıktısını durdur. Alt komutlar etkilenmez." -} diff --git a/deps/npm/node_modules/libnpx/locales/uk.json b/deps/npm/node_modules/libnpx/locales/uk.json deleted file mode 100644 index 729a0d696da..00000000000 --- a/deps/npm/node_modules/libnpx/locales/uk.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "Виконуйте скрипти з npm пакетів.\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.": "Shell для виконання команди, якщо є.", - "Generate shell code to use npx as the \"command not found\" fallback.": "Генерує shell скрипт для використання npx як фолбеку для \"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.": "Ігнорує існуючі бінарники в $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.", - "\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...": "%s не знайдено. Спробуємо з npx...", - "command not found: %s": "команда не знайдена: %s", - "options": "опції", - "command": "команда", - "version": "версія", - "command-arg": "команда-аргумент", - "command-string": "команда-рядок", - "shell": "shell", - "package": "пакет", - "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 бібліотеки." -} diff --git a/deps/npm/node_modules/libnpx/locales/zh_CN.json b/deps/npm/node_modules/libnpx/locales/zh_CN.json deleted file mode 100644 index 6cf64629f16..00000000000 --- a/deps/npm/node_modules/libnpx/locales/zh_CN.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "从 npm 的可执行包执行命令\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.": "产生“找不到命令”的错误码", - "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", - "\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...": "找不到 %s,请尝试使用 npx...", - "command not found: %s": "找不到命令:%s", - "options": "选项", - "command": "命令", - "version": "版本", - "command-arg": "命令的参数", - "command-string": "命令的字符串", - "shell": "命令行解释器", - "package": "包", - "npx: installed %s in %ss": "npx: %s 安装成功,用时 %s 秒", - "Suppress output from npx itself. Subcommands will not be affected.": "隐藏 npx 的输出,子命令不会受到影响" -} diff --git a/deps/npm/node_modules/libnpx/locales/zh_TW.json b/deps/npm/node_modules/libnpx/locales/zh_TW.json deleted file mode 100644 index 86ed27ef61e..00000000000 --- a/deps/npm/node_modules/libnpx/locales/zh_TW.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Execute binaries from npm packages.\n%s": "從 npm 套件的執行檔執行指令\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.": "執行指令所使用的殼層(Shell),選用", - "Generate shell code to use npx as the \"command not found\" fallback.": "當 npx 找不到指令時,產生殼層(Shell)指令,並執行之", - "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.": "指定 npx 內部執行使用的 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 參數", - "\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...": "找不到 %s,請嘗試使用 npx...", - "command not found: %s": "找不到指令:%s", - "options": "選項", - "command": "指令", - "version": "版本", - "command-arg": "指令的參數", - "command-string": "指令字串", - "shell": "殼層(Shell)", - "package": "套件", - "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 執行檔時,提供的額外參數" -} 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 2fcf56b9022..00000000000 --- 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/LICENSE b/deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE deleted file mode 100644 index c430ad8bd06..00000000000 --- a/deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Scott Motte -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -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/libnpx/node_modules/dotenv/README.md b/deps/npm/node_modules/libnpx/node_modules/dotenv/README.md deleted file mode 100644 index 90836a34b7c..00000000000 --- a/deps/npm/node_modules/libnpx/node_modules/dotenv/README.md +++ /dev/null @@ -1,208 +0,0 @@ -# dotenv - -dotenv - -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_