diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..270dd84 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true +end_of_line = lf + +[*.{ts,js,json}] +indent_style = space +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..0e02124 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text eol=lf + +*.tgz binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..82bf6e2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Dependency directory +node_modules + +# Coverage directory used by tools like istanbul +coverage + +fixtures +.tmp +_docpress + +lib + +# Visual Studio Code configs +.vscode/ + +.store diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5269403 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: node_js +node_js: + - 4 + - 6 + - 8 + - 9 +sudo: false +before_install: + - curl -L https://unpkg.com/@pnpm/self-installer | node +install: + - pnpm install +script: + - npm test +notifications: + email: false diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0ef8e28 --- /dev/null +++ b/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/README.md b/README.md new file mode 100644 index 0000000..d2bf273 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# @pnpm/merge-driver + +> A merge driver for shrinkwrap.yaml + + +[![npm version](https://img.shields.io/npm/v/@pnpm/merge-driver.svg)](https://www.npmjs.com/package/@pnpm/merge-driver) [![Build Status](https://img.shields.io/travis/pnpm/merge-driver/master.svg)](https://travis-ci.org/pnpm/merge-driver) + + +## Installation + +```sh +npm i -S @pnpm/logger @pnpm/merge-driver +``` + +## License + +[MIT](./LICENSE) © [Zoltan Kochan](https://www.kochan.io/) diff --git a/package.json b/package.json new file mode 100644 index 0000000..a1864ae --- /dev/null +++ b/package.json @@ -0,0 +1,64 @@ +{ + "name": "@pnpm/merge-driver", + "version": "0.0.0", + "description": "A merge driver for shrinkwrap.yaml", + "main": "lib/index.js", + "typings": "lib/index.d.ts", + "bin": "lib/cli.js", + "files": [ + "lib" + ], + "engines": { + "node": ">=4" + }, + "scripts": { + "lint": "tslint -c tslint.json --project .", + "tsc": "rimraf lib && tsc", + "test": "rimraf .store && npm run lint && preview && ts-node test --type-check && mos t", + "md": "mos", + "prepublishOnly": "npm run tsc" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/pnpm/merge-driver.git" + }, + "keywords": [ + "pnpm", + "git", + "merge", + "driver" + ], + "author": "Zoltan Kochan (https://www.kochan.io/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/pnpm/merge-driver/issues" + }, + "homepage": "https://github.com/pnpm/merge-driver#readme", + "peerDependencies": { + "@pnpm/logger": "^1.0.0" + }, + "dependencies": { + "@types/ramda": "^0.25.21", + "pnpm-shrinkwrap": "^6.2.4", + "ramda": "^0.25.0" + }, + "devDependencies": { + "@types/tape": "^4.2.31", + "mos": "^2.0.0-alpha.3", + "mos-plugin-readme": "^1.0.4", + "package-preview": "^1.0.1", + "rimraf": "^2.6.2", + "tape": "^4.8.0", + "ts-node": "^5.0.0", + "tslint": "^5.8.0", + "typescript": "^2.6.1" + }, + "mos": { + "plugins": [ + "readme" + ], + "installation": { + "useShortAlias": true + } + } +} diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..b7ad671 --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "extends": [ + "config:base" + ], + "pinVersions": false +} diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml new file mode 100644 index 0000000..cff58c1 --- /dev/null +++ b/shrinkwrap.yaml @@ -0,0 +1,3065 @@ +dependencies: + '@pnpm/merge-driver': 'link:../__package_previews__/merge-driver/@pnpm/merge-driver' + '@types/ramda': 0.25.21 + pnpm-shrinkwrap: 6.2.4 + ramda: 0.25.0 +devDependencies: + '@types/tape': 4.2.32 + mos: 2.0.0-alpha.3 + mos-plugin-readme: 1.0.4 + package-preview: 1.0.5 + rimraf: 2.6.2 + tape: 4.9.0 + ts-node: 5.0.1 + tslint: 5.9.1 + typescript: 2.8.1 +packages: + /@pnpm/exec/1.1.4: + dependencies: + '@pnpm/self-installer': 2.0.2 + '@types/got': 7.1.8 + '@types/node': 9.6.2 + command-exists: 1.2.2 + cross-spawn: 5.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-sYJOXPxpQxFcTSACFRFCuIQdnZLNaOgTHGF+CQNYlKnlc2ZnmEW+lAZVTc0hJSU+8mnTY7ei39MbYpI5q+li+w== + /@pnpm/resolver-base/1.0.0: + dependencies: + '@pnpm/types': 1.7.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-+y47No75LZFnkN7VAnoEtkIzDgOuc8ZT4QjyhuNIBVLx4oqFa/R16DpSyRjmaTZMCSREXunObULKL/hoLipNDA== + /@pnpm/self-installer/2.0.2: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-hbuHZMfM0iOZn2FCGQBixibo8oc= + /@pnpm/types/1.7.0: + dev: false + resolution: + integrity: sha512-pn7g4uxcofWTNG/cxmKvkMK2lxr4OUIhrQDrEVYEdVhW0WkWztsHkFrYjFgfNzPbYu3ITlB3T6aSVjCoJQTOlw== + /@types/fs-extra/5.0.1: + dependencies: + '@types/node': 9.6.2 + dev: true + resolution: + integrity: sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw== + /@types/got/7.1.8: + dependencies: + '@types/node': 9.6.2 + dev: true + resolution: + integrity: sha512-QxcSkx9PjHH7uqbzqKTKOAjGbayyo+dECnnqM3BBMC0WjYAqx0e6Qi9AFR4jluvx91e7qzgz4aGka7AhCTHYRw== + /@types/js-yaml/3.11.1: + dev: false + resolution: + integrity: sha512-M5qhhfuTt4fwHGqqANNQilp3Htb5cHwBxlMHDUw/TYRVkEp3s3IIFSH3Fe9HIAeEtnO4p3SSowLmCVavdRYfpw== + /@types/load-json-file/2.0.7: + dev: true + resolution: + integrity: sha512-NrH6jPlV77QCVPhAHofWeiOr77TgpKt82c2RVxSBChWBJqyY/u4ngl3CA4mcsAg/w7rNLrkR7dkObMV0ihLLXw== + /@types/mz/0.0.32: + dependencies: + '@types/node': 9.6.2 + dev: true + resolution: + integrity: sha512-cy3yebKhrHuOcrJGkfwNHhpTXQLgmXSv1BX+4p32j+VUQ6aP2eJ5cL7OvGcAQx75fCTFaAIIAKewvqL+iwSd4g== + /@types/node/9.6.2: + resolution: + integrity: sha512-UWkRY9X7RQHp5OhhRIIka58/gVVycL1zHZu0OTsT5LI86ABaMOSbUjAl+b0FeDhQcxclrkyft3kW5QWdMRs8wQ== + /@types/ramda/0.25.21: + dev: false + resolution: + integrity: sha512-y4Dx3t+EA5Y+s87cwUoIzo0Tsj9z7QCu4gaXrdFln4wQRgk9igBskEEe7gZ0PG8dSXtQb29oA3RS//3XquHdiw== + /@types/semver/5.5.0: + dev: false + resolution: + integrity: sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ== + /@types/tape/4.2.32: + dependencies: + '@types/node': 9.6.2 + dev: true + resolution: + integrity: sha512-xil0KO5wkPoixdBWGIGolPv9dekf6dVkjjJLAFYchfKcd4DICou67rgGCIO7wAh3i5Ff/6j9IDgZz+GU9cMaqQ== + /@types/write-json-file/2.2.1: + dev: true + resolution: + integrity: sha512-JdO/UpPm9RrtQBNVcZdt3M7j3mHO/kXaea9LBGx3UgWJd1f9BkIWP7jObLBG6ZtRyqp7KzLFEsaPhWcidVittA== + /@zkochan/async-replace/0.4.1: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + dev: true + resolution: + integrity: sha1-TPO97s9S8vasjzKw2IpoLrSEiXk= + /acorn/3.0.4: + dev: true + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-BPJElQ/bj6+FUHrUgcLt7nrs3uw= + /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: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + /ansi-styles/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= + /ansi-styles/2.2.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + /ansi-styles/3.2.1: + dependencies: + color-convert: 1.9.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + /any-promise/1.3.0: + resolution: + integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= + /argparse/1.0.10: + dependencies: + sprintf-js: 1.0.3 + 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= + /babel-code-frame/6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.2 + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + /babel-core/6.26.0: + dependencies: + babel-code-frame: 6.26.0 + babel-generator: 6.26.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.5.1 + debug: 2.6.9 + json5: 0.5.1 + lodash: 4.17.5 + minimatch: 3.0.4 + path-is-absolute: 1.0.1 + private: 0.1.8 + slash: 1.0.0 + source-map: 0.5.7 + dev: true + resolution: + integrity: sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g= + /babel-generator/6.26.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.5 + 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.5 + dev: true + resolution: + integrity: sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + /babel-helper-function-name/6.24.1: + dependencies: + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + /babel-helper-get-function-arity/6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + /babel-helper-optimise-call-expression/6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + /babel-helper-replace-supers/6.24.1: + dependencies: + babel-helper-optimise-call-expression: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + /babel-helpers/6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + dev: true + resolution: + integrity: sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + /babel-messages/6.23.0: + dependencies: + babel-runtime: 6.26.0 + dev: true + resolution: + integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + /babel-plugin-transform-es2015-classes/6.24.1: + dependencies: + babel-helper-define-map: 6.26.0 + babel-helper-function-name: 6.24.1 + babel-helper-optimise-call-expression: 6.24.1 + babel-helper-replace-supers: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + dev: true + resolution: + integrity: sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + /babel-register/6.26.0: + dependencies: + babel-core: 6.26.0 + babel-runtime: 6.26.0 + core-js: 2.5.4 + home-or-tmp: 2.0.0 + lodash: 4.17.5 + 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.4 + 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.5 + 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.5 + 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.5 + to-fast-properties: 1.0.3 + dev: true + resolution: + integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + /babylon/6.18.0: + dev: true + resolution: + integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + /balanced-match/1.0.0: + resolution: + integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /base64-js/0.0.8: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= + /bl/1.2.2: + dependencies: + readable-stream: 2.3.6 + safe-buffer: 5.1.1 + dev: true + resolution: + integrity: sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + /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-from/1.0.0: + dev: true + resolution: + integrity: sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA== + /buffer/3.6.0: + dependencies: + base64-js: 0.0.8 + ieee754: 1.1.11 + isarray: 1.0.0 + dev: true + resolution: + integrity: sha1-pyyTb3e5a/UvX357RnGAYoVR3vs= + /builtin-modules/1.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + /bzip2-maybe/1.0.0: + dependencies: + is-bzip2: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.4.0 + through2: 2.0.3 + unbzip2-stream: 1.2.5 + dev: 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.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0= + /ccount/1.0.2: + dev: true + resolution: + integrity: sha1-U7ai+BW7d7nChx97mnLDol8djok= + /chalk/0.5.1: + dependencies: + ansi-styles: 1.1.0 + escape-string-regexp: 1.0.5 + has-ansi: 0.1.0 + strip-ansi: 0.3.0 + supports-color: 0.2.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= + /chalk/1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + /chalk/2.3.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ== + /character-entities-html4/1.1.1: + dev: true + resolution: + integrity: sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA= + /character-entities-legacy/1.1.1: + dev: true + resolution: + integrity: sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8= + /character-entities/1.2.1: + dev: true + resolution: + integrity: sha1-92hxvl72bdt/j440eOzDdMJ9bco= + /character-reference-invalid/1.1.1: + dev: true + resolution: + integrity: sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw= + /chownr/1.0.1: + dev: true + resolution: + integrity: sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= + /cli-boxes/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM= + /code-point-at/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + /codemo/0.2.2: + dependencies: + acorn: 3.0.4 + babel-runtime: 6.26.0 + callsites: 1.0.0 + cross-spawn-async: 2.2.2 + file-position: 0.0.0 + lodash.partition: 4.6.0 + normalize-newline: 2.0.0 + normalize-path: 2.0.1 + promise.prototype.finally: 1.0.1 + rollup: 0.25.8 + rollup-plugin-babel: 2.4.0 + rollup-plugin-includepaths: 0.1.2 + source-map: 0.5.3 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-GCe0ZB87z4vXG9SbLU6ZtFuLX9c= + /collapse-white-space/1.0.3: + dev: true + resolution: + integrity: sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw= + /color-convert/1.9.1: + dependencies: + color-name: 1.1.3 + dev: true + resolution: + integrity: sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ== + /color-name/1.1.3: + dev: true + resolution: + integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + /command-exists/1.2.2: + dev: true + resolution: + integrity: sha1-EoGcZPr5VEbsCuB/5sr7brNwiyI= + /commander/2.15.1: + dev: true + resolution: + integrity: sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + /concat-map/0.0.1: + resolution: + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + /configstore/2.1.0: + dependencies: + dot-prop: 3.0.0 + graceful-fs: 4.1.11 + mkdirp: 0.5.1 + object-assign: 4.1.1 + os-tmpdir: 1.0.2 + osenv: 0.1.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= + /convert-source-map/1.5.1: + dev: true + resolution: + integrity: sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU= + /core-js/2.5.4: + dev: true + resolution: + integrity: sha1-8si/GB8qgLkvNgEhQpzmOi8K6uA= + /core-util-is/1.0.2: + dev: true + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /create-error-class/3.0.2: + dependencies: + capture-stack-trace: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + /cross-spawn-async/2.2.2: + dependencies: + lru-cache: 4.1.2 + which: 1.3.0 + deprecated: 'cross-spawn no longer requires a build toolchain, use it instead!' + dev: true + resolution: + integrity: sha1-kN6ptpIPA7L3vHSZYVABrubyMX4= + /cross-spawn/4.0.2: + dependencies: + lru-cache: 4.1.2 + which: 1.3.0 + dev: true + resolution: + integrity: sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + /cross-spawn/5.1.0: + dependencies: + lru-cache: 4.1.2 + shebang-command: 1.2.0 + which: 1.3.0 + dev: true + resolution: + integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + /cross-spawn/6.0.5: + dependencies: + nice-try: 1.0.4 + path-key: 2.0.1 + semver: 5.5.0 + shebang-command: 1.2.0 + which: 1.3.0 + 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= + /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.4.0 + dev: true + resolution: + integrity: sha1-rf54xmzAaeZOgkvRQFuF515tHLs= + /deep-equal/1.0.1: + dev: true + resolution: + integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + /deep-extend/0.4.2: + dev: true + engines: + iojs: '>=1.0.0' + node: '>=0.12.0' + resolution: + integrity: sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8= + /define-properties/1.1.2: + dependencies: + foreach: 2.0.5 + object-keys: 1.0.11 + engines: + node: '>= 0.4' + resolution: + integrity: sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ= + /defined/1.0.0: + dev: true + resolution: + integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + /dependency-path/1.2.1: + dependencies: + '@types/semver': 5.5.0 + encode-registry: 1.1.0 + semver: 5.5.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-VcFlKHsD8EoTuVeRY/cKXHhbUDOVLboIaleqEh9qbzpRW9eAhMdbhT7yID274qtq6UvTdpxMxNocfG8Mtg+i0Q== + /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.5.4: + 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-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA== + /emoji-regex/6.1.1: + dev: true + resolution: + integrity: sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + /encode-registry/1.1.0: + dependencies: + mem: 3.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-we1k9/KE1067YXEyJzPg+kXlNFLk9/LT2IFP3VZgmANNwf8Bx+KdAVd1wxLpG8y7v6EgplVGTstmVNICwiaCNA== + /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.1: + dependencies: + is-arrayish: 0.2.1 + dev: true + resolution: + integrity: sha1-+FWobOYa3E6GIcPNoh56dhLDqNw= + /es-abstract/1.11.0: + dependencies: + es-to-primitive: 1.1.1 + function-bind: 1.1.1 + has: 1.0.1 + is-callable: 1.1.3 + is-regex: 1.0.4 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA== + /es-to-primitive/1.1.1: + dependencies: + is-callable: 1.1.3 + is-date-object: 1.0.1 + is-symbol: 1.0.1 + engines: + node: '>= 0.4' + resolution: + integrity: sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0= + /escape-string-regexp/1.0.5: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + /esprima/4.0.0: + engines: + node: '>=4' + resolution: + integrity: sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw== + /estree-walker/0.2.1: + dev: true + resolution: + integrity: sha1-va/oCVOD2EFNXcLs9MkXO225QS4= + /esutils/2.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + /events-to-array/1.1.2: + dev: true + resolution: + integrity: sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y= + /figures/1.7.0: + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + /file-exists/1.0.0: + dev: true + resolution: + integrity: sha1-5tJptWVnuJIlgTmOmQ3XB49y1hY= + /file-position/0.0.0: + dev: true + resolution: + integrity: sha1-rkxlqupgoUyX9xUIwKvIaopfCI4= + /filled-array/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q= + /find-down/0.1.4: + dependencies: + locate-path: 2.0.0 + next-path: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-3lcasU5kFaqBp/IJ19lDRv5I0FG42J94s2oIP5r0KA5z5+ID0vocMylMUEuuGbXqJ5WLNZteQB9CAVIzUnk9bQ== + /find-up/1.1.2: + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + /find-up/2.1.0: + dependencies: + locate-path: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + /flatten/1.0.2: + dev: true + resolution: + integrity: sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= + /for-each/0.3.2: + dependencies: + is-function: 1.0.1 + dev: true + resolution: + integrity: sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ= + /foreach/2.0.5: + resolution: + integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k= + /fs-extra/5.0.0: + dependencies: + graceful-fs: 4.1.11 + jsonfile: 4.0.0 + universalify: 0.1.1 + dev: true + resolution: + integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== + /fs.realpath/1.0.0: + resolution: + integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + /function-bind/1.1.1: + resolution: + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + /get-npm-tarball-url/2.0.1: + dependencies: + normalize-registry-url: 1.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-POrVRGyS9X5w+855/H46JGVYBGuVgJXyIkbsTCzW+sv5x2qH+rfQjc7652DzkgOskF+cqLevA2En7V0hu0gZCg== + /get-stdin/4.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + /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.2: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.3 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + resolution: + integrity: sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + /globals/9.18.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + /got/5.7.1: + dependencies: + create-error-class: 3.0.2 + duplexer2: 0.1.4 + is-redirect: 1.0.0 + is-retry-allowed: 1.1.0 + is-stream: 1.1.0 + lowercase-keys: 1.0.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.11: + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= + /gunzip-maybe/1.4.1: + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.4.0 + through2: 2.0.3 + dev: true + resolution: + integrity: sha512-qtutIKMthNJJgeHQS7kZ9FqDq59/Wn0G2HYCRNjpup7yKfVI6/eqwpmroyZGFoCYaG+sW6psNVb4zoLADHpp2g== + /has-ansi/0.1.0: + dependencies: + ansi-regex: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= + /has-ansi/2.0.0: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + /has-flag/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + /has/1.0.1: + dependencies: + function-bind: 1.1.1 + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-hGFzP1OLCDfJNh45qauelwTcLyg= + /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.6.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw== + /ieee754/1.1.11: + dev: true + resolution: + integrity: sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg== + /imurmurhash/0.1.4: + engines: + node: '>=0.8.19' + resolution: + integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= + /indent-string/2.1.0: + dependencies: + repeating: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + /indent-string/3.2.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + /independent/0.2.0: + dependencies: + '@zkochan/async-replace': 0.4.1 + babel-runtime: 6.26.0 + read-pkg-up: 1.0.1 + relative: 3.0.2 + resolve: 1.1.7 + dev: true + resolution: + integrity: sha1-fP+w1d94AFLyRFzaqPXj29sXyw8= + /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.3.1 + dev: true + resolution: + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + /is-alphabetical/1.0.1: + dev: true + resolution: + integrity: sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg= + /is-alphanumerical/1.0.1: + dependencies: + is-alphabetical: 1.0.1 + is-decimal: 1.0.1 + dev: true + resolution: + integrity: sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts= + /is-arrayish/0.2.1: + dev: true + resolution: + integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + /is-builtin-module/1.0.0: + dependencies: + builtin-modules: 1.1.1 + dev: true + 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.3: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-hut1OSgF3cM69xySoO7fdO52BLI= + /is-date-object/1.0.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + /is-decimal/1.0.1: + dev: true + resolution: + integrity: sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI= + /is-deflate/1.0.0: + 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 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + /is-function/1.0.1: + dev: true + resolution: + integrity: sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + /is-gzip/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= + /is-hexadecimal/1.0.1: + dev: true + resolution: + integrity: sha1-bghLvJIGH7sJcexYts5tQE4k2mk= + /is-npm/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + /is-obj/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + /is-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.1 + engines: + node: '>= 0.4' + resolution: + integrity: sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + /is-retry-allowed/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= + /is-stream/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + /is-symbol/1.0.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI= + /is-url/1.2.4: + dev: true + resolution: + integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + /is-utf8/0.2.1: + dev: true + resolution: + integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + /is-windows/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + /isarray/1.0.0: + dev: true + resolution: + integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /isexe/2.0.0: + dev: true + 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= + /js-tokens/3.0.2: + dev: true + resolution: + integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= + /js-yaml/3.11.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.0 + resolution: + integrity: sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw== + /jsesc/1.3.0: + dev: true + resolution: + integrity: sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + /json-parse-better-errors/1.0.2: + dev: true + resolution: + integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + /json5/0.5.1: + dev: true + resolution: + integrity: sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + /jsondiffpatch/0.1.43: + bundledDependencies: [] + dependencies: + chalk: 0.5.1 + dev: true + resolution: + integrity: sha1-wFKImpnvfroZ0AlfkPclz6cKVhE= + /jsonfile/4.0.0: + dev: true + optionalDependencies: + graceful-fs: 4.1.11 + resolution: + integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + /latest-version/2.0.0: + dependencies: + package-json: 2.4.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-VvjWE5YghHuAF/jx9NeOIRMkFos= + /load-json-file/1.1.0: + dependencies: + graceful-fs: 4.1.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + /load-json-file/4.0.0: + dependencies: + graceful-fs: 4.1.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + /load-yaml-file/0.1.0: + dependencies: + graceful-fs: 4.1.11 + js-yaml: 3.11.0 + pify: 2.3.0 + strip-bom: 3.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-9oAGbmkbPutFAXZy5KOVavW4O4k= + /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.5: + dev: true + resolution: + integrity: sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== + /longest-streak/1.0.0: + dev: true + resolution: + integrity: sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU= + /loose-envify/1.3.1: + dependencies: + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg= + /loud-rejection/1.6.0: + dependencies: + currently-unhandled: 0.4.1 + signal-exit: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + /lowercase-keys/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + /lru-cache/4.1.2: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + resolution: + integrity: sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ== + /magic-hook/1.0.0: + dependencies: + flatten: 1.0.2 + dev: true + resolution: + integrity: sha1-mu2GAadRK1axlUcNonSk7jqVCfA= + /make-dir/1.2.0: + dependencies: + pify: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw== + /make-error/1.3.4: + dev: true + resolution: + integrity: sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g== + /map-obj/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + /map-obj/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + /markdown-table/0.4.0: + dev: true + resolution: + integrity: sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE= + /markdownscript/1.3.0: + dependencies: + babel-runtime: 6.26.0 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-vf3/Csk0F4JLI2UjqaaZ5eDOfhE= + /mdast-util-to-string/1.0.4: + dev: true + resolution: + integrity: sha1-XEVch4yTVfDB5/PotxnPWDaRrPs= + /mem/3.0.0: + dependencies: + mimic-fn: 1.2.0 + p-is-promise: 1.1.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-hOWK1N+99dEFsmtlSKOYsrOqiiE= + /meow/3.7.0: + dependencies: + camelcase-keys: 2.1.0 + decamelize: 1.2.0 + loud-rejection: 1.6.0 + map-obj: 1.0.1 + minimist: 1.2.0 + normalize-package-data: 2.4.0 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + redent: 1.0.0 + trim-newlines: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + /meow/4.0.0: + dependencies: + camelcase-keys: 4.2.0 + decamelize-keys: 1.1.0 + loud-rejection: 1.6.0 + minimist: 1.2.0 + minimist-options: 3.0.2 + normalize-package-data: 2.4.0 + read-pkg-up: 3.0.0 + redent: 2.0.0 + trim-newlines: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw== + /mimic-fn/1.2.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + /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-promise/5.0.1: + dependencies: + mkdirp: 0.5.1 + engines: + node: '>=4' + resolution: + integrity: sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + /mkdirp/0.5.1: + dependencies: + minimist: 0.0.8 + resolution: + integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + /mos-core/1.0.2: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + ccount: 1.0.2 + collapse-white-space: 1.0.3 + core-js: 2.5.4 + file-position: 0.0.0 + is-promise: 2.1.0 + longest-streak: 1.0.0 + markdown-table: 0.4.0 + parse-entities: 1.1.1 + repeat-string: 1.6.1 + stringify-entities: 1.3.1 + trim: 0.0.1 + trim-trailing-lines: 1.1.0 + unist-util-remove-position: 1.1.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-N8JpfBzHhhgkFivQ+rrvJCX55H0= + /mos-hosted-git-info/1.0.0: + dev: true + resolution: + integrity: sha1-yj8BhwBEv14CT4WPEl3FmxrFe2k= + /mos-init/1.1.2: + dependencies: + arr-exclude: 1.0.0 + core-js: 2.5.4 + 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.5.0 + validate-npm-package-license: 3.0.3 + dev: true + resolution: + integrity: sha1-D9oITzRT8B7UtWVTQeYDPxeaeas= + /mos-plugin-dependencies/2.2.2: + dependencies: + babel-runtime: 6.26.0 + github-url-to-object: 2.2.6 + shieldman: 1.2.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-vm7fN15M9ch8QU0PI3ZmItGO0Xc= + /mos-plugin-ejs/1.1.2: + dependencies: + babel-run-async: 1.0.0 + babel-runtime: 6.26.0 + github-url-to-object: 2.2.6 + mos-read-pkg-up: 1.0.0 + reserved-words: 0.1.2 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-1jZXxN9o0yMx1MdHweq/vBC1zBY= + /mos-plugin-example/1.1.2: + dependencies: + babel-runtime: 6.26.0 + codemo: 0.2.2 + independent: 0.2.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-YmGDjrRVXNmjj7zrkgEz55S4hHc= + /mos-plugin-installation/1.2.2: + dependencies: + babel-runtime: 6.26.0 + markdownscript: 1.3.0 + mdast-util-to-string: 1.0.4 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-r2FghByH+zmGnQEHwGWaKTayPH8= + /mos-plugin-license/1.2.2: + dependencies: + babel-runtime: 6.26.0 + file-exists: 1.0.0 + markdownscript: 1.3.0 + mdast-util-to-string: 1.0.4 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-BEV+GXukOHeOPbZ/rdi8yYR0fIY= + /mos-plugin-markdownscript/2.1.2: + dependencies: + babel-runtime: 6.26.0 + markdownscript: 1.3.0 + reserved-words: 0.1.2 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-Xh02JCByVXeNRbt+elDceSbDA7A= + /mos-plugin-package-json/2.1.2: + dependencies: + babel-runtime: 6.26.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-kQZoTdMWCYmBXd7Zi7qj6FedeaU= + /mos-plugin-readme/1.0.4: + dependencies: + babel-runtime: 6.26.0 + markdownscript: 1.3.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-fOweSUjB7B1EKRWAHR9m164khfM= + /mos-plugin-shields/2.2.3: + dependencies: + babel-runtime: 6.26.0 + shieldman: 1.2.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-DQv/6/yl78i3q5xGxKElinHN5r+7bE0EJhPd2+sCvuBgcs+DaI1hbWu/ePiuobH8f7yaFN8w7dei3ZftiwHV9w== + /mos-plugin-snippet/2.1.3: + dependencies: + babel-runtime: 6.26.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-AldDv4iW6GXi9/RIkoz0QHjUxZU= + /mos-plugin-toc/1.2.3: + dependencies: + babel-runtime: 6.26.0 + github-slugger: 1.2.0 + markdownscript: 1.3.0 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-gDYFslWs9iUlq1l88ErSa99d4ws= + /mos-processor/1.2.2: + dependencies: + babel-runtime: 6.26.0 + github-url-to-object: 2.2.6 + magic-hook: 1.0.0 + mos-core: 1.0.2 + mos-read-pkg-up: 1.0.0 + normalize-path: 2.1.1 + remi: 1.1.1 + remi-runner: 1.1.3 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha1-ayJKldvmppQ77O1etshS3Im6p9s= + /mos-read-pkg-up/1.0.0: + dependencies: + find-up: 1.1.2 + mos-read-pkg: 1.1.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8Ai4XlQve4/T/bnXTtyOf00YJ2k= + /mos-read-pkg/1.1.3: + dependencies: + load-json-file: 1.1.0 + mos-normalize-package-data: 1.0.0 + path-type: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-FM28aoCPD7wbY3hmob7XBaK9EcQ= + /mos-tap-diff/1.0.0: + dependencies: + babel-runtime: 6.26.0 + chalk: 1.1.3 + core-js: 2.5.4 + diff: 2.2.3 + duplexer: 0.1.1 + figures: 1.7.0 + jsondiffpatch: 0.1.43 + pretty-ms: 2.1.0 + tap-parser: 1.3.2 + through2: 2.0.3 + dev: true + resolution: + integrity: sha1-NDOB0f2e1RljsLMVNbf9i64E/3A= + /mos/2.0.0-alpha.3: + dependencies: + babel-runtime: 6.26.0 + chalk: 1.1.3 + glob: 7.0.6 + loud-rejection: 1.6.0 + magic-hook: 1.0.0 + meow: 3.7.0 + mos-init: 1.1.2 + mos-plugin-dependencies: 2.2.2 + mos-plugin-ejs: 1.1.2 + mos-plugin-example: 1.1.2 + mos-plugin-installation: 1.2.2 + mos-plugin-license: 1.2.2 + mos-plugin-markdownscript: 2.1.2 + mos-plugin-package-json: 2.1.2 + mos-plugin-shields: 2.2.3 + mos-plugin-snippet: 2.1.3 + mos-plugin-toc: 1.2.3 + mos-processor: 1.2.2 + mos-read-pkg-up: 1.0.0 + mos-tap-diff: 1.0.0 + normalize-newline: 2.0.0 + normalize-path: 2.0.1 + rcfile: 1.0.3 + relative: 3.0.2 + resolve-cwd: 1.0.0 + resolve-from: 2.0.0 + tape: 4.5.1 + update-notifier: 0.7.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-t+m8RNw22I6vHVgmBn54ySEeqVE= + /ms/2.0.0: + 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== + /next-path/1.0.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha1-gixFgNer54PfGZZbeJYiyoAWA+Q= + /nice-try/1.0.4: + dev: true + resolution: + integrity: sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA== + /node-status-codes/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8= + /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.6.0 + is-builtin-module: 1.0.0 + semver: 5.5.0 + validate-npm-package-license: 3.0.3 + dev: true + 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= + /normalize-registry-url/1.0.0: + dev: false + resolution: + integrity: sha512-0v6T4851b72ykk5zEtFoN4QX/Fqyk7pouIj9xZyAvAe9jlDhAwT4z6FlwsoQCHjeuK2EGUoAwy/F4y4B1uZq9A== + /number-is-nan/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + /object-assign/4.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /object-inspect/1.1.0: + dev: true + resolution: + integrity: sha1-NLymRKgPlPi6QaD50JhOr2Os8U0= + /object-inspect/1.5.0: + dev: true + resolution: + integrity: sha512-UmOFbHbwvv+XHj7BerrhVq+knjceBdkvU5AriwLMvhv2qi+e7DJzxfBeFpILEjVzCp+xA+W/pIf06RGPWlZNfw== + /object-keys/1.0.11: + engines: + node: '>= 0.4' + resolution: + integrity: sha1-xUYBd4rVYPEULODgG8yotW0TQm0= + /object.getownpropertydescriptors/2.0.3: + dependencies: + define-properties: 1.1.2 + es-abstract: 1.11.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: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + /os-tmpdir/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + /osenv/0.1.5: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: true + resolution: + integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + /p-is-promise/1.1.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + /p-limit/1.2.0: + dependencies: + p-try: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng== + /p-locate/2.0.0: + dependencies: + p-limit: 1.2.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.5.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs= + /package-preview/1.0.5: + dependencies: + '@pnpm/exec': 1.1.4 + '@types/fs-extra': 5.0.1 + '@types/load-json-file': 2.0.7 + '@types/mz': 0.0.32 + '@types/node': 9.6.2 + '@types/write-json-file': 2.2.1 + cross-spawn: 6.0.5 + find-down: 0.1.4 + fs-extra: 5.0.0 + graceful-fs: 4.1.11 + load-json-file: 4.0.0 + meow: 4.0.0 + mz: 2.7.0 + rimraf-then: 1.0.1 + symlink-dir: 1.1.2 + unpack-stream: 3.0.2 + write-json-file: 2.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-Qmhr23K9e2jI4LK4MU2be4xWX0CyniBDwmyCi6K+3lTZtryd2r29Wh6wPXo6wdP++jNsJ5ayZT4yJlZWVHnluQ== + /pako/0.2.9: + dev: true + resolution: + integrity: sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + /parse-entities/1.1.1: + dependencies: + character-entities: 1.2.1 + character-entities-legacy: 1.1.1 + character-reference-invalid: 1.1.1 + is-alphanumerical: 1.0.1 + is-decimal: 1.0.1 + is-hexadecimal: 1.0.1 + dev: true + resolution: + integrity: sha1-gRLYhHExnyerrk1klksSL+ThuJA= + /parse-json/2.2.0: + dependencies: + error-ex: 1.3.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /parse-json/4.0.0: + dependencies: + error-ex: 1.3.1 + json-parse-better-errors: 1.0.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: + dev: true + 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.5: + dev: true + resolution: + integrity: sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME= + /path-type/1.1.0: + dependencies: + graceful-fs: 4.1.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + /path-type/3.0.0: + dependencies: + pify: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + /peek-stream/1.1.3: + dependencies: + buffer-from: 1.0.0 + duplexify: 3.5.4 + through2: 2.0.3 + dev: true + resolution: + integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== + /pify/2.3.0: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + /pify/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + /pinkie-promise/2.0.1: + dependencies: + pinkie: 2.0.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o= + /pinkie/2.0.4: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + /plur/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY= + /pnpm-shrinkwrap/6.2.4: + dependencies: + '@pnpm/resolver-base': 1.0.0 + '@types/js-yaml': 3.11.1 + '@types/node': 9.6.2 + '@types/ramda': 0.25.21 + dependency-path: 1.2.1 + get-npm-tarball-url: 2.0.1 + js-yaml: 3.11.0 + load-yaml-file: 0.1.0 + mkdirp-promise: 5.0.1 + ramda: 0.25.0 + rimraf-then: 1.0.1 + util.promisify: 1.0.0 + write-file-atomic: 2.3.0 + dev: false + engines: + node: '>=4' + peerDependencies: + '@pnpm/logger': ^1.0.0 + resolution: + integrity: sha512-6jS1RYFe5vfaoo2+JRQ9xIQ91oDOsYp6xCrJyCkmweKJ5ezXd2PNiYhOpZkwvVNj1NoBRN9IWS4L0/Ld2rIQcg== + /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: + dev: true + 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= + /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.4.0: + dependencies: + duplexify: 3.5.4 + inherits: 2.0.3 + pump: 2.0.1 + dev: true + resolution: + integrity: sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA== + /quick-lru/1.1.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + /ramda/0.25.0: + dev: false + resolution: + integrity: sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== + /rc/1.2.6: + dependencies: + deep-extend: 0.4.2 + ini: 1.3.5 + minimist: 1.2.0 + strip-json-comments: 2.0.1 + dev: true + resolution: + integrity: sha1-6xiYnG1PTxYsOZ953dKfODVWgJI= + /rcfile/1.0.3: + dependencies: + debug: 2.6.9 + js-yaml: 3.11.0 + json5: 0.5.1 + object-assign: 4.1.1 + object-keys: 1.0.11 + path-exists: 2.1.0 + require-uncached: 1.0.3 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-wdgXXCiRh8Hci7OpY7bURAF7FXY= + /read-all-stream/3.1.0: + dependencies: + pinkie-promise: 2.0.1 + readable-stream: 2.3.6 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po= + /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.1 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + 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.6 + safe-buffer: 5.1.1 + dev: true + resolution: + integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== + /registry-url/3.1.0: + dependencies: + rc: 1.2.6 + 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= + /require-uncached/1.0.3: + dependencies: + caller-path: 0.1.0 + resolve-from: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + /reserved-words/0.1.2: + dev: true + resolution: + integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= + /resolve-cwd/1.0.0: + dependencies: + resolve-from: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Tq7qQe0EDRcCRX32SkKysH0kb58= + /resolve-from/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + /resolve-from/2.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + /resolve/1.1.7: + dev: true + resolution: + integrity: sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + /resolve/1.5.0: + dependencies: + path-parse: 1.0.5 + dev: true + resolution: + integrity: sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw== + /resolve/1.6.0: + dependencies: + path-parse: 1.0.5 + dev: true + resolution: + integrity: sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw== + /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 + resolution: + integrity: sha1-vURYp561YbdUiq7ArDdT70Kf5ws= + /rimraf/2.6.2: + dependencies: + glob: 7.1.2 + resolution: + integrity: sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== + /rollup-plugin-babel/2.4.0: + dependencies: + babel-core: 6.26.0 + babel-plugin-transform-es2015-classes: 6.24.1 + object-assign: 4.1.1 + rollup-pluginutils: 1.5.2 + dev: true + resolution: + integrity: sha1-gqfhZPopFCq9B7UmucfALV6jO70= + /rollup-plugin-includepaths/0.1.2: + dev: true + resolution: + integrity: sha1-VuhDgwmmK5QYnkIIqA+a/BUf3WA= + /rollup-pluginutils/1.5.2: + dependencies: + estree-walker: 0.2.1 + minimatch: 3.0.4 + dev: true + resolution: + integrity: sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg= + /rollup/0.25.8: + dependencies: + chalk: 1.1.3 + minimist: 1.2.0 + source-map-support: 0.3.3 + dev: true + resolution: + integrity: sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA= + /safe-buffer/5.1.1: + dev: true + resolution: + integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + /semver-diff/2.1.0: + dependencies: + semver: 5.5.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + /semver/5.5.0: + resolution: + integrity: sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + /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: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + /slide/1.1.6: + dev: true + 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.4: + dependencies: + source-map: 0.6.1 + dev: true + resolution: + integrity: sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg== + /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.0: + dependencies: + spdx-expression-parse: 3.0.0 + spdx-license-ids: 3.0.0 + dev: true + resolution: + integrity: sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g== + /spdx-exceptions/2.1.0: + dev: true + resolution: + integrity: sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg== + /spdx-expression-parse/3.0.0: + dependencies: + spdx-exceptions: 2.1.0 + spdx-license-ids: 3.0.0 + dev: true + resolution: + integrity: sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + /spdx-license-ids/3.0.0: + dev: true + resolution: + integrity: sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA== + /sprintf-js/1.0.3: + resolution: + integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /ssri/5.3.0: + dependencies: + safe-buffer: 5.1.1 + dev: true + resolution: + integrity: sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + /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 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + /string.prototype.trim/1.1.2: + dependencies: + define-properties: 1.1.2 + es-abstract: 1.11.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.1 + dev: true + resolution: + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /stringify-entities/1.3.1: + dependencies: + character-entities-html4: 1.1.1 + character-entities-legacy: 1.1.1 + is-alphanumerical: 1.0.1 + is-hexadecimal: 1.0.1 + dev: true + resolution: + integrity: sha1-sVDsLXKsTBtfMktR+2soyc3/BYw= + /strip-ansi/0.3.0: + dependencies: + ansi-regex: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= + /strip-ansi/3.0.1: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + /strip-bom/2.0.0: + dependencies: + is-utf8: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + /strip-bom/3.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-indent/1.0.1: + dependencies: + get-stdin: 4.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + /strip-indent/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + /strip-json-comments/2.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= + /supports-color/0.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= + /supports-color/2.0.0: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + /supports-color/5.3.0: + dependencies: + has-flag: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg== + /symlink-dir/1.1.2: + dependencies: + '@types/mz': 0.0.32 + '@types/node': 9.6.2 + graceful-fs: 4.1.11 + is-windows: 1.0.2 + mkdirp-promise: 5.0.1 + mz: 2.7.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-GXEvwF1zpalvovqO+x18H7k+4adCXn9NU6vjfEQ+cVS7Ltq7YXFQyitdl7WoQqNUMce3RGMPo037GJrtM7f7lw== + /tap-parser/1.3.2: + dependencies: + events-to-array: 1.1.2 + inherits: 2.0.3 + js-yaml: 3.11.0 + dev: 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.1 + inherits: 2.0.3 + minimist: 1.2.0 + object-inspect: 1.1.0 + resolve: 1.1.7 + resumer: 0.0.0 + string.prototype.trim: 1.1.2 + through: 2.3.8 + dev: true + resolution: + integrity: sha1-K7PqGb3J9SJSF7P5fL95hsxMbow= + /tape/4.9.0: + dependencies: + deep-equal: 1.0.1 + defined: 1.0.0 + for-each: 0.3.2 + function-bind: 1.1.1 + glob: 7.1.2 + has: 1.0.1 + inherits: 2.0.3 + minimist: 1.2.0 + object-inspect: 1.5.0 + resolve: 1.5.0 + resumer: 0.0.0 + string.prototype.trim: 1.1.2 + through: 2.3.8 + dev: true + resolution: + integrity: sha512-j0jO9BiScfqtPBb9QmPLL0qvxXMz98xjkMb7x8lKipFlJZwNJkqkWPou+NU4V6T9RnVh1kuSthLE8gLrN8bBfw== + /tar-fs/1.16.0: + dependencies: + chownr: 1.0.1 + mkdirp: 0.5.1 + pump: 1.0.3 + tar-stream: 1.5.5 + dev: true + resolution: + integrity: sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg== + /tar-stream/1.5.5: + dependencies: + bl: 1.2.2 + end-of-stream: 1.4.1 + readable-stream: 2.3.6 + xtend: 4.0.1 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg== + /the-argv/1.0.0: + dev: true + resolution: + integrity: sha1-AIRwUAVzDdhNt1UlPJMa45jblSI= + /thenify-all/1.6.0: + dependencies: + thenify: 3.3.0 + 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.3: + dependencies: + readable-stream: 2.3.6 + xtend: 4.0.1 + dev: true + resolution: + integrity: sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= + /timed-out/3.1.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc= + /to-fast-properties/1.0.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + /trim-newlines/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WIeWa7WCpFA6QetST301ARgVphM= + /trim-newlines/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + /trim-right/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + /trim-trailing-lines/1.1.0: + dev: true + resolution: + integrity: sha1-eu+7eAjfnWafbaLkOMrIxGradoQ= + /trim/0.0.1: + dev: true + resolution: + integrity: sha1-WFhUf2spB1fulczMZm+1AITEYN0= + /ts-node/5.0.1: + dependencies: + arrify: 1.0.1 + chalk: 2.3.2 + diff: 3.5.0 + make-error: 1.3.4 + minimist: 1.2.0 + mkdirp: 0.5.1 + source-map-support: 0.5.4 + yn: 2.0.0 + dev: true + engines: + node: '>=4.2.0' + resolution: + integrity: sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw== + /tslib/1.9.0: + dev: true + resolution: + integrity: sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== + /tslint/5.9.1: + dependencies: + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 2.3.2 + commander: 2.15.1 + diff: 3.5.0 + glob: 7.1.2 + js-yaml: 3.11.0 + minimatch: 3.0.4 + resolve: 1.6.0 + semver: 5.5.0 + tslib: 1.9.0 + tsutils: 2.26.0 + dev: true + engines: + node: '>=4.8.0' + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev' + resolution: + integrity: sha1-ElX4ej/1frCw4fDmEKi0dIBGya4= + /tsutils/2.26.0: + dependencies: + tslib: 1.9.0 + dev: true + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 2.10.0-dev' + resolution: + integrity: sha512-hXUttgxeaZ/uPP/dpeiWUHbP5h744mPrfN2YFFtcZzd7vBRPBP6Knr0Mt6Bd+5SntMn8/1r6IGFeYPDSBIIPpg== + /typescript/2.8.1: + dev: true + engines: + node: '>=4.2.0' + resolution: + integrity: sha512-Ao/f6d/4EPLq0YwzsQz8iXflezpTkQzqAyenTiw4kCUGr1uPiFLC3+fZ+gMZz6eeI/qdRUqvC+HxIJzUAzEFdg== + /unbzip2-stream/1.2.5: + dependencies: + buffer: 3.6.0 + through: 2.3.8 + dev: true + resolution: + integrity: sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og== + /unist-util-is/2.1.1: + dev: true + resolution: + integrity: sha1-DDEmKeP5YMZukx6BLT2A53AQlHs= + /unist-util-remove-position/1.1.1: + dependencies: + unist-util-visit: 1.3.0 + dev: true + resolution: + integrity: sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs= + /unist-util-visit/1.3.0: + dependencies: + unist-util-is: 2.1.1 + dev: true + resolution: + integrity: sha512-9ntYcxPFtl44gnwXrQKZ5bMqXMY0ZHzUpqMFiU4zcc8mmf/jzYm8GhYgezuUlX4cJIM1zIDYaO6fG/fI+L6iiQ== + /universalify/0.1.1: + dev: true + resolution: + integrity: sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc= + /unpack-stream/3.0.2: + dependencies: + '@types/node': 9.6.2 + decompress-maybe: 1.0.0 + ssri: 5.3.0 + tar-fs: 1.16.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-mdQv3N9fkxG04/4G8HLg3Q/whJscMTUikRQU2pTr4ISU9t59xoRGUEeqpUwpj78jZUPB7LN6oabkyZJ574MleA== + /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= + /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: + dev: true + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /util.promisify/1.0.0: + dependencies: + define-properties: 1.1.2 + object.getownpropertydescriptors: 2.0.3 + dev: false + resolution: + integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + /uuid/2.0.3: + dev: true + resolution: + integrity: sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= + /validate-npm-package-license/3.0.3: + dependencies: + spdx-correct: 3.0.0 + spdx-expression-parse: 3.0.0 + dev: true + resolution: + integrity: sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g== + /which/1.3.0: + dependencies: + isexe: 2.0.0 + dev: true + resolution: + integrity: sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg== + /widest-line/1.0.0: + dependencies: + string-width: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw= + /wrappy/1.0.2: + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /write-file-atomic/1.3.4: + dependencies: + graceful-fs: 4.1.11 + imurmurhash: 0.1.4 + slide: 1.1.6 + dev: true + resolution: + integrity: sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= + /write-file-atomic/2.3.0: + dependencies: + graceful-fs: 4.1.11 + imurmurhash: 0.1.4 + signal-exit: 3.0.2 + resolution: + integrity: sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== + /write-json-file/1.2.0: + dependencies: + graceful-fs: 4.1.11 + mkdirp: 0.5.1 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + sort-keys: 1.1.2 + write-file-atomic: 1.3.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-LV3+lqvDyIkFfJOXGqQAXvtUgTQ= + /write-json-file/2.3.0: + dependencies: + detect-indent: 5.0.0 + graceful-fs: 4.1.11 + make-dir: 1.2.0 + pify: 3.0.0 + sort-keys: 2.0.0 + write-file-atomic: 2.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + /write-pkg/1.0.0: + dependencies: + write-json-file: 1.2.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-rriqnU14jh2JPfsIVJaLVDqRn1c= + /xdg-basedir/2.0.0: + dependencies: + os-homedir: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I= + /xtend/4.0.1: + dev: true + engines: + node: '>=0.4' + resolution: + integrity: sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + /yallist/2.1.2: + dev: true + resolution: + integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + /yn/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= +registry: 'https://registry.npmjs.org/' +shrinkwrapMinorVersion: 4 +shrinkwrapVersion: 3 +specifiers: + '@types/ramda': ^0.25.21 + '@types/tape': ^4.2.31 + mos: ^2.0.0-alpha.3 + mos-plugin-readme: ^1.0.4 + package-preview: ^1.0.1 + pnpm-shrinkwrap: ^6.2.4 + ramda: ^0.25.0 + rimraf: ^2.6.2 + tape: ^4.8.0 + ts-node: ^5.0.0 + tslint: ^5.8.0 + typescript: ^2.6.1 diff --git a/src/cli.ts b/src/cli.ts new file mode 100644 index 0000000..2bf485e --- /dev/null +++ b/src/cli.ts @@ -0,0 +1,27 @@ +#!/usr/bin/env node +// import mergeShrinkwrapFiles from '.' + +// console.log('MERGING shrinkwrap.yaml') + +// mergeShrinkwrapFiles({ +// oursFileName: process.argv[2], +// baseFileName: process.argv[3], +// theirsFileName: process.argv[4], +// }) + +// import loadYamlFile from 'load-yaml-file' +// import {Shrinkwrap} from 'pnpm-shrinkwrap' +// import R = require('ramda') + +// export default ( +// opts: { +// oursFileName: string, +// baseFileName: string, +// theirsFileName: string, +// }, +// ) => { +// const oursShrinkwrap = loadYamlFile.sync(opts.oursFileName) +// const theirsShrinkwrap = loadYamlFile.sync(opts.theirsFileName) +// const newOursShrinkwrap = mergeShrinkwrap(oursShrinkwrap, theirsShrinkwrap) +// writeYamlFile.sync(opts.oursFileName, newOursShrinkwrap) +// } diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..caa4f95 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,63 @@ +import { + prune, + ResolvedDependencies, + Shrinkwrap, +} from 'pnpm-shrinkwrap' +import R = require('ramda') + +export default function mergeShrinkwrap ( + opts: { + base: Shrinkwrap, + ours: Shrinkwrap, + theirs: Shrinkwrap, + }, +) { + const newShr = { + specifiers: {}, + } as Shrinkwrap + + newShr.registry = takeChangedValue(opts.ours.registry, opts.base.registry, opts.theirs.registry, 'registry') + + for (const key of ['specifiers', 'dependencies', 'devDependencies', 'optionalDependencies']) { + newShr[key] = mergeDict(opts.ours[key], opts.base[key], opts.theirs[key], key) + } + + if (R.keys(opts.ours.packages).length >= R.keys(opts.theirs.packages).length) { + newShr.packages = { + ...opts.ours.packages, + ...opts.theirs.packages, + } + } else { + newShr.packages = { + ...opts.theirs.packages, + ...opts.ours.packages, + } + } + + return prune(newShr) +} + +interface Dict {[key: string]: string} + +function mergeDict (ourDict: Dict, baseDict: Dict, theirDict: Dict, fieldName: string) { + const newDict = {} + for (const key of R.keys(ourDict).concat(R.keys(theirDict))) { + const changedValue = takeChangedValue( + ourDict[key], + baseDict[key], + theirDict[key], + `${fieldName}.${key}`, + ) + if (changedValue) { + newDict[key] = changedValue + } + } + return newDict +} + +function takeChangedValue (ourValue: T, baseValue: T, theirValue: T, fieldName: string): T { + if (ourValue === theirValue) return ourValue + if (baseValue === ourValue) return theirValue + if (baseValue === theirValue) return ourValue + throw new Error(`Cannot resolve '${fieldName}'. Base value: ${baseValue}. Our: ${ourValue}. Their: ${theirValue}`) +} diff --git a/src/setup.ts b/src/setup.ts new file mode 100644 index 0000000..b377692 --- /dev/null +++ b/src/setup.ts @@ -0,0 +1,20 @@ +// import path = require('path') +// import findUp = require('find-up') +// import git = require('graceful-git') +// import normalize = require('normalize-path') + +// const repoPath = path.dirname(findUp.sync('.git')) + +// process.chdir(repoPath) + +// const driver = `node ./${normalize(path.relative(repoPath, path.join(__dirname, 'lib', 'cli.js')))} %A %O %B` + +// console.log(`...adding integity file merge driver to git config at ${path.join(repoPath, '.git', 'config')}`) + +// git(['config', '--local', 'merge.pnpm-merge-driver.name', 'pnpm-merge-driver']) +// .then(() => git(['config', '--local', 'merge.pnpm-merge-driver.driver', driver])) +// .then(() => console.log('.git/config successfully updated')) +// .catch(err => { +// console.error(err) +// process.exit(1) +// }) diff --git a/test/index.ts b/test/index.ts new file mode 100644 index 0000000..c75523f --- /dev/null +++ b/test/index.ts @@ -0,0 +1,199 @@ +import test = require('tape') +import mergeShrinkwraps from '@pnpm/merge-driver' + +const simpleShr = { + dependencies: { + foo: '1.0.0', + }, + packages: { + '/foo/1.0.0': { + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + registry: 'https://registry.npmjs.org/', + specifiers: { + foo: '1.0.0', + }, + shrinkwrapVersion: 3, +} + +test('fails when registry fields differ', t => { + t.throws(() => { + mergeShrinkwraps({ + base: simpleShr, + ours: {...simpleShr, registry: 'https://registry.node-modules.io/'}, + theirs: {...simpleShr, registry: 'https://registry.yarnpkg.com/'}, + }) + }, /Cannot resolve 'registry'/, 'The registry field has been changed in both our/their') + t.end() +}) + +test('fails when specifiers differ', t => { + t.throws(() => { + mergeShrinkwraps({ + base: simpleShr, + ours: {...simpleShr, specifiers: {foo: '^1.0.0'}}, + theirs: {...simpleShr, specifiers: {foo: '^1.1.0'}}, + }) + }, /Cannot resolve 'specifiers.foo'/, 'Cannot merge specifiers field') + t.end() +}) + +test('fails when dependencies differ', t => { + t.throws(() => { + mergeShrinkwraps({ + base: simpleShr, + ours: {...simpleShr, dependencies: {foo: '1.2.0'}}, + theirs: {...simpleShr, dependencies: {foo: '1.1.0'}}, + }) + }, /Cannot resolve 'dependencies.foo'/, 'Cannot merge dependencies field') + t.end() +}) + +test('prefers our shrinkwrap resolutions when it has less packages', t => { + const mergedShrinkwrap = mergeShrinkwraps({ + base: simpleShr, + ours: { + ...simpleShr, + packages: { + '/foo/1.0.0': { + dependencies: { + bar: '1.0.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/bar/1.0.0': { + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + }, + theirs: { + ...simpleShr, + packages: { + '/foo/1.0.0': { + dependencies: { + bar: '1.1.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/bar/1.1.0': { + dependencies: { + qar: '1.0.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/qar/1.0.0': { + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + }, + }) + + t.deepEqual(mergedShrinkwrap, { + ...simpleShr, + packages: { + '/foo/1.0.0': { + dev: false, + dependencies: { + bar: '1.0.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/bar/1.0.0': { + dev: false, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + }) + + t.end() +}) + +test('prefers our shrinkwrap resolutions when it has less packages', t => { + const mergedShrinkwrap = mergeShrinkwraps({ + base: simpleShr, + theirs: { + ...simpleShr, + packages: { + '/foo/1.0.0': { + dependencies: { + bar: '1.0.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/bar/1.0.0': { + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + }, + ours: { + ...simpleShr, + packages: { + '/foo/1.0.0': { + dependencies: { + bar: '1.1.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/bar/1.1.0': { + dependencies: { + qar: '1.0.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/qar/1.0.0': { + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + }, + }) + + t.deepEqual(mergedShrinkwrap, { + ...simpleShr, + packages: { + '/foo/1.0.0': { + dev: false, + dependencies: { + bar: '1.0.0', + }, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + '/bar/1.0.0': { + dev: false, + resolution: { + integrity: 'sha512-aBVzCAzfyApU0gg36QgCpJixGtYwuQ4djrn11J+DTB5vE4OmBPuZiulgTCA9ByULgVAyNV2CTpjjvZmxzukSLw==', + }, + }, + }, + }) + + t.end() +}) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e1c5b75 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "removeComments": false, + "preserveConstEnums": true, + "sourceMap": true, + "declaration": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "suppressImplicitAnyIndexErrors": true, + "allowSyntheticDefaultImports": true, + "strictNullChecks": true, + "target": "es6", + "outDir": "lib", + "module": "commonjs", + "moduleResolution": "node" + }, + "include": [ + "src/**/*.ts", + "typings/**/*.d.ts" + ], + "atom": { + "rewriteTsconfig": true + } +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..f19503c --- /dev/null +++ b/tslint.json @@ -0,0 +1,44 @@ +{ + "extends": "tslint:recommended", + "rules": { + "curly": false, + "eofline": false, + "align": [true, "parameters"], + "class-name": true, + "indent": [true, "spaces"], + "max-line-length": false, + "no-any": true, + "no-consecutive-blank-lines": true, + "no-trailing-whitespace": true, + "no-duplicate-variable": true, + "no-var-keyword": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-requires": true, + "no-require-imports": false, + "space-before-function-paren": [true, "always"], + "interface-name": [true, "never-prefix"], + "no-console": false, + "one-line": [true, + "check-else", + "check-whitespace", + "check-open-brace"], + "quotemark": [true, + "single", + "avoid-escape"], + "semicolon": false, + "typedef-whitespace": [true, { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }], + "whitespace": [true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type"] + } +}