From 307bd951f06e22ae766bc8aab5977aa9f2dc29bd Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Mon, 4 Dec 2017 23:20:38 +0200 Subject: [PATCH] feat: init --- .editorconfig | 11 + .gitattributes | 3 + .gitignore | 21 + .npmrc | 2 + .travis.yml | 15 + LICENSE | 21 + README.md | 17 + package.json | 81 + shrinkwrap.yaml | 3944 +++++++++++++++++++++++++++++++++++++++ src/fetchTypes.ts | 16 + src/fs/readPkg.ts | 14 + src/fs/safeReadPkg.ts | 16 + src/index.ts | 8 + src/loggers.ts | 43 + src/memoize.ts | 21 + src/packageRequester.ts | 372 ++++ src/resolveTypes.ts | 47 + test/index.ts | 18 + tsconfig.json | 24 + tslint.json | 44 + typings/index.d.ts | 34 + 21 files changed, 4772 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .travis.yml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 package.json create mode 100644 shrinkwrap.yaml create mode 100644 src/fetchTypes.ts create mode 100644 src/fs/readPkg.ts create mode 100644 src/fs/safeReadPkg.ts create mode 100644 src/index.ts create mode 100644 src/loggers.ts create mode 100644 src/memoize.ts create mode 100644 src/packageRequester.ts create mode 100644 src/resolveTypes.ts create mode 100644 test/index.ts create mode 100644 tsconfig.json create mode 100644 tslint.json create mode 100644 typings/index.d.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..270dd84bb6 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true +end_of_line = lf + +[*.{ts,js,json}] +indent_style = space +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..0e02124405 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text eol=lf + +*.tgz binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..82bf6e2cc3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Dependency directory +node_modules + +# Coverage directory used by tools like istanbul +coverage + +fixtures +.tmp +_docpress + +lib + +# Visual Studio Code configs +.vscode/ + +.store diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..092d229bb2 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +tag-version-prefix = +message = chore(release): %s diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..52694032c7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: node_js +node_js: + - 4 + - 6 + - 8 + - 9 +sudo: false +before_install: + - curl -L https://unpkg.com/@pnpm/self-installer | node +install: + - pnpm install +script: + - npm test +notifications: + email: false diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..be62ea8577 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Zoltan Kochan + +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/README.md b/README.md new file mode 100644 index 0000000000..43b841124a --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# @pnpm/package-requester + +> Concurrent downloader of npm-compatible packages + + +[![npm version](https://img.shields.io/npm/v/@pnpm/package-requester.svg)](https://www.npmjs.com/package/@pnpm/package-requester) [![Build Status](https://img.shields.io/travis/pnpm/package-requester/master.svg)](https://travis-ci.org/pnpm/package-requester) + + +## Installation + +```sh +npm i -S @pnpm/logger @pnpm/package-requester +``` + +## License + +[MIT](./LICENSE) © [Zoltan Kochan](https://www.kochan.io/) diff --git a/package.json b/package.json new file mode 100644 index 0000000000..e0b9750946 --- /dev/null +++ b/package.json @@ -0,0 +1,81 @@ +{ + "name": "@pnpm/package-requester", + "version": "0.0.0", + "description": "Concurrent downloader of npm-compatible packages", + "main": "lib/index.js", + "typings": "lib/index.d.ts", + "files": [ + "lib" + ], + "engines": { + "node": ">=4" + }, + "scripts": { + "lint": "tslint -c tslint.json --project .", + "tsc": "rimraf lib && tsc", + "test": "npm run lint && preview && ts-node test && mos t", + "md": "mos", + "prepublishOnly": "npm run tsc" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/pnpm/package-requester.git" + }, + "keywords": [ + "pnpm", + "resolver", + "npm" + ], + "author": "Zoltan Kochan (https://www.kochan.io/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/pnpm/package-requester/issues" + }, + "homepage": "https://github.com/pnpm/package-requester#readme", + "peerDependencies": { + "@pnpm/logger": "^1.0.0" + }, + "dependencies": { + "@pnpm/types": "^1.2.1", + "@types/load-json-file": "^2.0.7", + "@types/mz": "^0.0.32", + "@types/p-queue": "^1.1.0", + "@types/write-json-file": "^2.2.1", + "load-json-file": "^4.0.0", + "mkdirp-promise": "^5.0.1", + "mz": "^2.7.0", + "p-limit": "^1.1.0", + "p-queue": "^2.3.0", + "package-store": "^0.9.0", + "path-exists": "^3.0.0", + "read-package-json": "^2.0.12", + "rename-overwrite": "^1.0.0", + "rimraf-then": "^1.0.1", + "symlink-dir": "^1.1.0", + "unpack-stream": "^2.2.0", + "util.promisify": "^1.0.0", + "write-json-file": "^2.3.0" + }, + "devDependencies": { + "@pnpm/logger": "^1.0.0", + "@pnpm/npm-resolver": "^0.3.0", + "@pnpm/tarball-fetcher": "^0.2.0", + "@types/tape": "^4.2.31", + "mos": "^2.0.0-alpha.3", + "mos-plugin-readme": "^1.0.4", + "package-preview": "^1.0.1", + "rimraf": "^2.6.2", + "tape": "^4.8.0", + "ts-node": "^3.3.0", + "tslint": "^5.8.0", + "typescript": "^2.6.1" + }, + "mos": { + "plugins": [ + "readme" + ], + "installation": { + "useShortAlias": true + } + } +} diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml new file mode 100644 index 0000000000..59d4029a73 --- /dev/null +++ b/shrinkwrap.yaml @@ -0,0 +1,3944 @@ +dependencies: + '@pnpm/types': 1.2.1 + '@types/load-json-file': 2.0.7 + '@types/mz': 0.0.32 + '@types/p-queue': 1.1.0 + '@types/write-json-file': 2.2.1 + load-json-file: 4.0.0 + mkdirp-promise: 5.0.1 + mz: 2.7.0 + p-limit: 1.1.0 + p-queue: 2.3.0 + package-store: 0.9.0 + path-exists: 3.0.0 + read-package-json: 2.0.12 + rename-overwrite: 1.0.0 + rimraf-then: 1.0.1 + symlink-dir: 1.1.0 + unpack-stream: 2.2.0 + util.promisify: 1.0.0 + write-json-file: 2.3.0 +devDependencies: + '@pnpm/logger': 1.0.0 + '@pnpm/npm-resolver': 0.3.0 + '@pnpm/tarball-fetcher': 0.2.0 + '@types/tape': 4.2.31 + mos: 2.0.0-alpha.3 + mos-plugin-readme: 1.0.4 + package-preview: 1.0.1 + rimraf: 2.6.2 + tape: 4.8.0 + ts-node: 3.3.0 + tslint: 5.8.0 + typescript: 2.6.2 +packages: + /@pnpm/exec/1.1.2: + dependencies: + '@types/got': 7.1.5 + '@types/node': 8.0.54 + command-exists: 1.2.2 + cross-spawn: 5.1.0 + got: 8.0.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-ZNaOAOvl9J45nhrnMcRxT9wd2G6hPzC444nRmo8Wk/GmY6dd8FVN/XG/nEdHPjcYPyyrW2UA3McNi+klB9oBHw== + /@pnpm/logger/1.0.0: + dependencies: + '@types/node': 8.0.54 + bole: 3.0.2 + ndjson: 1.5.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-VRqE5/SiuR7ZrwBmS+Af89BTXli5xBbiqu7WPq56gEtWT8dKf9rFLoimmmMBVeRq5LmVZIXlOxs29F9I+vgSvQ== + /@pnpm/npm-resolver/0.3.0: + dependencies: + '@pnpm/types': 1.2.1 + '@types/load-json-file': 2.0.7 + '@types/mem': 1.1.2 + '@types/node': 8.0.54 + '@types/semver': 5.4.0 + '@types/write-json-file': 2.2.1 + credentials-by-uri: 1.0.0 + encode-registry: 1.1.0 + load-json-file: 4.0.0 + mem: 3.0.0 + npm-registry-client: 8.5.0 + p-limit: 1.1.0 + semver: 5.4.1 + ssri: 5.0.0 + write-json-file: 2.3.0 + dev: true + engines: + node: '>=4' + peerDependencies: + '@pnpm/logger': ^1.0.0 + resolution: + integrity: sha512-DWjHSHtiPgyKD6OYIpKnXin9gDJmkrPWv+RmjjpFGuzjNKXqoVBIAqSX1pfxezuqz/E/W4OlzqGy8VnUGRGQtw== + /@pnpm/tarball-fetcher/0.2.0: + dependencies: + '@types/mem': 1.1.2 + '@types/mz': 0.0.32 + '@types/node': 8.0.54 + '@types/retry': 0.10.2 + credentials-by-uri: 1.0.0 + fs-write-stream-atomic: 1.0.10 + graceful-fs: 4.1.11 + mem: 3.0.0 + mkdirp-promise: 5.0.1 + mz: 2.7.0 + npm-registry-client: 8.5.0 + retry: 0.10.1 + ssri: 5.0.0 + unpack-stream: 2.2.0 + dev: true + engines: + node: '>=4' + peerDependencies: + '@pnpm/logger': ^1.0.0 + resolution: + integrity: sha512-zSHb9SXY0sf6ZgHatK4fMIBgQ87DvLygLLqCrz36HC0GHJMJHS8Zc/FcVZ/5lPukHqn2vTGWBH6n/Hcu9RvL0g== + /@pnpm/types/1.2.1: + resolution: + integrity: sha512-gvOa3EP2z7O+IFiYsRBB+SBdnyE+SHTVFM5bPr2WGHhPhrScMUJ2jqgzlC79FgRP9c7uoe8Wbp3LYClEDh/U6A== + /@sindresorhus/is/0.6.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-OD9Faya8lseInwMyB59DWLFsWNw= + /@types/events/1.1.0: + resolution: + integrity: sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw== + /@types/fs-extra/4.0.5: + dependencies: + '@types/node': 8.0.54 + dev: true + resolution: + integrity: sha512-tIG0GpHum5IFb8Qze/cSv0w/0gNzHB+MUDftTQaxenx46z50g51/MPkNLssLz9+uZLzCDd35bT9qtWOTXZ21Gw== + /@types/got/7.1.5: + dependencies: + '@types/node': 8.0.54 + dev: true + resolution: + integrity: sha512-fOby+9vGOB15+6GsNI3maUx/Ig4lW3hOH9is0OsrKRyyeJ42gk2mUn4UoRko3kXVPj44TSxDx81Th3EisXx8rg== + /@types/load-json-file/2.0.7: + resolution: + integrity: sha512-NrH6jPlV77QCVPhAHofWeiOr77TgpKt82c2RVxSBChWBJqyY/u4ngl3CA4mcsAg/w7rNLrkR7dkObMV0ihLLXw== + /@types/mem/1.1.2: + dev: true + resolution: + integrity: sha1-48iwlfLyVjtRjwqtWd+f5qi4IGU= + /@types/mz/0.0.31: + dependencies: + '@types/node': 8.0.54 + resolution: + integrity: sha1-pNgMCC/v5x5Ap8DwfR5lVbu8e1I= + /@types/mz/0.0.32: + dependencies: + '@types/node': 8.0.54 + resolution: + integrity: sha512-cy3yebKhrHuOcrJGkfwNHhpTXQLgmXSv1BX+4p32j+VUQ6aP2eJ5cL7OvGcAQx75fCTFaAIIAKewvqL+iwSd4g== + /@types/node/8.0.54: + dependencies: + '@types/events': 1.1.0 + resolution: + integrity: sha512-qetMdTv3Ytz9u9ESLdcYs45LPI0mczYZIbC184n7kY0jczOqPNQsabBfVCh+na3B2shAfvC459JqHV771A8Rxg== + /@types/p-queue/1.1.0: + dev: false + resolution: + integrity: sha512-lLevmLuKQ9uquorlb+XUp+tmmVzbFF/p03vgiBdtgiKoAoWAuIrNcn9Fs/rpUZgSywfu9cl4lb93H8xO2sOAUA== + /@types/ramda/0.25.6: + dev: false + resolution: + integrity: sha512-txqMN+JUsJqL8BMYgQkfll3jIIE1mgFoM+eJLnxRUOs0Q5zC+E1UB6+yGpVzYP4kmw1Ywf6F1pywkGpm2032oA== + /@types/retry/0.10.2: + resolution: + integrity: sha512-LqJkY4VQ7S09XhI7kA3ON71AxauROhSv74639VsNXC9ish4IWHnIi98if+nP1MxQV3RMPqXSCYgpPsDHjlg9UQ== + /@types/semver/5.4.0: + dev: true + resolution: + integrity: sha512-PBHCvO98hNec9A491vBbh0ZNDOVxccwKL1u2pm6fs9oDgm7SEnw0lEHqHfjsYryDxnE3zaf7LvERWEXjOp1hig== + /@types/tape/4.2.31: + dependencies: + '@types/node': 8.0.54 + dev: true + resolution: + integrity: sha512-DEPn8FJKQR6eeMHZ407TuAqlhBKQa54PTM3c7Z6pKOI1uHaPnidmpmOXYtNZTcDrL5hnZofSHPwX1AQ9HbaMUg== + /@types/write-json-file/2.2.1: + resolution: + integrity: sha512-JdO/UpPm9RrtQBNVcZdt3M7j3mHO/kXaea9LBGx3UgWJd1f9BkIWP7jObLBG6ZtRyqp7KzLFEsaPhWcidVittA== + /@zkochan/async-replace/0.4.1: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + dev: true + resolution: + integrity: sha1-TPO97s9S8vasjzKw2IpoLrSEiXk= + /acorn/3.0.4: + dev: true + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-BPJElQ/bj6+FUHrUgcLt7nrs3uw= + /ajv/5.5.1: + dependencies: + co: 4.6.0 + fast-deep-equal: 1.0.0 + fast-json-stable-stringify: 2.0.0 + json-schema-traverse: 0.3.1 + dev: true + resolution: + integrity: sha1-s4u4h22ehr7plJVqBOch6IskjrI= + /amdefine/1.0.1: + dev: true + engines: + node: '>=0.4.2' + resolution: + integrity: sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + /ansi-align/1.1.0: + dependencies: + string-width: 1.0.2 + dev: true + resolution: + integrity: sha1-LwwWWIKXOa3V67FeawxuNCPwFro= + /ansi-regex/0.2.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= + /ansi-regex/2.1.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + /ansi-styles/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= + /ansi-styles/2.2.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + /ansi-styles/3.2.0: + dependencies: + color-convert: 1.9.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug== + /any-promise/1.3.0: + resolution: + integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= + /aproba/1.2.0: + optional: true + resolution: + integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + /are-we-there-yet/1.1.4: + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.3 + optional: true + resolution: + integrity: sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0= + /argparse/1.0.9: + dependencies: + sprintf-js: 1.0.3 + resolution: + integrity: sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY= + /arr-exclude/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-38fC5VKicHI8zaBM8xKMjL/lxjE= + /array-find-index/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + /arrify/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + /asn1/0.2.3: + dev: true + resolution: + integrity: sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= + /assert-plus/1.0.0: + dev: true + engines: + node: '>=0.8' + resolution: + integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + /asynckit/0.4.0: + dev: true + resolution: + integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /aws-sign2/0.7.0: + dev: true + resolution: + integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + /aws4/1.6.0: + dev: true + resolution: + integrity: sha1-g+9cqGCysy5KDe7e6MdxudtXRx4= + /babel-code-frame/6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.2 + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + /babel-core/6.26.0: + dependencies: + babel-code-frame: 6.26.0 + babel-generator: 6.26.0 + babel-helpers: 6.24.1 + babel-messages: 6.23.0 + babel-register: 6.26.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + convert-source-map: 1.5.1 + debug: 2.6.9 + json5: 0.5.1 + lodash: 4.17.4 + minimatch: 3.0.4 + path-is-absolute: 1.0.1 + private: 0.1.8 + slash: 1.0.0 + source-map: 0.5.7 + dev: true + resolution: + integrity: sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g= + /babel-generator/6.26.0: + dependencies: + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + detect-indent: 4.0.0 + jsesc: 1.3.0 + lodash: 4.17.4 + source-map: 0.5.7 + trim-right: 1.0.1 + dev: true + resolution: + integrity: sha1-rBriAHC3n248odMmlhMFN3TyDcU= + /babel-helper-define-map/6.26.0: + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.4 + dev: true + resolution: + integrity: sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + /babel-helper-function-name/6.24.1: + dependencies: + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + /babel-helper-get-function-arity/6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + /babel-helper-optimise-call-expression/6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + /babel-helper-replace-supers/6.24.1: + dependencies: + babel-helper-optimise-call-expression: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + /babel-helpers/6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + dev: true + resolution: + integrity: sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + /babel-messages/6.23.0: + dependencies: + babel-runtime: 6.26.0 + dev: true + resolution: + integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + /babel-plugin-transform-es2015-classes/6.24.1: + dependencies: + babel-helper-define-map: 6.26.0 + babel-helper-function-name: 6.24.1 + babel-helper-optimise-call-expression: 6.24.1 + babel-helper-replace-supers: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + /babel-register/6.26.0: + dependencies: + babel-core: 6.26.0 + babel-runtime: 6.26.0 + core-js: 2.5.1 + home-or-tmp: 2.0.0 + lodash: 4.17.4 + mkdirp: 0.5.1 + source-map-support: 0.4.18 + dev: true + resolution: + integrity: sha1-btAhFz4vy0htestFxgCahW9kcHE= + /babel-run-async/1.0.0: + dependencies: + babel-runtime: 6.26.0 + is-promise: 2.1.0 + dev: true + resolution: + integrity: sha1-o0NCX802FY3++ucl0Dk+zkTsRZw= + /babel-runtime/6.26.0: + dependencies: + core-js: 2.5.1 + regenerator-runtime: 0.11.0 + dev: true + resolution: + integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + /babel-template/6.26.0: + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + lodash: 4.17.4 + dev: true + resolution: + integrity: sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + /babel-traverse/6.26.0: + dependencies: + babel-code-frame: 6.26.0 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + debug: 2.6.9 + globals: 9.18.0 + invariant: 2.2.2 + lodash: 4.17.4 + dev: true + resolution: + integrity: sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + /babel-types/6.26.0: + dependencies: + babel-runtime: 6.26.0 + esutils: 2.0.2 + lodash: 4.17.4 + to-fast-properties: 1.0.3 + dev: true + resolution: + integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + /babylon/6.18.0: + dev: true + resolution: + integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + /balanced-match/1.0.0: + resolution: + integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /base64-js/0.0.8: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= + /bcrypt-pbkdf/1.0.1: + dependencies: + tweetnacl: 0.14.5 + dev: true + optional: true + resolution: + integrity: sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40= + /bindings/1.3.0: + dev: false + optional: true + resolution: + integrity: sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw== + /bl/1.2.1: + dependencies: + readable-stream: 2.3.3 + resolution: + integrity: sha1-ysMo977kVzDUBLaSID/LWQ4XLV4= + /bluebird/3.5.1: + dev: false + resolution: + integrity: sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== + /bole/3.0.2: + dependencies: + fast-safe-stringify: 1.1.13 + individual: 3.0.0 + dev: true + resolution: + integrity: sha1-vIpIPKlASdqbg3wa0Rzf6+5uBRQ= + /boom/4.3.1: + dependencies: + hoek: 4.2.0 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha1-T4owBctKfjiJ90kDD9JbluAdLjE= + /boom/5.2.0: + dependencies: + hoek: 4.2.0 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw== + /boxen/0.5.1: + dependencies: + camelcase: 2.1.1 + chalk: 1.1.3 + cli-boxes: 1.0.0 + filled-array: 1.1.0 + object-assign: 4.1.1 + repeating: 2.0.1 + string-width: 1.0.2 + widest-line: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-W3PYhA6388ihVcv2ntPtaNRyABQ= + /brace-expansion/1.1.8: + dependencies: + balanced-match: 1.0.0 + concat-map: 0.0.1 + resolution: + integrity: sha1-wHshHHyVLsH479Uad+8NHTmQopI= + /browserify-zlib/0.1.4: + dependencies: + pako: 0.2.9 + resolution: + integrity: sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + /buffer/3.6.0: + dependencies: + base64-js: 0.0.8 + ieee754: 1.1.8 + isarray: 1.0.0 + resolution: + integrity: sha1-pyyTb3e5a/UvX357RnGAYoVR3vs= + /builtin-modules/1.1.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + /builtins/1.0.3: + dev: true + resolution: + integrity: sha1-y5T662HIaWRR2zZTThQi+U8K7og= + /bzip2-maybe/1.0.0: + dependencies: + is-bzip2: 1.0.0 + peek-stream: 1.1.2 + pumpify: 1.3.5 + through2: 2.0.3 + unbzip2-stream: 1.2.5 + resolution: + integrity: sha1-ya73AIprlDy+mcxhcSXrS9R4KWs= + /cacheable-request/2.1.3: + dependencies: + clone-response: 1.0.2 + get-stream: 3.0.0 + http-cache-semantics: 3.8.1 + keyv: 3.0.0 + lowercase-keys: 1.0.0 + normalize-url: 2.0.0 + responselike: 1.0.2 + dev: true + resolution: + integrity: sha1-uTVgfdKrKBKJi++yJPZqqGxTPbs= + /caller-path/0.1.0: + dependencies: + callsites: 0.2.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + /callsites/0.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + /callsites/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-AlY7EO0x8uvZWJOndvCz2VprFbg= + /camelcase-keys/2.1.0: + dependencies: + camelcase: 2.1.1 + map-obj: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + /camelcase-keys/4.2.0: + dependencies: + camelcase: 4.1.0 + map-obj: 2.0.0 + quick-lru: 1.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + /camelcase/2.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + /camelcase/4.1.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + /capture-stack-trace/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0= + /caseless/0.12.0: + dev: true + resolution: + integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + /ccount/1.0.2: + dev: true + resolution: + integrity: sha1-U7ai+BW7d7nChx97mnLDol8djok= + /chalk/0.5.1: + dependencies: + ansi-styles: 1.1.0 + escape-string-regexp: 1.0.5 + has-ansi: 0.1.0 + strip-ansi: 0.3.0 + supports-color: 0.2.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= + /chalk/1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + /chalk/2.3.0: + dependencies: + ansi-styles: 3.2.0 + escape-string-regexp: 1.0.5 + supports-color: 4.5.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== + /character-entities-html4/1.1.1: + dev: true + resolution: + integrity: sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA= + /character-entities-legacy/1.1.1: + dev: true + resolution: + integrity: sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8= + /character-entities/1.2.1: + dev: true + resolution: + integrity: sha1-92hxvl72bdt/j440eOzDdMJ9bco= + /character-reference-invalid/1.1.1: + dev: true + resolution: + integrity: sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw= + /chownr/1.0.1: + resolution: + integrity: sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= + /cli-boxes/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM= + /clone-response/1.0.2: + dependencies: + mimic-response: 1.0.0 + dev: true + resolution: + integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + /co/4.6.0: + dev: true + engines: + iojs: '>= 1.0.0' + node: '>= 0.12.0' + resolution: + integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + /code-point-at/1.1.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + /codemo/0.2.2: + dependencies: + acorn: 3.0.4 + babel-runtime: 6.26.0 + callsites: 1.0.0 + cross-spawn-async: 2.2.2 + file-position: 0.0.0 + lodash.partition: 4.6.0 + normalize-newline: 2.0.0 + normalize-path: 2.0.1 + promise.prototype.finally: 1.0.1 + rollup: 0.25.8 + rollup-plugin-babel: 2.4.0 + rollup-plugin-includepaths: 0.1.2 + source-map: 0.5.3 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-GCe0ZB87z4vXG9SbLU6ZtFuLX9c= + /collapse-white-space/1.0.3: + dev: true + resolution: + integrity: sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw= + /color-convert/1.9.1: + dependencies: + color-name: 1.1.3 + dev: true + resolution: + integrity: sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ== + /color-name/1.1.3: + dev: true + resolution: + integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + /combined-stream/1.0.5: + dependencies: + delayed-stream: 1.0.0 + dev: true + engines: + node: '>= 0.8' + resolution: + integrity: sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk= + /command-exists/1.2.2: + dev: true + resolution: + integrity: sha1-EoGcZPr5VEbsCuB/5sr7brNwiyI= + /commander/2.12.2: + dev: true + resolution: + integrity: sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA== + /concat-map/0.0.1: + resolution: + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + /concat-stream/1.6.0: + dependencies: + inherits: 2.0.3 + readable-stream: 2.3.3 + typedarray: 0.0.6 + dev: true + engines: + '0': node >= 0.8 + resolution: + integrity: sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc= + /configstore/2.1.0: + dependencies: + dot-prop: 3.0.0 + graceful-fs: 4.1.11 + mkdirp: 0.5.1 + object-assign: 4.1.1 + os-tmpdir: 1.0.2 + osenv: 0.1.4 + uuid: 2.0.3 + write-file-atomic: 1.3.4 + xdg-basedir: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE= + /console-control-strings/1.1.0: + optional: true + resolution: + integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + /convert-source-map/1.5.1: + dev: true + resolution: + integrity: sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU= + /core-js/2.5.1: + dev: true + resolution: + integrity: sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs= + /core-util-is/1.0.2: + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /create-error-class/3.0.2: + dependencies: + capture-stack-trace: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + /credentials-by-uri/1.0.0: + dependencies: + nerf-dart: 1.0.0 + dev: true + resolution: + integrity: sha512-WtoZkGQV2KgEfEqWKPetJ2btv+GxldzOe2vHVqAcyuiYdpIwCX7viL2+P9EaZLLfR+SFAZgPdP1+HZJ7MqRc2A== + /cross-spawn-async/2.2.2: + dependencies: + lru-cache: 4.1.1 + which: 1.3.0 + deprecated: 'cross-spawn no longer requires a build toolchain, use it instead!' + dev: true + resolution: + integrity: sha1-kN6ptpIPA7L3vHSZYVABrubyMX4= + /cross-spawn/4.0.2: + dependencies: + lru-cache: 4.1.1 + which: 1.3.0 + dev: true + resolution: + integrity: sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + /cross-spawn/5.1.0: + dependencies: + lru-cache: 4.1.1 + shebang-command: 1.2.0 + which: 1.3.0 + resolution: + integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + /cryptiles/3.1.2: + dependencies: + boom: 5.2.0 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4= + /currently-unhandled/0.4.1: + dependencies: + array-find-index: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o= + /dashdash/1.14.1: + dependencies: + assert-plus: 1.0.0 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + /debug/2.6.9: + dependencies: + ms: 2.0.0 + dev: true + resolution: + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /debug/3.1.0: + dependencies: + ms: 2.0.0 + dev: false + optional: true + resolution: + integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + /decamelize-keys/1.1.0: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + /decamelize/1.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + /decode-uri-component/0.2.0: + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + /decompress-maybe/1.0.0: + dependencies: + bzip2-maybe: 1.0.0 + gunzip-maybe: 1.4.1 + pumpify: 1.3.5 + resolution: + integrity: sha1-rf54xmzAaeZOgkvRQFuF515tHLs= + /decompress-response/3.3.0: + dependencies: + mimic-response: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + /deep-equal/1.0.1: + dev: true + resolution: + integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + /deep-extend/0.4.2: + engines: + iojs: '>=1.0.0' + node: '>=0.12.0' + resolution: + integrity: sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8= + /define-properties/1.1.2: + dependencies: + foreach: 2.0.5 + object-keys: 1.0.11 + engines: + node: '>= 0.4' + resolution: + integrity: sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ= + /defined/1.0.0: + dev: true + resolution: + integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + /delayed-stream/1.0.0: + dev: true + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /delegates/1.0.0: + optional: true + resolution: + integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + /detect-indent/4.0.0: + dependencies: + repeating: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + /detect-indent/5.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + /diff/2.2.3: + dev: true + engines: + node: '>=0.3.1' + resolution: + integrity: sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k= + /diff/3.4.0: + dev: true + engines: + node: '>=0.3.1' + resolution: + integrity: sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA== + /dint/1.0.0: + dependencies: + bluebird: 3.5.1 + graceful-fs: 4.1.11 + p-every: 1.0.2 + ssri: 4.1.6 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-S/7IGLOmVysyi96o0FHM1d5YDEQ= + /dot-prop/3.0.0: + dependencies: + is-obj: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-G3CK8JSknJoOfbyteQq6U52sEXc= + /drive-by-path/1.0.0: + dependencies: + is-subdir: 1.0.2 + once: 1.4.0 + ramda: 0.24.1 + util.promisify: 1.0.0 + dev: false + engines: + node: '>=4' + optionalDependencies: + drivelist: 5.2.7 + resolution: + integrity: sha512-FSY6axBYIVfYz9Rj6c6ECzcSxoNgqZRfAQP0kDiCVa38gPDzVyPWcEvxfDnJ96xW4oXLZLpiOloxRnC1sUKksA== + /drivelist/5.2.7: + dependencies: + bindings: 1.3.0 + debug: 3.1.0 + js-yaml: 3.10.0 + lodash: 4.17.4 + nan: 2.8.0 + prebuild-install: 2.3.0 + engines: + node: '>=4' + optional: true + resolution: + integrity: sha512-TslD6xoCLUUxlP9vNCixEkIwRv/aoCjVrdxiw5jd2iVWBS631DhashXYZaUek8TgfKnE59Sox4Wo12jVuM+XIg== + /duplexer/0.1.1: + dev: true + resolution: + integrity: sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + /duplexer2/0.1.4: + dependencies: + readable-stream: 2.3.3 + dev: true + resolution: + integrity: sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + /duplexer3/0.1.4: + dev: true + resolution: + integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + /duplexify/3.5.1: + dependencies: + end-of-stream: 1.4.0 + inherits: 2.0.3 + readable-stream: 2.3.3 + stream-shift: 1.0.0 + resolution: + integrity: sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ== + /ecc-jsbn/0.1.1: + dependencies: + jsbn: 0.1.1 + dev: true + optional: true + resolution: + integrity: sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU= + /emoji-regex/6.1.1: + dev: true + resolution: + integrity: sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + /encode-registry/1.1.0: + dependencies: + mem: 3.0.0 + engines: + node: '>=4' + resolution: + integrity: sha512-we1k9/KE1067YXEyJzPg+kXlNFLk9/LT2IFP3VZgmANNwf8Bx+KdAVd1wxLpG8y7v6EgplVGTstmVNICwiaCNA== + /end-of-stream/1.4.0: + dependencies: + once: 1.4.0 + resolution: + integrity: sha1-epDYM+/abPpurA9JSduw+tOmMgY= + /error-ex/1.3.1: + dependencies: + is-arrayish: 0.2.1 + resolution: + integrity: sha1-+FWobOYa3E6GIcPNoh56dhLDqNw= + /es-abstract/1.10.0: + dependencies: + es-to-primitive: 1.1.1 + function-bind: 1.1.1 + has: 1.0.1 + is-callable: 1.1.3 + is-regex: 1.0.4 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ== + /es-to-primitive/1.1.1: + dependencies: + is-callable: 1.1.3 + is-date-object: 1.0.1 + is-symbol: 1.0.1 + engines: + node: '>= 0.4' + resolution: + integrity: sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0= + /escape-string-regexp/1.0.5: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + /esprima/4.0.0: + engines: + node: '>=4' + resolution: + integrity: sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw== + /estree-walker/0.2.1: + dev: true + resolution: + integrity: sha1-va/oCVOD2EFNXcLs9MkXO225QS4= + /esutils/2.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + /events-to-array/1.1.2: + dev: true + resolution: + integrity: sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y= + /execa/0.8.0: + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.2 + strip-eof: 1.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + /expand-template/1.1.0: + dev: false + optional: true + resolution: + integrity: sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ== + /extend/3.0.1: + dev: true + resolution: + integrity: sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ= + /extsprintf/1.3.0: + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + /extsprintf/1.4.0: + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + /fast-deep-equal/1.0.0: + dev: true + resolution: + integrity: sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8= + /fast-json-stable-stringify/2.0.0: + dev: true + resolution: + integrity: sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + /fast-safe-stringify/1.1.13: + dev: true + resolution: + integrity: sha1-oB6c2cnkkXFcmKdaQtXwu9EH/3Y= + /figures/1.7.0: + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + /file-exists/1.0.0: + dev: true + resolution: + integrity: sha1-5tJptWVnuJIlgTmOmQ3XB49y1hY= + /file-position/0.0.0: + dev: true + resolution: + integrity: sha1-rkxlqupgoUyX9xUIwKvIaopfCI4= + /filled-array/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q= + /find-down/0.1.4: + dependencies: + locate-path: 2.0.0 + next-path: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-3lcasU5kFaqBp/IJ19lDRv5I0FG42J94s2oIP5r0KA5z5+ID0vocMylMUEuuGbXqJ5WLNZteQB9CAVIzUnk9bQ== + /find-up/1.1.2: + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + /find-up/2.1.0: + dependencies: + locate-path: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + /flatten/1.0.2: + dev: true + resolution: + integrity: sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= + /for-each/0.3.2: + dependencies: + is-function: 1.0.1 + dev: true + resolution: + integrity: sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ= + /foreach/2.0.5: + resolution: + integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k= + /forever-agent/0.6.1: + dev: true + resolution: + integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + /form-data/2.3.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.5 + mime-types: 2.1.17 + dev: true + engines: + node: '>= 0.12' + resolution: + integrity: sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8= + /from2/2.3.0: + dependencies: + inherits: 2.0.3 + readable-stream: 2.3.3 + dev: true + resolution: + integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + /fs-extra/4.0.2: + dependencies: + graceful-fs: 4.1.11 + jsonfile: 4.0.0 + universalify: 0.1.1 + dev: true + resolution: + integrity: sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s= + /fs-write-stream-atomic/1.0.10: + dependencies: + graceful-fs: 4.1.11 + iferr: 0.1.5 + imurmurhash: 0.1.4 + readable-stream: 2.3.3 + dev: true + resolution: + integrity: sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + /fs.realpath/1.0.0: + resolution: + integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + /function-bind/1.1.1: + resolution: + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + /gauge/2.7.4: + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.2 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.2 + optional: true + resolution: + integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + /get-stdin/4.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + /get-stream/3.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + /getpass/0.1.7: + dependencies: + assert-plus: 1.0.0 + dev: true + resolution: + integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + /github-from-package/0.0.0: + dev: false + optional: true + resolution: + integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + /github-slugger/1.2.0: + dependencies: + emoji-regex: 6.1.1 + dev: true + resolution: + integrity: sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q== + /github-url-to-object/2.2.6: + dependencies: + is-url: 1.2.2 + dev: true + resolution: + integrity: sha1-ypJQFlFJdI7uswv8xgAMb+DSQvc= + /glob/7.0.6: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.3 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + resolution: + integrity: sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo= + /glob/7.1.2: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.3 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + resolution: + integrity: sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + /globals/9.18.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + /got/5.7.1: + dependencies: + create-error-class: 3.0.2 + duplexer2: 0.1.4 + is-redirect: 1.0.0 + is-retry-allowed: 1.1.0 + is-stream: 1.1.0 + lowercase-keys: 1.0.0 + node-status-codes: 1.0.0 + object-assign: 4.1.1 + parse-json: 2.2.0 + pinkie-promise: 2.0.1 + read-all-stream: 3.1.0 + readable-stream: 2.3.3 + timed-out: 3.1.3 + unzip-response: 1.0.2 + url-parse-lax: 1.0.0 + dev: true + engines: + node: '>=0.10.0 <7' + resolution: + integrity: sha1-X4FjWmHkplifGAVp6k44FoClHzU= + /got/8.0.1: + dependencies: + '@sindresorhus/is': 0.6.0 + cacheable-request: 2.1.3 + decompress-response: 3.3.0 + duplexer3: 0.1.4 + get-stream: 3.0.0 + into-stream: 3.1.0 + is-retry-allowed: 1.1.0 + isurl: 1.0.0 + lowercase-keys: 1.0.0 + mimic-response: 1.0.0 + p-cancelable: 0.3.0 + p-timeout: 2.0.1 + pify: 3.0.0 + safe-buffer: 5.1.1 + timed-out: 4.0.1 + url-parse-lax: 3.0.0 + url-to-options: 1.0.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-bX+Ls+uZ5a+RLv4moQRHZEHgjn8= + /graceful-fs/4.1.11: + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= + /gunzip-maybe/1.4.1: + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.2 + pumpify: 1.3.5 + through2: 2.0.3 + resolution: + integrity: sha512-qtutIKMthNJJgeHQS7kZ9FqDq59/Wn0G2HYCRNjpup7yKfVI6/eqwpmroyZGFoCYaG+sW6psNVb4zoLADHpp2g== + /har-schema/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + /har-validator/5.0.3: + dependencies: + ajv: 5.5.1 + har-schema: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= + /has-ansi/0.1.0: + dependencies: + ansi-regex: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= + /has-ansi/2.0.0: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + /has-flag/2.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + /has-symbol-support-x/1.4.1: + dev: true + resolution: + integrity: sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA== + /has-to-string-tag-x/1.4.1: + dependencies: + has-symbol-support-x: 1.4.1 + dev: true + resolution: + integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + /has-unicode/2.0.1: + optional: true + resolution: + integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + /has/1.0.1: + dependencies: + function-bind: 1.1.1 + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-hGFzP1OLCDfJNh45qauelwTcLyg= + /hawk/6.0.2: + dependencies: + boom: 4.3.1 + cryptiles: 3.1.2 + hoek: 4.2.0 + sntp: 2.1.0 + dev: true + engines: + node: '>=4.5.0' + resolution: + integrity: sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ== + /hoek/4.2.0: + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ== + /home-or-tmp/2.0.0: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-42w/LSyufXRqhX440Y1fMqeILbg= + /homedir-polyfill/1.0.1: + dependencies: + parse-passwd: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-TCu8inWJmP7r9e1oWA921GdotLw= + /hosted-git-info/2.5.0: + resolution: + integrity: sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg== + /http-cache-semantics/3.8.1: + dev: true + resolution: + integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + /http-signature/1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.1 + sshpk: 1.13.1 + dev: true + engines: + node: '>=0.8' + npm: '>=1.3.7' + resolution: + integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + /ieee754/1.1.8: + resolution: + integrity: sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q= + /iferr/0.1.5: + dev: true + resolution: + integrity: sha1-xg7taebY/bazEEofy8ocGS3FtQE= + /imurmurhash/0.1.4: + engines: + node: '>=0.8.19' + resolution: + integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= + /indent-string/2.1.0: + dependencies: + repeating: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + /indent-string/3.2.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + /independent/0.2.0: + dependencies: + '@zkochan/async-replace': 0.4.1 + babel-runtime: 6.26.0 + read-pkg-up: 1.0.1 + relative: 3.0.2 + resolve: 1.1.7 + dev: true + resolution: + integrity: sha1-fP+w1d94AFLyRFzaqPXj29sXyw8= + /individual/3.0.0: + dev: true + resolution: + integrity: sha1-58pPhfiVewGHNPKFdQ3CLsL5hi0= + /inflight/1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + resolution: + integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + /inherits/2.0.3: + resolution: + integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + /ini/1.3.5: + resolution: + integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + /into-stream/3.1.0: + dependencies: + from2: 2.3.0 + p-is-promise: 1.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + /invariant/2.2.2: + dependencies: + loose-envify: 1.3.1 + dev: true + resolution: + integrity: sha1-nh9WrArNtr8wMwbzOL47IErmA2A= + /is-alphabetical/1.0.1: + dev: true + resolution: + integrity: sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg= + /is-alphanumerical/1.0.1: + dependencies: + is-alphabetical: 1.0.1 + is-decimal: 1.0.1 + dev: true + resolution: + integrity: sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts= + /is-arrayish/0.2.1: + resolution: + integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + /is-builtin-module/1.0.0: + dependencies: + builtin-modules: 1.1.1 + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-VAVy0096wxGfj3bDDLwbHgN6/74= + /is-bzip2/1.0.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-XuWOqlounIDiFAe+3yOuWsCRs/w= + /is-callable/1.1.3: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-hut1OSgF3cM69xySoO7fdO52BLI= + /is-date-object/1.0.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + /is-decimal/1.0.1: + dev: true + resolution: + integrity: sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI= + /is-deflate/1.0.0: + resolution: + integrity: sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ= + /is-finite/1.0.2: + dependencies: + number-is-nan: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + /is-fullwidth-code-point/1.0.0: + dependencies: + number-is-nan: 1.0.1 + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + /is-function/1.0.1: + dev: true + resolution: + integrity: sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + /is-gzip/1.0.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= + /is-hexadecimal/1.0.1: + dev: true + resolution: + integrity: sha1-bghLvJIGH7sJcexYts5tQE4k2mk= + /is-npm/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + /is-obj/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + /is-object/1.0.1: + dev: true + resolution: + integrity: sha1-iVJojF7C/9awPsyF52ngKQMINHA= + /is-plain-obj/1.1.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + /is-promise/2.1.0: + dev: true + resolution: + integrity: sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + /is-redirect/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + /is-regex/1.0.4: + dependencies: + has: 1.0.1 + engines: + node: '>= 0.4' + resolution: + integrity: sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + /is-retry-allowed/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= + /is-stream/1.1.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + /is-subdir/1.0.2: + dependencies: + is-windows: 1.0.1 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-2H3vM92ez7TjW6T2e4G7AQVm/1/UA/qikNO0/aIi2SkouUU2wXW2CQ5Owiz8oaaFQpjNl74B5LIjTcM1htr2mQ== + /is-symbol/1.0.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI= + /is-typedarray/1.0.0: + dev: true + resolution: + integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + /is-url/1.2.2: + dev: true + resolution: + integrity: sha1-SYkFpZO/R8wtnn9zg3K792lsfyY= + /is-utf8/0.2.1: + dev: true + resolution: + integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + /is-windows/1.0.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk= + /isarray/1.0.0: + resolution: + integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /isexe/2.0.0: + resolution: + integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + /isobject/2.1.0: + dependencies: + isarray: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + /isstream/0.1.2: + dev: true + resolution: + integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + /isurl/1.0.0: + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.1 + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + /js-tokens/3.0.2: + dev: true + resolution: + integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= + /js-yaml/3.10.0: + dependencies: + argparse: 1.0.9 + esprima: 4.0.0 + resolution: + integrity: sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA== + /jsbn/0.1.1: + dev: true + optional: true + resolution: + integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + /jsesc/1.3.0: + dev: true + resolution: + integrity: sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + /json-buffer/3.0.0: + dev: true + resolution: + integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + /json-parse-better-errors/1.0.1: + resolution: + integrity: sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw== + /json-schema-traverse/0.3.1: + dev: true + resolution: + integrity: sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= + /json-schema/0.2.3: + dev: true + resolution: + integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + /json-stringify-safe/5.0.1: + dev: true + resolution: + integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + /json5/0.5.1: + dev: true + resolution: + integrity: sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + /jsondiffpatch/0.1.43: + bundledDependencies: [] + dependencies: + chalk: 0.5.1 + dev: true + resolution: + integrity: sha1-wFKImpnvfroZ0AlfkPclz6cKVhE= + /jsonfile/4.0.0: + dev: true + optionalDependencies: + graceful-fs: 4.1.11 + resolution: + integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + /jsprim/1.4.1: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.2.3 + verror: 1.10.0 + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + /keyv/3.0.0: + dependencies: + json-buffer: 3.0.0 + dev: true + resolution: + integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + /latest-version/2.0.0: + dependencies: + package-json: 2.4.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-VvjWE5YghHuAF/jx9NeOIRMkFos= + /load-json-file/1.1.0: + dependencies: + graceful-fs: 4.1.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + /load-json-file/4.0.0: + dependencies: + graceful-fs: 4.1.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + engines: + node: '>=4' + resolution: + integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + /locate-path/2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + /lodash.partition/4.6.0: + dev: true + resolution: + integrity: sha1-o45GtzRp4EILDaEhLmbUFL42S6Q= + /lodash/4.17.4: + resolution: + integrity: sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= + /longest-streak/1.0.0: + dev: true + resolution: + integrity: sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU= + /loose-envify/1.3.1: + dependencies: + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg= + /loud-rejection/1.6.0: + dependencies: + currently-unhandled: 0.4.1 + signal-exit: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + /lowercase-keys/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + /lru-cache/4.1.1: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + resolution: + integrity: sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew== + /magic-hook/1.0.0: + dependencies: + flatten: 1.0.2 + dev: true + resolution: + integrity: sha1-mu2GAadRK1axlUcNonSk7jqVCfA= + /make-dir/1.1.0: + dependencies: + pify: 3.0.0 + engines: + node: '>=4' + resolution: + integrity: sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA== + /make-error/1.3.0: + dev: true + resolution: + integrity: sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y= + /map-obj/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + /map-obj/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + /markdown-table/0.4.0: + dev: true + resolution: + integrity: sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE= + /markdownscript/1.3.0: + dependencies: + babel-runtime: 6.26.0 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-vf3/Csk0F4JLI2UjqaaZ5eDOfhE= + /mdast-util-to-string/1.0.4: + dev: true + resolution: + integrity: sha1-XEVch4yTVfDB5/PotxnPWDaRrPs= + /mem/3.0.0: + dependencies: + mimic-fn: 1.1.0 + p-is-promise: 1.1.0 + engines: + node: '>=4' + resolution: + integrity: sha1-hOWK1N+99dEFsmtlSKOYsrOqiiE= + /meow/3.7.0: + dependencies: + camelcase-keys: 2.1.0 + decamelize: 1.2.0 + loud-rejection: 1.6.0 + map-obj: 1.0.1 + minimist: 1.2.0 + normalize-package-data: 2.4.0 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + redent: 1.0.0 + trim-newlines: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + /meow/4.0.0: + dependencies: + camelcase-keys: 4.2.0 + decamelize-keys: 1.1.0 + loud-rejection: 1.6.0 + minimist: 1.2.0 + minimist-options: 3.0.2 + normalize-package-data: 2.4.0 + read-pkg-up: 3.0.0 + redent: 2.0.0 + trim-newlines: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw== + /mime-db/1.30.0: + dev: true + engines: + node: '>= 0.6' + resolution: + integrity: sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE= + /mime-types/2.1.17: + dependencies: + mime-db: 1.30.0 + dev: true + engines: + node: '>= 0.6' + resolution: + integrity: sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo= + /mimic-fn/1.1.0: + engines: + node: '>=4' + resolution: + integrity: sha1-5md4PZLonb00KBi1IwudYqZyrRg= + /mimic-response/1.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4= + /minimatch/3.0.4: + dependencies: + brace-expansion: 1.1.8 + resolution: + integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + /minimist-options/3.0.2: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + /minimist/0.0.8: + resolution: + integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + /minimist/1.2.0: + resolution: + integrity: sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + /mkdirp-promise/5.0.1: + dependencies: + mkdirp: 0.5.1 + engines: + node: '>=4' + resolution: + integrity: sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + /mkdirp/0.5.1: + dependencies: + minimist: 0.0.8 + resolution: + integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + /mos-core/1.0.2: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + ccount: 1.0.2 + collapse-white-space: 1.0.3 + core-js: 2.5.1 + file-position: 0.0.0 + is-promise: 2.1.0 + longest-streak: 1.0.0 + markdown-table: 0.4.0 + parse-entities: 1.1.1 + repeat-string: 1.6.1 + stringify-entities: 1.3.1 + trim: 0.0.1 + trim-trailing-lines: 1.1.0 + unist-util-remove-position: 1.1.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-N8JpfBzHhhgkFivQ+rrvJCX55H0= + /mos-hosted-git-info/1.0.0: + dev: true + resolution: + integrity: sha1-yj8BhwBEv14CT4WPEl3FmxrFe2k= + /mos-init/1.1.2: + dependencies: + arr-exclude: 1.0.0 + core-js: 2.5.1 + cross-spawn: 4.0.2 + mos-read-pkg-up: 1.0.0 + the-argv: 1.0.0 + write-pkg: 1.0.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-DuxN4kE4UjTkwKFUqZhc7NH8RIM= + /mos-normalize-package-data/1.0.0: + dependencies: + is-builtin-module: 1.0.0 + mos-hosted-git-info: 1.0.0 + semver: 5.4.1 + validate-npm-package-license: 3.0.1 + dev: true + resolution: + integrity: sha1-D9oITzRT8B7UtWVTQeYDPxeaeas= + /mos-plugin-dependencies/2.2.2: + dependencies: + babel-runtime: 6.26.0 + github-url-to-object: 2.2.6 + shieldman: 1.2.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-vm7fN15M9ch8QU0PI3ZmItGO0Xc= + /mos-plugin-ejs/1.1.2: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + github-url-to-object: 2.2.6 + mos-read-pkg-up: 1.0.0 + reserved-words: 0.1.2 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-1jZXxN9o0yMx1MdHweq/vBC1zBY= + /mos-plugin-example/1.1.2: + dependencies: + babel-runtime: 6.26.0 + codemo: 0.2.2 + independent: 0.2.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-YmGDjrRVXNmjj7zrkgEz55S4hHc= + /mos-plugin-installation/1.2.2: + dependencies: + babel-runtime: 6.26.0 + markdownscript: 1.3.0 + mdast-util-to-string: 1.0.4 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-r2FghByH+zmGnQEHwGWaKTayPH8= + /mos-plugin-license/1.2.2: + dependencies: + babel-runtime: 6.26.0 + file-exists: 1.0.0 + markdownscript: 1.3.0 + mdast-util-to-string: 1.0.4 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-BEV+GXukOHeOPbZ/rdi8yYR0fIY= + /mos-plugin-markdownscript/2.1.2: + dependencies: + babel-runtime: 6.26.0 + markdownscript: 1.3.0 + reserved-words: 0.1.2 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-Xh02JCByVXeNRbt+elDceSbDA7A= + /mos-plugin-package-json/2.1.2: + dependencies: + babel-runtime: 6.26.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-kQZoTdMWCYmBXd7Zi7qj6FedeaU= + /mos-plugin-readme/1.0.4: + dependencies: + babel-runtime: 6.26.0 + markdownscript: 1.3.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-fOweSUjB7B1EKRWAHR9m164khfM= + /mos-plugin-shields/2.2.3: + dependencies: + babel-runtime: 6.26.0 + shieldman: 1.2.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-DQv/6/yl78i3q5xGxKElinHN5r+7bE0EJhPd2+sCvuBgcs+DaI1hbWu/ePiuobH8f7yaFN8w7dei3ZftiwHV9w== + /mos-plugin-snippet/2.1.3: + dependencies: + babel-runtime: 6.26.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-AldDv4iW6GXi9/RIkoz0QHjUxZU= + /mos-plugin-toc/1.2.3: + dependencies: + babel-runtime: 6.26.0 + github-slugger: 1.2.0 + markdownscript: 1.3.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-gDYFslWs9iUlq1l88ErSa99d4ws= + /mos-processor/1.2.2: + dependencies: + babel-runtime: 6.26.0 + github-url-to-object: 2.2.6 + magic-hook: 1.0.0 + mos-core: 1.0.2 + mos-read-pkg-up: 1.0.0 + normalize-path: 2.1.1 + remi: 1.1.1 + remi-runner: 1.1.3 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-ayJKldvmppQ77O1etshS3Im6p9s= + /mos-read-pkg-up/1.0.0: + dependencies: + find-up: 1.1.2 + mos-read-pkg: 1.1.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8Ai4XlQve4/T/bnXTtyOf00YJ2k= + /mos-read-pkg/1.1.3: + dependencies: + load-json-file: 1.1.0 + mos-normalize-package-data: 1.0.0 + path-type: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-FM28aoCPD7wbY3hmob7XBaK9EcQ= + /mos-tap-diff/1.0.0: + dependencies: + babel-runtime: 6.26.0 + chalk: 1.1.3 + core-js: 2.5.1 + diff: 2.2.3 + duplexer: 0.1.1 + figures: 1.7.0 + jsondiffpatch: 0.1.43 + pretty-ms: 2.1.0 + tap-parser: 1.3.2 + through2: 2.0.3 + dev: true + resolution: + integrity: sha1-NDOB0f2e1RljsLMVNbf9i64E/3A= + /mos/2.0.0-alpha.3: + dependencies: + babel-runtime: 6.26.0 + chalk: 1.1.3 + glob: 7.0.6 + loud-rejection: 1.6.0 + magic-hook: 1.0.0 + meow: 3.7.0 + mos-init: 1.1.2 + mos-plugin-dependencies: 2.2.2 + mos-plugin-ejs: 1.1.2 + mos-plugin-example: 1.1.2 + mos-plugin-installation: 1.2.2 + mos-plugin-license: 1.2.2 + mos-plugin-markdownscript: 2.1.2 + mos-plugin-package-json: 2.1.2 + mos-plugin-shields: 2.2.3 + mos-plugin-snippet: 2.1.3 + mos-plugin-toc: 1.2.3 + mos-processor: 1.2.2 + mos-read-pkg-up: 1.0.0 + mos-tap-diff: 1.0.0 + normalize-newline: 2.0.0 + normalize-path: 2.0.1 + rcfile: 1.0.3 + relative: 3.0.2 + resolve-cwd: 1.0.0 + resolve-from: 2.0.0 + tape: 4.5.1 + update-notifier: 0.7.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-t+m8RNw22I6vHVgmBn54ySEeqVE= + /ms/2.0.0: + resolution: + integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /mz/2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + resolution: + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + /nan/2.8.0: + dev: false + optional: true + resolution: + integrity: sha1-7XFfP+neArV6XmJS2QqWZ14fCFo= + /ndjson/1.5.0: + dependencies: + json-stringify-safe: 5.0.1 + minimist: 1.2.0 + split2: 2.2.0 + through2: 2.0.3 + dev: true + resolution: + integrity: sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg= + /nerf-dart/1.0.0: + dev: true + resolution: + integrity: sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo= + /next-path/1.0.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha1-gixFgNer54PfGZZbeJYiyoAWA+Q= + /node-abi/2.1.2: + dependencies: + semver: 5.4.1 + dev: false + optional: true + resolution: + integrity: sha512-hmUtb8m75RSi7N+zZLYqe75XDvZB+6LyTBPkj2DConvNgQet2e3BIqEwe1LLvqMrfyjabuT5ZOrTioLCH1HTdA== + /node-status-codes/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8= + /noop-logger/0.1.1: + dev: false + optional: true + resolution: + integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + /normalize-newline/2.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-yIv2pUcUYqzrP2UXE7wjmw+stUk= + /normalize-package-data/2.4.0: + dependencies: + hosted-git-info: 2.5.0 + is-builtin-module: 1.0.0 + semver: 5.4.1 + validate-npm-package-license: 3.0.1 + resolution: + integrity: sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== + /normalize-path/2.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o= + /normalize-path/2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + /normalize-registry-url/1.0.0: + dev: false + resolution: + integrity: sha512-0v6T4851b72ykk5zEtFoN4QX/Fqyk7pouIj9xZyAvAe9jlDhAwT4z6FlwsoQCHjeuK2EGUoAwy/F4y4B1uZq9A== + /normalize-url/2.0.0: + dependencies: + prepend-http: 2.0.0 + query-string: 5.0.1 + sort-keys: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-4E2KNp86TK3IUKKFT4+w+KgSAyg= + /npm-package-arg/5.1.2: + dependencies: + hosted-git-info: 2.5.0 + osenv: 0.1.4 + semver: 5.4.1 + validate-npm-package-name: 3.0.0 + dev: true + resolution: + integrity: sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA== + /npm-registry-client/8.5.0: + dependencies: + concat-stream: 1.6.0 + graceful-fs: 4.1.11 + normalize-package-data: 2.4.0 + npm-package-arg: 5.1.2 + once: 1.4.0 + request: 2.83.0 + retry: 0.10.1 + semver: 5.4.1 + slide: 1.1.6 + ssri: 4.1.6 + dev: true + optionalDependencies: + npmlog: 4.1.2 + resolution: + integrity: sha512-Nkcw24bfECKFNt0FLDQ+PjVqSlKxMggcboXiUBIvjbCnA15xjRO4kCwRDluGNXZjHFLx/vPjN4+ESXyVjpXLbQ== + /npm-run-path/2.0.2: + dependencies: + path-key: 2.0.1 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + /npmlog/4.1.2: + dependencies: + are-we-there-yet: 1.1.4 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + optional: true + resolution: + integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + /number-is-nan/1.0.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + /oauth-sign/0.8.2: + dev: true + resolution: + integrity: sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= + /object-assign/4.1.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /object-inspect/1.1.0: + dev: true + resolution: + integrity: sha1-NLymRKgPlPi6QaD50JhOr2Os8U0= + /object-inspect/1.3.0: + dev: true + resolution: + integrity: sha512-OHHnLgLNXpM++GnJRyyhbr2bwl3pPVm4YvaraHrRvDt/N3r+s/gDVHciA7EJBTkijKXj61ssgSAikq1fb0IBRg== + /object-keys/1.0.11: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-xUYBd4rVYPEULODgG8yotW0TQm0= + /object.getownpropertydescriptors/2.0.3: + dependencies: + define-properties: 1.1.2 + es-abstract: 1.10.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + /once/1.4.0: + dependencies: + wrappy: 1.0.2 + resolution: + integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /os-homedir/1.0.2: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + /os-tmpdir/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + /osenv/0.1.4: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: true + resolution: + integrity: sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ= + /p-cancelable/0.3.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + /p-every/1.0.2: + dependencies: + p-map: 1.2.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-TgHYXCPaGe1xpK+6MZvbTZTIXgA= + /p-finally/1.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + /p-is-promise/1.1.0: + engines: + node: '>=4' + resolution: + integrity: sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + /p-limit/1.1.0: + engines: + node: '>=4' + resolution: + integrity: sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw= + /p-locate/2.0.0: + dependencies: + p-limit: 1.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + /p-map/1.2.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== + /p-queue/2.3.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-ZdVecbwVAPxBMSLamK5Ff/inwDg= + /p-timeout/2.0.1: + dependencies: + p-finally: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + /package-json/2.4.0: + dependencies: + got: 5.7.1 + registry-auth-token: 3.3.1 + registry-url: 3.1.0 + semver: 5.4.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs= + /package-preview/1.0.1: + dependencies: + '@pnpm/exec': 1.1.2 + '@types/fs-extra': 4.0.5 + '@types/load-json-file': 2.0.7 + '@types/mz': 0.0.32 + '@types/node': 8.0.54 + '@types/write-json-file': 2.2.1 + cross-spawn: 5.1.0 + find-down: 0.1.4 + fs-extra: 4.0.2 + graceful-fs: 4.1.11 + load-json-file: 4.0.0 + meow: 4.0.0 + mz: 2.7.0 + rimraf-then: 1.0.1 + symlink-dir: 1.1.0 + unpack-stream: 2.2.0 + write-json-file: 2.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-V85iWedhni2ptcNjdTryAd0PjqxiYi0BQgRZDJKVQBD9NuPF/shyOmn0A8OYIipIKMQ6QNKImeVd849KbH31hQ== + /package-store/0.9.0: + dependencies: + '@pnpm/types': 1.2.1 + '@types/load-json-file': 2.0.7 + '@types/node': 8.0.54 + '@types/ramda': 0.25.6 + '@types/retry': 0.10.2 + dint: 1.0.0 + drive-by-path: 1.0.0 + encode-registry: 1.1.0 + execa: 0.8.0 + load-json-file: 4.0.0 + mkdirp-promise: 5.0.1 + mz: 2.7.0 + normalize-path: 2.1.1 + normalize-registry-url: 1.0.0 + os-homedir: 1.0.2 + p-limit: 1.1.0 + p-queue: 2.3.0 + path-absolute: 1.0.0 + path-exists: 3.0.0 + ramda: 0.25.0 + read-package-json: 2.0.12 + rename-overwrite: 1.0.0 + retry: 0.10.1 + rimraf-then: 1.0.1 + symlink-dir: 1.1.0 + thenify: 3.3.0 + unpack-stream: 2.2.0 + write-json-file: 2.3.0 + dev: false + engines: + node: '>=4' + peerDependencies: + '@pnpm/logger': ^1.0.0 + resolution: + integrity: sha512-ywAzY4eF9DT7j8u1vE+0a8KWSz+xDaGQl+nCpc5UYzgq2Xqe3XPJepwL2tfiLujmlS6THe9FyOt0llPevoDNTw== + /pako/0.2.9: + resolution: + integrity: sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + /parse-entities/1.1.1: + dependencies: + character-entities: 1.2.1 + character-entities-legacy: 1.1.1 + character-reference-invalid: 1.1.1 + is-alphanumerical: 1.0.1 + is-decimal: 1.0.1 + is-hexadecimal: 1.0.1 + dev: true + resolution: + integrity: sha1-gRLYhHExnyerrk1klksSL+ThuJA= + /parse-json/2.2.0: + dependencies: + error-ex: 1.3.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /parse-json/4.0.0: + dependencies: + error-ex: 1.3.1 + json-parse-better-errors: 1.0.1 + engines: + node: '>=4' + resolution: + integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + /parse-ms/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0= + /parse-passwd/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + /path-absolute/1.0.0: + dependencies: + os-homedir: 1.0.2 + dev: false + resolution: + integrity: sha512-s0wa8oTU0s+jtq9C/xfNIRDp/8s6E2oeRvsATw1b6EZ1GNKxUCapwyBKdSzVm/2wkARh4KnyxTt3avOP4MwvnQ== + /path-exists/2.1.0: + dependencies: + pinkie-promise: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + /path-exists/3.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + /path-is-absolute/1.0.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + /path-key/2.0.1: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + /path-parse/1.0.5: + dev: true + resolution: + integrity: sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME= + /path-type/1.1.0: + dependencies: + graceful-fs: 4.1.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + /path-type/3.0.0: + dependencies: + pify: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + /peek-stream/1.1.2: + dependencies: + duplexify: 3.5.1 + through2: 2.0.3 + resolution: + integrity: sha1-l+t2NlvP2MieKH9VyLadTD6bzFI= + /performance-now/2.1.0: + dev: true + resolution: + integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + /pify/2.3.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + /pify/3.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + /pinkie-promise/2.0.1: + dependencies: + pinkie: 2.0.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o= + /pinkie/2.0.4: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + /plur/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY= + /prebuild-install/2.3.0: + dependencies: + expand-template: 1.1.0 + github-from-package: 0.0.0 + minimist: 1.2.0 + mkdirp: 0.5.1 + node-abi: 2.1.2 + noop-logger: 0.1.1 + npmlog: 4.1.2 + os-homedir: 1.0.2 + pump: 1.0.3 + rc: 1.2.2 + simple-get: 1.4.3 + tar-fs: 1.16.0 + tunnel-agent: 0.6.0 + xtend: 4.0.1 + dev: false + optional: true + resolution: + integrity: sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw== + /prepend-http/1.0.4: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + /prepend-http/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + /pretty-ms/2.1.0: + dependencies: + is-finite: 1.0.2 + parse-ms: 1.0.1 + plur: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw= + /private/0.1.8: + dev: true + engines: + node: '>= 0.6' + resolution: + integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + /process-nextick-args/1.0.7: + resolution: + integrity: sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + /promise.prototype.finally/1.0.1: + deprecated: Please upgrade to v2.0 or higher! + dev: true + resolution: + integrity: sha1-kRgvkckkhplXQPoF4NqUKsmGvvo= + /pseudomap/1.0.2: + resolution: + integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + /pump/1.0.3: + dependencies: + end-of-stream: 1.4.0 + once: 1.4.0 + resolution: + integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + /pumpify/1.3.5: + dependencies: + duplexify: 3.5.1 + inherits: 2.0.3 + pump: 1.0.3 + resolution: + integrity: sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs= + /punycode/1.4.1: + dev: true + resolution: + integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4= + /qs/6.5.1: + dev: true + engines: + node: '>=0.6' + resolution: + integrity: sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== + /query-string/5.0.1: + dependencies: + decode-uri-component: 0.2.0 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-aM+MkQClojlNiKkO09tiN2Fv8jM/L7GWIjG2liWeKljlOdOPNWr+bW3KQ+w5V/uKprpezC7fAsAMsJtJ+2rLKA== + /quick-lru/1.1.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + /ramda/0.24.1: + dev: false + resolution: + integrity: sha1-w7d1UZfzW43DUCIoJixMkd22uFc= + /ramda/0.25.0: + dev: false + resolution: + integrity: sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== + /rc/1.2.2: + dependencies: + deep-extend: 0.4.2 + ini: 1.3.5 + minimist: 1.2.0 + strip-json-comments: 2.0.1 + resolution: + integrity: sha1-2M6ctX6NZNnHut2YdsfDTL48cHc= + /rcfile/1.0.3: + dependencies: + debug: 2.6.9 + js-yaml: 3.10.0 + json5: 0.5.1 + object-assign: 4.1.1 + object-keys: 1.0.11 + path-exists: 2.1.0 + require-uncached: 1.0.3 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-wdgXXCiRh8Hci7OpY7bURAF7FXY= + /read-all-stream/3.1.0: + dependencies: + pinkie-promise: 2.0.1 + readable-stream: 2.3.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po= + /read-package-json/2.0.12: + dependencies: + glob: 7.1.2 + json-parse-better-errors: 1.0.1 + normalize-package-data: 2.4.0 + slash: 1.0.0 + dev: false + optionalDependencies: + graceful-fs: 4.1.11 + resolution: + integrity: sha512-m7/I0+tP6D34EVvSlzCtuVA4D/dHL6OpLcn2e4XVP5X57pCKGUy1JjRSBVKHWpB+vUU91sL85h84qX0MdXzBSw== + /read-pkg-up/1.0.1: + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + /read-pkg-up/3.0.0: + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + /read-pkg/1.1.0: + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.4.0 + path-type: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + /read-pkg/3.0.0: + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.4.0 + path-type: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + /readable-stream/2.3.3: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.3 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + safe-buffer: 5.1.1 + string_decoder: 1.0.3 + util-deprecate: 1.0.2 + resolution: + integrity: sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ== + /redent/1.0.0: + dependencies: + indent-string: 2.1.0 + strip-indent: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + /redent/2.0.0: + dependencies: + indent-string: 3.2.0 + strip-indent: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + /regenerator-runtime/0.11.0: + dev: true + resolution: + integrity: sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A== + /registry-auth-token/3.3.1: + dependencies: + rc: 1.2.2 + safe-buffer: 5.1.1 + dev: true + resolution: + integrity: sha1-+w0yie4Nmtosu1KvXf5mywcNMAY= + /registry-url/3.1.0: + dependencies: + rc: 1.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PU74cPc93h138M+aOBQyRE4XSUI= + /relative/3.0.2: + dependencies: + isobject: 2.1.0 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8= + /remi-runner/1.1.3: + dependencies: + babel-runtime: 6.26.0 + is-promise: 2.1.0 + dev: true + resolution: + integrity: sha1-Dh/tS9DxMlwnNeZTHRM5EnM/fmw= + /remi/1.1.1: + dependencies: + babel-runtime: 6.26.0 + magic-hook: 1.0.0 + dev: true + resolution: + integrity: sha1-Rxt5AU16SWvboB0BihJvj3ctiMY= + /remove-trailing-separator/1.1.0: + resolution: + integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + /rename-overwrite/1.0.0: + dependencies: + graceful-fs: 4.1.11 + rimraf: 2.6.2 + thenify: 3.3.0 + timeout-then: 1.1.0 + dev: false + resolution: + integrity: sha1-tFp0zrk9EHPjHFtwHEKN5XllI9g= + /repeat-string/1.6.1: + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc= + /repeating/2.0.1: + dependencies: + is-finite: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + /request/2.83.0: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.6.0 + caseless: 0.12.0 + combined-stream: 1.0.5 + extend: 3.0.1 + forever-agent: 0.6.1 + form-data: 2.3.1 + har-validator: 5.0.3 + hawk: 6.0.2 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.17 + oauth-sign: 0.8.2 + performance-now: 2.1.0 + qs: 6.5.1 + safe-buffer: 5.1.1 + stringstream: 0.0.5 + tough-cookie: 2.3.3 + tunnel-agent: 0.6.0 + uuid: 3.1.0 + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw== + /require-uncached/1.0.3: + dependencies: + caller-path: 0.1.0 + resolve-from: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + /reserved-words/0.1.2: + dev: true + resolution: + integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= + /resolve-cwd/1.0.0: + dependencies: + resolve-from: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Tq7qQe0EDRcCRX32SkKysH0kb58= + /resolve-from/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + /resolve-from/2.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + /resolve/1.1.7: + dev: true + resolution: + integrity: sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + /resolve/1.4.0: + dependencies: + path-parse: 1.0.5 + dev: true + resolution: + integrity: sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q== + /resolve/1.5.0: + dependencies: + path-parse: 1.0.5 + dev: true + resolution: + integrity: sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw== + /responselike/1.0.2: + dependencies: + lowercase-keys: 1.0.0 + dev: true + resolution: + integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + /resumer/0.0.0: + dependencies: + through: 2.3.8 + dev: true + resolution: + integrity: sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= + /retry/0.10.1: + resolution: + integrity: sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + /rimraf-then/1.0.1: + dependencies: + any-promise: 1.3.0 + rimraf: 2.6.2 + resolution: + integrity: sha1-vURYp561YbdUiq7ArDdT70Kf5ws= + /rimraf/2.6.2: + dependencies: + glob: 7.1.2 + resolution: + integrity: sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== + /rollup-plugin-babel/2.4.0: + dependencies: + babel-core: 6.26.0 + babel-plugin-transform-es2015-classes: 6.24.1 + object-assign: 4.1.1 + rollup-pluginutils: 1.5.2 + dev: true + resolution: + integrity: sha1-gqfhZPopFCq9B7UmucfALV6jO70= + /rollup-plugin-includepaths/0.1.2: + dev: true + resolution: + integrity: sha1-VuhDgwmmK5QYnkIIqA+a/BUf3WA= + /rollup-pluginutils/1.5.2: + dependencies: + estree-walker: 0.2.1 + minimatch: 3.0.4 + dev: true + resolution: + integrity: sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg= + /rollup/0.25.8: + dependencies: + chalk: 1.1.3 + minimist: 1.2.0 + source-map-support: 0.3.3 + dev: true + resolution: + integrity: sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA= + /safe-buffer/5.1.1: + resolution: + integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + /semver-diff/2.1.0: + dependencies: + semver: 5.4.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + /semver/5.4.1: + resolution: + integrity: sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== + /set-blocking/2.0.0: + optional: true + resolution: + integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + /shebang-command/1.2.0: + dependencies: + shebang-regex: 1.0.0 + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + /shebang-regex/1.0.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + /shieldman/1.2.0: + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-XaOXMpG1OSvEginLbXhD73M3+lc= + /signal-exit/3.0.2: + resolution: + integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + /simple-get/1.4.3: + dependencies: + once: 1.4.0 + unzip-response: 1.0.2 + xtend: 4.0.1 + dev: false + optional: true + resolution: + integrity: sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s= + /slash/1.0.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + /slide/1.1.6: + dev: true + resolution: + integrity: sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + /sntp/2.1.0: + dependencies: + hoek: 4.2.0 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg== + /sort-keys/1.1.2: + dependencies: + is-plain-obj: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + /sort-keys/2.0.0: + dependencies: + is-plain-obj: 1.1.0 + engines: + node: '>=4' + resolution: + integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + /source-map-support/0.3.3: + dependencies: + source-map: 0.1.32 + dev: true + resolution: + integrity: sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8= + /source-map-support/0.4.18: + dependencies: + source-map: 0.5.7 + dev: true + resolution: + integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + /source-map/0.1.32: + dependencies: + amdefine: 1.0.1 + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY= + /source-map/0.5.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-gmdLhacbC+dsPnQW0V6fUlLrO+A= + /source-map/0.5.7: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + /spdx-correct/1.0.2: + dependencies: + spdx-license-ids: 1.2.2 + resolution: + integrity: sha1-SzBz2TP/UfORLwOsVRlJikFQ20A= + /spdx-expression-parse/1.0.4: + resolution: + integrity: sha1-m98vIOH0DtRH++JzJmGR/O1RYmw= + /spdx-license-ids/1.2.2: + resolution: + integrity: sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc= + /split2/2.2.0: + dependencies: + through2: 2.0.3 + dev: true + resolution: + integrity: sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + /sprintf-js/1.0.3: + resolution: + integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /sshpk/1.13.1: + dependencies: + asn1: 0.2.3 + assert-plus: 1.0.0 + dashdash: 1.14.1 + getpass: 0.1.7 + dev: true + engines: + node: '>=0.10.0' + optionalDependencies: + bcrypt-pbkdf: 1.0.1 + ecc-jsbn: 0.1.1 + jsbn: 0.1.1 + tweetnacl: 0.14.5 + resolution: + integrity: sha1-US322mKHFEMW3EwY/hzx2UBzm+M= + /ssri/4.1.6: + dependencies: + safe-buffer: 5.1.1 + resolution: + integrity: sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA== + /ssri/5.0.0: + dependencies: + safe-buffer: 5.1.1 + resolution: + integrity: sha512-728D4yoQcQm1ooZvSbywLkV1RjfITZXh0oWrhM/lnsx3nAHx7LsRGJWB/YyvoceAYRq98xqbstiN4JBv1/wNHg== + /stream-shift/1.0.0: + resolution: + integrity: sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + /strict-uri-encode/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + /string-width/1.0.2: + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + /string.prototype.trim/1.1.2: + dependencies: + define-properties: 1.1.2 + es-abstract: 1.10.0 + function-bind: 1.1.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= + /string_decoder/1.0.3: + dependencies: + safe-buffer: 5.1.1 + resolution: + integrity: sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ== + /stringify-entities/1.3.1: + dependencies: + character-entities-html4: 1.1.1 + character-entities-legacy: 1.1.1 + is-alphanumerical: 1.0.1 + is-hexadecimal: 1.0.1 + dev: true + resolution: + integrity: sha1-sVDsLXKsTBtfMktR+2soyc3/BYw= + /stringstream/0.0.5: + dev: true + resolution: + integrity: sha1-TkhM1N5aC7vuGORjB3EKioFiGHg= + /strip-ansi/0.3.0: + dependencies: + ansi-regex: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= + /strip-ansi/3.0.1: + dependencies: + ansi-regex: 2.1.1 + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + /strip-bom/2.0.0: + dependencies: + is-utf8: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + /strip-bom/3.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-eof/1.0.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + /strip-indent/1.0.1: + dependencies: + get-stdin: 4.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + /strip-indent/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + /strip-json-comments/2.0.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= + /supports-color/0.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= + /supports-color/2.0.0: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + /supports-color/4.5.0: + dependencies: + has-flag: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + /symlink-dir/1.1.0: + dependencies: + '@types/mz': 0.0.31 + '@types/node': 8.0.54 + graceful-fs: 4.1.11 + is-windows: 1.0.1 + mkdirp-promise: 5.0.1 + mz: 2.7.0 + engines: + node: '>=4' + resolution: + integrity: sha512-HrQ50UhvdoWwwC62I82l0U2NTRx9dTQWs5/ay0bRwBqkJQ0f3ruVhQUyLH7hs6NekRsvQgK76fZyUFK7PZsm8A== + /tap-parser/1.3.2: + dependencies: + events-to-array: 1.1.2 + inherits: 2.0.3 + js-yaml: 3.10.0 + dev: true + optionalDependencies: + readable-stream: 2.3.3 + resolution: + integrity: sha1-EgxQiciMPIp5PvKIhn3jIeGPjCI= + /tape/4.5.1: + dependencies: + deep-equal: 1.0.1 + defined: 1.0.0 + function-bind: 1.1.1 + glob: 7.0.6 + has: 1.0.1 + inherits: 2.0.3 + minimist: 1.2.0 + object-inspect: 1.1.0 + resolve: 1.1.7 + resumer: 0.0.0 + string.prototype.trim: 1.1.2 + through: 2.3.8 + dev: true + resolution: + integrity: sha1-K7PqGb3J9SJSF7P5fL95hsxMbow= + /tape/4.8.0: + dependencies: + deep-equal: 1.0.1 + defined: 1.0.0 + for-each: 0.3.2 + function-bind: 1.1.1 + glob: 7.1.2 + has: 1.0.1 + inherits: 2.0.3 + minimist: 1.2.0 + object-inspect: 1.3.0 + resolve: 1.4.0 + resumer: 0.0.0 + string.prototype.trim: 1.1.2 + through: 2.3.8 + dev: true + resolution: + integrity: sha512-TWILfEnvO7I8mFe35d98F6T5fbLaEtbFTG/lxWvid8qDfFTxt19EBijWmB4j3+Hoh5TfHE2faWs73ua+EphuBA== + /tar-fs/1.16.0: + dependencies: + chownr: 1.0.1 + mkdirp: 0.5.1 + pump: 1.0.3 + tar-stream: 1.5.5 + resolution: + integrity: sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg== + /tar-stream/1.5.5: + dependencies: + bl: 1.2.1 + end-of-stream: 1.4.0 + readable-stream: 2.3.3 + xtend: 4.0.1 + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg== + /the-argv/1.0.0: + dev: true + resolution: + integrity: sha1-AIRwUAVzDdhNt1UlPJMa45jblSI= + /thenify-all/1.6.0: + dependencies: + thenify: 3.3.0 + engines: + node: '>=0.8' + resolution: + integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + /thenify/3.3.0: + dependencies: + any-promise: 1.3.0 + resolution: + integrity: sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + /through/2.3.8: + resolution: + integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + /through2/2.0.3: + dependencies: + readable-stream: 2.3.3 + xtend: 4.0.1 + resolution: + integrity: sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= + /timed-out/3.1.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc= + /timed-out/4.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + /timeout-then/1.1.0: + dependencies: + any-promise: 1.3.0 + dev: false + resolution: + integrity: sha1-AUWwYHAVnBfiFG/SkrAaG9geX7w= + /to-fast-properties/1.0.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + /tough-cookie/2.3.3: + dependencies: + punycode: 1.4.1 + dev: true + engines: + node: '>=0.8' + resolution: + integrity: sha1-C2GKVWW23qkL80JdBNVe3EdadWE= + /trim-newlines/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WIeWa7WCpFA6QetST301ARgVphM= + /trim-newlines/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + /trim-right/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + /trim-trailing-lines/1.1.0: + dev: true + resolution: + integrity: sha1-eu+7eAjfnWafbaLkOMrIxGradoQ= + /trim/0.0.1: + dev: true + resolution: + integrity: sha1-WFhUf2spB1fulczMZm+1AITEYN0= + /ts-node/3.3.0: + dependencies: + arrify: 1.0.1 + chalk: 2.3.0 + diff: 3.4.0 + make-error: 1.3.0 + minimist: 1.2.0 + mkdirp: 0.5.1 + source-map-support: 0.4.18 + tsconfig: 6.0.0 + v8flags: 3.0.1 + yn: 2.0.0 + dev: true + engines: + node: '>=4.2.0' + resolution: + integrity: sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k= + /tsconfig/6.0.0: + dependencies: + strip-bom: 3.0.0 + strip-json-comments: 2.0.1 + dev: true + resolution: + integrity: sha1-aw6DdgA9evGGT434+J3QBZ/80DI= + /tslib/1.8.0: + dev: true + resolution: + integrity: sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg== + /tslint/5.8.0: + dependencies: + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 2.3.0 + commander: 2.12.2 + diff: 3.4.0 + glob: 7.1.2 + minimatch: 3.0.4 + resolve: 1.5.0 + semver: 5.4.1 + tslib: 1.8.0 + tsutils: 2.13.0 + dev: true + engines: + node: '>=4.1.2' + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev' + resolution: + integrity: sha1-H0mtWy53x2w69N3K5VKuTjYS6xM= + /tsutils/2.13.0: + dependencies: + tslib: 1.8.0 + dev: true + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >= 2.4.0-dev || >= 2.5.0-dev || >= 2.6.0-dev || >= 2.7.0-dev || >= 2.8.0-dev' + resolution: + integrity: sha512-FuWzNJbMsp3gcZMbI3b5DomhW4Ia41vMxjN63nKWI0t7f+I3UmHfRl0TrXJTwI2LUduDG+eR1Mksp3pvtlyCFQ== + /tunnel-agent/0.6.0: + dependencies: + safe-buffer: 5.1.1 + resolution: + integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + /tweetnacl/0.14.5: + dev: true + optional: true + resolution: + integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + /typedarray/0.0.6: + dev: true + resolution: + integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + /typescript/2.6.2: + dev: true + engines: + node: '>=4.2.0' + resolution: + integrity: sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q= + /unbzip2-stream/1.2.5: + dependencies: + buffer: 3.6.0 + through: 2.3.8 + resolution: + integrity: sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og== + /unist-util-is/2.1.1: + dev: true + resolution: + integrity: sha1-DDEmKeP5YMZukx6BLT2A53AQlHs= + /unist-util-remove-position/1.1.1: + dependencies: + unist-util-visit: 1.2.0 + dev: true + resolution: + integrity: sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs= + /unist-util-visit/1.2.0: + dependencies: + unist-util-is: 2.1.1 + dev: true + resolution: + integrity: sha512-lI+jyPlDztHZ2CJhUchcRMQ7MNc0yASgYFxwRTxs0EZ+9HbYFBLVGDJ2FchTBy+pra0O1LVEn0Wkgf19mDVDzw== + /universalify/0.1.1: + dev: true + resolution: + integrity: sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc= + /unpack-stream/2.2.0: + dependencies: + '@types/node': 8.0.54 + decompress-maybe: 1.0.0 + ssri: 5.0.0 + tar-fs: 1.16.0 + engines: + node: '>=4' + resolution: + integrity: sha512-UU/97pTZMXBpWGRJLmmDq2mN3v3dBbFgrUNH26UpfvyVwbO1i0ZZnzQvm7YEoTcMJpFpuX9LWGYNu2rmh6K4Jg== + /unzip-response/1.0.2: + engines: + node: '>=0.10' + resolution: + integrity: sha1-uYTwh3/AqJwsdzzB73tbIytbBv4= + /update-notifier/0.7.0: + dependencies: + ansi-align: 1.1.0 + boxen: 0.5.1 + chalk: 1.1.3 + configstore: 2.1.0 + is-npm: 1.0.0 + latest-version: 2.0.0 + semver-diff: 2.1.0 + xdg-basedir: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-FDxFMzg9CJCO9wVGIGOV/htauwY= + /url-parse-lax/1.0.0: + dependencies: + prepend-http: 1.0.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + /url-parse-lax/3.0.0: + dependencies: + prepend-http: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + /url-to-options/1.0.1: + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + /util-deprecate/1.0.2: + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /util.promisify/1.0.0: + dependencies: + define-properties: 1.1.2 + object.getownpropertydescriptors: 2.0.3 + dev: false + resolution: + integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + /uuid/2.0.3: + dev: true + resolution: + integrity: sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= + /uuid/3.1.0: + dev: true + resolution: + integrity: sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g== + /v8flags/3.0.1: + dependencies: + homedir-polyfill: 1.0.1 + dev: true + engines: + node: '>= 0.10.0' + resolution: + integrity: sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s= + /validate-npm-package-license/3.0.1: + dependencies: + spdx-correct: 1.0.2 + spdx-expression-parse: 1.0.4 + resolution: + integrity: sha1-KAS6vnEq0zeUWaz74kdGqywwP7w= + /validate-npm-package-name/3.0.0: + dependencies: + builtins: 1.0.3 + dev: true + resolution: + integrity: sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + /verror/1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.0 + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + /which/1.3.0: + dependencies: + isexe: 2.0.0 + resolution: + integrity: sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg== + /wide-align/1.1.2: + dependencies: + string-width: 1.0.2 + optional: true + resolution: + integrity: sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w== + /widest-line/1.0.0: + dependencies: + string-width: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw= + /wrappy/1.0.2: + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /write-file-atomic/1.3.4: + dependencies: + graceful-fs: 4.1.11 + imurmurhash: 0.1.4 + slide: 1.1.6 + dev: true + resolution: + integrity: sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= + /write-file-atomic/2.3.0: + dependencies: + graceful-fs: 4.1.11 + imurmurhash: 0.1.4 + signal-exit: 3.0.2 + resolution: + integrity: sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== + /write-json-file/1.2.0: + dependencies: + graceful-fs: 4.1.11 + mkdirp: 0.5.1 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + sort-keys: 1.1.2 + write-file-atomic: 1.3.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-LV3+lqvDyIkFfJOXGqQAXvtUgTQ= + /write-json-file/2.3.0: + dependencies: + detect-indent: 5.0.0 + graceful-fs: 4.1.11 + make-dir: 1.1.0 + pify: 3.0.0 + sort-keys: 2.0.0 + write-file-atomic: 2.3.0 + engines: + node: '>=4' + resolution: + integrity: sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + /write-pkg/1.0.0: + dependencies: + write-json-file: 1.2.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-rriqnU14jh2JPfsIVJaLVDqRn1c= + /xdg-basedir/2.0.0: + dependencies: + os-homedir: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I= + /xtend/4.0.1: + engines: + node: '>=0.4' + resolution: + integrity: sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + /yallist/2.1.2: + resolution: + integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + /yn/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= +registry: 'https://registry.npmjs.org/' +shrinkwrapMinorVersion: 4 +shrinkwrapVersion: 3 +specifiers: + '@pnpm/logger': ^1.0.0 + '@pnpm/npm-resolver': ^0.3.0 + '@pnpm/tarball-fetcher': ^0.2.0 + '@pnpm/types': ^1.2.1 + '@types/load-json-file': ^2.0.7 + '@types/mz': ^0.0.32 + '@types/p-queue': ^1.1.0 + '@types/tape': ^4.2.31 + '@types/write-json-file': ^2.2.1 + load-json-file: ^4.0.0 + mkdirp-promise: ^5.0.1 + mos: ^2.0.0-alpha.3 + mos-plugin-readme: ^1.0.4 + mz: ^2.7.0 + p-limit: ^1.1.0 + p-queue: ^2.3.0 + package-preview: ^1.0.1 + package-store: ^0.9.0 + path-exists: ^3.0.0 + read-package-json: ^2.0.12 + rename-overwrite: ^1.0.0 + rimraf: ^2.6.2 + rimraf-then: ^1.0.1 + symlink-dir: ^1.1.0 + tape: ^4.8.0 + ts-node: ^3.3.0 + tslint: ^5.8.0 + typescript: ^2.6.1 + unpack-stream: ^2.2.0 + util.promisify: ^1.0.0 + write-json-file: ^2.3.0 diff --git a/src/fetchTypes.ts b/src/fetchTypes.ts new file mode 100644 index 0000000000..7b0627c886 --- /dev/null +++ b/src/fetchTypes.ts @@ -0,0 +1,16 @@ +import * as unpackStream from 'unpack-stream' +import {Resolution} from './resolveTypes' + +export interface FetchOptions { + cachedTarballLocation: string, + pkgId: string, + prefix: string, + onStart?: (totalSize: number | null, attempt: number) => void, + onProgress?: (downloaded: number) => void, +} + +export type FetchFunction = ( + resolution: Resolution, + target: string, + opts: FetchOptions, +) => Promise diff --git a/src/fs/readPkg.ts b/src/fs/readPkg.ts new file mode 100644 index 0000000000..f8610ad5b9 --- /dev/null +++ b/src/fs/readPkg.ts @@ -0,0 +1,14 @@ +import {PackageJson} from '@pnpm/types' +import path = require('path') +import readPackageJsonCB = require('read-package-json') +import promisify = require('util.promisify') + +const readPackageJson = promisify(readPackageJsonCB) + +export default function readPkg (pkgPath: string): Promise { + return readPackageJson(pkgPath) +} + +export function fromDir (pkgPath: string): Promise { + return readPkg(path.join(pkgPath, 'package.json')) +} diff --git a/src/fs/safeReadPkg.ts b/src/fs/safeReadPkg.ts new file mode 100644 index 0000000000..fc2bbf6ba5 --- /dev/null +++ b/src/fs/safeReadPkg.ts @@ -0,0 +1,16 @@ +import {PackageJson} from '@pnpm/types' +import path = require('path') +import readPkg from './readPkg' + +export default async function safeReadPkg (pkgPath: string): Promise { + try { + return await readPkg(pkgPath) + } catch (err) { + if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err + return null + } +} + +export function fromDir (pkgPath: string): Promise { + return safeReadPkg(path.join(pkgPath, 'package.json')) +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000000..5c7536f0ea --- /dev/null +++ b/src/index.ts @@ -0,0 +1,8 @@ +import packageRequester from './packageRequester' + +export default packageRequester + +export { + ProgressLog, + Log, +} from './loggers' diff --git a/src/loggers.ts b/src/loggers.ts new file mode 100644 index 0000000000..3a000e028f --- /dev/null +++ b/src/loggers.ts @@ -0,0 +1,43 @@ +import baseLogger, { + LogBase, + Logger, +} from '@pnpm/logger' + +export const progressLogger = baseLogger('progress') as Logger + +export interface LoggedPkg { + rawSpec: string, + name?: string, + dependentId?: string, +} + +// Not all of this message types are used in this project +// some of them can be removed +export type ProgressMessage = { + pkgId: string, + status: 'fetched' | 'installed' | 'dependencies_installed' | 'found_in_store' | 'resolving_content', +} | { + pkgId: string, + pkg: LoggedPkg, + status: 'resolved', +} | { + pkg: LoggedPkg, + status: 'resolving' | 'error' | 'installing', +} | { + pkgId: string, + status: 'fetching_started', + size: number | null, + attempt: number, +} | { + pkgId: string, + status: 'fetching_progress', + downloaded: number, +} | { + status: 'downloaded_manifest', + pkgId: string, + pkgVersion: string, +} + +export type ProgressLog = {name: 'pnpm:progress'} & LogBase & ProgressMessage + +export type Log = ProgressLog diff --git a/src/memoize.ts b/src/memoize.ts new file mode 100644 index 0000000000..2964c7ad39 --- /dev/null +++ b/src/memoize.ts @@ -0,0 +1,21 @@ +import pLimit = require('p-limit') + +interface CachedPromises { + [name: string]: Promise +} + +export type MemoizedFunc = (key: string, fn: () => Promise) => Promise + +/** + * Save promises for later + */ +export default function memoize (concurrency?: number): MemoizedFunc { + const locks: CachedPromises = {} + const limit = concurrency && pLimit(concurrency) + + return (key: string, fn: () => Promise): Promise => { + if (locks[key]) return locks[key] + locks[key] = limit && limit(fn) || fn() + return locks[key] + } +} diff --git a/src/packageRequester.ts b/src/packageRequester.ts new file mode 100644 index 0000000000..efcf79bd67 --- /dev/null +++ b/src/packageRequester.ts @@ -0,0 +1,372 @@ +import logger from '@pnpm/logger' +import {PackageJson} from '@pnpm/types' +import {Stats} from 'fs' +import loadJsonFile = require('load-json-file') +import mkdirp = require('mkdirp-promise') +import fs = require('mz/fs') +import PQueue = require('p-queue') +import { + pkgIdToFilename, + pkgIsUntouched, + Store, +} from 'package-store' +import path = require('path') +import exists = require('path-exists') +import renameOverwrite = require('rename-overwrite') +import rimraf = require('rimraf-then') +import symlinkDir = require('symlink-dir') +import * as unpackStream from 'unpack-stream' +import writeJsonFile = require('write-json-file') +import { + FetchFunction, + FetchOptions, +} from './fetchTypes' +import {fromDir as readPkgFromDir} from './fs/readPkg' +import {fromDir as safeReadPkgFromDir} from './fs/safeReadPkg' +import {LoggedPkg, progressLogger} from './loggers' +import memoize, {MemoizedFunc} from './memoize' +import { + DirectoryResolution, + Resolution, + ResolveFunction, + ResolveOptions, + ResolveResult, + WantedDependency, +} from './resolveTypes' + +export interface PackageContentInfo { + isNew: boolean, + index: {}, +} + +export type FetchedPackage = { + isLocal: true, + resolution: DirectoryResolution, + pkg: PackageJson, + id: string, + normalizedPref?: string, +} | { + isLocal: false, + fetchingPkg: Promise, + fetchingFiles: Promise, + calculatingIntegrity: Promise, + path: string, + id: string, + resolution: Resolution, + // This is useful for recommending updates. + // If latest does not equal the version of the + // resolved package, it is out-of-date. + latest?: string, + normalizedPref?: string, +} + +export default function ( + resolve: ResolveFunction, + fetchers: {[type: string]: FetchFunction}, + opts: { + networkConcurrency: number, + }, +) { + opts = opts || {} + + const networkConcurrency = opts.networkConcurrency || 16 + const requestsQueue = new PQueue({ + concurrency: networkConcurrency, + }) + requestsQueue['counter'] = 0 // tslint:disable-line + requestsQueue['concurrency'] = networkConcurrency // tslint:disable-line + + const fetch = fetcher.bind(null, fetchers) + + return resolveAndFetch.bind(null, + requestsQueue, + resolve, + fetch, + ) +} + +async function resolveAndFetch ( + requestsQueue: {add: (fn: () => Promise, opts: {priority: number}) => Promise}, + resolve: ResolveFunction, + fetch: FetchFunction, + wantedDependency: { + alias?: string, + pref: string, + }, + options: { + downloadPriority: number, + fetchingLocker: { + [pkgId: string]: { + calculatingIntegrity: Promise, + fetchingFiles: Promise, + fetchingPkg: Promise, + }, + }, + loggedPkg: LoggedPkg, + offline: boolean, + pkgId?: string, + prefix: string, + registry: string, + shrinkwrapResolution?: Resolution, + storeIndex: Store, + storePath: string, + update?: boolean, + verifyStoreIntegrity: boolean, + }, +): Promise { + try { + let latest: string | undefined + let pkg: PackageJson | undefined + let normalizedPref: string | undefined + let resolution = options.shrinkwrapResolution + let pkgId = options.pkgId + if (!resolution || options.update) { + const resolveResult = await requestsQueue.add(() => resolve(wantedDependency, { + prefix: options.prefix, + registry: options.registry, + }), {priority: options.downloadPriority}) + // keep the shrinkwrap resolution when possible + // to keep the original shasum + if (pkgId !== resolveResult.id || !resolution) { + resolution = resolveResult.resolution + } + pkgId = resolveResult.id + pkg = resolveResult.package + latest = resolveResult.latest + normalizedPref = resolveResult.normalizedPref + } + + const id = pkgId as string + + progressLogger.debug({status: 'resolved', pkgId: id, pkg: options.loggedPkg}) + + if (resolution.type === 'directory') { + if (!pkg) { + throw new Error(`Couldn't read package.json of local dependency ${wantedDependency.alias ? wantedDependency.alias + '@' : ''}${wantedDependency.pref}`) + } + return { + id, + isLocal: true, + normalizedPref, + pkg, + resolution: resolution as DirectoryResolution, + } + } + + const targetRelative = pkgIdToFilename(id) + const target = path.join(options.storePath, targetRelative) + + if (!options.fetchingLocker[id]) { + options.fetchingLocker[id] = fetchToStore({ + fetch, + pkg, + pkgId: id, + prefix: options.prefix, + requestsQueue, + resolution: resolution as Resolution, + storeIndex: options.storeIndex, + storePath: options.storePath, + target, + targetRelative, + verifyStoreIntegrity: options.verifyStoreIntegrity, + }) + } + + return { + calculatingIntegrity: options.fetchingLocker[id].calculatingIntegrity, + fetchingFiles: options.fetchingLocker[id].fetchingFiles, + fetchingPkg: options.fetchingLocker[id].fetchingPkg, + id, + isLocal: false, + latest, + normalizedPref, + path: target, + resolution, + } + } catch (err) { + progressLogger.debug({status: 'error', pkg: options.loggedPkg}) + throw err + } +} + +function fetchToStore (opts: { + fetch: FetchFunction, + requestsQueue: {add: (fn: () => Promise, opts: {priority: number}) => Promise}, + pkg?: PackageJson, + pkgId: string, + prefix: string, + resolution: Resolution, + target: string, + targetRelative: string, + storePath: string, + storeIndex: Store, + verifyStoreIntegrity: boolean, +}): { + fetchingFiles: Promise, + fetchingPkg: Promise, + calculatingIntegrity: Promise, +} { + const fetchingPkg = differed() + const fetchingFiles = differed() + const calculatingIntegrity = differed() + + doFetchToStore() + + return { + calculatingIntegrity: calculatingIntegrity.promise, + fetchingFiles: fetchingFiles.promise, + fetchingPkg: opts.pkg && Promise.resolve(opts.pkg) || fetchingPkg.promise, + } + + async function doFetchToStore () { + try { + progressLogger.debug({ + pkgId: opts.pkgId, + status: 'resolving_content', + }) + + const target = opts.target + const linkToUnpacked = path.join(target, 'package') + + // We can safely assume that if there is no data about the package in `store.json` then + // it is not in the store yet. + // In case there is record about the package in `store.json`, we check it in the file system just in case + const targetExists = opts.storeIndex[opts.targetRelative] && await exists(path.join(linkToUnpacked, 'package.json')) + + if (targetExists) { + // if target exists and it wasn't modified, then no need to refetch it + const satisfiedIntegrity = opts.verifyStoreIntegrity + ? await pkgIsUntouched(linkToUnpacked) + : await loadJsonFile(path.join(path.dirname(linkToUnpacked), 'integrity.json')) + if (satisfiedIntegrity) { + progressLogger.debug({ + pkgId: opts.pkgId, + status: 'found_in_store', + }) + fetchingFiles.resolve({ + index: satisfiedIntegrity, + isNew: false, + }) + if (!opts.pkg) { + readPkgFromDir(linkToUnpacked) + .then(fetchingPkg.resolve) + .catch(fetchingPkg.reject) + } + calculatingIntegrity.resolve(undefined) + return + } + logger.warn(`Refetching ${target} to store, as it was modified`) + } + + // We fetch into targetStage directory first and then fs.rename() it to the + // target directory. + + const targetStage = `${target}_stage` + + await rimraf(targetStage) + + let packageIndex: {} = {} + await Promise.all([ + (async () => { + // Tarballs are requested first because they are bigger than metadata files. + // However, when one line is left available, allow it to be picked up by a metadata request. + // This is done in order to avoid situations when tarballs are downloaded in chunks + // As much tarballs should be downloaded simultaneously as possible. + const priority = (++opts.requestsQueue['counter'] % opts.requestsQueue['concurrency'] === 0 ? -1 : 1) * 1000 // tslint:disable-line + + packageIndex = await opts.requestsQueue.add(() => opts.fetch(opts.resolution, targetStage, { + cachedTarballLocation: path.join(opts.storePath, opts.pkgId, 'packed.tgz'), + onProgress: (downloaded) => { + progressLogger.debug({status: 'fetching_progress', pkgId: opts.pkgId, downloaded}) + }, + onStart: (size, attempt) => { + progressLogger.debug({status: 'fetching_started', pkgId: opts.pkgId, size, attempt}) + }, + pkgId: opts.pkgId, + prefix: opts.prefix, + }), {priority}) + })(), + // removing only the folder with the unpacked files + // not touching tarball and integrity.json + targetExists && await rimraf(path.join(target, 'node_modules')), + ]) + progressLogger.debug({ + pkgId: opts.pkgId, + status: 'fetched', + }) + + // fetchingFilse shouldn't care about when this is saved at all + if (!targetExists) { + (async () => { + const integrity = opts.verifyStoreIntegrity + ? await (packageIndex as unpackStream.Index).integrityPromise + : await (packageIndex as unpackStream.Index).headers + writeJsonFile(path.join(target, 'integrity.json'), integrity, {indent: null}) + calculatingIntegrity.resolve(undefined) + })() + } else { + calculatingIntegrity.resolve(undefined) + } + + let pkg: PackageJson + if (opts.pkg) { + pkg = opts.pkg + } else { + pkg = await readPkgFromDir(targetStage) + fetchingPkg.resolve(pkg) + } + + const unpacked = path.join(target, 'node_modules', pkg.name) + await mkdirp(path.dirname(unpacked)) + + // rename(oldPath, newPath) is an atomic operation, so we do it at the + // end + await renameOverwrite(targetStage, unpacked) + await symlinkDir(unpacked, linkToUnpacked) + + fetchingFiles.resolve({ + index: (packageIndex as unpackStream.Index).headers, + isNew: true, + }) + } catch (err) { + fetchingFiles.reject(err) + if (!opts.pkg) { + fetchingPkg.reject(err) + } + } + } +} + +// tslint:disable-next-line +function noop () {} + +function differed (): { + promise: Promise, + resolve: (v: T) => void, + reject: (err: Error) => void, +} { + let pResolve: (v: T) => void = noop + let pReject: (err: Error) => void = noop + const promise = new Promise((resolve, reject) => { + pResolve = resolve + pReject = reject + }) + return { + promise, + reject: pReject, + resolve: pResolve, + } +} + +async function fetcher ( + fetcherByHostingType: {[hostingType: string]: FetchFunction}, + resolution: Resolution, + target: string, + opts: FetchOptions, +): Promise { + const fetch = fetcherByHostingType[resolution.type || 'tarball'] + if (!fetch) { + throw new Error(`Fetching for dependency type "${resolution.type}" is not supported`) + } + return await fetch(resolution, target, opts) +} diff --git a/src/resolveTypes.ts b/src/resolveTypes.ts new file mode 100644 index 0000000000..4319b49385 --- /dev/null +++ b/src/resolveTypes.ts @@ -0,0 +1,47 @@ +import {PackageJson} from '@pnpm/types' + +/** + * tarball hosted remotely + */ +export interface TarballResolution { + type?: undefined, + tarball: string, + integrity?: string, + // needed in some cases to get the auth token + // sometimes the tarball URL is under a different path + // and the auth token is specified for the registry only + registry?: string, +} + +/** + * directory on a file system + */ +export interface DirectoryResolution { + type: 'directory', + directory: string, +} + +export type Resolution = + TarballResolution | + DirectoryResolution | + ({ type: string } & object) + +export interface ResolveResult { + id: string, + resolution: Resolution, + package?: PackageJson, + latest?: string, + normalizedPref?: string, // is null for npm-hosted dependencies +} + +export interface ResolveOptions { + registry: string, + prefix: string, +} + +export interface WantedDependency { + alias?: string, + pref: string, +} + +export type ResolveFunction = (wantedDependency: WantedDependency, opts: ResolveOptions) => Promise diff --git a/test/index.ts b/test/index.ts new file mode 100644 index 0000000000..4efe6a00ba --- /dev/null +++ b/test/index.ts @@ -0,0 +1,18 @@ +import test = require('tape') +import createPackageRequester from '@pnpm/package-requester' +import createResolver from '@pnpm/npm-resolver' +import createFetcher from '@pnpm/tarball-fetcher' + +const resolve = createResolver({rawNpmConfig: {}}) +const fetch = createFetcher({ + alwaysAuth: false, + registry: 'https://registry.npmjs.org/', + strictSsl: false, + rawNpmConfig: {}, +}) + +test('createPackageRequester', t => { + const requestPackage = createPackageRequester(resolve, fetch, {networkConcurrency: 1}) + t.equal(typeof requestPackage, 'function') + t.end() +}) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000..e1c5b75154 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "removeComments": false, + "preserveConstEnums": true, + "sourceMap": true, + "declaration": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "suppressImplicitAnyIndexErrors": true, + "allowSyntheticDefaultImports": true, + "strictNullChecks": true, + "target": "es6", + "outDir": "lib", + "module": "commonjs", + "moduleResolution": "node" + }, + "include": [ + "src/**/*.ts", + "typings/**/*.d.ts" + ], + "atom": { + "rewriteTsconfig": true + } +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000000..f19503c495 --- /dev/null +++ b/tslint.json @@ -0,0 +1,44 @@ +{ + "extends": "tslint:recommended", + "rules": { + "curly": false, + "eofline": false, + "align": [true, "parameters"], + "class-name": true, + "indent": [true, "spaces"], + "max-line-length": false, + "no-any": true, + "no-consecutive-blank-lines": true, + "no-trailing-whitespace": true, + "no-duplicate-variable": true, + "no-var-keyword": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-requires": true, + "no-require-imports": false, + "space-before-function-paren": [true, "always"], + "interface-name": [true, "never-prefix"], + "no-console": false, + "one-line": [true, + "check-else", + "check-whitespace", + "check-open-brace"], + "quotemark": [true, + "single", + "avoid-escape"], + "semicolon": false, + "typedef-whitespace": [true, { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }], + "whitespace": [true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type"] + } +} diff --git a/typings/index.d.ts b/typings/index.d.ts new file mode 100644 index 0000000000..f56c7f2f12 --- /dev/null +++ b/typings/index.d.ts @@ -0,0 +1,34 @@ +declare module 'p-limit' { + const anything: any; + export = anything; +} + +declare module 'util.promisify' { + const anything: any; + export = anything; +} + +declare module 'read-package-json' { + const anything: any; + export = anything; +} + +declare module 'mkdirp-promise' { + const anything: any; + export = anything; +} + +declare module 'rimraf-then' { + const anything: any; + export = anything; +} + +declare module 'path-exists' { + const anything: any; + export = anything; +} + +declare module 'rename-overwrite' { + const anything: any; + export = anything; +}