From c6c193aa4c979eb9f928d36f31857b4d4d6a86ed Mon Sep 17 00:00:00 2001 From: Maximilian Stoiber Date: Fri, 9 Mar 2018 11:23:10 +0100 Subject: [PATCH] Initial commit --- .babelrc | 7 + .flowconfig | 11 + .gitignore | 9 + .npmignore | 10 + .prettierrc | 4 + .travis.yml | 13 + LICENSE.md | 21 + README.md | 50 + flow-typed/npm/babel-cli_vx.x.x.js | 108 + flow-typed/npm/babel-core_vx.x.x.js | 253 ++ flow-typed/npm/babel-eslint_vx.x.x.js | 52 + ...babel-plugin-transform-react-jsx_vx.x.x.js | 34 + .../babel-plugin-transform-runtime_vx.x.x.js | 41 + flow-typed/npm/babel-polyfill_vx.x.x.js | 67 + flow-typed/npm/babel-preset-env_vx.x.x.js | 88 + flow-typed/npm/babel-preset-es2015_vx.x.x.js | 32 + flow-typed/npm/babel-preset-flow_vx.x.x.js | 32 + flow-typed/npm/babel-preset-stage-2_vx.x.x.js | 32 + flow-typed/npm/eslint-plugin-babel_vx.x.x.js | 138 + flow-typed/npm/eslint_vx.x.x.js | 1585 ++++++++ flow-typed/npm/flow-bin_v0.x.x.js | 6 + flow-typed/npm/husky_vx.x.x.js | 88 + flow-typed/npm/iterall_vx.x.x.js | 33 + flow-typed/npm/jest_v21.x.x.js | 584 +++ flow-typed/npm/lint-staged_vx.x.x.js | 94 + flow-typed/npm/prettier_v1.x.x.js | 178 + flow-typed/npm/rimraf_v2.x.x.js | 18 + package.json | 39 + src/index.js | 96 + src/test/index.test.js | 108 + yarn.lock | 3513 +++++++++++++++++ 31 files changed, 7344 insertions(+) create mode 100644 .babelrc create mode 100644 .flowconfig create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 .prettierrc create mode 100644 .travis.yml create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 flow-typed/npm/babel-cli_vx.x.x.js create mode 100644 flow-typed/npm/babel-core_vx.x.x.js create mode 100644 flow-typed/npm/babel-eslint_vx.x.x.js create mode 100644 flow-typed/npm/babel-plugin-transform-react-jsx_vx.x.x.js create mode 100644 flow-typed/npm/babel-plugin-transform-runtime_vx.x.x.js create mode 100644 flow-typed/npm/babel-polyfill_vx.x.x.js create mode 100644 flow-typed/npm/babel-preset-env_vx.x.x.js create mode 100644 flow-typed/npm/babel-preset-es2015_vx.x.x.js create mode 100644 flow-typed/npm/babel-preset-flow_vx.x.x.js create mode 100644 flow-typed/npm/babel-preset-stage-2_vx.x.x.js create mode 100644 flow-typed/npm/eslint-plugin-babel_vx.x.x.js create mode 100644 flow-typed/npm/eslint_vx.x.x.js create mode 100644 flow-typed/npm/flow-bin_v0.x.x.js create mode 100644 flow-typed/npm/husky_vx.x.x.js create mode 100644 flow-typed/npm/iterall_vx.x.x.js create mode 100644 flow-typed/npm/jest_v21.x.x.js create mode 100644 flow-typed/npm/lint-staged_vx.x.x.js create mode 100644 flow-typed/npm/prettier_v1.x.x.js create mode 100644 flow-typed/npm/rimraf_v2.x.x.js create mode 100644 package.json create mode 100644 src/index.js create mode 100644 src/test/index.test.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..139aa70 --- /dev/null +++ b/.babelrc @@ -0,0 +1,7 @@ +{ + "presets": ["flow", ["env", { + "targets": { + "node": "6" + } + }]] +} diff --git a/.flowconfig b/.flowconfig new file mode 100644 index 0000000..fee1baa --- /dev/null +++ b/.flowconfig @@ -0,0 +1,11 @@ +[ignore] +.*/node_modules/.* + +[include] + +[libs] + +[options] +suppress_comment=.*\\$FlowFixMe +esproposal.class_instance_fields=enable +esproposal.class_static_fields=enable diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d4c6fc8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.swp +*~ +*.iml +.*.haste_cache.* +.DS_Store +.idea +npm-debug.log +node_modules +dist diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..59a0c0a --- /dev/null +++ b/.npmignore @@ -0,0 +1,10 @@ +*.swp +*~ +*.iml +.*.haste_cache.* +.DS_Store +.idea +.babelrc +.eslintrc +npm-debug.log +lib diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..c6a1376 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "trailingComma": "es5", + "singleQuote": true +} diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..6bf3938 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,13 @@ +language: node_js +node_js: + - 8 +script: + - node --version + - yarn --version + - yarn run test +notifications: + email: false +cache: + yarn: true + directories: + - node_modules diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..afa8ff4 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Maximilian Stoiber + +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..0524fe5 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# `callback-to-async-iterator` + +Turn any callback-based listener into an async iterator. + +We needed this module to turn our database listeners into async iterators, which is what GraphQL subscriptions expect to be passed. It might be useful for you too! + +```sh +npm install callback-to-async-iterator +``` + +## Usage + +Imagine a standard callback-based listener like this: + +```JS +// callback will be called with each new message added to the database +const listenToNewMessages = (callback) => { + return db.messages.listen(message => callback(message)); +} +``` + +The problem is that callbacks are _push_ based, they push values to the listener whenever a new value is availabe. Async Iterators on the other hand are _pull_ based, they request a new value and wait until it is available. + +This module reconciliates that difference so you can turn your standard callback-based listener into an async iterator: + +```JS +import asyncify from 'callback-to-async-iterator'; + +const messages = asyncify(listenToNewMessages); + +// Wait until the first message is sent +const firstMessage = await messages.next(); + +// Asynchronously iterate over new messages and log them as they come in +for await (let message of messages) { + console.log(message); +} + +console.log('Done!') +``` + +This module will automatically buffer incoming data if `.next` hasn't been called yet. + +## Credits + +This module is heavily based on the [event emitter to async iterator](https://github.com/apollographql/graphql-subscriptions/blob/master/src/event-emitter-to-async-iterator.ts) utility used in `graphql-js`. Also big shoutout to [@ForbesLindesay](https://github.com/ForbesLindesay) who helped a ton with the initial implementation and understanding the problem. + +## License + +Licensed under the MIT License, Copyright ©️ 2017 Maximilian Stoiber. See [LICENSE.md](LICENSE.md) for more information. diff --git a/flow-typed/npm/babel-cli_vx.x.x.js b/flow-typed/npm/babel-cli_vx.x.x.js new file mode 100644 index 0000000..74b2b9f --- /dev/null +++ b/flow-typed/npm/babel-cli_vx.x.x.js @@ -0,0 +1,108 @@ +// flow-typed signature: 904df3d3f1a067e0190edaa0e695a96e +// flow-typed version: <>/babel-cli_v^6.26.0/flow_v0.66.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-cli' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-cli' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-cli/bin/babel-doctor' { + declare module.exports: any; +} + +declare module 'babel-cli/bin/babel-external-helpers' { + declare module.exports: any; +} + +declare module 'babel-cli/bin/babel-node' { + declare module.exports: any; +} + +declare module 'babel-cli/bin/babel' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/_babel-node' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/babel-external-helpers' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/babel-node' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/babel/dir' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/babel/file' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/babel/index' { + declare module.exports: any; +} + +declare module 'babel-cli/lib/babel/util' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-cli/bin/babel-doctor.js' { + declare module.exports: $Exports<'babel-cli/bin/babel-doctor'>; +} +declare module 'babel-cli/bin/babel-external-helpers.js' { + declare module.exports: $Exports<'babel-cli/bin/babel-external-helpers'>; +} +declare module 'babel-cli/bin/babel-node.js' { + declare module.exports: $Exports<'babel-cli/bin/babel-node'>; +} +declare module 'babel-cli/bin/babel.js' { + declare module.exports: $Exports<'babel-cli/bin/babel'>; +} +declare module 'babel-cli/index' { + declare module.exports: $Exports<'babel-cli'>; +} +declare module 'babel-cli/index.js' { + declare module.exports: $Exports<'babel-cli'>; +} +declare module 'babel-cli/lib/_babel-node.js' { + declare module.exports: $Exports<'babel-cli/lib/_babel-node'>; +} +declare module 'babel-cli/lib/babel-external-helpers.js' { + declare module.exports: $Exports<'babel-cli/lib/babel-external-helpers'>; +} +declare module 'babel-cli/lib/babel-node.js' { + declare module.exports: $Exports<'babel-cli/lib/babel-node'>; +} +declare module 'babel-cli/lib/babel/dir.js' { + declare module.exports: $Exports<'babel-cli/lib/babel/dir'>; +} +declare module 'babel-cli/lib/babel/file.js' { + declare module.exports: $Exports<'babel-cli/lib/babel/file'>; +} +declare module 'babel-cli/lib/babel/index.js' { + declare module.exports: $Exports<'babel-cli/lib/babel/index'>; +} +declare module 'babel-cli/lib/babel/util.js' { + declare module.exports: $Exports<'babel-cli/lib/babel/util'>; +} diff --git a/flow-typed/npm/babel-core_vx.x.x.js b/flow-typed/npm/babel-core_vx.x.x.js new file mode 100644 index 0000000..fef26ea --- /dev/null +++ b/flow-typed/npm/babel-core_vx.x.x.js @@ -0,0 +1,253 @@ +// flow-typed signature: 7bf9d14923aea1eaa52b35f1d971c5fd +// flow-typed version: <>/babel-core_v6.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-core' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-core' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-core/lib/api/browser' { + declare module.exports: any; +} + +declare module 'babel-core/lib/api/node' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/get-possible-plugin-names' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/get-possible-preset-names' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/merge' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/normalize-ast' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve-from-possible-names' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve-plugin' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve-preset' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve' { + declare module.exports: any; +} + +declare module 'babel-core/lib/store' { + declare module.exports: any; +} + +declare module 'babel-core/lib/tools/build-external-helpers' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/index' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/logger' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/metadata' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/build-config-chain' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/config' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/index' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/option-manager' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/parsers' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/removed' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/internal-plugins/block-hoist' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/internal-plugins/shadow-functions' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/pipeline' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/plugin-pass' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/plugin' { + declare module.exports: any; +} + +declare module 'babel-core/lib/util' { + declare module.exports: any; +} + +declare module 'babel-core/register' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-core/index' { + declare module.exports: $Exports<'babel-core'>; +} +declare module 'babel-core/index.js' { + declare module.exports: $Exports<'babel-core'>; +} +declare module 'babel-core/lib/api/browser.js' { + declare module.exports: $Exports<'babel-core/lib/api/browser'>; +} +declare module 'babel-core/lib/api/node.js' { + declare module.exports: $Exports<'babel-core/lib/api/node'>; +} +declare module 'babel-core/lib/helpers/get-possible-plugin-names.js' { + declare module.exports: $Exports< + 'babel-core/lib/helpers/get-possible-plugin-names' + >; +} +declare module 'babel-core/lib/helpers/get-possible-preset-names.js' { + declare module.exports: $Exports< + 'babel-core/lib/helpers/get-possible-preset-names' + >; +} +declare module 'babel-core/lib/helpers/merge.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/merge'>; +} +declare module 'babel-core/lib/helpers/normalize-ast.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/normalize-ast'>; +} +declare module 'babel-core/lib/helpers/resolve-from-possible-names.js' { + declare module.exports: $Exports< + 'babel-core/lib/helpers/resolve-from-possible-names' + >; +} +declare module 'babel-core/lib/helpers/resolve-plugin.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve-plugin'>; +} +declare module 'babel-core/lib/helpers/resolve-preset.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve-preset'>; +} +declare module 'babel-core/lib/helpers/resolve.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve'>; +} +declare module 'babel-core/lib/store.js' { + declare module.exports: $Exports<'babel-core/lib/store'>; +} +declare module 'babel-core/lib/tools/build-external-helpers.js' { + declare module.exports: $Exports< + 'babel-core/lib/tools/build-external-helpers' + >; +} +declare module 'babel-core/lib/transformation/file/index.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/index'>; +} +declare module 'babel-core/lib/transformation/file/logger.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/logger'>; +} +declare module 'babel-core/lib/transformation/file/metadata.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/metadata' + >; +} +declare module 'babel-core/lib/transformation/file/options/build-config-chain.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/options/build-config-chain' + >; +} +declare module 'babel-core/lib/transformation/file/options/config.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/options/config' + >; +} +declare module 'babel-core/lib/transformation/file/options/index.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/options/index' + >; +} +declare module 'babel-core/lib/transformation/file/options/option-manager.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/options/option-manager' + >; +} +declare module 'babel-core/lib/transformation/file/options/parsers.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/options/parsers' + >; +} +declare module 'babel-core/lib/transformation/file/options/removed.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/file/options/removed' + >; +} +declare module 'babel-core/lib/transformation/internal-plugins/block-hoist.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/internal-plugins/block-hoist' + >; +} +declare module 'babel-core/lib/transformation/internal-plugins/shadow-functions.js' { + declare module.exports: $Exports< + 'babel-core/lib/transformation/internal-plugins/shadow-functions' + >; +} +declare module 'babel-core/lib/transformation/pipeline.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/pipeline'>; +} +declare module 'babel-core/lib/transformation/plugin-pass.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/plugin-pass'>; +} +declare module 'babel-core/lib/transformation/plugin.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/plugin'>; +} +declare module 'babel-core/lib/util.js' { + declare module.exports: $Exports<'babel-core/lib/util'>; +} +declare module 'babel-core/register.js' { + declare module.exports: $Exports<'babel-core/register'>; +} diff --git a/flow-typed/npm/babel-eslint_vx.x.x.js b/flow-typed/npm/babel-eslint_vx.x.x.js new file mode 100644 index 0000000..ab7e209 --- /dev/null +++ b/flow-typed/npm/babel-eslint_vx.x.x.js @@ -0,0 +1,52 @@ +// flow-typed signature: 44996779d2add184de05b256e8c18f6f +// flow-typed version: <>/babel-eslint_v4.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-eslint' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-eslint' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-eslint/eslint-tester' { + declare module.exports: any; +} + +declare module 'babel-eslint/test/babel-eslint' { + declare module.exports: any; +} + +declare module 'babel-eslint/test/non-regression' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-eslint/eslint-tester.js' { + declare module.exports: $Exports<'babel-eslint/eslint-tester'>; +} +declare module 'babel-eslint/index' { + declare module.exports: $Exports<'babel-eslint'>; +} +declare module 'babel-eslint/index.js' { + declare module.exports: $Exports<'babel-eslint'>; +} +declare module 'babel-eslint/test/babel-eslint.js' { + declare module.exports: $Exports<'babel-eslint/test/babel-eslint'>; +} +declare module 'babel-eslint/test/non-regression.js' { + declare module.exports: $Exports<'babel-eslint/test/non-regression'>; +} diff --git a/flow-typed/npm/babel-plugin-transform-react-jsx_vx.x.x.js b/flow-typed/npm/babel-plugin-transform-react-jsx_vx.x.x.js new file mode 100644 index 0000000..3b0f46f --- /dev/null +++ b/flow-typed/npm/babel-plugin-transform-react-jsx_vx.x.x.js @@ -0,0 +1,34 @@ +// flow-typed signature: ef5609e4b925e91ca9cbe1f7dc563fac +// flow-typed version: <>/babel-plugin-transform-react-jsx_v^6.24.1/flow_v0.55.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-plugin-transform-react-jsx' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-plugin-transform-react-jsx' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-plugin-transform-react-jsx/lib/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-plugin-transform-react-jsx/lib/index.js' { + declare module.exports: $Exports< + 'babel-plugin-transform-react-jsx/lib/index' + >; +} diff --git a/flow-typed/npm/babel-plugin-transform-runtime_vx.x.x.js b/flow-typed/npm/babel-plugin-transform-runtime_vx.x.x.js new file mode 100644 index 0000000..9595011 --- /dev/null +++ b/flow-typed/npm/babel-plugin-transform-runtime_vx.x.x.js @@ -0,0 +1,41 @@ +// flow-typed signature: 9f013807fef12f8b39c1305c0141e8cc +// flow-typed version: <>/babel-plugin-transform-runtime_v6.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-plugin-transform-runtime' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-plugin-transform-runtime' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-plugin-transform-runtime/lib/definitions' { + declare module.exports: any; +} + +declare module 'babel-plugin-transform-runtime/lib/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-plugin-transform-runtime/lib/definitions.js' { + declare module.exports: $Exports< + 'babel-plugin-transform-runtime/lib/definitions' + >; +} +declare module 'babel-plugin-transform-runtime/lib/index.js' { + declare module.exports: $Exports<'babel-plugin-transform-runtime/lib/index'>; +} diff --git a/flow-typed/npm/babel-polyfill_vx.x.x.js b/flow-typed/npm/babel-polyfill_vx.x.x.js new file mode 100644 index 0000000..cb7a19e --- /dev/null +++ b/flow-typed/npm/babel-polyfill_vx.x.x.js @@ -0,0 +1,67 @@ +// flow-typed signature: 7a8076dfc3c8e8bb753d30ae796168a5 +// flow-typed version: <>/babel-polyfill_v6.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-polyfill' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-polyfill' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-polyfill/browser' { + declare module.exports: any; +} + +declare module 'babel-polyfill/dist/polyfill' { + declare module.exports: any; +} + +declare module 'babel-polyfill/dist/polyfill.min' { + declare module.exports: any; +} + +declare module 'babel-polyfill/lib/index' { + declare module.exports: any; +} + +declare module 'babel-polyfill/scripts/postpublish' { + declare module.exports: any; +} + +declare module 'babel-polyfill/scripts/prepublish' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-polyfill/browser.js' { + declare module.exports: $Exports<'babel-polyfill/browser'>; +} +declare module 'babel-polyfill/dist/polyfill.js' { + declare module.exports: $Exports<'babel-polyfill/dist/polyfill'>; +} +declare module 'babel-polyfill/dist/polyfill.min.js' { + declare module.exports: $Exports<'babel-polyfill/dist/polyfill.min'>; +} +declare module 'babel-polyfill/lib/index.js' { + declare module.exports: $Exports<'babel-polyfill/lib/index'>; +} +declare module 'babel-polyfill/scripts/postpublish.js' { + declare module.exports: $Exports<'babel-polyfill/scripts/postpublish'>; +} +declare module 'babel-polyfill/scripts/prepublish.js' { + declare module.exports: $Exports<'babel-polyfill/scripts/prepublish'>; +} diff --git a/flow-typed/npm/babel-preset-env_vx.x.x.js b/flow-typed/npm/babel-preset-env_vx.x.x.js new file mode 100644 index 0000000..6346c57 --- /dev/null +++ b/flow-typed/npm/babel-preset-env_vx.x.x.js @@ -0,0 +1,88 @@ +// flow-typed signature: 811f2c6563867cff6805eead16319588 +// flow-typed version: <>/babel-preset-env_v^1.6.0/flow_v0.66.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-preset-env' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-preset-env' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-preset-env/data/built-in-features' { + declare module.exports: any; +} + +declare module 'babel-preset-env/data/plugin-features' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/default-includes' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/index' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/module-transformations' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/normalize-options' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/targets-parser' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/transform-polyfill-require-plugin' { + declare module.exports: any; +} + +declare module 'babel-preset-env/lib/utils' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-preset-env/data/built-in-features.js' { + declare module.exports: $Exports<'babel-preset-env/data/built-in-features'>; +} +declare module 'babel-preset-env/data/plugin-features.js' { + declare module.exports: $Exports<'babel-preset-env/data/plugin-features'>; +} +declare module 'babel-preset-env/lib/default-includes.js' { + declare module.exports: $Exports<'babel-preset-env/lib/default-includes'>; +} +declare module 'babel-preset-env/lib/index.js' { + declare module.exports: $Exports<'babel-preset-env/lib/index'>; +} +declare module 'babel-preset-env/lib/module-transformations.js' { + declare module.exports: $Exports<'babel-preset-env/lib/module-transformations'>; +} +declare module 'babel-preset-env/lib/normalize-options.js' { + declare module.exports: $Exports<'babel-preset-env/lib/normalize-options'>; +} +declare module 'babel-preset-env/lib/targets-parser.js' { + declare module.exports: $Exports<'babel-preset-env/lib/targets-parser'>; +} +declare module 'babel-preset-env/lib/transform-polyfill-require-plugin.js' { + declare module.exports: $Exports<'babel-preset-env/lib/transform-polyfill-require-plugin'>; +} +declare module 'babel-preset-env/lib/utils.js' { + declare module.exports: $Exports<'babel-preset-env/lib/utils'>; +} diff --git a/flow-typed/npm/babel-preset-es2015_vx.x.x.js b/flow-typed/npm/babel-preset-es2015_vx.x.x.js new file mode 100644 index 0000000..8a10133 --- /dev/null +++ b/flow-typed/npm/babel-preset-es2015_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: aaf29e9ad620e061b0ca35fc551913e9 +// flow-typed version: <>/babel-preset-es2015_v6.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-preset-es2015' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-preset-es2015' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-preset-es2015/lib/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-preset-es2015/lib/index.js' { + declare module.exports: $Exports<'babel-preset-es2015/lib/index'>; +} diff --git a/flow-typed/npm/babel-preset-flow_vx.x.x.js b/flow-typed/npm/babel-preset-flow_vx.x.x.js new file mode 100644 index 0000000..8c2e5a2 --- /dev/null +++ b/flow-typed/npm/babel-preset-flow_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: c1f018f24631f97a8c7cd17bd7539e2f +// flow-typed version: <>/babel-preset-flow_v^6.23.0/flow_v0.66.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-preset-flow' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-preset-flow' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-preset-flow/lib/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-preset-flow/lib/index.js' { + declare module.exports: $Exports<'babel-preset-flow/lib/index'>; +} diff --git a/flow-typed/npm/babel-preset-stage-2_vx.x.x.js b/flow-typed/npm/babel-preset-stage-2_vx.x.x.js new file mode 100644 index 0000000..11b4659 --- /dev/null +++ b/flow-typed/npm/babel-preset-stage-2_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: ddc0cc65b981eb66c981e1db4a807387 +// flow-typed version: <>/babel-preset-stage-2_v6.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-preset-stage-2' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'babel-preset-stage-2' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'babel-preset-stage-2/lib/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-preset-stage-2/lib/index.js' { + declare module.exports: $Exports<'babel-preset-stage-2/lib/index'>; +} diff --git a/flow-typed/npm/eslint-plugin-babel_vx.x.x.js b/flow-typed/npm/eslint-plugin-babel_vx.x.x.js new file mode 100644 index 0000000..c9ed427 --- /dev/null +++ b/flow-typed/npm/eslint-plugin-babel_vx.x.x.js @@ -0,0 +1,138 @@ +// flow-typed signature: f78b81cf48dc29adc5f1a054a7451352 +// flow-typed version: <>/eslint-plugin-babel_v2.x.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'eslint-plugin-babel' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'eslint-plugin-babel' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'eslint-plugin-babel/helpers' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/rules/arrow-parens' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/rules/generator-star-spacing' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/rules/new-cap' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/rules/no-await-in-loop' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/rules/object-curly-spacing' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/rules/object-shorthand' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/tests/arrow-parens' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/tests/generator-star-spacing' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/tests/new-cap' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/tests/no-await-in-loop' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/tests/object-curly-spacing' { + declare module.exports: any; +} + +declare module 'eslint-plugin-babel/tests/object-shorthand' { + declare module.exports: any; +} + +// Filename aliases +declare module 'eslint-plugin-babel/helpers.js' { + declare module.exports: $Exports<'eslint-plugin-babel/helpers'>; +} +declare module 'eslint-plugin-babel/index' { + declare module.exports: $Exports<'eslint-plugin-babel'>; +} +declare module 'eslint-plugin-babel/index.js' { + declare module.exports: $Exports<'eslint-plugin-babel'>; +} +declare module 'eslint-plugin-babel/rules/arrow-parens.js' { + declare module.exports: $Exports<'eslint-plugin-babel/rules/arrow-parens'>; +} +declare module 'eslint-plugin-babel/rules/generator-star-spacing.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/rules/generator-star-spacing' + >; +} +declare module 'eslint-plugin-babel/rules/new-cap.js' { + declare module.exports: $Exports<'eslint-plugin-babel/rules/new-cap'>; +} +declare module 'eslint-plugin-babel/rules/no-await-in-loop.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/rules/no-await-in-loop' + >; +} +declare module 'eslint-plugin-babel/rules/object-curly-spacing.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/rules/object-curly-spacing' + >; +} +declare module 'eslint-plugin-babel/rules/object-shorthand.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/rules/object-shorthand' + >; +} +declare module 'eslint-plugin-babel/tests/arrow-parens.js' { + declare module.exports: $Exports<'eslint-plugin-babel/tests/arrow-parens'>; +} +declare module 'eslint-plugin-babel/tests/generator-star-spacing.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/tests/generator-star-spacing' + >; +} +declare module 'eslint-plugin-babel/tests/new-cap.js' { + declare module.exports: $Exports<'eslint-plugin-babel/tests/new-cap'>; +} +declare module 'eslint-plugin-babel/tests/no-await-in-loop.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/tests/no-await-in-loop' + >; +} +declare module 'eslint-plugin-babel/tests/object-curly-spacing.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/tests/object-curly-spacing' + >; +} +declare module 'eslint-plugin-babel/tests/object-shorthand.js' { + declare module.exports: $Exports< + 'eslint-plugin-babel/tests/object-shorthand' + >; +} diff --git a/flow-typed/npm/eslint_vx.x.x.js b/flow-typed/npm/eslint_vx.x.x.js new file mode 100644 index 0000000..94105aa --- /dev/null +++ b/flow-typed/npm/eslint_vx.x.x.js @@ -0,0 +1,1585 @@ +// flow-typed signature: 534994ce059f5650e8c1a460e8239c36 +// flow-typed version: <>/eslint_v1.7.x/flow_v0.45.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'eslint' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'eslint' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'eslint/bin/eslint' { + declare module.exports: any; +} + +declare module 'eslint/conf/environments' { + declare module.exports: any; +} + +declare module 'eslint/lib/api' { + declare module.exports: any; +} + +declare module 'eslint/lib/ast-utils' { + declare module.exports: any; +} + +declare module 'eslint/lib/cli-engine' { + declare module.exports: any; +} + +declare module 'eslint/lib/cli' { + declare module.exports: any; +} + +declare module 'eslint/lib/config-initializer' { + declare module.exports: any; +} + +declare module 'eslint/lib/config-validator' { + declare module.exports: any; +} + +declare module 'eslint/lib/config' { + declare module.exports: any; +} + +declare module 'eslint/lib/eslint' { + declare module.exports: any; +} + +declare module 'eslint/lib/file-finder' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/checkstyle' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/compact' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/html' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/jslint-xml' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/json' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/junit' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/stylish' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/tap' { + declare module.exports: any; +} + +declare module 'eslint/lib/formatters/unix' { + declare module.exports: any; +} + +declare module 'eslint/lib/ignored-paths' { + declare module.exports: any; +} + +declare module 'eslint/lib/load-rules' { + declare module.exports: any; +} + +declare module 'eslint/lib/options' { + declare module.exports: any; +} + +declare module 'eslint/lib/rule-context' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/accessor-pairs' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/array-bracket-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/arrow-parens' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/arrow-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/block-scoped-var' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/block-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/brace-style' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/callback-return' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/camelcase' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/comma-dangle' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/comma-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/comma-style' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/complexity' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/computed-property-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/consistent-return' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/consistent-this' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/constructor-super' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/curly' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/default-case' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/dot-location' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/dot-notation' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/eol-last' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/eqeqeq' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/func-names' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/func-style' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/generator-star-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/global-require' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/guard-for-in' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/handle-callback-err' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/id-length' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/id-match' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/indent' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/init-declarations' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/jsx-quotes' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/key-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/linebreak-style' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/lines-around-comment' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/max-depth' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/max-len' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/max-nested-callbacks' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/max-params' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/max-statements' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/new-cap' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/new-parens' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/newline-after-var' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-alert' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-array-constructor' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-bitwise' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-caller' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-catch-shadow' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-class-assign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-cond-assign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-console' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-const-assign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-constant-condition' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-continue' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-control-regex' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-debugger' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-delete-var' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-div-regex' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-dupe-args' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-dupe-class-members' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-dupe-keys' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-duplicate-case' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-else-return' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-empty-character-class' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-empty-label' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-empty-pattern' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-empty' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-eq-null' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-eval' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-ex-assign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-extend-native' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-extra-bind' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-extra-boolean-cast' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-extra-parens' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-extra-semi' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-fallthrough' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-floating-decimal' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-func-assign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-implicit-coercion' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-implied-eval' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-inline-comments' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-inner-declarations' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-invalid-regexp' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-invalid-this' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-irregular-whitespace' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-iterator' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-label-var' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-labels' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-lone-blocks' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-lonely-if' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-loop-func' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-magic-numbers' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-mixed-requires' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-multi-spaces' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-multi-str' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-multiple-empty-lines' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-native-reassign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-negated-condition' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-negated-in-lhs' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-nested-ternary' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-new-func' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-new-object' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-new-require' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-new-wrappers' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-new' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-obj-calls' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-octal-escape' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-octal' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-param-reassign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-path-concat' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-plusplus' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-process-env' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-process-exit' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-proto' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-redeclare' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-regex-spaces' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-restricted-modules' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-restricted-syntax' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-return-assign' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-script-url' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-self-compare' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-sequences' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-shadow-restricted-names' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-shadow' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-spaced-func' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-sparse-arrays' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-sync' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-ternary' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-this-before-super' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-throw-literal' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-trailing-spaces' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-undef-init' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-undef' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-undefined' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-underscore-dangle' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-unexpected-multiline' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-unneeded-ternary' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-unreachable' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-unused-expressions' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-unused-vars' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-use-before-define' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-useless-call' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-useless-concat' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-var' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-void' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-warning-comments' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/no-with' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/object-curly-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/object-shorthand' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/one-var' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/operator-assignment' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/operator-linebreak' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/padded-blocks' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/prefer-arrow-callback' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/prefer-const' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/prefer-reflect' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/prefer-spread' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/prefer-template' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/quote-props' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/quotes' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/radix' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/require-jsdoc' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/require-yield' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/semi-spacing' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/semi' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/sort-vars' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-after-keywords' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-before-blocks' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-before-function-paren' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-before-keywords' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-in-parens' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-infix-ops' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-return-throw-case' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/space-unary-ops' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/spaced-comment' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/strict' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/use-isnan' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/valid-jsdoc' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/valid-typeof' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/vars-on-top' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/wrap-iife' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/wrap-regex' { + declare module.exports: any; +} + +declare module 'eslint/lib/rules/yoda' { + declare module.exports: any; +} + +declare module 'eslint/lib/testers/event-generator-tester' { + declare module.exports: any; +} + +declare module 'eslint/lib/testers/rule-tester' { + declare module.exports: any; +} + +declare module 'eslint/lib/timing' { + declare module.exports: any; +} + +declare module 'eslint/lib/token-store' { + declare module.exports: any; +} + +declare module 'eslint/lib/util' { + declare module.exports: any; +} + +declare module 'eslint/lib/util/comment-event-generator' { + declare module.exports: any; +} + +declare module 'eslint/lib/util/keywords' { + declare module.exports: any; +} + +declare module 'eslint/lib/util/node-event-generator' { + declare module.exports: any; +} + +declare module 'eslint/lib/util/rule-fixer' { + declare module.exports: any; +} + +declare module 'eslint/lib/util/source-code-fixer' { + declare module.exports: any; +} + +declare module 'eslint/lib/util/source-code' { + declare module.exports: any; +} + +// Filename aliases +declare module 'eslint/bin/eslint.js' { + declare module.exports: $Exports<'eslint/bin/eslint'>; +} +declare module 'eslint/conf/environments.js' { + declare module.exports: $Exports<'eslint/conf/environments'>; +} +declare module 'eslint/lib/api.js' { + declare module.exports: $Exports<'eslint/lib/api'>; +} +declare module 'eslint/lib/ast-utils.js' { + declare module.exports: $Exports<'eslint/lib/ast-utils'>; +} +declare module 'eslint/lib/cli-engine.js' { + declare module.exports: $Exports<'eslint/lib/cli-engine'>; +} +declare module 'eslint/lib/cli.js' { + declare module.exports: $Exports<'eslint/lib/cli'>; +} +declare module 'eslint/lib/config-initializer.js' { + declare module.exports: $Exports<'eslint/lib/config-initializer'>; +} +declare module 'eslint/lib/config-validator.js' { + declare module.exports: $Exports<'eslint/lib/config-validator'>; +} +declare module 'eslint/lib/config.js' { + declare module.exports: $Exports<'eslint/lib/config'>; +} +declare module 'eslint/lib/eslint.js' { + declare module.exports: $Exports<'eslint/lib/eslint'>; +} +declare module 'eslint/lib/file-finder.js' { + declare module.exports: $Exports<'eslint/lib/file-finder'>; +} +declare module 'eslint/lib/formatters/checkstyle.js' { + declare module.exports: $Exports<'eslint/lib/formatters/checkstyle'>; +} +declare module 'eslint/lib/formatters/compact.js' { + declare module.exports: $Exports<'eslint/lib/formatters/compact'>; +} +declare module 'eslint/lib/formatters/html.js' { + declare module.exports: $Exports<'eslint/lib/formatters/html'>; +} +declare module 'eslint/lib/formatters/jslint-xml.js' { + declare module.exports: $Exports<'eslint/lib/formatters/jslint-xml'>; +} +declare module 'eslint/lib/formatters/json.js' { + declare module.exports: $Exports<'eslint/lib/formatters/json'>; +} +declare module 'eslint/lib/formatters/junit.js' { + declare module.exports: $Exports<'eslint/lib/formatters/junit'>; +} +declare module 'eslint/lib/formatters/stylish.js' { + declare module.exports: $Exports<'eslint/lib/formatters/stylish'>; +} +declare module 'eslint/lib/formatters/tap.js' { + declare module.exports: $Exports<'eslint/lib/formatters/tap'>; +} +declare module 'eslint/lib/formatters/unix.js' { + declare module.exports: $Exports<'eslint/lib/formatters/unix'>; +} +declare module 'eslint/lib/ignored-paths.js' { + declare module.exports: $Exports<'eslint/lib/ignored-paths'>; +} +declare module 'eslint/lib/load-rules.js' { + declare module.exports: $Exports<'eslint/lib/load-rules'>; +} +declare module 'eslint/lib/options.js' { + declare module.exports: $Exports<'eslint/lib/options'>; +} +declare module 'eslint/lib/rule-context.js' { + declare module.exports: $Exports<'eslint/lib/rule-context'>; +} +declare module 'eslint/lib/rules.js' { + declare module.exports: $Exports<'eslint/lib/rules'>; +} +declare module 'eslint/lib/rules/accessor-pairs.js' { + declare module.exports: $Exports<'eslint/lib/rules/accessor-pairs'>; +} +declare module 'eslint/lib/rules/array-bracket-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/array-bracket-spacing'>; +} +declare module 'eslint/lib/rules/arrow-parens.js' { + declare module.exports: $Exports<'eslint/lib/rules/arrow-parens'>; +} +declare module 'eslint/lib/rules/arrow-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/arrow-spacing'>; +} +declare module 'eslint/lib/rules/block-scoped-var.js' { + declare module.exports: $Exports<'eslint/lib/rules/block-scoped-var'>; +} +declare module 'eslint/lib/rules/block-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/block-spacing'>; +} +declare module 'eslint/lib/rules/brace-style.js' { + declare module.exports: $Exports<'eslint/lib/rules/brace-style'>; +} +declare module 'eslint/lib/rules/callback-return.js' { + declare module.exports: $Exports<'eslint/lib/rules/callback-return'>; +} +declare module 'eslint/lib/rules/camelcase.js' { + declare module.exports: $Exports<'eslint/lib/rules/camelcase'>; +} +declare module 'eslint/lib/rules/comma-dangle.js' { + declare module.exports: $Exports<'eslint/lib/rules/comma-dangle'>; +} +declare module 'eslint/lib/rules/comma-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/comma-spacing'>; +} +declare module 'eslint/lib/rules/comma-style.js' { + declare module.exports: $Exports<'eslint/lib/rules/comma-style'>; +} +declare module 'eslint/lib/rules/complexity.js' { + declare module.exports: $Exports<'eslint/lib/rules/complexity'>; +} +declare module 'eslint/lib/rules/computed-property-spacing.js' { + declare module.exports: $Exports< + 'eslint/lib/rules/computed-property-spacing' + >; +} +declare module 'eslint/lib/rules/consistent-return.js' { + declare module.exports: $Exports<'eslint/lib/rules/consistent-return'>; +} +declare module 'eslint/lib/rules/consistent-this.js' { + declare module.exports: $Exports<'eslint/lib/rules/consistent-this'>; +} +declare module 'eslint/lib/rules/constructor-super.js' { + declare module.exports: $Exports<'eslint/lib/rules/constructor-super'>; +} +declare module 'eslint/lib/rules/curly.js' { + declare module.exports: $Exports<'eslint/lib/rules/curly'>; +} +declare module 'eslint/lib/rules/default-case.js' { + declare module.exports: $Exports<'eslint/lib/rules/default-case'>; +} +declare module 'eslint/lib/rules/dot-location.js' { + declare module.exports: $Exports<'eslint/lib/rules/dot-location'>; +} +declare module 'eslint/lib/rules/dot-notation.js' { + declare module.exports: $Exports<'eslint/lib/rules/dot-notation'>; +} +declare module 'eslint/lib/rules/eol-last.js' { + declare module.exports: $Exports<'eslint/lib/rules/eol-last'>; +} +declare module 'eslint/lib/rules/eqeqeq.js' { + declare module.exports: $Exports<'eslint/lib/rules/eqeqeq'>; +} +declare module 'eslint/lib/rules/func-names.js' { + declare module.exports: $Exports<'eslint/lib/rules/func-names'>; +} +declare module 'eslint/lib/rules/func-style.js' { + declare module.exports: $Exports<'eslint/lib/rules/func-style'>; +} +declare module 'eslint/lib/rules/generator-star-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/generator-star-spacing'>; +} +declare module 'eslint/lib/rules/global-require.js' { + declare module.exports: $Exports<'eslint/lib/rules/global-require'>; +} +declare module 'eslint/lib/rules/guard-for-in.js' { + declare module.exports: $Exports<'eslint/lib/rules/guard-for-in'>; +} +declare module 'eslint/lib/rules/handle-callback-err.js' { + declare module.exports: $Exports<'eslint/lib/rules/handle-callback-err'>; +} +declare module 'eslint/lib/rules/id-length.js' { + declare module.exports: $Exports<'eslint/lib/rules/id-length'>; +} +declare module 'eslint/lib/rules/id-match.js' { + declare module.exports: $Exports<'eslint/lib/rules/id-match'>; +} +declare module 'eslint/lib/rules/indent.js' { + declare module.exports: $Exports<'eslint/lib/rules/indent'>; +} +declare module 'eslint/lib/rules/init-declarations.js' { + declare module.exports: $Exports<'eslint/lib/rules/init-declarations'>; +} +declare module 'eslint/lib/rules/jsx-quotes.js' { + declare module.exports: $Exports<'eslint/lib/rules/jsx-quotes'>; +} +declare module 'eslint/lib/rules/key-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/key-spacing'>; +} +declare module 'eslint/lib/rules/linebreak-style.js' { + declare module.exports: $Exports<'eslint/lib/rules/linebreak-style'>; +} +declare module 'eslint/lib/rules/lines-around-comment.js' { + declare module.exports: $Exports<'eslint/lib/rules/lines-around-comment'>; +} +declare module 'eslint/lib/rules/max-depth.js' { + declare module.exports: $Exports<'eslint/lib/rules/max-depth'>; +} +declare module 'eslint/lib/rules/max-len.js' { + declare module.exports: $Exports<'eslint/lib/rules/max-len'>; +} +declare module 'eslint/lib/rules/max-nested-callbacks.js' { + declare module.exports: $Exports<'eslint/lib/rules/max-nested-callbacks'>; +} +declare module 'eslint/lib/rules/max-params.js' { + declare module.exports: $Exports<'eslint/lib/rules/max-params'>; +} +declare module 'eslint/lib/rules/max-statements.js' { + declare module.exports: $Exports<'eslint/lib/rules/max-statements'>; +} +declare module 'eslint/lib/rules/new-cap.js' { + declare module.exports: $Exports<'eslint/lib/rules/new-cap'>; +} +declare module 'eslint/lib/rules/new-parens.js' { + declare module.exports: $Exports<'eslint/lib/rules/new-parens'>; +} +declare module 'eslint/lib/rules/newline-after-var.js' { + declare module.exports: $Exports<'eslint/lib/rules/newline-after-var'>; +} +declare module 'eslint/lib/rules/no-alert.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-alert'>; +} +declare module 'eslint/lib/rules/no-array-constructor.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-array-constructor'>; +} +declare module 'eslint/lib/rules/no-bitwise.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-bitwise'>; +} +declare module 'eslint/lib/rules/no-caller.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-caller'>; +} +declare module 'eslint/lib/rules/no-catch-shadow.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-catch-shadow'>; +} +declare module 'eslint/lib/rules/no-class-assign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-class-assign'>; +} +declare module 'eslint/lib/rules/no-cond-assign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-cond-assign'>; +} +declare module 'eslint/lib/rules/no-console.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-console'>; +} +declare module 'eslint/lib/rules/no-const-assign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-const-assign'>; +} +declare module 'eslint/lib/rules/no-constant-condition.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-constant-condition'>; +} +declare module 'eslint/lib/rules/no-continue.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-continue'>; +} +declare module 'eslint/lib/rules/no-control-regex.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-control-regex'>; +} +declare module 'eslint/lib/rules/no-debugger.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-debugger'>; +} +declare module 'eslint/lib/rules/no-delete-var.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-delete-var'>; +} +declare module 'eslint/lib/rules/no-div-regex.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-div-regex'>; +} +declare module 'eslint/lib/rules/no-dupe-args.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-dupe-args'>; +} +declare module 'eslint/lib/rules/no-dupe-class-members.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-dupe-class-members'>; +} +declare module 'eslint/lib/rules/no-dupe-keys.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-dupe-keys'>; +} +declare module 'eslint/lib/rules/no-duplicate-case.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-case'>; +} +declare module 'eslint/lib/rules/no-else-return.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-else-return'>; +} +declare module 'eslint/lib/rules/no-empty-character-class.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-empty-character-class'>; +} +declare module 'eslint/lib/rules/no-empty-label.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-empty-label'>; +} +declare module 'eslint/lib/rules/no-empty-pattern.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-empty-pattern'>; +} +declare module 'eslint/lib/rules/no-empty.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-empty'>; +} +declare module 'eslint/lib/rules/no-eq-null.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-eq-null'>; +} +declare module 'eslint/lib/rules/no-eval.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-eval'>; +} +declare module 'eslint/lib/rules/no-ex-assign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-ex-assign'>; +} +declare module 'eslint/lib/rules/no-extend-native.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-extend-native'>; +} +declare module 'eslint/lib/rules/no-extra-bind.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-extra-bind'>; +} +declare module 'eslint/lib/rules/no-extra-boolean-cast.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-extra-boolean-cast'>; +} +declare module 'eslint/lib/rules/no-extra-parens.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-extra-parens'>; +} +declare module 'eslint/lib/rules/no-extra-semi.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-extra-semi'>; +} +declare module 'eslint/lib/rules/no-fallthrough.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-fallthrough'>; +} +declare module 'eslint/lib/rules/no-floating-decimal.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-floating-decimal'>; +} +declare module 'eslint/lib/rules/no-func-assign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-func-assign'>; +} +declare module 'eslint/lib/rules/no-implicit-coercion.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-implicit-coercion'>; +} +declare module 'eslint/lib/rules/no-implied-eval.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-implied-eval'>; +} +declare module 'eslint/lib/rules/no-inline-comments.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-inline-comments'>; +} +declare module 'eslint/lib/rules/no-inner-declarations.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-inner-declarations'>; +} +declare module 'eslint/lib/rules/no-invalid-regexp.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-invalid-regexp'>; +} +declare module 'eslint/lib/rules/no-invalid-this.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-invalid-this'>; +} +declare module 'eslint/lib/rules/no-irregular-whitespace.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-irregular-whitespace'>; +} +declare module 'eslint/lib/rules/no-iterator.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-iterator'>; +} +declare module 'eslint/lib/rules/no-label-var.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-label-var'>; +} +declare module 'eslint/lib/rules/no-labels.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-labels'>; +} +declare module 'eslint/lib/rules/no-lone-blocks.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-lone-blocks'>; +} +declare module 'eslint/lib/rules/no-lonely-if.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-lonely-if'>; +} +declare module 'eslint/lib/rules/no-loop-func.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-loop-func'>; +} +declare module 'eslint/lib/rules/no-magic-numbers.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-magic-numbers'>; +} +declare module 'eslint/lib/rules/no-mixed-requires.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-mixed-requires'>; +} +declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-mixed-spaces-and-tabs'>; +} +declare module 'eslint/lib/rules/no-multi-spaces.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-multi-spaces'>; +} +declare module 'eslint/lib/rules/no-multi-str.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-multi-str'>; +} +declare module 'eslint/lib/rules/no-multiple-empty-lines.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-multiple-empty-lines'>; +} +declare module 'eslint/lib/rules/no-native-reassign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-native-reassign'>; +} +declare module 'eslint/lib/rules/no-negated-condition.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-negated-condition'>; +} +declare module 'eslint/lib/rules/no-negated-in-lhs.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-negated-in-lhs'>; +} +declare module 'eslint/lib/rules/no-nested-ternary.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-nested-ternary'>; +} +declare module 'eslint/lib/rules/no-new-func.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-new-func'>; +} +declare module 'eslint/lib/rules/no-new-object.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-new-object'>; +} +declare module 'eslint/lib/rules/no-new-require.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-new-require'>; +} +declare module 'eslint/lib/rules/no-new-wrappers.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-new-wrappers'>; +} +declare module 'eslint/lib/rules/no-new.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-new'>; +} +declare module 'eslint/lib/rules/no-obj-calls.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-obj-calls'>; +} +declare module 'eslint/lib/rules/no-octal-escape.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-octal-escape'>; +} +declare module 'eslint/lib/rules/no-octal.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-octal'>; +} +declare module 'eslint/lib/rules/no-param-reassign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-param-reassign'>; +} +declare module 'eslint/lib/rules/no-path-concat.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-path-concat'>; +} +declare module 'eslint/lib/rules/no-plusplus.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-plusplus'>; +} +declare module 'eslint/lib/rules/no-process-env.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-process-env'>; +} +declare module 'eslint/lib/rules/no-process-exit.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-process-exit'>; +} +declare module 'eslint/lib/rules/no-proto.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-proto'>; +} +declare module 'eslint/lib/rules/no-redeclare.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-redeclare'>; +} +declare module 'eslint/lib/rules/no-regex-spaces.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-regex-spaces'>; +} +declare module 'eslint/lib/rules/no-restricted-modules.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-restricted-modules'>; +} +declare module 'eslint/lib/rules/no-restricted-syntax.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-restricted-syntax'>; +} +declare module 'eslint/lib/rules/no-return-assign.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-return-assign'>; +} +declare module 'eslint/lib/rules/no-script-url.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-script-url'>; +} +declare module 'eslint/lib/rules/no-self-compare.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-self-compare'>; +} +declare module 'eslint/lib/rules/no-sequences.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-sequences'>; +} +declare module 'eslint/lib/rules/no-shadow-restricted-names.js' { + declare module.exports: $Exports< + 'eslint/lib/rules/no-shadow-restricted-names' + >; +} +declare module 'eslint/lib/rules/no-shadow.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-shadow'>; +} +declare module 'eslint/lib/rules/no-spaced-func.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-spaced-func'>; +} +declare module 'eslint/lib/rules/no-sparse-arrays.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-sparse-arrays'>; +} +declare module 'eslint/lib/rules/no-sync.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-sync'>; +} +declare module 'eslint/lib/rules/no-ternary.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-ternary'>; +} +declare module 'eslint/lib/rules/no-this-before-super.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-this-before-super'>; +} +declare module 'eslint/lib/rules/no-throw-literal.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-throw-literal'>; +} +declare module 'eslint/lib/rules/no-trailing-spaces.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-trailing-spaces'>; +} +declare module 'eslint/lib/rules/no-undef-init.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-undef-init'>; +} +declare module 'eslint/lib/rules/no-undef.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-undef'>; +} +declare module 'eslint/lib/rules/no-undefined.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-undefined'>; +} +declare module 'eslint/lib/rules/no-underscore-dangle.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-underscore-dangle'>; +} +declare module 'eslint/lib/rules/no-unexpected-multiline.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-unexpected-multiline'>; +} +declare module 'eslint/lib/rules/no-unneeded-ternary.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-unneeded-ternary'>; +} +declare module 'eslint/lib/rules/no-unreachable.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-unreachable'>; +} +declare module 'eslint/lib/rules/no-unused-expressions.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-unused-expressions'>; +} +declare module 'eslint/lib/rules/no-unused-vars.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-unused-vars'>; +} +declare module 'eslint/lib/rules/no-use-before-define.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-use-before-define'>; +} +declare module 'eslint/lib/rules/no-useless-call.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-useless-call'>; +} +declare module 'eslint/lib/rules/no-useless-concat.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-useless-concat'>; +} +declare module 'eslint/lib/rules/no-var.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-var'>; +} +declare module 'eslint/lib/rules/no-void.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-void'>; +} +declare module 'eslint/lib/rules/no-warning-comments.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-warning-comments'>; +} +declare module 'eslint/lib/rules/no-with.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-with'>; +} +declare module 'eslint/lib/rules/object-curly-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/object-curly-spacing'>; +} +declare module 'eslint/lib/rules/object-shorthand.js' { + declare module.exports: $Exports<'eslint/lib/rules/object-shorthand'>; +} +declare module 'eslint/lib/rules/one-var.js' { + declare module.exports: $Exports<'eslint/lib/rules/one-var'>; +} +declare module 'eslint/lib/rules/operator-assignment.js' { + declare module.exports: $Exports<'eslint/lib/rules/operator-assignment'>; +} +declare module 'eslint/lib/rules/operator-linebreak.js' { + declare module.exports: $Exports<'eslint/lib/rules/operator-linebreak'>; +} +declare module 'eslint/lib/rules/padded-blocks.js' { + declare module.exports: $Exports<'eslint/lib/rules/padded-blocks'>; +} +declare module 'eslint/lib/rules/prefer-arrow-callback.js' { + declare module.exports: $Exports<'eslint/lib/rules/prefer-arrow-callback'>; +} +declare module 'eslint/lib/rules/prefer-const.js' { + declare module.exports: $Exports<'eslint/lib/rules/prefer-const'>; +} +declare module 'eslint/lib/rules/prefer-reflect.js' { + declare module.exports: $Exports<'eslint/lib/rules/prefer-reflect'>; +} +declare module 'eslint/lib/rules/prefer-spread.js' { + declare module.exports: $Exports<'eslint/lib/rules/prefer-spread'>; +} +declare module 'eslint/lib/rules/prefer-template.js' { + declare module.exports: $Exports<'eslint/lib/rules/prefer-template'>; +} +declare module 'eslint/lib/rules/quote-props.js' { + declare module.exports: $Exports<'eslint/lib/rules/quote-props'>; +} +declare module 'eslint/lib/rules/quotes.js' { + declare module.exports: $Exports<'eslint/lib/rules/quotes'>; +} +declare module 'eslint/lib/rules/radix.js' { + declare module.exports: $Exports<'eslint/lib/rules/radix'>; +} +declare module 'eslint/lib/rules/require-jsdoc.js' { + declare module.exports: $Exports<'eslint/lib/rules/require-jsdoc'>; +} +declare module 'eslint/lib/rules/require-yield.js' { + declare module.exports: $Exports<'eslint/lib/rules/require-yield'>; +} +declare module 'eslint/lib/rules/semi-spacing.js' { + declare module.exports: $Exports<'eslint/lib/rules/semi-spacing'>; +} +declare module 'eslint/lib/rules/semi.js' { + declare module.exports: $Exports<'eslint/lib/rules/semi'>; +} +declare module 'eslint/lib/rules/sort-vars.js' { + declare module.exports: $Exports<'eslint/lib/rules/sort-vars'>; +} +declare module 'eslint/lib/rules/space-after-keywords.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-after-keywords'>; +} +declare module 'eslint/lib/rules/space-before-blocks.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-before-blocks'>; +} +declare module 'eslint/lib/rules/space-before-function-paren.js' { + declare module.exports: $Exports< + 'eslint/lib/rules/space-before-function-paren' + >; +} +declare module 'eslint/lib/rules/space-before-keywords.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-before-keywords'>; +} +declare module 'eslint/lib/rules/space-in-parens.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-in-parens'>; +} +declare module 'eslint/lib/rules/space-infix-ops.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-infix-ops'>; +} +declare module 'eslint/lib/rules/space-return-throw-case.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-return-throw-case'>; +} +declare module 'eslint/lib/rules/space-unary-ops.js' { + declare module.exports: $Exports<'eslint/lib/rules/space-unary-ops'>; +} +declare module 'eslint/lib/rules/spaced-comment.js' { + declare module.exports: $Exports<'eslint/lib/rules/spaced-comment'>; +} +declare module 'eslint/lib/rules/strict.js' { + declare module.exports: $Exports<'eslint/lib/rules/strict'>; +} +declare module 'eslint/lib/rules/use-isnan.js' { + declare module.exports: $Exports<'eslint/lib/rules/use-isnan'>; +} +declare module 'eslint/lib/rules/valid-jsdoc.js' { + declare module.exports: $Exports<'eslint/lib/rules/valid-jsdoc'>; +} +declare module 'eslint/lib/rules/valid-typeof.js' { + declare module.exports: $Exports<'eslint/lib/rules/valid-typeof'>; +} +declare module 'eslint/lib/rules/vars-on-top.js' { + declare module.exports: $Exports<'eslint/lib/rules/vars-on-top'>; +} +declare module 'eslint/lib/rules/wrap-iife.js' { + declare module.exports: $Exports<'eslint/lib/rules/wrap-iife'>; +} +declare module 'eslint/lib/rules/wrap-regex.js' { + declare module.exports: $Exports<'eslint/lib/rules/wrap-regex'>; +} +declare module 'eslint/lib/rules/yoda.js' { + declare module.exports: $Exports<'eslint/lib/rules/yoda'>; +} +declare module 'eslint/lib/testers/event-generator-tester.js' { + declare module.exports: $Exports<'eslint/lib/testers/event-generator-tester'>; +} +declare module 'eslint/lib/testers/rule-tester.js' { + declare module.exports: $Exports<'eslint/lib/testers/rule-tester'>; +} +declare module 'eslint/lib/timing.js' { + declare module.exports: $Exports<'eslint/lib/timing'>; +} +declare module 'eslint/lib/token-store.js' { + declare module.exports: $Exports<'eslint/lib/token-store'>; +} +declare module 'eslint/lib/util.js' { + declare module.exports: $Exports<'eslint/lib/util'>; +} +declare module 'eslint/lib/util/comment-event-generator.js' { + declare module.exports: $Exports<'eslint/lib/util/comment-event-generator'>; +} +declare module 'eslint/lib/util/keywords.js' { + declare module.exports: $Exports<'eslint/lib/util/keywords'>; +} +declare module 'eslint/lib/util/node-event-generator.js' { + declare module.exports: $Exports<'eslint/lib/util/node-event-generator'>; +} +declare module 'eslint/lib/util/rule-fixer.js' { + declare module.exports: $Exports<'eslint/lib/util/rule-fixer'>; +} +declare module 'eslint/lib/util/source-code-fixer.js' { + declare module.exports: $Exports<'eslint/lib/util/source-code-fixer'>; +} +declare module 'eslint/lib/util/source-code.js' { + declare module.exports: $Exports<'eslint/lib/util/source-code'>; +} diff --git a/flow-typed/npm/flow-bin_v0.x.x.js b/flow-typed/npm/flow-bin_v0.x.x.js new file mode 100644 index 0000000..c538e20 --- /dev/null +++ b/flow-typed/npm/flow-bin_v0.x.x.js @@ -0,0 +1,6 @@ +// flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583 +// flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x + +declare module "flow-bin" { + declare module.exports: string; +} diff --git a/flow-typed/npm/husky_vx.x.x.js b/flow-typed/npm/husky_vx.x.x.js new file mode 100644 index 0000000..465d8d0 --- /dev/null +++ b/flow-typed/npm/husky_vx.x.x.js @@ -0,0 +1,88 @@ +// flow-typed signature: dae572fbd9ef2461f63f51e9d21f7e14 +// flow-typed version: <>/husky_v^0.14.3/flow_v0.66.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'husky' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'husky' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'husky/__tests__/index' { + declare module.exports: any; +} + +declare module 'husky/bin/install' { + declare module.exports: any; +} + +declare module 'husky/bin/uninstall' { + declare module.exports: any; +} + +declare module 'husky/src/install' { + declare module.exports: any; +} + +declare module 'husky/src/uninstall' { + declare module.exports: any; +} + +declare module 'husky/src/utils/find-hooks-dir' { + declare module.exports: any; +} + +declare module 'husky/src/utils/find-parent' { + declare module.exports: any; +} + +declare module 'husky/src/utils/get-hook-script' { + declare module.exports: any; +} + +declare module 'husky/src/utils/is-husky' { + declare module.exports: any; +} + +// Filename aliases +declare module 'husky/__tests__/index.js' { + declare module.exports: $Exports<'husky/__tests__/index'>; +} +declare module 'husky/bin/install.js' { + declare module.exports: $Exports<'husky/bin/install'>; +} +declare module 'husky/bin/uninstall.js' { + declare module.exports: $Exports<'husky/bin/uninstall'>; +} +declare module 'husky/src/install.js' { + declare module.exports: $Exports<'husky/src/install'>; +} +declare module 'husky/src/uninstall.js' { + declare module.exports: $Exports<'husky/src/uninstall'>; +} +declare module 'husky/src/utils/find-hooks-dir.js' { + declare module.exports: $Exports<'husky/src/utils/find-hooks-dir'>; +} +declare module 'husky/src/utils/find-parent.js' { + declare module.exports: $Exports<'husky/src/utils/find-parent'>; +} +declare module 'husky/src/utils/get-hook-script.js' { + declare module.exports: $Exports<'husky/src/utils/get-hook-script'>; +} +declare module 'husky/src/utils/is-husky.js' { + declare module.exports: $Exports<'husky/src/utils/is-husky'>; +} diff --git a/flow-typed/npm/iterall_vx.x.x.js b/flow-typed/npm/iterall_vx.x.x.js new file mode 100644 index 0000000..70dc124 --- /dev/null +++ b/flow-typed/npm/iterall_vx.x.x.js @@ -0,0 +1,33 @@ +// flow-typed signature: d6997ee6fbc8acc419d3044fe689ae91 +// flow-typed version: <>/iterall_v1.2.2/flow_v0.66.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'iterall' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'iterall' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ + + +// Filename aliases +declare module 'iterall/index' { + declare module.exports: $Exports<'iterall'>; +} +declare module 'iterall/index.js' { + declare module.exports: $Exports<'iterall'>; +} diff --git a/flow-typed/npm/jest_v21.x.x.js b/flow-typed/npm/jest_v21.x.x.js new file mode 100644 index 0000000..daaeda7 --- /dev/null +++ b/flow-typed/npm/jest_v21.x.x.js @@ -0,0 +1,584 @@ +// flow-typed signature: 107cf7068b8835594e97f938e8848244 +// flow-typed version: 8b4dd96654/jest_v21.x.x/flow_>=v0.39.x + +type JestMockFn, TReturn> = { + (...args: TArguments): TReturn, + /** + * An object for introspecting mock calls + */ + mock: { + /** + * An array that represents all calls that have been made into this mock + * function. Each call is represented by an array of arguments that were + * passed during the call. + */ + calls: Array, + /** + * An array that contains all the object instances that have been + * instantiated from this mock function. + */ + instances: Array + }, + /** + * Resets all information stored in the mockFn.mock.calls and + * mockFn.mock.instances arrays. Often this is useful when you want to clean + * up a mock's usage data between two assertions. + */ + mockClear(): void, + /** + * Resets all information stored in the mock. This is useful when you want to + * completely restore a mock back to its initial state. + */ + mockReset(): void, + /** + * Removes the mock and restores the initial implementation. This is useful + * when you want to mock functions in certain test cases and restore the + * original implementation in others. Beware that mockFn.mockRestore only + * works when mock was created with jest.spyOn. Thus you have to take care of + * restoration yourself when manually assigning jest.fn(). + */ + mockRestore(): void, + /** + * Accepts a function that should be used as the implementation of the mock. + * The mock itself will still record all calls that go into and instances + * that come from itself -- the only difference is that the implementation + * will also be executed when the mock is called. + */ + mockImplementation( + fn: (...args: TArguments) => TReturn + ): JestMockFn, + /** + * Accepts a function that will be used as an implementation of the mock for + * one call to the mocked function. Can be chained so that multiple function + * calls produce different results. + */ + mockImplementationOnce( + fn: (...args: TArguments) => TReturn + ): JestMockFn, + /** + * Just a simple sugar function for returning `this` + */ + mockReturnThis(): void, + /** + * Deprecated: use jest.fn(() => value) instead + */ + mockReturnValue(value: TReturn): JestMockFn, + /** + * Sugar for only returning a value once inside your mock + */ + mockReturnValueOnce(value: TReturn): JestMockFn +}; + +type JestAsymmetricEqualityType = { + /** + * A custom Jasmine equality tester + */ + asymmetricMatch(value: mixed): boolean +}; + +type JestCallsType = { + allArgs(): mixed, + all(): mixed, + any(): boolean, + count(): number, + first(): mixed, + mostRecent(): mixed, + reset(): void +}; + +type JestClockType = { + install(): void, + mockDate(date: Date): void, + tick(milliseconds?: number): void, + uninstall(): void +}; + +type JestMatcherResult = { + message?: string | (() => string), + pass: boolean +}; + +type JestMatcher = (actual: any, expected: any) => JestMatcherResult; + +type JestPromiseType = { + /** + * Use rejects to unwrap the reason of a rejected promise so any other + * matcher can be chained. If the promise is fulfilled the assertion fails. + */ + rejects: JestExpectType, + /** + * Use resolves to unwrap the value of a fulfilled promise so any other + * matcher can be chained. If the promise is rejected the assertion fails. + */ + resolves: JestExpectType +}; + +/** + * Plugin: jest-enzyme + */ +type EnzymeMatchersType = { + toBeChecked(): void, + toBeDisabled(): void, + toBeEmpty(): void, + toBePresent(): void, + toContainReact(element: React$Element): void, + toHaveClassName(className: string): void, + toHaveHTML(html: string): void, + toHaveProp(propKey: string, propValue?: any): void, + toHaveRef(refName: string): void, + toHaveState(stateKey: string, stateValue?: any): void, + toHaveStyle(styleKey: string, styleValue?: any): void, + toHaveTagName(tagName: string): void, + toHaveText(text: string): void, + toIncludeText(text: string): void, + toHaveValue(value: any): void, + toMatchElement(element: React$Element): void, + toMatchSelector(selector: string): void +}; + +type JestExpectType = { + not: JestExpectType & EnzymeMatchersType, + /** + * If you have a mock function, you can use .lastCalledWith to test what + * arguments it was last called with. + */ + lastCalledWith(...args: Array): void, + /** + * toBe just checks that a value is what you expect. It uses === to check + * strict equality. + */ + toBe(value: any): void, + /** + * Use .toHaveBeenCalled to ensure that a mock function got called. + */ + toBeCalled(): void, + /** + * Use .toBeCalledWith to ensure that a mock function was called with + * specific arguments. + */ + toBeCalledWith(...args: Array): void, + /** + * Using exact equality with floating point numbers is a bad idea. Rounding + * means that intuitive things fail. + */ + toBeCloseTo(num: number, delta: any): void, + /** + * Use .toBeDefined to check that a variable is not undefined. + */ + toBeDefined(): void, + /** + * Use .toBeFalsy when you don't care what a value is, you just want to + * ensure a value is false in a boolean context. + */ + toBeFalsy(): void, + /** + * To compare floating point numbers, you can use toBeGreaterThan. + */ + toBeGreaterThan(number: number): void, + /** + * To compare floating point numbers, you can use toBeGreaterThanOrEqual. + */ + toBeGreaterThanOrEqual(number: number): void, + /** + * To compare floating point numbers, you can use toBeLessThan. + */ + toBeLessThan(number: number): void, + /** + * To compare floating point numbers, you can use toBeLessThanOrEqual. + */ + toBeLessThanOrEqual(number: number): void, + /** + * Use .toBeInstanceOf(Class) to check that an object is an instance of a + * class. + */ + toBeInstanceOf(cls: Class<*>): void, + /** + * .toBeNull() is the same as .toBe(null) but the error messages are a bit + * nicer. + */ + toBeNull(): void, + /** + * Use .toBeTruthy when you don't care what a value is, you just want to + * ensure a value is true in a boolean context. + */ + toBeTruthy(): void, + /** + * Use .toBeUndefined to check that a variable is undefined. + */ + toBeUndefined(): void, + /** + * Use .toContain when you want to check that an item is in a list. For + * testing the items in the list, this uses ===, a strict equality check. + */ + toContain(item: any): void, + /** + * Use .toContainEqual when you want to check that an item is in a list. For + * testing the items in the list, this matcher recursively checks the + * equality of all fields, rather than checking for object identity. + */ + toContainEqual(item: any): void, + /** + * Use .toEqual when you want to check that two objects have the same value. + * This matcher recursively checks the equality of all fields, rather than + * checking for object identity. + */ + toEqual(value: any): void, + /** + * Use .toHaveBeenCalled to ensure that a mock function got called. + */ + toHaveBeenCalled(): void, + /** + * Use .toHaveBeenCalledTimes to ensure that a mock function got called exact + * number of times. + */ + toHaveBeenCalledTimes(number: number): void, + /** + * Use .toHaveBeenCalledWith to ensure that a mock function was called with + * specific arguments. + */ + toHaveBeenCalledWith(...args: Array): void, + /** + * Use .toHaveBeenLastCalledWith to ensure that a mock function was last called + * with specific arguments. + */ + toHaveBeenLastCalledWith(...args: Array): void, + /** + * Check that an object has a .length property and it is set to a certain + * numeric value. + */ + toHaveLength(number: number): void, + /** + * + */ + toHaveProperty(propPath: string, value?: any): void, + /** + * Use .toMatch to check that a string matches a regular expression or string. + */ + toMatch(regexpOrString: RegExp | string): void, + /** + * Use .toMatchObject to check that a javascript object matches a subset of the properties of an object. + */ + toMatchObject(object: Object | Array): void, + /** + * This ensures that a React component matches the most recent snapshot. + */ + toMatchSnapshot(name?: string): void, + /** + * Use .toThrow to test that a function throws when it is called. + * If you want to test that a specific error gets thrown, you can provide an + * argument to toThrow. The argument can be a string for the error message, + * a class for the error, or a regex that should match the error. + * + * Alias: .toThrowError + */ + toThrow(message?: string | Error | Class | RegExp): void, + toThrowError(message?: string | Error | Class | RegExp): void, + /** + * Use .toThrowErrorMatchingSnapshot to test that a function throws a error + * matching the most recent snapshot when it is called. + */ + toThrowErrorMatchingSnapshot(): void +}; + +type JestObjectType = { + /** + * Disables automatic mocking in the module loader. + * + * After this method is called, all `require()`s will return the real + * versions of each module (rather than a mocked version). + */ + disableAutomock(): JestObjectType, + /** + * An un-hoisted version of disableAutomock + */ + autoMockOff(): JestObjectType, + /** + * Enables automatic mocking in the module loader. + */ + enableAutomock(): JestObjectType, + /** + * An un-hoisted version of enableAutomock + */ + autoMockOn(): JestObjectType, + /** + * Clears the mock.calls and mock.instances properties of all mocks. + * Equivalent to calling .mockClear() on every mocked function. + */ + clearAllMocks(): JestObjectType, + /** + * Resets the state of all mocks. Equivalent to calling .mockReset() on every + * mocked function. + */ + resetAllMocks(): JestObjectType, + /** + * Removes any pending timers from the timer system. + */ + clearAllTimers(): void, + /** + * The same as `mock` but not moved to the top of the expectation by + * babel-jest. + */ + doMock(moduleName: string, moduleFactory?: any): JestObjectType, + /** + * The same as `unmock` but not moved to the top of the expectation by + * babel-jest. + */ + dontMock(moduleName: string): JestObjectType, + /** + * Returns a new, unused mock function. Optionally takes a mock + * implementation. + */ + fn, TReturn>( + implementation?: (...args: TArguments) => TReturn + ): JestMockFn, + /** + * Determines if the given function is a mocked function. + */ + isMockFunction(fn: Function): boolean, + /** + * Given the name of a module, use the automatic mocking system to generate a + * mocked version of the module for you. + */ + genMockFromModule(moduleName: string): any, + /** + * Mocks a module with an auto-mocked version when it is being required. + * + * The second argument can be used to specify an explicit module factory that + * is being run instead of using Jest's automocking feature. + * + * The third argument can be used to create virtual mocks -- mocks of modules + * that don't exist anywhere in the system. + */ + mock( + moduleName: string, + moduleFactory?: any, + options?: Object + ): JestObjectType, + /** + * Returns the actual module instead of a mock, bypassing all checks on + * whether the module should receive a mock implementation or not. + */ + requireActual(moduleName: string): any, + /** + * Returns a mock module instead of the actual module, bypassing all checks + * on whether the module should be required normally or not. + */ + requireMock(moduleName: string): any, + /** + * Resets the module registry - the cache of all required modules. This is + * useful to isolate modules where local state might conflict between tests. + */ + resetModules(): JestObjectType, + /** + * Exhausts the micro-task queue (usually interfaced in node via + * process.nextTick). + */ + runAllTicks(): void, + /** + * Exhausts the macro-task queue (i.e., all tasks queued by setTimeout(), + * setInterval(), and setImmediate()). + */ + runAllTimers(): void, + /** + * Exhausts all tasks queued by setImmediate(). + */ + runAllImmediates(): void, + /** + * Executes only the macro task queue (i.e. all tasks queued by setTimeout() + * or setInterval() and setImmediate()). + */ + runTimersToTime(msToRun: number): void, + /** + * Executes only the macro-tasks that are currently pending (i.e., only the + * tasks that have been queued by setTimeout() or setInterval() up to this + * point) + */ + runOnlyPendingTimers(): void, + /** + * Explicitly supplies the mock object that the module system should return + * for the specified module. Note: It is recommended to use jest.mock() + * instead. + */ + setMock(moduleName: string, moduleExports: any): JestObjectType, + /** + * Indicates that the module system should never return a mocked version of + * the specified module from require() (e.g. that it should always return the + * real module). + */ + unmock(moduleName: string): JestObjectType, + /** + * Instructs Jest to use fake versions of the standard timer functions + * (setTimeout, setInterval, clearTimeout, clearInterval, nextTick, + * setImmediate and clearImmediate). + */ + useFakeTimers(): JestObjectType, + /** + * Instructs Jest to use the real versions of the standard timer functions. + */ + useRealTimers(): JestObjectType, + /** + * Creates a mock function similar to jest.fn but also tracks calls to + * object[methodName]. + */ + spyOn(object: Object, methodName: string): JestMockFn, + /** + * Set the default timeout interval for tests and before/after hooks in milliseconds. + * Note: The default timeout interval is 5 seconds if this method is not called. + */ + setTimeout(timeout: number): JestObjectType +}; + +type JestSpyType = { + calls: JestCallsType +}; + +/** Runs this function after every test inside this context */ +declare function afterEach( + fn: (done: () => void) => ?Promise, + timeout?: number +): void; +/** Runs this function before every test inside this context */ +declare function beforeEach( + fn: (done: () => void) => ?Promise, + timeout?: number +): void; +/** Runs this function after all tests have finished inside this context */ +declare function afterAll( + fn: (done: () => void) => ?Promise, + timeout?: number +): void; +/** Runs this function before any tests have started inside this context */ +declare function beforeAll( + fn: (done: () => void) => ?Promise, + timeout?: number +): void; + +/** A context for grouping tests together */ +declare var describe: { + /** + * Creates a block that groups together several related tests in one "test suite" + */ + (name: string, fn: () => void): void, + + /** + * Only run this describe block + */ + only(name: string, fn: () => void): void, + + /** + * Skip running this describe block + */ + skip(name: string, fn: () => void): void +}; + +/** An individual test unit */ +declare var it: { + /** + * An individual test unit + * + * @param {string} Name of Test + * @param {Function} Test + * @param {number} Timeout for the test, in milliseconds. + */ + ( + name: string, + fn?: (done: () => void) => ?Promise, + timeout?: number + ): void, + /** + * Only run this test + * + * @param {string} Name of Test + * @param {Function} Test + * @param {number} Timeout for the test, in milliseconds. + */ + only( + name: string, + fn?: (done: () => void) => ?Promise, + timeout?: number + ): void, + /** + * Skip running this test + * + * @param {string} Name of Test + * @param {Function} Test + * @param {number} Timeout for the test, in milliseconds. + */ + skip( + name: string, + fn?: (done: () => void) => ?Promise, + timeout?: number + ): void, + /** + * Run the test concurrently + * + * @param {string} Name of Test + * @param {Function} Test + * @param {number} Timeout for the test, in milliseconds. + */ + concurrent( + name: string, + fn?: (done: () => void) => ?Promise, + timeout?: number + ): void +}; +declare function fit( + name: string, + fn: (done: () => void) => ?Promise, + timeout?: number +): void; +/** An individual test unit */ +declare var test: typeof it; +/** A disabled group of tests */ +declare var xdescribe: typeof describe; +/** A focused group of tests */ +declare var fdescribe: typeof describe; +/** A disabled individual test */ +declare var xit: typeof it; +/** A disabled individual test */ +declare var xtest: typeof it; + +/** The expect function is used every time you want to test a value */ +declare var expect: { + /** The object that you want to make assertions against */ + (value: any): JestExpectType & JestPromiseType & EnzymeMatchersType, + /** Add additional Jasmine matchers to Jest's roster */ + extend(matchers: { [name: string]: JestMatcher }): void, + /** Add a module that formats application-specific data structures. */ + addSnapshotSerializer(serializer: (input: Object) => string): void, + assertions(expectedAssertions: number): void, + hasAssertions(): void, + any(value: mixed): JestAsymmetricEqualityType, + anything(): void, + arrayContaining(value: Array): void, + objectContaining(value: Object): void, + /** Matches any received string that contains the exact expected string. */ + stringContaining(value: string): void, + stringMatching(value: string | RegExp): void +}; + +// TODO handle return type +// http://jasmine.github.io/2.4/introduction.html#section-Spies +declare function spyOn(value: mixed, method: string): Object; + +/** Holds all functions related to manipulating test runner */ +declare var jest: JestObjectType; + +/** + * The global Jasmine object, this is generally not exposed as the public API, + * using features inside here could break in later versions of Jest. + */ +declare var jasmine: { + DEFAULT_TIMEOUT_INTERVAL: number, + any(value: mixed): JestAsymmetricEqualityType, + anything(): void, + arrayContaining(value: Array): void, + clock(): JestClockType, + createSpy(name: string): JestSpyType, + createSpyObj( + baseName: string, + methodNames: Array + ): { [methodName: string]: JestSpyType }, + objectContaining(value: Object): void, + stringMatching(value: string): void +}; diff --git a/flow-typed/npm/lint-staged_vx.x.x.js b/flow-typed/npm/lint-staged_vx.x.x.js new file mode 100644 index 0000000..60664fe --- /dev/null +++ b/flow-typed/npm/lint-staged_vx.x.x.js @@ -0,0 +1,94 @@ +// flow-typed signature: f8ba71ca579893bc346cb9f24d7f595c +// flow-typed version: <>/lint-staged_v^4.2.2/flow_v0.66.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'lint-staged' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module 'lint-staged' { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module 'lint-staged/src/calcChunkSize' { + declare module.exports: any; +} + +declare module 'lint-staged/src/findBin' { + declare module.exports: any; +} + +declare module 'lint-staged/src/generateTasks' { + declare module.exports: any; +} + +declare module 'lint-staged/src/getConfig' { + declare module.exports: any; +} + +declare module 'lint-staged/src/index' { + declare module.exports: any; +} + +declare module 'lint-staged/src/printErrors' { + declare module.exports: any; +} + +declare module 'lint-staged/src/resolveGitDir' { + declare module.exports: any; +} + +declare module 'lint-staged/src/runAll' { + declare module.exports: any; +} + +declare module 'lint-staged/src/runScript' { + declare module.exports: any; +} + +// Filename aliases +declare module 'lint-staged/index' { + declare module.exports: $Exports<'lint-staged'>; +} +declare module 'lint-staged/index.js' { + declare module.exports: $Exports<'lint-staged'>; +} +declare module 'lint-staged/src/calcChunkSize.js' { + declare module.exports: $Exports<'lint-staged/src/calcChunkSize'>; +} +declare module 'lint-staged/src/findBin.js' { + declare module.exports: $Exports<'lint-staged/src/findBin'>; +} +declare module 'lint-staged/src/generateTasks.js' { + declare module.exports: $Exports<'lint-staged/src/generateTasks'>; +} +declare module 'lint-staged/src/getConfig.js' { + declare module.exports: $Exports<'lint-staged/src/getConfig'>; +} +declare module 'lint-staged/src/index.js' { + declare module.exports: $Exports<'lint-staged/src/index'>; +} +declare module 'lint-staged/src/printErrors.js' { + declare module.exports: $Exports<'lint-staged/src/printErrors'>; +} +declare module 'lint-staged/src/resolveGitDir.js' { + declare module.exports: $Exports<'lint-staged/src/resolveGitDir'>; +} +declare module 'lint-staged/src/runAll.js' { + declare module.exports: $Exports<'lint-staged/src/runAll'>; +} +declare module 'lint-staged/src/runScript.js' { + declare module.exports: $Exports<'lint-staged/src/runScript'>; +} diff --git a/flow-typed/npm/prettier_v1.x.x.js b/flow-typed/npm/prettier_v1.x.x.js new file mode 100644 index 0000000..0c24491 --- /dev/null +++ b/flow-typed/npm/prettier_v1.x.x.js @@ -0,0 +1,178 @@ +// flow-typed signature: 4eed8da2dc730dc33e7710b465eaa44b +// flow-typed version: cc7a557b34/prettier_v1.x.x/flow_>=v0.56.x + +declare module "prettier" { + declare type AST = Object; + declare type Doc = Object; + declare type FastPath = Object; + + declare type PrettierParserName = + | "babylon" + | "flow" + | "typescript" + | "postcss" + | "css" + | "less" + | "scss" + | "json" + | "graphql" + | "markdown" + | "vue"; + + declare type PrettierParser = { + [name: PrettierParserName]: (text: string, options?: Object) => AST + }; + + declare type CustomParser = ( + text: string, + parsers: PrettierParser, + options: Options + ) => AST; + + declare type Options = {| + printWidth?: number, + tabWidth?: number, + useTabs?: boolean, + semi?: boolean, + singleQuote?: boolean, + trailingComma?: "none" | "es5" | "all", + bracketSpacing?: boolean, + jsxBracketSameLine?: boolean, + arrowParens?: "avoid" | "always", + rangeStart?: number, + rangeEnd?: number, + parser?: PrettierParserName | CustomParser, + filepath?: string, + requirePragma?: boolean, + insertPragma?: boolean, + proseWrap?: "always" | "never" | "preserve", + plugins?: Array + |}; + + declare type Plugin = { + languages: SupportLanguage, + parsers: { [parserName: string]: Parser }, + printers: { [astFormat: string]: Printer } + }; + + declare type Parser = { + parse: ( + text: string, + parsers: { [parserName: string]: Parser }, + options: Object + ) => AST, + astFormat: string + }; + + declare type Printer = { + print: ( + path: FastPath, + options: Object, + print: (path: FastPath) => Doc + ) => Doc, + embed: ( + path: FastPath, + print: (path: FastPath) => Doc, + textToDoc: (text: string, options: Object) => Doc, + options: Object + ) => ?Doc + }; + + declare type CursorOptions = {| + cursorOffset: number, + printWidth?: $PropertyType, + tabWidth?: $PropertyType, + useTabs?: $PropertyType, + semi?: $PropertyType, + singleQuote?: $PropertyType, + trailingComma?: $PropertyType, + bracketSpacing?: $PropertyType, + jsxBracketSameLine?: $PropertyType, + arrowParens?: $PropertyType, + parser?: $PropertyType, + filepath?: $PropertyType, + requirePragma?: $PropertyType, + insertPragma?: $PropertyType, + proseWrap?: $PropertyType, + plugins?: $PropertyType + |}; + + declare type CursorResult = {| + formatted: string, + cursorOffset: number + |}; + + declare type ResolveConfigOptions = {| + useCache?: boolean, + config?: string, + editorconfig?: boolean + |}; + + declare type SupportLanguage = { + name: string, + since: string, + parsers: Array, + group?: string, + tmScope: string, + aceMode: string, + codemirrorMode: string, + codemirrorMimeType: string, + aliases?: Array, + extensions: Array, + filenames?: Array, + linguistLanguageId: number, + vscodeLanguageIds: Array + }; + + declare type SupportOption = {| + since: string, + type: "int" | "boolean" | "choice" | "path", + deprecated?: string, + redirect?: SupportOptionRedirect, + description: string, + oppositeDescription?: string, + default: SupportOptionValue, + range?: SupportOptionRange, + choices?: SupportOptionChoice + |}; + + declare type SupportOptionRedirect = {| + options: string, + value: SupportOptionValue + |}; + + declare type SupportOptionRange = {| + start: number, + end: number, + step: number + |}; + + declare type SupportOptionChoice = {| + value: boolean | string, + description?: string, + since?: string, + deprecated?: string, + redirect?: SupportOptionValue + |}; + + declare type SupportOptionValue = number | boolean | string; + + declare type SupportInfo = {| + languages: Array, + options: Array + |}; + + declare type Prettier = {| + format: (source: string, options?: Options) => string, + check: (source: string, options?: Options) => boolean, + formatWithCursor: (source: string, options: CursorOptions) => CursorResult, + resolveConfig: { + (filePath: string, options?: ResolveConfigOptions): Promise, + sync(filePath: string, options?: ResolveConfigOptions): Promise + }, + clearConfigCache: () => void, + getSupportInfo: (version?: string) => SupportInfo + |}; + + declare export default Prettier; +} diff --git a/flow-typed/npm/rimraf_v2.x.x.js b/flow-typed/npm/rimraf_v2.x.x.js new file mode 100644 index 0000000..13b8524 --- /dev/null +++ b/flow-typed/npm/rimraf_v2.x.x.js @@ -0,0 +1,18 @@ +// flow-typed signature: 1dff23447d5e18f5ac2b05aaec7cfb74 +// flow-typed version: a453e98ea2/rimraf_v2.x.x/flow_>=v0.25.0 + +declare module 'rimraf' { + declare type Options = { + maxBusyTries?: number, + emfileWait?: number, + glob?: boolean, + disableGlob?: boolean + }; + + declare type Callback = (err: ?Error, path: ?string) => void; + + declare module.exports: { + (f: string, opts?: Options | Callback, callback?: Callback): void; + sync(path: string, opts?: Options): void; + }; +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5b0a8df --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "callback-to-async-iterator", + "version": "1.0.0", + "description": "Turn any callback-based listener into an async iterator.", + "repository": { + "type": "git", + "url": "https://github.com/withspectrum/callback-to-async-iterator.git" + }, + "main": "dist/index.js", + "license": "MIT", + "scripts": { + "precommit": "lint-staged", + "prebuild": "rimraf dist", + "build": "babel src --out-dir dist --ignore '*.test.js'", + "test": "jest src", + "prettier": "prettier --write --single-quote --trailing-comma es5 'src/**/*.js'", + "flow": "flow src" + }, + "lint-staged": { + "*.js": [ + "prettier --write --single-quote --trailing-comma es5", + "git add" + ] + }, + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.0", + "babel-preset-flow": "^6.23.0", + "flow-bin": "^0.66.0", + "husky": "^0.14.3", + "jest": "^21.1.0", + "lint-staged": "^4.2.2", + "prettier": "^1.7.0", + "rimraf": "^2.6.2" + }, + "dependencies": { + "iterall": "^1.0.0" + } +} diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..4c03ceb --- /dev/null +++ b/src/index.js @@ -0,0 +1,96 @@ +// @flow +// Turn a callback-based listener into an async iterator +// Based on https://github.com/apollographql/graphql-subscriptions/blob/master/src/event-emitter-to-async-iterator.ts +import { $$asyncIterator } from 'iterall'; + +const defaultOnError = (err: Error) => { + throw new Error(err); +}; + +function callbackToAsyncIterator( + listener: ((arg: CallbackInput) => any) => Promise, + options?: { + onError?: (err: Error) => void, + onClose?: (arg?: ?ReturnVal) => void, + } = {} +) { + const { onError = defaultOnError, onClose } = options; + try { + let pullQueue = []; + let pushQueue = []; + let listening = true; + let listenerReturnValue; + // Start listener + listener(value => pushValue(value)) + .then(a => { + listenerReturnValue = a; + }) + .catch(err => { + onError(err); + }); + + function pushValue(value) { + if (pullQueue.length !== 0) { + pullQueue.shift()({ value, done: false }); + } else { + pushQueue.push(value); + } + } + + function pullValue() { + return new Promise(resolve => { + if (pushQueue.length !== 0) { + resolve({ value: pushQueue.shift(), done: false }); + } else { + pullQueue.push(resolve); + } + }); + } + + function emptyQueue() { + if (listening) { + listening = false; + pullQueue.forEach(resolve => resolve({ value: undefined, done: true })); + pullQueue = []; + pushQueue = []; + onClose && onClose(listenerReturnValue); + } + } + + return ({ + next(): Promise<{ value?: CallbackInput, done: bool }> { + return listening ? pullValue() : this.return(); + }, + return(): Promise<{ value: typeof undefined, done: bool }> { + emptyQueue(); + return Promise.resolve({ value: undefined, done: true }); + }, + throw(error) { + emptyQueue(); + onError(error); + return Promise.reject(error); + }, + [$$asyncIterator]() { + return this; + }, + }); + } catch (err) { + onError(err); + return ({ + next() { + return Promise.reject(err); + }, + return(){ + return Promise.reject(err); + }, + throw(error) { + return Promise.reject(error); + }, + [$$asyncIterator]() { + return this; + }, + }); + } +}; + +export default callbackToAsyncIterator; diff --git a/src/test/index.test.js b/src/test/index.test.js new file mode 100644 index 0000000..78b6592 --- /dev/null +++ b/src/test/index.test.js @@ -0,0 +1,108 @@ +// @flow +import { isAsyncIterable } from 'iterall'; +import asyncify from '../'; + +it('should turn a callback listener into an async iterator', async () => { + const listener = (cb: () => void) => new Promise(res => { cb(); res(); }); + const iter = asyncify(listener); + expect(isAsyncIterable(iter)).toEqual(true); + await iter.return() +}); + +it('should get new values while waiting for .next', async () => { + const listener = (cb: (arg: number) => void) => new Promise(res => { + res(); + setTimeout(() => cb(1), 100); + setTimeout(() => cb(2), 200); + }); + + const iter = asyncify(listener); + const first = await iter.next(); + expect(first.value).toEqual(1); + expect(first.done).toEqual(false); + const second = await iter.next(); + expect(second.value).toEqual(2); + expect(second.done).toEqual(false); + await iter.return() +}) + +it('should buffer values that are added before .next is called', async () => { + const listener = (cb: (arg: number) => void) => new Promise(res => { + res(); + cb(1); + cb(2); + }); + + const iter = asyncify(listener); + // Delay to make sure the callback calls are done + // before .next is called + await new Promise(res => setTimeout(res, 50)); + const first = await iter.next(); + expect(first.value).toEqual(1); + expect(first.done).toEqual(false); + const second = await iter.next(); + expect(second.value).toEqual(2); + expect(second.done).toEqual(false); + await iter.return() +}); + +it('should return done: true on return', async () => { + const listener = (cb: () => void) => Promise.resolve(); + + const iter = asyncify(listener); + expect((await iter.return()).done).toEqual(true) +}) + +it('should resolve with done: true if .next is called after .return', async () => { + const listener = (cb: () => void) => Promise.resolve() + + const iter = asyncify(listener); + await iter.return(); + expect((await iter.next()).done).toEqual(true) +}) + +describe('options', () => { + it('should call onError with an error thrown in the listener', async () => { + const error = new Error('Bla') + const listener = (cb: () => void) => Promise.reject(error); + + expect.hasAssertions(); + const iter = asyncify(listener, { + onError: (err) => { + expect(err).toEqual(error); + } + }); + }) + + it('should call onError with an error thrown by the async iter', async () => { + const error = new Error('Bla bla'); + const listener = (cb: () => void) => Promise.resolve(); + + expect.assertions(2); + const iter = asyncify(listener, { + onError: (err) => { + expect(err).toEqual(error); + } + }); + await iter.throw(error).catch(err => { + expect(err).toEqual(error); + }); + }) + + it('should call onClose with the return value from the listener', async () => { + const returnValue = 'asdf'; + const listener = (cb: () => void) => new Promise(res => { + res(returnValue); + }) + + expect.hasAssertions(); + const iter = asyncify(listener, { + onClose: (val) => { + expect(val).toEqual(returnValue); + } + }); + // Wait a tick so that the promise resolves with the return value + await new Promise(res => setTimeout(res, 10)); + await iter.return(); + }) +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..3671d0f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3513 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abab@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +acorn-globals@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + dependencies: + acorn "^4.0.4" + +acorn@^4.0.4: + version "4.0.11" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-escapes@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0, ansi-styles@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +app-root-path@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.1.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.0.0, babel-core@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.24.1" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.18.0, babel-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.0.2.tgz#817ea52c23f1c6c4b684d6960968416b6a9e9c6c" + dependencies: + babel-plugin-istanbul "^4.0.0" + babel-preset-jest "^21.0.2" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-istanbul@^4.0.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz#6ee6280410dcf59c7747518c3dfd98680958f102" + dependencies: + find-up "^2.1.0" + istanbul-lib-instrument "^1.7.1" + test-exclude "^4.1.0" + +babel-plugin-jest-hoist@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.0.2.tgz#cfdce5bca40d772a056cb8528ad159c7bb4bb03d" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + 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.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" + dependencies: + regenerator-transform "0.9.11" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-jest@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.0.2.tgz#9db25def2329f49eace3f5ea0de42a0b898d12cc" + dependencies: + babel-plugin-jest-hoist "^21.0.2" + +babel-register@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" + dependencies: + babel-core "^6.24.1" + babel-runtime "^6.22.0" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0: + version "6.17.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.0.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-resolve@^1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserslist@^2.1.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8" + dependencies: + caniuse-lite "^1.0.30000718" + electron-to-chromium "^1.3.18" + +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-lite@^1.0.30000718: + version "1.0.30000735" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000735.tgz#aab44016ef243e215ef43fd1343efd22930842f8" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1, chalk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chokidar@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +ci-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-spinners@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +color-convert@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +content-type-parser@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-js@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37" + dependencies: + graceful-fs "^4.1.2" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.0.1" + os-homedir "^1.0.1" + parse-json "^2.2.0" + pinkie-promise "^2.0.0" + require-from-string "^1.1.0" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + +"cssstyle@>= 0.2.37 < 0.3.0": + version "0.2.37" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + dependencies: + cssom "0.3.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-fns@^1.27.2: + version "1.28.4" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.4.tgz#7938aec34ba31fc8bd134d2344bc2e0bbfd95165" + +debug@^2.1.1, debug@^2.2.0, debug@^2.6.3: + version "2.6.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" + dependencies: + ms "0.7.3" + +debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +diff@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +electron-to-chromium@^1.3.18: + version "1.3.21" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.21.tgz#a967ebdcfe8ed0083fc244d1894022a8e8113ea2" + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + +"errno@>=0.1.1 <0.2.0-0": + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@^1.6.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +exec-sh@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" + dependencies: + merge "^1.1.3" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expect@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-21.1.0.tgz#1c138ec803c72d28cbd10dfe97104966d967c24a" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^21.1.0" + jest-get-type "^21.0.2" + jest-matcher-utils "^21.1.0" + jest-message-util "^21.1.0" + jest-regex-util "^21.1.0" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +flow-bin@^0.66.0: + version "0.66.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.66.0.tgz#a96dde7015dc3343fd552a7b4963c02be705ca26" + +for-each@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" + dependencies: + is-function "~1.0.0" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fsevents@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-own-enumerable-property-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-1.0.1.tgz#f1d4e3ad1402e039898e56d1e9b9aa924c26e484" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.3, glob@^7.0.5: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1, glob@^7.1.2, glob@~7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + +handlebars@^4.0.3: + version "4.0.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.8.tgz#22b875cd3f0e6cbea30314f144e82bc7a72ff420" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1, has@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.4.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + +html-encoding-sniffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" + dependencies: + whatwg-encoding "^1.0.1" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +husky@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" + dependencies: + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" + +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +invariant@^2.2.0, invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + dependencies: + ci-info "^1.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-api@^1.1.1: + version "1.1.14" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.0.7" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-report "^1.1.1" + istanbul-lib-source-maps "^1.2.1" + istanbul-reports "^1.1.2" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-coverage@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528" + +istanbul-lib-hook@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +istanbul-lib-instrument@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.13.0" + istanbul-lib-coverage "^1.1.0" + semver "^5.3.0" + +istanbul-lib-report@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" + dependencies: + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" + dependencies: + debug "^2.6.3" + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.2.tgz#0fb2e3f6aa9922bd3ce45d05d8ab4d5e8e07bd4f" + dependencies: + handlebars "^4.0.3" + +iterall@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" + +jest-changed-files@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.1.0.tgz#e70f6b33b75d5987f4eae07e35bea5525635f92a" + dependencies: + throat "^4.0.0" + +jest-cli@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.1.0.tgz#4f671885ea3521803c96a1fd95baaa6a1ba8d70f" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + istanbul-api "^1.1.1" + istanbul-lib-coverage "^1.0.1" + istanbul-lib-instrument "^1.4.2" + istanbul-lib-source-maps "^1.1.0" + jest-changed-files "^21.1.0" + jest-config "^21.1.0" + jest-environment-jsdom "^21.1.0" + jest-haste-map "^21.1.0" + jest-message-util "^21.1.0" + jest-regex-util "^21.1.0" + jest-resolve-dependencies "^21.1.0" + jest-runner "^21.1.0" + jest-runtime "^21.1.0" + jest-snapshot "^21.1.0" + jest-util "^21.1.0" + micromatch "^2.3.11" + node-notifier "^5.0.2" + pify "^3.0.0" + slash "^1.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" + worker-farm "^1.3.1" + yargs "^9.0.0" + +jest-config@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.1.0.tgz#7ef8778af679de30dad75e355a0dfbb0330b8d2f" + dependencies: + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^21.1.0" + jest-environment-node "^21.1.0" + jest-get-type "^21.0.2" + jest-jasmine2 "^21.1.0" + jest-regex-util "^21.1.0" + jest-resolve "^21.1.0" + jest-util "^21.1.0" + jest-validate "^21.1.0" + pretty-format "^21.1.0" + +jest-diff@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.1.0.tgz#ca4c9d40272a6901dcde6c4c0bb2f568c363cc42" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^21.0.2" + pretty-format "^21.1.0" + +jest-docblock@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.1.0.tgz#43154be2441fb91403e36bb35cb791a5017cea81" + +jest-environment-jsdom@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.1.0.tgz#40729a60cd4544625f7d3a33c32bdaad63e57db7" + dependencies: + jest-mock "^21.1.0" + jest-util "^21.1.0" + jsdom "^9.12.0" + +jest-environment-node@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.1.0.tgz#a11fd611e8ae6c3e02b785aa1b12a3009f4fd0f1" + dependencies: + jest-mock "^21.1.0" + jest-util "^21.1.0" + +jest-get-type@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.0.2.tgz#304e6b816dd33cd1f47aba0597bcad258a509fc6" + +jest-haste-map@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.1.0.tgz#08e7a8c584008d4b790b8dddf7dd3e3db03b75d3" + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + jest-docblock "^21.1.0" + micromatch "^2.3.11" + sane "^2.0.0" + worker-farm "^1.3.1" + +jest-jasmine2@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.1.0.tgz#975c3cd3ecd9d50d385bfe3c680dd61979f50c9c" + dependencies: + chalk "^2.0.1" + expect "^21.1.0" + graceful-fs "^4.1.11" + jest-diff "^21.1.0" + jest-matcher-utils "^21.1.0" + jest-message-util "^21.1.0" + jest-snapshot "^21.1.0" + p-cancelable "^0.3.0" + +jest-matcher-utils@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.1.0.tgz#b02e237b287c58915ce9a5bf3c7138dba95125a7" + dependencies: + chalk "^2.0.1" + jest-get-type "^21.0.2" + pretty-format "^21.1.0" + +jest-message-util@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.1.0.tgz#7f9a52535d1a640af0d4c800edde737e14ea0526" + dependencies: + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + +jest-mock@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.1.0.tgz#c4dddfa893a0b120b72b5ae87c7506745213a790" + +jest-regex-util@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.1.0.tgz#59e4bad74f5ffd62a3835225f9bc1ee3796b5adb" + +jest-resolve-dependencies@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.1.0.tgz#9f78852e65d864d04ad0919ac8226b3f1434e7b0" + dependencies: + jest-regex-util "^21.1.0" + +jest-resolve@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.1.0.tgz#6bb806ca5ad876c250044fe62f298321d2da5c06" + dependencies: + browser-resolve "^1.11.2" + chalk "^2.0.1" + is-builtin-module "^1.0.0" + +jest-runner@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.1.0.tgz#d7ea7e2fa10ed673d4dd25ba2f3faae2efb89a07" + dependencies: + jest-config "^21.1.0" + jest-docblock "^21.1.0" + jest-haste-map "^21.1.0" + jest-jasmine2 "^21.1.0" + jest-message-util "^21.1.0" + jest-runtime "^21.1.0" + jest-util "^21.1.0" + pify "^3.0.0" + throat "^4.0.0" + worker-farm "^1.3.1" + +jest-runtime@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.1.0.tgz#c9a180a9e06ef046d0ad157dea52355abb7cbad4" + dependencies: + babel-core "^6.0.0" + babel-jest "^21.0.2" + babel-plugin-istanbul "^4.0.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + graceful-fs "^4.1.11" + jest-config "^21.1.0" + jest-haste-map "^21.1.0" + jest-regex-util "^21.1.0" + jest-resolve "^21.1.0" + jest-util "^21.1.0" + json-stable-stringify "^1.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + strip-bom "3.0.0" + write-file-atomic "^2.1.0" + yargs "^9.0.0" + +jest-snapshot@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.1.0.tgz#a5fa9d52847d8f52e19a1df6ccae9de699193ccc" + dependencies: + chalk "^2.0.1" + jest-diff "^21.1.0" + jest-matcher-utils "^21.1.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^21.1.0" + +jest-util@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.1.0.tgz#f92ff756422cc0609ddf5a9bfa4d34b2835d8c30" + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + jest-message-util "^21.1.0" + jest-mock "^21.1.0" + jest-validate "^21.1.0" + mkdirp "^0.5.1" + +jest-validate@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.1.0.tgz#39d01115544a758bce49f221a5fcbb24ebdecc65" + dependencies: + chalk "^2.0.1" + jest-get-type "^21.0.2" + leven "^2.1.0" + pretty-format "^21.1.0" + +jest@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-21.1.0.tgz#77c7baa8aa9e8bace7fe41a30d748ab56e89476a" + dependencies: + jest-cli "^21.1.0" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-tokens@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.4.3, js-yaml@^3.7.0: + version "3.8.3" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.3.tgz#33a05ec481c850c8875929166fe1beb61c728766" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsdom@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" + dependencies: + abab "^1.0.3" + acorn "^4.0.4" + acorn-globals "^3.1.0" + array-equal "^1.0.0" + content-type-parser "^1.0.1" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.2.37 < 0.3.0" + escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" + nwmatcher ">= 1.3.9 < 2.0.0" + parse5 "^1.5.1" + request "^2.79.0" + sax "^1.2.1" + symbol-tree "^3.2.1" + tough-cookie "^2.3.2" + webidl-conversions "^4.0.0" + whatwg-encoding "^1.0.1" + whatwg-url "^4.3.0" + xml-name-validator "^2.0.1" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + dependencies: + assert-plus "1.0.0" + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +kind-of@^3.0.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" + dependencies: + is-buffer "^1.1.5" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lint-staged@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.2.2.tgz#a308ceb3f1031b78c832fbe4570744b3c7fd5a4e" + dependencies: + app-root-path "^2.0.0" + chalk "^2.1.0" + cosmiconfig "^1.1.0" + execa "^0.8.0" + is-glob "^4.0.0" + jest-validate "^21.1.0" + listr "^0.12.0" + lodash "^4.17.4" + log-symbols "^2.0.0" + minimatch "^3.0.0" + npm-which "^3.0.1" + p-map "^1.1.1" + staged-git-files "0.0.4" + stringify-object "^3.2.0" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + +listr-update-renderer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +listr@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + figures "^1.7.0" + indent-string "^2.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.2.0" + listr-verbose-renderer "^0.4.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + ora "^0.2.3" + p-map "^1.1.1" + rxjs "^5.0.0-beta.11" + stream-to-observable "^0.1.0" + strip-ansi "^3.0.1" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +log-symbols@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.0.0.tgz#595e63be4d5c8cbf294a9e09e0d5629f5913fc0c" + dependencies: + chalk "^2.0.1" + +log-update@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + dependencies: + ansi-escapes "^1.0.0" + cli-cursor "^1.0.2" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8, minimist@~0.0.1: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.1, minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +node-notifier@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" + dependencies: + growly "^1.3.0" + semver "^5.3.0" + shellwords "^0.1.0" + which "^1.2.12" + +node-pre-gyp@^0.6.29: + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-pre-gyp@^0.6.36: + version "0.6.37" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz#3c872b236b2e266e4140578fe1ee88f693323a05" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tape "^4.6.3" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-path@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" + dependencies: + which "^1.2.10" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npm-which@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + dependencies: + commander "^2.9.0" + npm-path "^2.0.2" + which "^1.2.10" + +npmlog@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +"nwmatcher@>= 1.3.9 < 2.0.0": + version "1.3.9" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-inspect@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.3.0.tgz#5b1eb8e6742e2ee83342a637034d844928ba2f6d" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +ora@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + dependencies: + chalk "^1.1.1" + cli-cursor "^1.0.2" + cli-spinners "^0.1.2" + object-assign "^4.0.1" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.7.0.tgz#47481588f41f7c90f63938feb202ac82554e7150" + +pretty-format@^21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.1.0.tgz#557428254323832ee8b7c971cb613442bea67f61" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +private@^0.1.6, private@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regenerate@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regenerator-transform@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@^2.79.0, request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +rxjs@^5.0.0-beta.11: + version "5.3.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.1.tgz#9ecc9e722247e4f4490d30a878577a3740fd0cb7" + dependencies: + symbol-observable "^1.0.1" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +sane@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.0.0.tgz#99cb79f21f4a53a69d4d0cd957c2db04024b8eb2" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + optionalDependencies: + fsevents "^1.1.1" + +sax@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shellwords@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@^0.4.2: + version "0.4.15" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" + dependencies: + source-map "^0.5.6" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +staged-git-files@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35" + +stream-to-observable@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string_decoder@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" + dependencies: + buffer-shims "~1.0.0" + +stringify-object@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.0.tgz#94370a135e41bc048358813bf99481f1315c6aa6" + dependencies: + get-own-enumerable-property-symbols "^1.0.1" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@3.0.0, strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + +symbol-observable@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +symbol-tree@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +tape@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.8.0.tgz#f6a9fec41cc50a1de50fa33603ab580991f6068e" + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.2" + function-bind "~1.1.0" + glob "~7.1.2" + has "~1.0.1" + inherits "~2.0.3" + minimist "~1.2.0" + object-inspect "~1.3.0" + resolve "~1.4.0" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +test-exclude@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + +through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +to-fast-properties@^1.0.1, to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +tough-cookie@^2.3.2, tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +uglify-js@^2.6: + version "2.8.22" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +watch@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + +webidl-conversions@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0" + +whatwg-encoding@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" + dependencies: + iconv-lite "0.4.13" + +whatwg-url@^4.3.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.7.1.tgz#df4dc2e3f25a63b1fa5b32ed6d6c139577d690de" + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.10, which@^1.2.12, which@^1.2.9: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +worker-farm@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff" + dependencies: + errno ">=0.1.1 <0.2.0-0" + xtend ">=4.0.0 <4.1.0-0" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +xml-name-validator@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + +"xtend@>=4.0.0 <4.1.0-0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0"