diff --git a/packages/lifecycle/.editorconfig b/packages/lifecycle/.editorconfig new file mode 100644 index 0000000000..270dd84bb6 --- /dev/null +++ b/packages/lifecycle/.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/packages/lifecycle/.gitattributes b/packages/lifecycle/.gitattributes new file mode 100644 index 0000000000..0e02124405 --- /dev/null +++ b/packages/lifecycle/.gitattributes @@ -0,0 +1,3 @@ +* text eol=lf + +*.tgz binary diff --git a/packages/lifecycle/.gitignore b/packages/lifecycle/.gitignore new file mode 100644 index 0000000000..5d40d8fb04 --- /dev/null +++ b/packages/lifecycle/.gitignore @@ -0,0 +1,20 @@ +# Logs +logs +*.log +npm-debug.log* + +# Dependency directory +node_modules + +# Coverage directory used by tools like istanbul +coverage + +.tmp +_docpress + +lib + +# Visual Studio Code configs +.vscode/ + +.store diff --git a/packages/lifecycle/.npmrc b/packages/lifecycle/.npmrc new file mode 100644 index 0000000000..092d229bb2 --- /dev/null +++ b/packages/lifecycle/.npmrc @@ -0,0 +1,2 @@ +tag-version-prefix = +message = chore(release): %s diff --git a/packages/lifecycle/.travis.yml b/packages/lifecycle/.travis.yml new file mode 100644 index 0000000000..0715b57272 --- /dev/null +++ b/packages/lifecycle/.travis.yml @@ -0,0 +1,14 @@ +language: node_js +node_js: + - 6 + - 8 + - 10 +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/packages/lifecycle/LICENSE b/packages/lifecycle/LICENSE new file mode 100644 index 0000000000..0ef8e28215 --- /dev/null +++ b/packages/lifecycle/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 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/packages/lifecycle/README.md b/packages/lifecycle/README.md new file mode 100644 index 0000000000..41834a8483 --- /dev/null +++ b/packages/lifecycle/README.md @@ -0,0 +1,50 @@ +# @pnpm/lifecycle + +> Package lifecycle hook runner + + +[![npm version](https://img.shields.io/npm/v/@pnpm/lifecycle.svg)](https://www.npmjs.com/package/@pnpm/lifecycle) [![Build Status](https://img.shields.io/travis/pnpm/lifecycle/master.svg)](https://travis-ci.org/pnpm/lifecycle) + + +## Installation + +```sh +npm i -S @pnpm/logger @pnpm/lifecycle +``` + +## Usage + +```ts +import runLifecycleHook, {runPostinstallHooks} from '@pnpm/lifecycle' + +const targetPkgRoot = path.resolve('node_modules/target-pkg') +const pkg = require(path.join(targetPkgRoot, 'package.json')) + +// Run a specific hook +await runLifecycleHook('preinstall', pkg, { + pkgId: 'target-pkg/1.0.0', + pkgRoot: targetPkgRoot, + rawNpmConfig: {}, + rootNodeModulesDir: path.resolve('node_modules'), + unsafePerm: true, +}) + +// Run all install hooks +await runPostinstallHooks({ + pkgId: 'target-pkg/1.0.0', + pkgRoot: targetPkgRoot, + rawNpmConfig: {}, + rootNodeModulesDir: path.resolve('node_modules'), + unsafePerm: true, +}) +``` + +## API + +### `runLifecycleHook(stage, packageJson, opts): Promise` + +### `runPostinstallHooks(opts): Promise` + +## License + +[MIT](./LICENSE) © [Zoltan Kochan](https://www.kochan.io/) diff --git a/packages/lifecycle/package.json b/packages/lifecycle/package.json new file mode 100644 index 0000000000..f0cbfc7b4c --- /dev/null +++ b/packages/lifecycle/package.json @@ -0,0 +1,70 @@ +{ + "name": "@pnpm/lifecycle", + "version": "3.0.2", + "description": "Package lifecycle hook runner", + "main": "lib/index.js", + "typings": "lib/index.d.ts", + "files": [ + "lib" + ], + "engines": { + "node": ">=6" + }, + "scripts": { + "lint": "tslint -c tslint.json --project .", + "tsc": "rimraf lib && tsc", + "test": "npm run lint && preview && ts-node test --type-check && mos t", + "md": "mos", + "prepublishOnly": "npm run tsc", + "fix": "tslint -c tslint.json --project . --fix" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/pnpm/lifecycle.git" + }, + "keywords": [ + "pnpm", + "lifecycle", + "scripts" + ], + "author": "Zoltan Kochan (https://www.kochan.io/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/pnpm/lifecycle/issues" + }, + "homepage": "https://github.com/pnpm/lifecycle#readme", + "peerDependencies": { + "@pnpm/logger": "^1.0.0 || ^2.0.0" + }, + "dependencies": { + "@pnpm/read-package-json": "^1.0.0", + "@pnpm/types": "^2.0.0", + "@zkochan/npm-lifecycle": "2.1.1", + "path-exists": "^3.0.0" + }, + "devDependencies": { + "@pnpm/logger": "2.1.0", + "@types/load-json-file": "2.0.7", + "@types/node": "10.12.3", + "@types/rimraf": "2.0.2", + "@types/tape": "4.2.32", + "json-append": "1.1.1", + "load-json-file": "5.1.0", + "mos": "2.0.0-alpha.3", + "mos-plugin-readme": "1.0.4", + "package-preview": "2.0.0", + "rimraf": "2.6.2", + "tape": "4.9.1", + "ts-node": "7.0.1", + "tslint": "5.11.0", + "typescript": "3.2.1" + }, + "mos": { + "plugins": [ + "readme" + ], + "installation": { + "useShortAlias": true + } + } +} diff --git a/packages/lifecycle/renovate.json b/packages/lifecycle/renovate.json new file mode 100644 index 0000000000..cb258f7d7b --- /dev/null +++ b/packages/lifecycle/renovate.json @@ -0,0 +1,6 @@ +{ + "extends": [ + "config:base" + ], + "rangeStrategy": "auto" +} diff --git a/packages/lifecycle/shrinkwrap.yaml b/packages/lifecycle/shrinkwrap.yaml new file mode 100644 index 0000000000..ce77a915d1 --- /dev/null +++ b/packages/lifecycle/shrinkwrap.yaml @@ -0,0 +1,3596 @@ +dependencies: + '@pnpm/read-package-json': 1.0.1 + '@pnpm/types': 2.0.0 + '@zkochan/npm-lifecycle': 2.1.1 + path-exists: 3.0.0 +devDependencies: + '@pnpm/logger': 2.1.0 + '@types/load-json-file': 2.0.7 + '@types/node': 10.12.3 + '@types/rimraf': 2.0.2 + '@types/tape': 4.2.32 + json-append: 1.1.1 + load-json-file: 5.1.0 + mos: 2.0.0-alpha.3 + mos-plugin-readme: 1.0.4 + package-preview: 2.0.0 + rimraf: 2.6.2 + tape: 4.9.1 + ts-node: 7.0.1 + tslint: 5.11.0 + typescript: 3.2.1 +packages: + /@pnpm/exec/1.1.5: + dependencies: + '@pnpm/self-installer': 2.0.7 + '@types/got': 8.3.5 + '@types/node': 10.12.3 + command-exists: 1.2.8 + cross-spawn: 6.0.5 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-1zLmh6tRftQXfZ1IFHq1IexP0KaJhN6pSCA/IzK+Vixn4hPvxwcIbGjKW0KH9hsHSmrPpmSit2EWj7jGNgfa6Q== + /@pnpm/logger/2.1.0: + dependencies: + '@types/node': 10.12.3 + bole: 3.0.2 + ndjson: 1.5.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-BL4Laf6b50LjdcpOUWPukx2XJtb3mo2OpJjHdRNSDJu9YS2tRBeP14H2bNqGjCjfeml8z3KufI3Km6VQemVXNw== + /@pnpm/read-package-json/1.0.1: + dependencies: + '@pnpm/types': 2.0.0 + read-package-json: 2.0.13 + util.promisify: 1.0.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-2ZUZ9v6V88ZMliGCV+qP2/mhUCj5IWjfkocS594RbMQ50ThbfWsagU1GRIE1EsXvQI4MBCjiRivXDw9fCHKe1Q== + /@pnpm/self-installer/2.0.7: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-FGKMmjqP0S+E1n9M6BcsVVkOVB0NfhBzXGZK6bLmerRT3EOvQ09KY++hBXoq0+/TqCvbsth6ER+EO0i46uJttQ== + /@pnpm/types/2.0.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-jBLjrZjafStD0DFjnsiiGVXclkLieRPjfg6fyHI1rGvvACMPOW/sNweFBCxKI7B2o7U5mdjVX3OgKPnhXx70zw== + /@types/events/1.2.0: + dev: true + resolution: + integrity: sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA== + /@types/fs-extra/5.0.4: + dependencies: + '@types/node': 10.12.3 + dev: true + resolution: + integrity: sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g== + /@types/glob/7.1.1: + dependencies: + '@types/events': 1.2.0 + '@types/minimatch': 3.0.3 + '@types/node': 10.12.3 + dev: true + resolution: + integrity: sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + /@types/got/8.3.5: + dependencies: + '@types/node': 10.12.3 + dev: true + resolution: + integrity: sha512-AaXSrIF99SjjtPVNmCmYb388HML+PKEJb/xmj4SbL2ZO0hHuETZZzyDIKfOqaEoAHZEuX4sC+FRFrHYJoIby6A== + /@types/load-json-file/2.0.7: + dev: true + resolution: + integrity: sha512-NrH6jPlV77QCVPhAHofWeiOr77TgpKt82c2RVxSBChWBJqyY/u4ngl3CA4mcsAg/w7rNLrkR7dkObMV0ihLLXw== + /@types/minimatch/3.0.3: + dev: true + resolution: + integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + /@types/mz/0.0.32: + dependencies: + '@types/node': 10.12.3 + dev: true + resolution: + integrity: sha512-cy3yebKhrHuOcrJGkfwNHhpTXQLgmXSv1BX+4p32j+VUQ6aP2eJ5cL7OvGcAQx75fCTFaAIIAKewvqL+iwSd4g== + /@types/node/10.12.3: + dev: true + resolution: + integrity: sha512-sfGmOtSMSbQ/AKG8V9xD1gmjquC9awIIZ/Kj309pHb2n3bcRAcGMQv5nJ6gCXZVsneGE4+ve8DXKRCsrg3TFzg== + /@types/rimraf/2.0.2: + dependencies: + '@types/glob': 7.1.1 + '@types/node': 10.12.3 + dev: true + resolution: + integrity: sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ== + /@types/tape/4.2.32: + dependencies: + '@types/node': 10.12.3 + dev: true + resolution: + integrity: sha512-xil0KO5wkPoixdBWGIGolPv9dekf6dVkjjJLAFYchfKcd4DICou67rgGCIO7wAh3i5Ff/6j9IDgZz+GU9cMaqQ== + /@zkochan/async-replace/0.4.1: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + dev: true + resolution: + integrity: sha1-TPO97s9S8vasjzKw2IpoLrSEiXk= + /@zkochan/npm-lifecycle/2.1.1: + dependencies: + byline: 5.0.0 + graceful-fs: 4.1.15 + node-gyp: 3.8.0 + resolve-from: 4.0.0 + slide: 1.1.6 + uid-number: 0.0.6 + umask: 1.1.0 + which: 1.3.1 + dev: false + resolution: + integrity: sha512-Ngx98s/fDZU6CZwDor2WHcZ8HrGkrO9kt6xluqCtz1+7viWfJc1/XcFg3t7ifs+EBEqwwdEDgwRdniP9wOQS3w== + /abbrev/1.1.1: + dev: false + resolution: + integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + /acorn/3.0.4: + dev: true + engines: + node: '>=0.4.0' + hasBin: true + resolution: + integrity: sha1-BPJElQ/bj6+FUHrUgcLt7nrs3uw= + /ajv/6.6.1: + dependencies: + fast-deep-equal: 2.0.1 + fast-json-stable-stringify: 2.0.0 + json-schema-traverse: 0.4.1 + uri-js: 4.2.2 + dev: false + resolution: + integrity: sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww== + /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-regex/3.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + /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.1: + dependencies: + color-convert: 1.9.3 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + /any-promise/1.3.0: + dev: true + resolution: + integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= + /aproba/1.2.0: + dev: false + resolution: + integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + /are-we-there-yet/1.1.5: + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.6 + dev: false + resolution: + integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + /argparse/1.0.10: + dependencies: + sprintf-js: 1.0.3 + dev: true + resolution: + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + /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.4: + dependencies: + safer-buffer: 2.1.2 + dev: false + resolution: + integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + /assert-plus/1.0.0: + dev: false + engines: + node: '>=0.8' + resolution: + integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + /asynckit/0.4.0: + dev: false + resolution: + integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /aws-sign2/0.7.0: + dev: false + resolution: + integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + /aws4/1.8.0: + dev: false + resolution: + integrity: sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + /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.3: + dependencies: + babel-code-frame: 6.26.0 + babel-generator: 6.26.1 + 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.6.0 + debug: 2.6.9 + json5: 0.5.1 + lodash: 4.17.11 + 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: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + /babel-generator/6.26.1: + 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.11 + source-map: 0.5.7 + trim-right: 1.0.1 + dev: true + resolution: + integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + /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.11 + 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.3 + babel-runtime: 6.26.0 + core-js: 2.5.7 + home-or-tmp: 2.0.0 + lodash: 4.17.11 + 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.7 + regenerator-runtime: 0.11.1 + 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.11 + 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.4 + lodash: 4.17.11 + 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.11 + to-fast-properties: 1.0.3 + dev: true + resolution: + integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + /babylon/6.18.0: + dev: true + hasBin: true + resolution: + integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + /balanced-match/1.0.0: + resolution: + integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /base64-js/0.0.8: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= + /bcrypt-pbkdf/1.0.2: + dependencies: + tweetnacl: 0.14.5 + dev: false + resolution: + integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + /bl/1.2.2: + dependencies: + readable-stream: 2.3.6 + safe-buffer: 5.1.2 + dev: true + resolution: + integrity: sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + /block-stream/0.0.9: + dependencies: + inherits: 2.0.3 + dev: false + engines: + node: 0.4 || >=0.5.8 + resolution: + integrity: sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + /bole/3.0.2: + dependencies: + fast-safe-stringify: 1.1.13 + individual: 3.0.0 + dev: true + resolution: + integrity: sha1-vIpIPKlASdqbg3wa0Rzf6+5uBRQ= + /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.11: + dependencies: + balanced-match: 1.0.0 + concat-map: 0.0.1 + resolution: + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + /browserify-zlib/0.1.4: + dependencies: + pako: 0.2.9 + dev: true + resolution: + integrity: sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + /buffer-alloc-unsafe/1.1.0: + dev: true + resolution: + integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + /buffer-alloc/1.2.0: + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: true + resolution: + integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + /buffer-fill/1.0.0: + dev: true + resolution: + integrity: sha1-+PeLdniYiO858gXNY39o5wISKyw= + /buffer-from/1.1.1: + dev: true + resolution: + integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + /buffer/3.6.0: + dependencies: + base64-js: 0.0.8 + ieee754: 1.1.12 + isarray: 1.0.0 + dev: true + resolution: + integrity: sha1-pyyTb3e5a/UvX357RnGAYoVR3vs= + /builtin-modules/1.1.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + /byline/5.0.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= + /bzip2-maybe/1.0.0: + dependencies: + is-bzip2: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.5.1 + through2: 2.0.5 + unbzip2-stream: 1.3.1 + dev: true + hasBin: true + resolution: + integrity: sha1-ya73AIprlDy+mcxhcSXrS9R4KWs= + /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.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + /caseless/0.12.0: + dev: false + resolution: + integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + /ccount/1.0.3: + dev: true + resolution: + integrity: sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== + /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.4.1: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== + /character-entities-html4/1.1.2: + dev: true + resolution: + integrity: sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw== + /character-entities-legacy/1.1.2: + dev: true + resolution: + integrity: sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA== + /character-entities/1.2.2: + dev: true + resolution: + integrity: sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ== + /character-reference-invalid/1.1.2: + dev: true + resolution: + integrity: sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ== + /chownr/1.1.1: + dev: true + resolution: + integrity: sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + /cli-boxes/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM= + /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.4: + dev: true + resolution: + integrity: sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw== + /color-convert/1.9.3: + dependencies: + color-name: 1.1.3 + dev: true + resolution: + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + /color-name/1.1.3: + dev: true + resolution: + integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + /combined-stream/1.0.7: + dependencies: + delayed-stream: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== + /command-exists/1.2.8: + dev: true + resolution: + integrity: sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== + /commander/2.19.0: + dev: true + resolution: + integrity: sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + /concat-map/0.0.1: + resolution: + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + /concat-stream/1.6.2: + dependencies: + buffer-from: 1.1.1 + inherits: 2.0.3 + readable-stream: 2.3.6 + typedarray: 0.0.6 + dev: true + engines: + '0': node >= 0.8 + resolution: + integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + /configstore/2.1.0: + dependencies: + dot-prop: 3.0.0 + graceful-fs: 4.1.15 + mkdirp: 0.5.1 + object-assign: 4.1.1 + os-tmpdir: 1.0.2 + osenv: 0.1.5 + 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: + dev: false + resolution: + integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + /convert-source-map/1.6.0: + dependencies: + safe-buffer: 5.1.2 + dev: true + resolution: + integrity: sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + /core-js/2.5.7: + dev: true + resolution: + integrity: sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== + /core-util-is/1.0.2: + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /create-error-class/3.0.2: + dependencies: + capture-stack-trace: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + /cross-spawn-async/2.2.2: + dependencies: + lru-cache: 4.1.5 + which: 1.3.1 + 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.5 + which: 1.3.1 + dev: true + resolution: + integrity: sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + /cross-spawn/6.0.5: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.6.0 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + engines: + node: '>=4.8' + resolution: + integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + /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: false + 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== + /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= + /decompress-maybe/1.0.0: + dependencies: + bzip2-maybe: 1.0.0 + gunzip-maybe: 1.4.1 + pumpify: 1.5.1 + dev: true + resolution: + integrity: sha1-rf54xmzAaeZOgkvRQFuF515tHLs= + /deep-equal/1.0.1: + dev: true + resolution: + integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + /deep-extend/0.6.0: + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + /define-properties/1.1.3: + dependencies: + object-keys: 1.0.12 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + /defined/1.0.0: + dev: true + resolution: + integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + /delayed-stream/1.0.0: + dev: false + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /delegates/1.0.0: + dev: false + 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: + dev: true + 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.5.0: + dev: true + engines: + node: '>=0.3.1' + resolution: + integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + /dot-prop/3.0.0: + dependencies: + is-obj: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-G3CK8JSknJoOfbyteQq6U52sEXc= + /duplexer/0.1.1: + dev: true + resolution: + integrity: sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + /duplexer2/0.1.4: + dependencies: + readable-stream: 2.3.6 + dev: true + resolution: + integrity: sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + /duplexify/3.6.1: + dependencies: + end-of-stream: 1.4.1 + inherits: 2.0.3 + readable-stream: 2.3.6 + stream-shift: 1.0.0 + dev: true + resolution: + integrity: sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== + /ecc-jsbn/0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: false + resolution: + integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + /emoji-regex/6.1.1: + dev: true + resolution: + integrity: sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + /end-of-stream/1.4.1: + dependencies: + once: 1.4.0 + dev: true + resolution: + integrity: sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + /error-ex/1.3.2: + dependencies: + is-arrayish: 0.2.1 + dev: true + resolution: + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + /es-abstract/1.12.0: + dependencies: + es-to-primitive: 1.2.0 + function-bind: 1.1.1 + has: 1.0.3 + is-callable: 1.1.4 + is-regex: 1.0.4 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== + /es-to-primitive/1.2.0: + dependencies: + is-callable: 1.1.4 + is-date-object: 1.0.1 + is-symbol: 1.0.2 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + /escape-string-regexp/1.0.5: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + /esprima/4.0.1: + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + /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= + /extend/3.0.2: + dev: false + resolution: + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + /extsprintf/1.3.0: + dev: false + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + /extsprintf/1.4.0: + dev: false + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + /fast-deep-equal/2.0.1: + dev: false + resolution: + integrity: sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + /fast-json-stable-stringify/2.0.0: + dev: false + resolution: + integrity: sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + /fast-safe-stringify/1.1.13: + dev: true + resolution: + integrity: sha1-oB6c2cnkkXFcmKdaQtXwu9EH/3Y= + /figgy-pudding/3.5.1: + dev: true + resolution: + integrity: sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + /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.3: + dependencies: + is-callable: 1.1.4 + dev: true + resolution: + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + /forever-agent/0.6.1: + dev: false + resolution: + integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + /form-data/2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.7 + mime-types: 2.1.21 + dev: false + engines: + node: '>= 0.12' + resolution: + integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + /fs-constants/1.0.0: + dev: true + resolution: + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + /fs-extra/7.0.1: + dependencies: + graceful-fs: 4.1.15 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + engines: + node: '>=6 <7 || >=8' + resolution: + integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + /fs.realpath/1.0.0: + resolution: + integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + /fstream/1.0.11: + dependencies: + graceful-fs: 4.1.15 + inherits: 2.0.3 + mkdirp: 0.5.1 + rimraf: 2.6.2 + dev: false + engines: + node: '>=0.6' + resolution: + integrity: sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= + /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.3 + dev: false + resolution: + integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + /get-stdin/4.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + /getpass/0.1.7: + dependencies: + assert-plus: 1.0.0 + dev: false + resolution: + integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + /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.4 + 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.3: + 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-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + /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.1 + 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.6 + 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= + /graceful-fs/4.1.15: + resolution: + integrity: sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + /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.3 + pumpify: 1.5.1 + through2: 2.0.5 + dev: true + hasBin: true + resolution: + integrity: sha512-qtutIKMthNJJgeHQS7kZ9FqDq59/Wn0G2HYCRNjpup7yKfVI6/eqwpmroyZGFoCYaG+sW6psNVb4zoLADHpp2g== + /har-schema/2.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + /har-validator/5.1.3: + dependencies: + ajv: 6.6.1 + har-schema: 2.0.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + /has-ansi/0.1.0: + dependencies: + ansi-regex: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + hasBin: true + 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/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + /has-symbols/1.0.0: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + /has-unicode/2.0.1: + dev: false + resolution: + integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + /has/1.0.3: + dependencies: + function-bind: 1.1.1 + engines: + node: '>= 0.4.0' + resolution: + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + /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= + /hosted-git-info/2.7.1: + resolution: + integrity: sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== + /http-signature/1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.1 + sshpk: 1.15.2 + dev: false + engines: + node: '>=0.8' + npm: '>=1.3.7' + resolution: + integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + /ieee754/1.1.12: + dev: true + resolution: + integrity: sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== + /imurmurhash/0.1.4: + dev: true + 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: + dev: true + resolution: + integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + /invariant/2.2.4: + dependencies: + loose-envify: 1.4.0 + dev: true + resolution: + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + /is-alphabetical/1.0.2: + dev: true + resolution: + integrity: sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg== + /is-alphanumerical/1.0.2: + dependencies: + is-alphabetical: 1.0.2 + is-decimal: 1.0.2 + dev: true + resolution: + integrity: sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg== + /is-arrayish/0.2.1: + dev: true + 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: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-XuWOqlounIDiFAe+3yOuWsCRs/w= + /is-callable/1.1.4: + engines: + node: '>= 0.4' + resolution: + integrity: sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + /is-date-object/1.0.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + /is-decimal/1.0.2: + dev: true + resolution: + integrity: sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg== + /is-deflate/1.0.0: + dev: true + 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-fullwidth-code-point/2.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + /is-gzip/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= + /is-hexadecimal/1.0.2: + dev: true + resolution: + integrity: sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A== + /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-plain-obj/1.1.0: + dev: true + 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.3 + 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: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + /is-symbol/1.0.2: + dependencies: + has-symbols: 1.0.0 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + /is-typedarray/1.0.0: + dev: false + resolution: + integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + /is-url/1.2.4: + dev: true + resolution: + integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + /is-utf8/0.2.1: + dev: true + resolution: + integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + /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: false + resolution: + integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + /js-tokens/3.0.2: + dev: true + resolution: + integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= + /js-tokens/4.0.0: + dev: true + resolution: + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + /js-yaml/3.12.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + hasBin: true + resolution: + integrity: sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== + /jsbn/0.1.1: + dev: false + resolution: + integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + /jsesc/1.3.0: + dev: true + hasBin: true + resolution: + integrity: sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + /json-append/1.1.1: + dependencies: + concat-stream: 1.6.2 + dev: true + hasBin: true + resolution: + integrity: sha1-Pnu6YqBHvzHJjexDGaU5uyhrsQQ= + /json-parse-better-errors/1.0.2: + resolution: + integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + /json-schema-traverse/0.4.1: + dev: false + resolution: + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + /json-schema/0.2.3: + dev: false + resolution: + integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + /json-stringify-safe/5.0.1: + resolution: + integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + /json5/0.5.1: + dev: true + hasBin: true + resolution: + integrity: sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + /jsondiffpatch/0.1.43: + bundledDependencies: [] + dependencies: + chalk: 0.5.1 + dev: true + hasBin: true + resolution: + integrity: sha1-wFKImpnvfroZ0AlfkPclz6cKVhE= + /jsonfile/4.0.0: + dev: true + optionalDependencies: + graceful-fs: 4.1.15 + 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: false + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + /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.15 + 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.15 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + /load-json-file/5.1.0: + dependencies: + graceful-fs: 4.1.15 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-+ggO8OpTviHQ/zoyFxLJglsu1CylXUt1vpGa+mIUeesCkTC0G+JO6rdTS1/WcGBZDC7Nejo1aZ9MxbqflpmO6Q== + /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.11: + dev: true + resolution: + integrity: sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + /longest-streak/1.0.0: + dev: true + resolution: + integrity: sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU= + /loose-envify/1.4.0: + dependencies: + js-tokens: 4.0.0 + dev: true + hasBin: true + resolution: + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + /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.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + /lru-cache/4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + resolution: + integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + /magic-hook/1.0.0: + dependencies: + flatten: 1.0.2 + dev: true + resolution: + integrity: sha1-mu2GAadRK1axlUcNonSk7jqVCfA= + /make-dir/1.3.0: + dependencies: + pify: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + /make-error/1.3.5: + dev: true + resolution: + integrity: sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + /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.5: + dev: true + resolution: + integrity: sha512-2qLt/DEOo5F6nc2VFScQiHPzQ0XXcabquRJxKMhKte8nt42o08HUxNDPk7tt0YPxnWjAT11I1SYi0X0iPnfI5A== + /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/5.0.0: + dependencies: + camelcase-keys: 4.2.0 + decamelize-keys: 1.1.0 + loud-rejection: 1.6.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 + yargs-parser: 10.1.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + /mime-db/1.37.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== + /mime-types/2.1.21: + dependencies: + mime-db: 1.37.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== + /minimatch/3.0.4: + dependencies: + brace-expansion: 1.1.11 + 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: + dev: true + resolution: + integrity: sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + /mkdirp/0.5.1: + dependencies: + minimist: 0.0.8 + hasBin: true + 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.3 + collapse-white-space: 1.0.4 + core-js: 2.5.7 + file-position: 0.0.0 + is-promise: 2.1.0 + longest-streak: 1.0.0 + markdown-table: 0.4.0 + parse-entities: 1.2.0 + repeat-string: 1.6.1 + stringify-entities: 1.3.2 + trim: 0.0.1 + trim-trailing-lines: 1.1.1 + unist-util-remove-position: 1.1.2 + 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.7 + 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.6.0 + validate-npm-package-license: 3.0.4 + 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.5 + 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.5 + 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.7 + 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.5 + dev: true + hasBin: 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' + hasBin: true + resolution: + integrity: sha1-t+m8RNw22I6vHVgmBn54ySEeqVE= + /ms/2.0.0: + dev: true + resolution: + integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /mz/2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + resolution: + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + /ndjson/1.5.0: + dependencies: + json-stringify-safe: 5.0.1 + minimist: 1.2.0 + split2: 2.2.0 + through2: 2.0.5 + dev: true + hasBin: true + resolution: + integrity: sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg= + /next-path/1.0.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha1-gixFgNer54PfGZZbeJYiyoAWA+Q= + /nice-try/1.0.5: + dev: true + resolution: + integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + /node-gyp/3.8.0: + dependencies: + fstream: 1.0.11 + glob: 7.1.3 + graceful-fs: 4.1.15 + mkdirp: 0.5.1 + nopt: 3.0.6 + npmlog: 4.1.2 + osenv: 0.1.5 + request: 2.88.0 + rimraf: 2.6.2 + semver: 5.3.0 + tar: 2.2.1 + which: 1.3.1 + dev: false + engines: + node: '>= 0.8.0' + hasBin: true + resolution: + integrity: sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== + /node-status-codes/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8= + /nopt/3.0.6: + dependencies: + abbrev: 1.1.1 + dev: false + hasBin: true + resolution: + integrity: sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + /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.7.1 + is-builtin-module: 1.0.0 + semver: 5.6.0 + validate-npm-package-license: 3.0.4 + 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 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + /npmlog/4.1.2: + dependencies: + are-we-there-yet: 1.1.5 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: false + 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.9.0: + dev: false + resolution: + integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + /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.6.0: + dev: true + resolution: + integrity: sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + /object-keys/1.0.12: + engines: + node: '>= 0.4' + resolution: + integrity: sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + /object.getownpropertydescriptors/2.0.3: + dependencies: + define-properties: 1.1.3 + es-abstract: 1.12.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: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + /osenv/0.1.5: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + resolution: + integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + /p-limit/1.3.0: + dependencies: + p-try: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + /p-locate/2.0.0: + dependencies: + p-limit: 1.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + /p-try/1.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + /package-json/2.4.0: + dependencies: + got: 5.7.1 + registry-auth-token: 3.3.2 + registry-url: 3.1.0 + semver: 5.6.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs= + /package-preview/2.0.0: + dependencies: + '@pnpm/exec': 1.1.5 + '@types/fs-extra': 5.0.4 + '@types/mz': 0.0.32 + '@types/node': 10.12.3 + cross-spawn: 6.0.5 + find-down: 0.1.4 + fs-extra: 7.0.1 + graceful-fs: 4.1.15 + load-json-file: 5.1.0 + meow: 5.0.0 + mz: 2.7.0 + rimraf-then: 1.0.1 + unpack-stream: 4.0.0 + write-json-file: 3.0.2 + dev: true + engines: + node: '>=6' + hasBin: true + resolution: + integrity: sha512-18s75QMXujsh7k7BOREzTG7SgpspXpum5PQQl3xFMsjGAlGxS3LPYQDOqqeObnVF9Ye9oM9QWaJZefo9ZD8V/w== + /pako/0.2.9: + dev: true + resolution: + integrity: sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + /parse-entities/1.2.0: + dependencies: + character-entities: 1.2.2 + character-entities-legacy: 1.1.2 + character-reference-invalid: 1.1.2 + is-alphanumerical: 1.0.2 + is-decimal: 1.0.2 + is-hexadecimal: 1.0.2 + dev: true + resolution: + integrity: sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g== + /parse-json/2.2.0: + dependencies: + error-ex: 1.3.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /parse-json/4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + /parse-ms/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0= + /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: true + engines: + node: '>=4' + resolution: + integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + /path-parse/1.0.6: + dev: true + resolution: + integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + /path-type/1.1.0: + dependencies: + graceful-fs: 4.1.15 + 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.3: + dependencies: + buffer-from: 1.1.1 + duplexify: 3.6.1 + through2: 2.0.5 + dev: true + resolution: + integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== + /performance-now/2.1.0: + dev: false + resolution: + integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + /pify/2.3.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + /pify/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + /pify/4.0.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + /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= + /prepend-http/1.0.4: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + /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/2.0.0: + resolution: + integrity: sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + /promise.prototype.finally/1.0.1: + deprecated: Please upgrade to v2.0 or higher! + dev: true + resolution: + integrity: sha1-kRgvkckkhplXQPoF4NqUKsmGvvo= + /pseudomap/1.0.2: + dev: true + resolution: + integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + /psl/1.1.29: + dev: false + resolution: + integrity: sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== + /pump/1.0.3: + dependencies: + end-of-stream: 1.4.1 + once: 1.4.0 + dev: true + resolution: + integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + /pump/2.0.1: + dependencies: + end-of-stream: 1.4.1 + once: 1.4.0 + dev: true + resolution: + integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + /pumpify/1.5.1: + dependencies: + duplexify: 3.6.1 + inherits: 2.0.3 + pump: 2.0.1 + dev: true + resolution: + integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + /punycode/1.4.1: + dev: false + resolution: + integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4= + /punycode/2.1.1: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + /qs/6.5.2: + dev: false + engines: + node: '>=0.6' + resolution: + integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + /quick-lru/1.1.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + /rc/1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.5 + minimist: 1.2.0 + strip-json-comments: 2.0.1 + dev: true + hasBin: true + resolution: + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + /rcfile/1.0.3: + dependencies: + debug: 2.6.9 + js-yaml: 3.12.0 + json5: 0.5.1 + object-assign: 4.1.1 + object-keys: 1.0.12 + 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.6 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po= + /read-package-json/2.0.13: + dependencies: + glob: 7.1.3 + json-parse-better-errors: 1.0.2 + normalize-package-data: 2.4.0 + slash: 1.0.0 + dev: false + optionalDependencies: + graceful-fs: 4.1.15 + resolution: + integrity: sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg== + /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.6: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.3 + isarray: 1.0.0 + process-nextick-args: 2.0.0 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + resolution: + integrity: sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + /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.1: + dev: true + resolution: + integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + /registry-auth-token/3.3.2: + dependencies: + rc: 1.2.8 + safe-buffer: 5.1.2 + dev: true + resolution: + integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== + /registry-url/3.1.0: + dependencies: + rc: 1.2.8 + 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: + dev: true + resolution: + integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + /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.88.0: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.8.0 + caseless: 0.12.0 + combined-stream: 1.0.7 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.3 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.21 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.2 + safe-buffer: 5.1.2 + tough-cookie: 2.4.3 + tunnel-agent: 0.6.0 + uuid: 3.3.2 + dev: false + engines: + node: '>= 4' + resolution: + integrity: sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + /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-from/4.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + /resolve/1.1.7: + dev: true + resolution: + integrity: sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + /resolve/1.7.1: + dependencies: + path-parse: 1.0.6 + dev: true + resolution: + integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw== + /resolve/1.8.1: + dependencies: + path-parse: 1.0.6 + dev: true + resolution: + integrity: sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== + /resumer/0.0.0: + dependencies: + through: 2.3.8 + dev: true + resolution: + integrity: sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= + /rimraf-then/1.0.1: + dependencies: + any-promise: 1.3.0 + rimraf: 2.6.2 + dev: true + resolution: + integrity: sha1-vURYp561YbdUiq7ArDdT70Kf5ws= + /rimraf/2.6.2: + dependencies: + glob: 7.1.3 + hasBin: true + resolution: + integrity: sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== + /rollup-plugin-babel/2.4.0: + dependencies: + babel-core: 6.26.3 + 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 + hasBin: true + resolution: + integrity: sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA= + /safe-buffer/5.1.2: + resolution: + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + /safer-buffer/2.1.2: + dev: false + resolution: + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + /semver-diff/2.1.0: + dependencies: + semver: 5.6.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + /semver/5.3.0: + dev: false + hasBin: true + resolution: + integrity: sha1-myzl094C0XxgEq0yaqa00M9U+U8= + /semver/5.6.0: + hasBin: true + resolution: + integrity: sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + /set-blocking/2.0.0: + dev: false + resolution: + integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + /shebang-command/1.2.0: + dependencies: + shebang-regex: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + /shebang-regex/1.0.0: + dev: true + 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= + /slash/1.0.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + /slide/1.1.6: + resolution: + integrity: sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + /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 + dev: true + 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-support/0.5.9: + dependencies: + buffer-from: 1.1.1 + source-map: 0.6.1 + dev: true + resolution: + integrity: sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== + /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= + /source-map/0.6.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + /spdx-correct/3.0.2: + dependencies: + spdx-expression-parse: 3.0.0 + spdx-license-ids: 3.0.2 + resolution: + integrity: sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ== + /spdx-exceptions/2.2.0: + resolution: + integrity: sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + /spdx-expression-parse/3.0.0: + dependencies: + spdx-exceptions: 2.2.0 + spdx-license-ids: 3.0.2 + resolution: + integrity: sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + /spdx-license-ids/3.0.2: + resolution: + integrity: sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg== + /split2/2.2.0: + dependencies: + through2: 2.0.5 + dev: true + resolution: + integrity: sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + /sprintf-js/1.0.3: + dev: true + resolution: + integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /sshpk/1.15.2: + dependencies: + asn1: 0.2.4 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: false + engines: + node: '>=0.10.0' + hasBin: true + resolution: + integrity: sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA== + /ssri/6.0.1: + dependencies: + figgy-pudding: 3.5.1 + dev: true + resolution: + integrity: sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + /stream-shift/1.0.0: + dev: true + resolution: + integrity: sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + /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-width/2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + /string.prototype.trim/1.1.2: + dependencies: + define-properties: 1.1.3 + es-abstract: 1.12.0 + function-bind: 1.1.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= + /string_decoder/1.1.1: + dependencies: + safe-buffer: 5.1.2 + resolution: + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /stringify-entities/1.3.2: + dependencies: + character-entities-html4: 1.1.2 + character-entities-legacy: 1.1.2 + is-alphanumerical: 1.0.2 + is-hexadecimal: 1.0.2 + dev: true + resolution: + integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A== + /strip-ansi/0.3.0: + dependencies: + ansi-regex: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + hasBin: true + 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-ansi/4.0.0: + dependencies: + ansi-regex: 3.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= + /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: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-indent/1.0.1: + dependencies: + get-stdin: 4.0.1 + dev: true + engines: + node: '>=0.10.0' + hasBin: true + resolution: + integrity: sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + /strip-indent/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + /strip-json-comments/2.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= + /supports-color/0.2.0: + dev: true + engines: + node: '>=0.10.0' + hasBin: true + resolution: + integrity: sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= + /supports-color/2.0.0: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + /supports-color/5.5.0: + dependencies: + has-flag: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + /tap-parser/1.3.2: + dependencies: + events-to-array: 1.1.2 + inherits: 2.0.3 + js-yaml: 3.12.0 + dev: true + hasBin: true + optionalDependencies: + readable-stream: 2.3.6 + 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.3 + 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 + hasBin: true + resolution: + integrity: sha1-K7PqGb3J9SJSF7P5fL95hsxMbow= + /tape/4.9.1: + dependencies: + deep-equal: 1.0.1 + defined: 1.0.0 + for-each: 0.3.3 + function-bind: 1.1.1 + glob: 7.1.3 + has: 1.0.3 + inherits: 2.0.3 + minimist: 1.2.0 + object-inspect: 1.6.0 + resolve: 1.7.1 + resumer: 0.0.0 + string.prototype.trim: 1.1.2 + through: 2.3.8 + dev: true + hasBin: true + resolution: + integrity: sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw== + /tar-fs/1.16.3: + dependencies: + chownr: 1.1.1 + mkdirp: 0.5.1 + pump: 1.0.3 + tar-stream: 1.6.2 + dev: true + resolution: + integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + /tar-stream/1.6.2: + dependencies: + bl: 1.2.2 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.1 + fs-constants: 1.0.0 + readable-stream: 2.3.6 + to-buffer: 1.1.1 + xtend: 4.0.1 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + /tar/2.2.1: + dependencies: + block-stream: 0.0.9 + fstream: 1.0.11 + inherits: 2.0.3 + dev: false + resolution: + integrity: sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= + /the-argv/1.0.0: + dev: true + resolution: + integrity: sha1-AIRwUAVzDdhNt1UlPJMa45jblSI= + /thenify-all/1.6.0: + dependencies: + thenify: 3.3.0 + dev: true + engines: + node: '>=0.8' + resolution: + integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + /thenify/3.3.0: + dependencies: + any-promise: 1.3.0 + dev: true + resolution: + integrity: sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + /through/2.3.8: + dev: true + resolution: + integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + /through2/2.0.5: + dependencies: + readable-stream: 2.3.6 + xtend: 4.0.1 + dev: true + resolution: + integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + /timed-out/3.1.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc= + /to-buffer/1.1.1: + dev: true + resolution: + integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + /to-fast-properties/1.0.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + /tough-cookie/2.4.3: + dependencies: + psl: 1.1.29 + punycode: 1.4.1 + dev: false + engines: + node: '>=0.8' + resolution: + integrity: sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + /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.1: + dev: true + resolution: + integrity: sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg== + /trim/0.0.1: + dev: true + resolution: + integrity: sha1-WFhUf2spB1fulczMZm+1AITEYN0= + /ts-node/7.0.1: + dependencies: + arrify: 1.0.1 + buffer-from: 1.1.1 + diff: 3.5.0 + make-error: 1.3.5 + minimist: 1.2.0 + mkdirp: 0.5.1 + source-map-support: 0.5.9 + yn: 2.0.0 + dev: true + engines: + node: '>=4.2.0' + hasBin: true + resolution: + integrity: sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== + /tslib/1.9.3: + dev: true + resolution: + integrity: sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + /tslint/5.11.0: + dependencies: + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 2.4.1 + commander: 2.19.0 + diff: 3.5.0 + glob: 7.1.3 + js-yaml: 3.12.0 + minimatch: 3.0.4 + resolve: 1.8.1 + semver: 5.6.0 + tslib: 1.9.3 + tsutils: 2.29.0 + dev: true + engines: + node: '>=4.8.0' + hasBin: 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 || >=2.9.0-dev' + resolution: + integrity: sha1-mPMMAurjzecAYgHkwzywi0hYHu0= + /tsutils/2.29.0: + dependencies: + tslib: 1.9.3 + 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 || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' + resolution: + integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + /tunnel-agent/0.6.0: + dependencies: + safe-buffer: 5.1.2 + dev: false + resolution: + integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + /tweetnacl/0.14.5: + dev: false + resolution: + integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + /typedarray/0.0.6: + dev: true + resolution: + integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + /typescript/3.2.1: + dev: true + engines: + node: '>=4.2.0' + hasBin: true + resolution: + integrity: sha512-jw7P2z/h6aPT4AENXDGjcfHTu5CSqzsbZc6YlUIebTyBAq8XaKp78x7VcSh30xwSCcsu5irZkYZUSFP1MrAMbg== + /uid-number/0.0.6: + dev: false + resolution: + integrity: sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= + /umask/1.1.0: + dev: false + resolution: + integrity: sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= + /unbzip2-stream/1.3.1: + dependencies: + buffer: 3.6.0 + through: 2.3.8 + dev: true + resolution: + integrity: sha512-fIZnvdjblYs7Cru/xC6tCPVhz7JkYcVQQkePwMLyQELzYTds2Xn8QefPVnvdVhhZqubxNA1cASXEH5wcK0Bucw== + /unist-util-is/2.1.2: + dev: true + resolution: + integrity: sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw== + /unist-util-remove-position/1.1.2: + dependencies: + unist-util-visit: 1.4.0 + dev: true + resolution: + integrity: sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q== + /unist-util-visit-parents/2.0.1: + dependencies: + unist-util-is: 2.1.2 + dev: true + resolution: + integrity: sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA== + /unist-util-visit/1.4.0: + dependencies: + unist-util-visit-parents: 2.0.1 + dev: true + resolution: + integrity: sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw== + /universalify/0.1.2: + dev: true + engines: + node: '>= 4.0.0' + resolution: + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + /unpack-stream/4.0.0: + dependencies: + '@types/node': 10.12.3 + decompress-maybe: 1.0.0 + ssri: 6.0.1 + tar-fs: 1.16.3 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-c7fW8JV7WVb8BT0fZyuEXUi4SzqlJzCQFOytjjtFJH+ejDllZAzsIJjGjttWJR+0xqS/q2+TGvGm+GU5Jz/k4g== + /unzip-response/1.0.2: + dev: true + 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= + /uri-js/4.2.2: + dependencies: + punycode: 2.1.1 + dev: false + resolution: + integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + /url-parse-lax/1.0.0: + dependencies: + prepend-http: 1.0.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + /util-deprecate/1.0.2: + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /util.promisify/1.0.0: + dependencies: + define-properties: 1.1.3 + 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.3.2: + dev: false + hasBin: true + resolution: + integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + /validate-npm-package-license/3.0.4: + dependencies: + spdx-correct: 3.0.2 + spdx-expression-parse: 3.0.0 + resolution: + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + /verror/1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.0 + dev: false + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + /which/1.3.1: + dependencies: + isexe: 2.0.0 + hasBin: true + resolution: + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + /wide-align/1.1.3: + dependencies: + string-width: 2.1.1 + dev: false + resolution: + integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + /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.15 + 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.15 + imurmurhash: 0.1.4 + signal-exit: 3.0.2 + dev: true + resolution: + integrity: sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== + /write-json-file/1.2.0: + dependencies: + graceful-fs: 4.1.15 + 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/3.0.2: + dependencies: + detect-indent: 5.0.0 + graceful-fs: 4.1.15 + make-dir: 1.3.0 + pify: 4.0.1 + sort-keys: 2.0.0 + write-file-atomic: 2.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-VE2pKv0vNAi2xzAYE187/a6Zfe5Y1Pblmeu3gS0sKmdyZgtEqDGUWWjwu5MJ4XzdHTiy4/VBQqoIco3dlJ/diQ== + /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: + dev: true + engines: + node: '>=0.4' + resolution: + integrity: sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + /yallist/2.1.2: + dev: true + resolution: + integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + /yargs-parser/10.1.0: + dependencies: + camelcase: 4.1.0 + dev: true + resolution: + integrity: sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + /yn/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= +registry: 'https://registry.npmjs.org/' +shrinkwrapMinorVersion: 9 +shrinkwrapVersion: 3 +specifiers: + '@pnpm/logger': 2.1.0 + '@pnpm/read-package-json': ^1.0.0 + '@pnpm/types': ^2.0.0 + '@types/load-json-file': 2.0.7 + '@types/node': 10.12.3 + '@types/rimraf': 2.0.2 + '@types/tape': 4.2.32 + '@zkochan/npm-lifecycle': 2.1.1 + json-append: 1.1.1 + load-json-file: 5.1.0 + mos: 2.0.0-alpha.3 + mos-plugin-readme: 1.0.4 + package-preview: 2.0.0 + path-exists: ^3.0.0 + rimraf: 2.6.2 + tape: 4.9.1 + ts-node: 7.0.1 + tslint: 5.11.0 + typescript: 3.2.1 diff --git a/packages/lifecycle/src/index.ts b/packages/lifecycle/src/index.ts new file mode 100644 index 0000000000..9f032f978e --- /dev/null +++ b/packages/lifecycle/src/index.ts @@ -0,0 +1,125 @@ +import {fromDir as readPackageJsonFromDir} from '@pnpm/read-package-json' +import {PackageJson} from '@pnpm/types' +import lifecycle = require('@zkochan/npm-lifecycle') +import path = require('path') +import exists = require('path-exists') +import {LifecycleLog, lifecycleLogger} from './logger' + +function noop () {} // tslint:disable-line:no-empty + +export {LifecycleLog} + +export async function runPostinstallHooks ( + opts: { + depPath: string, + rootNodeModulesDir: string, + rawNpmConfig: object, + pkgRoot: string, + prepare?: boolean, + unsafePerm: boolean, + }, +): Promise { + const pkg = await readPackageJsonFromDir(opts.pkgRoot) + const scripts = pkg && pkg.scripts || {} + + if (!scripts.install) { + await checkBindingGyp(opts.pkgRoot, scripts) + } + + if (scripts.preinstall) { + await runLifecycleHook('preinstall', pkg, opts) + } + if (scripts.install) { + await runLifecycleHook('install', pkg, opts) + } + if (scripts.postinstall) { + await runLifecycleHook('postinstall', pkg, opts) + } + + if (opts.prepare && scripts.prepare) { + await runLifecycleHook('prepare', pkg, opts) + } + + return !!scripts.preinstall || !!scripts.install || !!scripts.postinstall +} + +export default async function runLifecycleHook ( + stage: string, + pkg: PackageJson, + opts: { + depPath: string, + rootNodeModulesDir: string, + rawNpmConfig: object, + pkgRoot: string, + stdio?: string, + unsafePerm: boolean, + }, +) { + if (opts.stdio !== 'inherit') { + lifecycleLogger.debug({ + depPath: opts.depPath, + script: pkg!.scripts![stage], + stage, + wd: opts.pkgRoot, + }) + } + + return lifecycle(pkg, stage, opts.pkgRoot, { + config: opts.rawNpmConfig, + dir: opts.rootNodeModulesDir, + log: { + clearProgress: noop, + info: noop, + level: opts.stdio === 'inherit' ? undefined : 'silent', + pause: noop, + resume: noop, + showProgress: noop, + silly: npmLog, + verbose: npmLog, + warn: noop, + }, + stdio: opts.stdio || 'pipe', + unsafePerm: opts.unsafePerm, + }) + + function npmLog (prefix: string, logid: string, stdtype: string, line: string) { + switch (stdtype) { + case 'stdout': + case 'stderr': + lifecycleLogger.debug({ + depPath: opts.depPath, + line: line.toString(), + stage, + stdio: stdtype, + wd: opts.pkgRoot, + }) + return + case 'Returned: code:': + if (opts.stdio === 'inherit') { + // Preventing the pnpm reporter from overriding the project's script output + return + } + const code = arguments[3] + lifecycleLogger.debug({ + depPath: opts.depPath, + exitCode: code, + stage, + wd: opts.pkgRoot, + }) + return + } + } +} + +/** + * Run node-gyp when binding.gyp is available. Only do this when there's no + * `install` script (see `npm help scripts`). + */ +async function checkBindingGyp ( + root: string, + scripts: {}, +) { + if (await exists(path.join(root, 'binding.gyp'))) { + scripts['install'] = 'node-gyp rebuild' // tslint:disable-line:no-string-literal + } +} diff --git a/packages/lifecycle/src/logger.ts b/packages/lifecycle/src/logger.ts new file mode 100644 index 0000000000..48b1906b63 --- /dev/null +++ b/packages/lifecycle/src/logger.ts @@ -0,0 +1,22 @@ +import baseLogger, { + LogBase, + Logger, +} from '@pnpm/logger' + +export const lifecycleLogger = baseLogger('lifecycle') as Logger + +// TODO: make depPath optional +export type LifecycleMessage = { + depPath: string, + stage: string, + wd: string, +} & ({ + line: string, + stdio: 'stdout' | 'stderr', +} | { + exitCode: number, +} | { + script: string, +}) + +export type LifecycleLog = {name: 'pnpm:lifecycle'} & LogBase & LifecycleMessage diff --git a/packages/lifecycle/test/fixtures/.gitignore b/packages/lifecycle/test/fixtures/.gitignore new file mode 100644 index 0000000000..e102ff534e --- /dev/null +++ b/packages/lifecycle/test/fixtures/.gitignore @@ -0,0 +1 @@ +output.json diff --git a/packages/lifecycle/test/fixtures/simple/package.json b/packages/lifecycle/test/fixtures/simple/package.json new file mode 100644 index 0000000000..90141a5e9c --- /dev/null +++ b/packages/lifecycle/test/fixtures/simple/package.json @@ -0,0 +1,7 @@ +{ + "name": "simple", + "version": "1.0.0", + "scripts": { + "postinstall": "rimraf output.json && node -e \"process.stdout.write('install')\" | json-append output.json" + } +} diff --git a/packages/lifecycle/test/fixtures/with-many-scripts/package.json b/packages/lifecycle/test/fixtures/with-many-scripts/package.json new file mode 100644 index 0000000000..9b60f02c47 --- /dev/null +++ b/packages/lifecycle/test/fixtures/with-many-scripts/package.json @@ -0,0 +1,10 @@ +{ + "name": "with-many-scripts", + "version": "1.0.0", + "scripts": { + "prepare": "node -e \"process.stdout.write('prepare')\" | json-append output.json", + "preinstall": "node -e \"process.stdout.write('preinstall')\" | json-append output.json", + "install": "node -e \"process.stdout.write('install')\" | json-append output.json", + "postinstall": "node -e \"process.stdout.write('postinstall')\" | json-append output.json" + } +} diff --git a/packages/lifecycle/test/index.ts b/packages/lifecycle/test/index.ts new file mode 100644 index 0000000000..4dd254c83e --- /dev/null +++ b/packages/lifecycle/test/index.ts @@ -0,0 +1,59 @@ +import test = require('tape') +import runLifecycleHook, {runPostinstallHooks} from '@pnpm/lifecycle' +import path = require('path') +import rimraf = require('rimraf') +import loadJsonFile = require('load-json-file') + +const fixtures = path.join(__dirname, 'fixtures') +const rootNodeModulesDir = path.join(__dirname, '..', 'node_modules') + +test('runLifecycleHook()', async (t) => { + const pkgRoot = path.join(fixtures, 'simple') + const pkg = require(path.join(pkgRoot, 'package.json')) + await runLifecycleHook('postinstall', pkg, { + rootNodeModulesDir, + depPath: '/simple/1.0.0', + rawNpmConfig: {}, + pkgRoot, + unsafePerm: true, + }) + + t.deepEqual(require(path.join(pkgRoot, 'output.json')), ['install']) + + t.end() +}) + +test('runPostinstallHooks()', async (t) => { + const pkgRoot = path.join(fixtures, 'with-many-scripts') + const pkg = require(path.join(pkgRoot, 'package.json')) + rimraf.sync(path.join(pkgRoot, 'output.json')) + await runPostinstallHooks({ + rootNodeModulesDir, + depPath: '/with-many-scripts/1.0.0', + rawNpmConfig: {}, + pkgRoot, + unsafePerm: true, + }) + + t.deepEqual(loadJsonFile.sync(path.join(pkgRoot, 'output.json')), ['preinstall', 'install', 'postinstall']) + + t.end() +}) + +test('runPostinstallHooks() with prepare = true', async (t) => { + const pkgRoot = path.join(fixtures, 'with-many-scripts') + const pkg = require(path.join(pkgRoot, 'package.json')) + rimraf.sync(path.join(pkgRoot, 'output.json')) + await runPostinstallHooks({ + rootNodeModulesDir, + depPath: '/with-many-scripts/1.0.0', + rawNpmConfig: {}, + prepare: true, + pkgRoot, + unsafePerm: true, + }) + + t.deepEqual(loadJsonFile.sync(path.join(pkgRoot, 'output.json')), ['preinstall', 'install', 'postinstall', 'prepare']) + + t.end() +}) diff --git a/packages/lifecycle/tsconfig.json b/packages/lifecycle/tsconfig.json new file mode 100644 index 0000000000..e1c5b75154 --- /dev/null +++ b/packages/lifecycle/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/packages/lifecycle/tslint.json b/packages/lifecycle/tslint.json new file mode 100644 index 0000000000..f19503c495 --- /dev/null +++ b/packages/lifecycle/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/packages/lifecycle/typings/index.d.ts b/packages/lifecycle/typings/index.d.ts new file mode 100644 index 0000000000..4617e1fe6d --- /dev/null +++ b/packages/lifecycle/typings/index.d.ts @@ -0,0 +1,19 @@ +declare module '@zkochan/npm-lifecycle' { + const anything: any; + export = anything; +} + +declare module 'path-exists' { + const anything: any; + export = anything; +} + +declare module 'read-package-json' { + const anything: any; + export = anything; +} + +declare module 'util.promisify' { + const anything: any; + export = anything; +}