├── .circleci └── config.yml ├── .eslintrc.js ├── .gitignore ├── DefaultLoadingIndicator.js ├── InfiniteScrollView.js ├── LICENSE ├── README.md ├── package.json └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | working_directory: ~/react-native-infinite-scroll-view 5 | docker: 6 | - image: circleci/node:10 7 | steps: 8 | - checkout 9 | - restore_cache: 10 | key: v1-node_modules 11 | - run: 12 | name: Install npm packages 13 | command: yarn 14 | - save_cache: 15 | key: v1-node_modules 16 | paths: 17 | - node_modules 18 | - run: 19 | name: Lint 20 | command: yarn lint --max-warnings 0 21 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'universe/native', 3 | settings: { 4 | react: { 5 | version: '16', 6 | }, 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | -------------------------------------------------------------------------------- /DefaultLoadingIndicator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import React from 'react'; 4 | import { ActivityIndicator, StyleSheet, View } from 'react-native'; 5 | 6 | export default class DefaultLoadingIndicator extends React.Component { 7 | render() { 8 | return ( 9 | 10 | 11 | 12 | ); 13 | } 14 | } 15 | 16 | let styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | padding: 20, 20 | backgroundColor: 'transparent', 21 | justifyContent: 'center', 22 | alignItems: 'center', 23 | }, 24 | }); 25 | -------------------------------------------------------------------------------- /InfiniteScrollView.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import PropTypes from 'prop-types'; 4 | import React from 'react'; 5 | import { ScrollView, View } from 'react-native'; 6 | import ScrollableMixin from 'react-native-scrollable-mixin'; 7 | 8 | import cloneReferencedElement from 'react-clone-referenced-element'; 9 | 10 | import DefaultLoadingIndicator from './DefaultLoadingIndicator'; 11 | 12 | export default class InfiniteScrollView extends React.Component { 13 | static propTypes = { 14 | ...ScrollView.propTypes, 15 | distanceToLoadMore: PropTypes.number.isRequired, 16 | canLoadMore: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]).isRequired, 17 | onLoadMoreAsync: PropTypes.func.isRequired, 18 | onLoadError: PropTypes.func, 19 | renderLoadingIndicator: PropTypes.func.isRequired, 20 | renderLoadingErrorIndicator: PropTypes.func.isRequired, 21 | }; 22 | 23 | static defaultProps = { 24 | distanceToLoadMore: 1500, 25 | canLoadMore: false, 26 | scrollEventThrottle: 100, 27 | renderLoadingIndicator: () => , 28 | renderLoadingErrorIndicator: () => , 29 | renderScrollComponent: props => , 30 | }; 31 | 32 | constructor(props, context) { 33 | super(props, context); 34 | 35 | this.state = { 36 | isDisplayingError: false, 37 | }; 38 | 39 | this._handleScroll = this._handleScroll.bind(this); 40 | this._loadMoreAsync = this._loadMoreAsync.bind(this); 41 | } 42 | 43 | getScrollResponder() { 44 | return this._scrollComponent.getScrollResponder(); 45 | } 46 | 47 | setNativeProps(nativeProps) { 48 | this._scrollComponent.setNativeProps(nativeProps); 49 | } 50 | 51 | render() { 52 | let statusIndicator; 53 | 54 | if (this.state.isDisplayingError) { 55 | statusIndicator = React.cloneElement( 56 | this.props.renderLoadingErrorIndicator({ onRetryLoadMore: this._loadMoreAsync }), 57 | { key: 'loading-error-indicator' } 58 | ); 59 | } else if (this.state.isLoading) { 60 | statusIndicator = React.cloneElement(this.props.renderLoadingIndicator(), { 61 | key: 'loading-indicator', 62 | }); 63 | } 64 | 65 | let { renderScrollComponent, ...props } = this.props; 66 | Object.assign(props, { 67 | onScroll: this._handleScroll, 68 | children: [this.props.children, statusIndicator], 69 | }); 70 | 71 | return cloneReferencedElement(renderScrollComponent(props), { 72 | ref: component => { 73 | this._scrollComponent = component; 74 | }, 75 | }); 76 | } 77 | 78 | _handleScroll(event) { 79 | if (this.props.onScroll) { 80 | this.props.onScroll(event); 81 | } 82 | 83 | if (this._shouldLoadMore(event)) { 84 | this._loadMoreAsync().catch(error => { 85 | console.error('Unexpected error while loading more content:', error); 86 | }); 87 | } 88 | } 89 | 90 | _shouldLoadMore(event) { 91 | let canLoadMore = 92 | typeof this.props.canLoadMore === 'function' 93 | ? this.props.canLoadMore() 94 | : this.props.canLoadMore; 95 | 96 | return ( 97 | !this.state.isLoading && 98 | canLoadMore && 99 | !this.state.isDisplayingError && 100 | this._distanceFromEnd(event) < this.props.distanceToLoadMore 101 | ); 102 | } 103 | 104 | async _loadMoreAsync() { 105 | if (this.state.isLoading && __DEV__) { 106 | throw new Error('_loadMoreAsync called while isLoading is true'); 107 | } 108 | 109 | try { 110 | this.setState({ isDisplayingError: false, isLoading: true }); 111 | await this.props.onLoadMoreAsync(); 112 | } catch (e) { 113 | if (this.props.onLoadError) { 114 | this.props.onLoadError(e); 115 | } 116 | this.setState({ isDisplayingError: true }); 117 | } finally { 118 | this.setState({ isLoading: false }); 119 | } 120 | } 121 | 122 | _distanceFromEnd(event) { 123 | let { contentSize, contentInset, contentOffset, layoutMeasurement } = event.nativeEvent; 124 | 125 | let contentLength; 126 | let trailingInset; 127 | let scrollOffset; 128 | let viewportLength; 129 | if (this.props.horizontal) { 130 | contentLength = contentSize.width; 131 | trailingInset = contentInset.right; 132 | scrollOffset = contentOffset.x; 133 | viewportLength = layoutMeasurement.width; 134 | } else { 135 | contentLength = contentSize.height; 136 | trailingInset = contentInset.bottom; 137 | scrollOffset = contentOffset.y; 138 | viewportLength = layoutMeasurement.height; 139 | } 140 | 141 | return contentLength + trailingInset - scrollOffset - viewportLength; 142 | } 143 | } 144 | 145 | Object.assign(InfiniteScrollView.prototype, ScrollableMixin); 146 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-present Expo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # InfiniteScrollView [![CircleCI](https://circleci.com/gh/expo/react-native-infinite-scroll-view.svg?style=svg)](https://circleci.com/gh/expo/react-native-infinite-scroll-view) 2 | 3 | InfiniteScrollView is a React Native scroll view that notifies you as the scroll offset approaches the bottom. You can instruct it to display a loading indicator while you load more content. This is a common design in feeds. InfiniteScrollView also supports horizontal scroll views. 4 | 5 | It conforms to [ScrollableMixin](https://github.com/expo/react-native-scrollable-mixin) so you can compose it with other scrollable components. 6 | 7 | [![npm package](https://nodei.co/npm/react-native-infinite-scroll-view.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/react-native-infinite-scroll-view/) 8 | 9 | ## Installation 10 | 11 | ```sh 12 | npm install --save react-native-infinite-scroll-view 13 | ``` 14 | 15 | ## Usage 16 | 17 | Compose InfiniteScrollView with the scrollable component that you would like to get events from. In the case of a basic ListView, you would write: 18 | 19 | ```js 20 | import React from 'react'; 21 | import { 22 | ListView, 23 | } from 'react-native'; 24 | import InfiniteScrollView from 'react-native-infinite-scroll-view'; 25 | 26 | class ExampleComponent extends React.Component { 27 | _loadMoreContentAsync = async () => { 28 | // Fetch more data here. 29 | // After fetching data, you should update your ListView data source 30 | // manually. 31 | // This function does not have a return value. 32 | } 33 | 34 | render() { 35 | return ( 36 | } 38 | dataSource={...} 39 | renderRow={...} 40 | canLoadMore={this.state.canLoadMoreContent} 41 | onLoadMoreAsync={this._loadMoreContentAsync} 42 | /> 43 | ); 44 | } 45 | } 46 | ``` 47 | 48 | A more complete example that uses a `ListView.DataSource`, [react-redux](https://github.com/reactjs/react-redux), and supports pagination would look something like this: 49 | 50 | ```js 51 | import React from 'react'; 52 | import { 53 | ListView, 54 | RefreshControl, 55 | } from 'react-native'; 56 | import InfiniteScrollView from 'react-native-infinite-scroll-view'; 57 | import { connect } from 'react-redux'; 58 | 59 | class ExampleComponent extends React.Component { 60 | static propTypes = { 61 | // Assume data shape looks like: 62 | // {items: ["item1", "item2"], nextUrl: null, isFetching: false} 63 | listData: PropTypes.object.isRequired, 64 | 65 | // dispatch is automatically provided by react-redux, and is used to 66 | // interact with the store. 67 | dispatch: PropTypes.func.isRequired, 68 | }; 69 | 70 | constructor(props, context) { 71 | super(props, context); 72 | 73 | this.state = { 74 | dataSource: new ListView.DataSource({ 75 | rowHasChanged: this._rowHasChanged.bind(this), 76 | }), 77 | }; 78 | 79 | // Update the data store with initial data. 80 | this.state.dataSource = this.getUpdatedDataStore(props); 81 | } 82 | 83 | async componentWillMount() { 84 | // Initial fetch for data, assuming that listData is not yet populated. 85 | this._loadMoreContentAsync(); 86 | } 87 | 88 | componentWillReceiveProps(nextProps) { 89 | // Trigger a re-render when receiving new props (when redux has more data). 90 | this.setState({ 91 | dataSource: this.getUpdatedDataSource(nextProps), 92 | }); 93 | } 94 | 95 | getUpdatedDataSource(props) { 96 | // See the ListView.DataSource documentation for more information on 97 | // how to properly structure your data depending on your use case. 98 | let rows = props.listData.items; 99 | 100 | let ids = rows.map((obj, index) => index); 101 | 102 | return this.state.dataSource.cloneWithRows(rows, ids); 103 | } 104 | 105 | _rowHasChanged(r1, r2) { 106 | // You might want to use a different comparison mechanism for performance. 107 | return JSON.stringify(r1) !== JSON.stringify(r2); 108 | } 109 | 110 | _renderRefreshControl() { 111 | // Reload all data 112 | return ( 113 | 117 | ); 118 | } 119 | 120 | _loadMoreContentAsync = async () => { 121 | // In this example, we're assuming cursor-based pagination, where any 122 | // additional data can be accessed at this.props.listData.nextUrl. 123 | // 124 | // If nextUrl is set, that means there is more data. If nextUrl is unset, 125 | // then there is no existing data, and you should fetch from scratch. 126 | this.props.dispatch(fetchMoreContent(this.props.listData.nextUrl)); 127 | } 128 | 129 | render() { 130 | return ( 131 | } 133 | dataSource={this.state.dataSource} 134 | renderRow={...} 135 | refreshControl={this._renderRefreshControl()} 136 | canLoadMore={!!this.props.listData.nextUrl} 137 | onLoadMoreAsync={this._loadMoreContentAsync.bind(this)} 138 | /> 139 | ); 140 | } 141 | } 142 | 143 | const mapStateToProps = (state) => { 144 | return {listData: state.listData}; 145 | }; 146 | 147 | export default connect(mapStateToProps)(ExampleComponent); 148 | ``` 149 | 150 | ## Tips and Caveats 151 | 152 | - Horizontal scroll views are supported 153 | - When you load more content in an infinite ListView, the ListView by default will render only one row per frame. This means that for a short amount of time after loading new content, the user could still be very close to the bottom of the scroll view and may trigger a second load. 154 | - Known issue: Make sure your initial data reaches the bottom of the screen, otherwise scroll events won't trigger. Subsequent loads are not affected. See [expo/react-native-infinite-scroll-view#9](https://github.com/expo/react-native-infinite-scroll-view/issues/9) for more details. 155 | 156 | ## Implementation 157 | 158 | InfiniteScrollView uses the `onScroll` event to continuously calculate how far the scroll offset is from the bottom. 159 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-infinite-scroll-view", 3 | "version": "0.4.5", 4 | "description": "An infinitely scrolling view that notifies you as the scroll offset approaches the bottom", 5 | "main": "InfiniteScrollView.js", 6 | "scripts": { 7 | "lint": "eslint ." 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/expo/react-native-infinite-scroll-view.git" 12 | }, 13 | "keywords": [ 14 | "react-native", 15 | "infinite", 16 | "pagination", 17 | "scroll-view" 18 | ], 19 | "author": "Expo", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/expo/react-native-infinite-scroll-view/issues" 23 | }, 24 | "homepage": "https://github.com/expo/react-native-infinite-scroll-view#readme", 25 | "dependencies": { 26 | "prop-types": "^15.6.2", 27 | "react-clone-referenced-element": "^1.0.1", 28 | "react-native-scrollable-mixin": "^1.0.0" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^5.4.0", 32 | "eslint-config-universe": "^2.0.0-alpha.0", 33 | "prettier": "^1.14.2" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | dependencies: 9 | "@babel/highlight" "^7.0.0" 10 | 11 | "@babel/generator@^7.0.0": 12 | version "7.0.0" 13 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" 14 | dependencies: 15 | "@babel/types" "^7.0.0" 16 | jsesc "^2.5.1" 17 | lodash "^4.17.10" 18 | source-map "^0.5.0" 19 | trim-right "^1.0.1" 20 | 21 | "@babel/helper-function-name@^7.0.0": 22 | version "7.0.0" 23 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz#a68cc8d04420ccc663dd258f9cc41b8261efa2d4" 24 | dependencies: 25 | "@babel/helper-get-function-arity" "^7.0.0" 26 | "@babel/template" "^7.0.0" 27 | "@babel/types" "^7.0.0" 28 | 29 | "@babel/helper-get-function-arity@^7.0.0": 30 | version "7.0.0" 31 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" 32 | dependencies: 33 | "@babel/types" "^7.0.0" 34 | 35 | "@babel/helper-split-export-declaration@^7.0.0": 36 | version "7.0.0" 37 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" 38 | dependencies: 39 | "@babel/types" "^7.0.0" 40 | 41 | "@babel/highlight@^7.0.0": 42 | version "7.0.0" 43 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 44 | dependencies: 45 | chalk "^2.0.0" 46 | esutils "^2.0.2" 47 | js-tokens "^4.0.0" 48 | 49 | "@babel/parser@^7.0.0": 50 | version "7.0.0" 51 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0.tgz#697655183394facffb063437ddf52c0277698775" 52 | 53 | "@babel/template@^7.0.0": 54 | version "7.0.0" 55 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0.tgz#c2bc9870405959c89a9c814376a2ecb247838c80" 56 | dependencies: 57 | "@babel/code-frame" "^7.0.0" 58 | "@babel/parser" "^7.0.0" 59 | "@babel/types" "^7.0.0" 60 | 61 | "@babel/traverse@^7.0.0": 62 | version "7.0.0" 63 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0.tgz#b1fe9b6567fdf3ab542cfad6f3b31f854d799a61" 64 | dependencies: 65 | "@babel/code-frame" "^7.0.0" 66 | "@babel/generator" "^7.0.0" 67 | "@babel/helper-function-name" "^7.0.0" 68 | "@babel/helper-split-export-declaration" "^7.0.0" 69 | "@babel/parser" "^7.0.0" 70 | "@babel/types" "^7.0.0" 71 | debug "^3.1.0" 72 | globals "^11.1.0" 73 | lodash "^4.17.10" 74 | 75 | "@babel/types@^7.0.0": 76 | version "7.0.0" 77 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118" 78 | dependencies: 79 | esutils "^2.0.2" 80 | lodash "^4.17.10" 81 | to-fast-properties "^2.0.0" 82 | 83 | acorn-jsx@^4.1.1: 84 | version "4.1.1" 85 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" 86 | dependencies: 87 | acorn "^5.0.3" 88 | 89 | acorn@^5.0.3, acorn@^5.6.0: 90 | version "5.7.2" 91 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5" 92 | 93 | ajv-keywords@^3.0.0: 94 | version "3.2.0" 95 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" 96 | 97 | ajv@^6.0.1, ajv@^6.5.0: 98 | version "6.5.3" 99 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" 100 | dependencies: 101 | fast-deep-equal "^2.0.1" 102 | fast-json-stable-stringify "^2.0.0" 103 | json-schema-traverse "^0.4.1" 104 | uri-js "^4.2.2" 105 | 106 | ansi-escapes@^3.0.0: 107 | version "3.1.0" 108 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 109 | 110 | ansi-regex@^2.0.0: 111 | version "2.1.1" 112 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 113 | 114 | ansi-regex@^3.0.0: 115 | version "3.0.0" 116 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 117 | 118 | ansi-styles@^2.2.1: 119 | version "2.2.1" 120 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 121 | 122 | ansi-styles@^3.2.1: 123 | version "3.2.1" 124 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 125 | dependencies: 126 | color-convert "^1.9.0" 127 | 128 | argparse@^1.0.7: 129 | version "1.0.10" 130 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 131 | dependencies: 132 | sprintf-js "~1.0.2" 133 | 134 | array-includes@^3.0.3: 135 | version "3.0.3" 136 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 137 | dependencies: 138 | define-properties "^1.1.2" 139 | es-abstract "^1.7.0" 140 | 141 | array-union@^1.0.1: 142 | version "1.0.2" 143 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 144 | dependencies: 145 | array-uniq "^1.0.1" 146 | 147 | array-uniq@^1.0.1: 148 | version "1.0.3" 149 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 150 | 151 | arrify@^1.0.0: 152 | version "1.0.1" 153 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 154 | 155 | babel-code-frame@^6.26.0: 156 | version "6.26.0" 157 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 158 | dependencies: 159 | chalk "^1.1.3" 160 | esutils "^2.0.2" 161 | js-tokens "^3.0.2" 162 | 163 | babel-eslint@^9.0.0: 164 | version "9.0.0" 165 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" 166 | dependencies: 167 | "@babel/code-frame" "^7.0.0" 168 | "@babel/parser" "^7.0.0" 169 | "@babel/traverse" "^7.0.0" 170 | "@babel/types" "^7.0.0" 171 | eslint-scope "3.7.1" 172 | eslint-visitor-keys "^1.0.0" 173 | 174 | balanced-match@^1.0.0: 175 | version "1.0.0" 176 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 177 | 178 | brace-expansion@^1.1.7: 179 | version "1.1.11" 180 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 181 | dependencies: 182 | balanced-match "^1.0.0" 183 | concat-map "0.0.1" 184 | 185 | builtin-modules@^1.0.0: 186 | version "1.1.1" 187 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 188 | 189 | caller-path@^0.1.0: 190 | version "0.1.0" 191 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 192 | dependencies: 193 | callsites "^0.2.0" 194 | 195 | callsites@^0.2.0: 196 | version "0.2.0" 197 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 198 | 199 | chalk@^1.1.3: 200 | version "1.1.3" 201 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 202 | dependencies: 203 | ansi-styles "^2.2.1" 204 | escape-string-regexp "^1.0.2" 205 | has-ansi "^2.0.0" 206 | strip-ansi "^3.0.0" 207 | supports-color "^2.0.0" 208 | 209 | chalk@^2.0.0, chalk@^2.1.0: 210 | version "2.4.1" 211 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 212 | dependencies: 213 | ansi-styles "^3.2.1" 214 | escape-string-regexp "^1.0.5" 215 | supports-color "^5.3.0" 216 | 217 | chardet@^0.4.0: 218 | version "0.4.2" 219 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 220 | 221 | circular-json@^0.3.1: 222 | version "0.3.3" 223 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 224 | 225 | cli-cursor@^2.1.0: 226 | version "2.1.0" 227 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 228 | dependencies: 229 | restore-cursor "^2.0.0" 230 | 231 | cli-width@^2.0.0: 232 | version "2.2.0" 233 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 234 | 235 | color-convert@^1.9.0: 236 | version "1.9.3" 237 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 238 | dependencies: 239 | color-name "1.1.3" 240 | 241 | color-name@1.1.3: 242 | version "1.1.3" 243 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 244 | 245 | concat-map@0.0.1: 246 | version "0.0.1" 247 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 248 | 249 | contains-path@^0.1.0: 250 | version "0.1.0" 251 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 252 | 253 | cross-spawn@^6.0.5: 254 | version "6.0.5" 255 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 256 | dependencies: 257 | nice-try "^1.0.4" 258 | path-key "^2.0.1" 259 | semver "^5.5.0" 260 | shebang-command "^1.2.0" 261 | which "^1.2.9" 262 | 263 | debug@^2.6.8, debug@^2.6.9: 264 | version "2.6.9" 265 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 266 | dependencies: 267 | ms "2.0.0" 268 | 269 | debug@^3.1.0: 270 | version "3.1.0" 271 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 272 | dependencies: 273 | ms "2.0.0" 274 | 275 | deep-is@~0.1.3: 276 | version "0.1.3" 277 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 278 | 279 | define-properties@^1.1.2: 280 | version "1.1.3" 281 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 282 | dependencies: 283 | object-keys "^1.0.12" 284 | 285 | del@^2.0.2: 286 | version "2.2.2" 287 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 288 | dependencies: 289 | globby "^5.0.0" 290 | is-path-cwd "^1.0.0" 291 | is-path-in-cwd "^1.0.0" 292 | object-assign "^4.0.1" 293 | pify "^2.0.0" 294 | pinkie-promise "^2.0.0" 295 | rimraf "^2.2.8" 296 | 297 | doctrine@1.5.0: 298 | version "1.5.0" 299 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 300 | dependencies: 301 | esutils "^2.0.2" 302 | isarray "^1.0.0" 303 | 304 | doctrine@^2.1.0: 305 | version "2.1.0" 306 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 307 | dependencies: 308 | esutils "^2.0.2" 309 | 310 | error-ex@^1.2.0: 311 | version "1.3.2" 312 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 313 | dependencies: 314 | is-arrayish "^0.2.1" 315 | 316 | es-abstract@^1.7.0: 317 | version "1.12.0" 318 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" 319 | dependencies: 320 | es-to-primitive "^1.1.1" 321 | function-bind "^1.1.1" 322 | has "^1.0.1" 323 | is-callable "^1.1.3" 324 | is-regex "^1.0.4" 325 | 326 | es-to-primitive@^1.1.1: 327 | version "1.1.1" 328 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 329 | dependencies: 330 | is-callable "^1.1.1" 331 | is-date-object "^1.0.1" 332 | is-symbol "^1.0.1" 333 | 334 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 335 | version "1.0.5" 336 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 337 | 338 | eslint-config-prettier@^3.0.1: 339 | version "3.0.1" 340 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.0.1.tgz#479214f64c1a4b344040924bfb97543db334b7b1" 341 | dependencies: 342 | get-stdin "^6.0.0" 343 | 344 | eslint-config-universe@^2.0.0-alpha.0: 345 | version "2.0.0-alpha.0" 346 | resolved "https://registry.yarnpkg.com/eslint-config-universe/-/eslint-config-universe-2.0.0-alpha.0.tgz#000d68397827242336dd3665a68e7855b75f3133" 347 | dependencies: 348 | babel-eslint "^9.0.0" 349 | eslint-config-prettier "^3.0.1" 350 | eslint-plugin-babel "^5.1.0" 351 | eslint-plugin-flowtype "^2.35.0" 352 | eslint-plugin-import "^2.7.0" 353 | eslint-plugin-prettier "^2.1.2" 354 | eslint-plugin-react "^7.1.0" 355 | 356 | eslint-import-resolver-node@^0.3.1: 357 | version "0.3.2" 358 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" 359 | dependencies: 360 | debug "^2.6.9" 361 | resolve "^1.5.0" 362 | 363 | eslint-module-utils@^2.2.0: 364 | version "2.2.0" 365 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" 366 | dependencies: 367 | debug "^2.6.8" 368 | pkg-dir "^1.0.0" 369 | 370 | eslint-plugin-babel@^5.1.0: 371 | version "5.1.0" 372 | resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.1.0.tgz#9c76e476162041e50b6ba69aa4eae3bdd6a4e1c3" 373 | dependencies: 374 | eslint-rule-composer "^0.3.0" 375 | 376 | eslint-plugin-flowtype@^2.35.0: 377 | version "2.50.0" 378 | resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.0.tgz#953e262fa9b5d0fa76e178604892cf60dfb916da" 379 | dependencies: 380 | lodash "^4.17.10" 381 | 382 | eslint-plugin-import@^2.7.0: 383 | version "2.14.0" 384 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" 385 | dependencies: 386 | contains-path "^0.1.0" 387 | debug "^2.6.8" 388 | doctrine "1.5.0" 389 | eslint-import-resolver-node "^0.3.1" 390 | eslint-module-utils "^2.2.0" 391 | has "^1.0.1" 392 | lodash "^4.17.4" 393 | minimatch "^3.0.3" 394 | read-pkg-up "^2.0.0" 395 | resolve "^1.6.0" 396 | 397 | eslint-plugin-prettier@^2.1.2: 398 | version "2.6.2" 399 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz#71998c60aedfa2141f7bfcbf9d1c459bf98b4fad" 400 | dependencies: 401 | fast-diff "^1.1.1" 402 | jest-docblock "^21.0.0" 403 | 404 | eslint-plugin-react@^7.1.0: 405 | version "7.11.1" 406 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" 407 | dependencies: 408 | array-includes "^3.0.3" 409 | doctrine "^2.1.0" 410 | has "^1.0.3" 411 | jsx-ast-utils "^2.0.1" 412 | prop-types "^15.6.2" 413 | 414 | eslint-rule-composer@^0.3.0: 415 | version "0.3.0" 416 | resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" 417 | 418 | eslint-scope@3.7.1: 419 | version "3.7.1" 420 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 421 | dependencies: 422 | esrecurse "^4.1.0" 423 | estraverse "^4.1.1" 424 | 425 | eslint-scope@^4.0.0: 426 | version "4.0.0" 427 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" 428 | dependencies: 429 | esrecurse "^4.1.0" 430 | estraverse "^4.1.1" 431 | 432 | eslint-utils@^1.3.1: 433 | version "1.3.1" 434 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" 435 | 436 | eslint-visitor-keys@^1.0.0: 437 | version "1.0.0" 438 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 439 | 440 | eslint@^5.4.0: 441 | version "5.4.0" 442 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.4.0.tgz#d068ec03006bb9e06b429dc85f7e46c1b69fac62" 443 | dependencies: 444 | ajv "^6.5.0" 445 | babel-code-frame "^6.26.0" 446 | chalk "^2.1.0" 447 | cross-spawn "^6.0.5" 448 | debug "^3.1.0" 449 | doctrine "^2.1.0" 450 | eslint-scope "^4.0.0" 451 | eslint-utils "^1.3.1" 452 | eslint-visitor-keys "^1.0.0" 453 | espree "^4.0.0" 454 | esquery "^1.0.1" 455 | esutils "^2.0.2" 456 | file-entry-cache "^2.0.0" 457 | functional-red-black-tree "^1.0.1" 458 | glob "^7.1.2" 459 | globals "^11.7.0" 460 | ignore "^4.0.2" 461 | imurmurhash "^0.1.4" 462 | inquirer "^5.2.0" 463 | is-resolvable "^1.1.0" 464 | js-yaml "^3.11.0" 465 | json-stable-stringify-without-jsonify "^1.0.1" 466 | levn "^0.3.0" 467 | lodash "^4.17.5" 468 | minimatch "^3.0.4" 469 | mkdirp "^0.5.1" 470 | natural-compare "^1.4.0" 471 | optionator "^0.8.2" 472 | path-is-inside "^1.0.2" 473 | pluralize "^7.0.0" 474 | progress "^2.0.0" 475 | regexpp "^2.0.0" 476 | require-uncached "^1.0.3" 477 | semver "^5.5.0" 478 | strip-ansi "^4.0.0" 479 | strip-json-comments "^2.0.1" 480 | table "^4.0.3" 481 | text-table "^0.2.0" 482 | 483 | espree@^4.0.0: 484 | version "4.0.0" 485 | resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" 486 | dependencies: 487 | acorn "^5.6.0" 488 | acorn-jsx "^4.1.1" 489 | 490 | esprima@^4.0.0: 491 | version "4.0.1" 492 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 493 | 494 | esquery@^1.0.1: 495 | version "1.0.1" 496 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 497 | dependencies: 498 | estraverse "^4.0.0" 499 | 500 | esrecurse@^4.1.0: 501 | version "4.2.1" 502 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 503 | dependencies: 504 | estraverse "^4.1.0" 505 | 506 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 507 | version "4.2.0" 508 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 509 | 510 | esutils@^2.0.2: 511 | version "2.0.2" 512 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 513 | 514 | external-editor@^2.1.0: 515 | version "2.2.0" 516 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 517 | dependencies: 518 | chardet "^0.4.0" 519 | iconv-lite "^0.4.17" 520 | tmp "^0.0.33" 521 | 522 | fast-deep-equal@^2.0.1: 523 | version "2.0.1" 524 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 525 | 526 | fast-diff@^1.1.1: 527 | version "1.1.2" 528 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" 529 | 530 | fast-json-stable-stringify@^2.0.0: 531 | version "2.0.0" 532 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 533 | 534 | fast-levenshtein@~2.0.4: 535 | version "2.0.6" 536 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 537 | 538 | figures@^2.0.0: 539 | version "2.0.0" 540 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 541 | dependencies: 542 | escape-string-regexp "^1.0.5" 543 | 544 | file-entry-cache@^2.0.0: 545 | version "2.0.0" 546 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 547 | dependencies: 548 | flat-cache "^1.2.1" 549 | object-assign "^4.0.1" 550 | 551 | find-up@^1.0.0: 552 | version "1.1.2" 553 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 554 | dependencies: 555 | path-exists "^2.0.0" 556 | pinkie-promise "^2.0.0" 557 | 558 | find-up@^2.0.0: 559 | version "2.1.0" 560 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 561 | dependencies: 562 | locate-path "^2.0.0" 563 | 564 | flat-cache@^1.2.1: 565 | version "1.3.0" 566 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 567 | dependencies: 568 | circular-json "^0.3.1" 569 | del "^2.0.2" 570 | graceful-fs "^4.1.2" 571 | write "^0.2.1" 572 | 573 | fs.realpath@^1.0.0: 574 | version "1.0.0" 575 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 576 | 577 | function-bind@^1.1.1: 578 | version "1.1.1" 579 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 580 | 581 | functional-red-black-tree@^1.0.1: 582 | version "1.0.1" 583 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 584 | 585 | get-stdin@^6.0.0: 586 | version "6.0.0" 587 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" 588 | 589 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: 590 | version "7.1.3" 591 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 592 | dependencies: 593 | fs.realpath "^1.0.0" 594 | inflight "^1.0.4" 595 | inherits "2" 596 | minimatch "^3.0.4" 597 | once "^1.3.0" 598 | path-is-absolute "^1.0.0" 599 | 600 | globals@^11.1.0, globals@^11.7.0: 601 | version "11.7.0" 602 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" 603 | 604 | globby@^5.0.0: 605 | version "5.0.0" 606 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 607 | dependencies: 608 | array-union "^1.0.1" 609 | arrify "^1.0.0" 610 | glob "^7.0.3" 611 | object-assign "^4.0.1" 612 | pify "^2.0.0" 613 | pinkie-promise "^2.0.0" 614 | 615 | graceful-fs@^4.1.2: 616 | version "4.1.11" 617 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 618 | 619 | has-ansi@^2.0.0: 620 | version "2.0.0" 621 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 622 | dependencies: 623 | ansi-regex "^2.0.0" 624 | 625 | has-flag@^3.0.0: 626 | version "3.0.0" 627 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 628 | 629 | has@^1.0.1, has@^1.0.3: 630 | version "1.0.3" 631 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 632 | dependencies: 633 | function-bind "^1.1.1" 634 | 635 | hosted-git-info@^2.1.4: 636 | version "2.7.1" 637 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 638 | 639 | iconv-lite@^0.4.17: 640 | version "0.4.24" 641 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 642 | dependencies: 643 | safer-buffer ">= 2.1.2 < 3" 644 | 645 | ignore@^4.0.2: 646 | version "4.0.6" 647 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 648 | 649 | imurmurhash@^0.1.4: 650 | version "0.1.4" 651 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 652 | 653 | inflight@^1.0.4: 654 | version "1.0.6" 655 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 656 | dependencies: 657 | once "^1.3.0" 658 | wrappy "1" 659 | 660 | inherits@2: 661 | version "2.0.3" 662 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 663 | 664 | inquirer@^5.2.0: 665 | version "5.2.0" 666 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" 667 | dependencies: 668 | ansi-escapes "^3.0.0" 669 | chalk "^2.0.0" 670 | cli-cursor "^2.1.0" 671 | cli-width "^2.0.0" 672 | external-editor "^2.1.0" 673 | figures "^2.0.0" 674 | lodash "^4.3.0" 675 | mute-stream "0.0.7" 676 | run-async "^2.2.0" 677 | rxjs "^5.5.2" 678 | string-width "^2.1.0" 679 | strip-ansi "^4.0.0" 680 | through "^2.3.6" 681 | 682 | is-arrayish@^0.2.1: 683 | version "0.2.1" 684 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 685 | 686 | is-builtin-module@^1.0.0: 687 | version "1.0.0" 688 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 689 | dependencies: 690 | builtin-modules "^1.0.0" 691 | 692 | is-callable@^1.1.1, is-callable@^1.1.3: 693 | version "1.1.4" 694 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 695 | 696 | is-date-object@^1.0.1: 697 | version "1.0.1" 698 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 699 | 700 | is-fullwidth-code-point@^2.0.0: 701 | version "2.0.0" 702 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 703 | 704 | is-path-cwd@^1.0.0: 705 | version "1.0.0" 706 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 707 | 708 | is-path-in-cwd@^1.0.0: 709 | version "1.0.1" 710 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 711 | dependencies: 712 | is-path-inside "^1.0.0" 713 | 714 | is-path-inside@^1.0.0: 715 | version "1.0.1" 716 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 717 | dependencies: 718 | path-is-inside "^1.0.1" 719 | 720 | is-promise@^2.1.0: 721 | version "2.1.0" 722 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 723 | 724 | is-regex@^1.0.4: 725 | version "1.0.4" 726 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 727 | dependencies: 728 | has "^1.0.1" 729 | 730 | is-resolvable@^1.1.0: 731 | version "1.1.0" 732 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 733 | 734 | is-symbol@^1.0.1: 735 | version "1.0.1" 736 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 737 | 738 | isarray@^1.0.0: 739 | version "1.0.0" 740 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 741 | 742 | isexe@^2.0.0: 743 | version "2.0.0" 744 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 745 | 746 | jest-docblock@^21.0.0: 747 | version "21.2.0" 748 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" 749 | 750 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 751 | version "4.0.0" 752 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 753 | 754 | js-tokens@^3.0.2: 755 | version "3.0.2" 756 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 757 | 758 | js-yaml@^3.11.0: 759 | version "3.12.0" 760 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 761 | dependencies: 762 | argparse "^1.0.7" 763 | esprima "^4.0.0" 764 | 765 | jsesc@^2.5.1: 766 | version "2.5.1" 767 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" 768 | 769 | json-schema-traverse@^0.4.1: 770 | version "0.4.1" 771 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 772 | 773 | json-stable-stringify-without-jsonify@^1.0.1: 774 | version "1.0.1" 775 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 776 | 777 | jsx-ast-utils@^2.0.1: 778 | version "2.0.1" 779 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" 780 | dependencies: 781 | array-includes "^3.0.3" 782 | 783 | levn@^0.3.0, levn@~0.3.0: 784 | version "0.3.0" 785 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 786 | dependencies: 787 | prelude-ls "~1.1.2" 788 | type-check "~0.3.2" 789 | 790 | load-json-file@^2.0.0: 791 | version "2.0.0" 792 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 793 | dependencies: 794 | graceful-fs "^4.1.2" 795 | parse-json "^2.2.0" 796 | pify "^2.0.0" 797 | strip-bom "^3.0.0" 798 | 799 | locate-path@^2.0.0: 800 | version "2.0.0" 801 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 802 | dependencies: 803 | p-locate "^2.0.0" 804 | path-exists "^3.0.0" 805 | 806 | lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: 807 | version "4.17.10" 808 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 809 | 810 | loose-envify@^1.3.1: 811 | version "1.4.0" 812 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 813 | dependencies: 814 | js-tokens "^3.0.0 || ^4.0.0" 815 | 816 | mimic-fn@^1.0.0: 817 | version "1.2.0" 818 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 819 | 820 | minimatch@^3.0.3, minimatch@^3.0.4: 821 | version "3.0.4" 822 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 823 | dependencies: 824 | brace-expansion "^1.1.7" 825 | 826 | minimist@0.0.8: 827 | version "0.0.8" 828 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 829 | 830 | mkdirp@^0.5.1: 831 | version "0.5.1" 832 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 833 | dependencies: 834 | minimist "0.0.8" 835 | 836 | ms@2.0.0: 837 | version "2.0.0" 838 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 839 | 840 | mute-stream@0.0.7: 841 | version "0.0.7" 842 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 843 | 844 | natural-compare@^1.4.0: 845 | version "1.4.0" 846 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 847 | 848 | nice-try@^1.0.4: 849 | version "1.0.5" 850 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 851 | 852 | normalize-package-data@^2.3.2: 853 | version "2.4.0" 854 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 855 | dependencies: 856 | hosted-git-info "^2.1.4" 857 | is-builtin-module "^1.0.0" 858 | semver "2 || 3 || 4 || 5" 859 | validate-npm-package-license "^3.0.1" 860 | 861 | object-assign@^4.0.1, object-assign@^4.1.1: 862 | version "4.1.1" 863 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 864 | 865 | object-keys@^1.0.12: 866 | version "1.0.12" 867 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 868 | 869 | once@^1.3.0: 870 | version "1.4.0" 871 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 872 | dependencies: 873 | wrappy "1" 874 | 875 | onetime@^2.0.0: 876 | version "2.0.1" 877 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 878 | dependencies: 879 | mimic-fn "^1.0.0" 880 | 881 | optionator@^0.8.2: 882 | version "0.8.2" 883 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 884 | dependencies: 885 | deep-is "~0.1.3" 886 | fast-levenshtein "~2.0.4" 887 | levn "~0.3.0" 888 | prelude-ls "~1.1.2" 889 | type-check "~0.3.2" 890 | wordwrap "~1.0.0" 891 | 892 | os-tmpdir@~1.0.2: 893 | version "1.0.2" 894 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 895 | 896 | p-limit@^1.1.0: 897 | version "1.3.0" 898 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 899 | dependencies: 900 | p-try "^1.0.0" 901 | 902 | p-locate@^2.0.0: 903 | version "2.0.0" 904 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 905 | dependencies: 906 | p-limit "^1.1.0" 907 | 908 | p-try@^1.0.0: 909 | version "1.0.0" 910 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 911 | 912 | parse-json@^2.2.0: 913 | version "2.2.0" 914 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 915 | dependencies: 916 | error-ex "^1.2.0" 917 | 918 | path-exists@^2.0.0: 919 | version "2.1.0" 920 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 921 | dependencies: 922 | pinkie-promise "^2.0.0" 923 | 924 | path-exists@^3.0.0: 925 | version "3.0.0" 926 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 927 | 928 | path-is-absolute@^1.0.0: 929 | version "1.0.1" 930 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 931 | 932 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 933 | version "1.0.2" 934 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 935 | 936 | path-key@^2.0.1: 937 | version "2.0.1" 938 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 939 | 940 | path-parse@^1.0.5: 941 | version "1.0.6" 942 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 943 | 944 | path-type@^2.0.0: 945 | version "2.0.0" 946 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 947 | dependencies: 948 | pify "^2.0.0" 949 | 950 | pify@^2.0.0: 951 | version "2.3.0" 952 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 953 | 954 | pinkie-promise@^2.0.0: 955 | version "2.0.1" 956 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 957 | dependencies: 958 | pinkie "^2.0.0" 959 | 960 | pinkie@^2.0.0: 961 | version "2.0.4" 962 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 963 | 964 | pkg-dir@^1.0.0: 965 | version "1.0.0" 966 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 967 | dependencies: 968 | find-up "^1.0.0" 969 | 970 | pluralize@^7.0.0: 971 | version "7.0.0" 972 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 973 | 974 | prelude-ls@~1.1.2: 975 | version "1.1.2" 976 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 977 | 978 | prettier@^1.14.2: 979 | version "1.14.2" 980 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.2.tgz#0ac1c6e1a90baa22a62925f41963c841983282f9" 981 | 982 | progress@^2.0.0: 983 | version "2.0.0" 984 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 985 | 986 | prop-types@^15.6.2: 987 | version "15.6.2" 988 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" 989 | dependencies: 990 | loose-envify "^1.3.1" 991 | object-assign "^4.1.1" 992 | 993 | punycode@^2.1.0: 994 | version "2.1.1" 995 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 996 | 997 | react-clone-referenced-element@^1.0.1: 998 | version "1.0.1" 999 | resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.0.1.tgz#2bba8c69404c5e4a944398600bcc4c941f860682" 1000 | 1001 | react-native-scrollable-mixin@^1.0.0: 1002 | version "1.0.1" 1003 | resolved "https://registry.yarnpkg.com/react-native-scrollable-mixin/-/react-native-scrollable-mixin-1.0.1.tgz#34a32167b64248594154fd0d6a8b03f22740548e" 1004 | 1005 | read-pkg-up@^2.0.0: 1006 | version "2.0.0" 1007 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1008 | dependencies: 1009 | find-up "^2.0.0" 1010 | read-pkg "^2.0.0" 1011 | 1012 | read-pkg@^2.0.0: 1013 | version "2.0.0" 1014 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1015 | dependencies: 1016 | load-json-file "^2.0.0" 1017 | normalize-package-data "^2.3.2" 1018 | path-type "^2.0.0" 1019 | 1020 | regexpp@^2.0.0: 1021 | version "2.0.0" 1022 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" 1023 | 1024 | require-uncached@^1.0.3: 1025 | version "1.0.3" 1026 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1027 | dependencies: 1028 | caller-path "^0.1.0" 1029 | resolve-from "^1.0.0" 1030 | 1031 | resolve-from@^1.0.0: 1032 | version "1.0.1" 1033 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1034 | 1035 | resolve@^1.5.0, resolve@^1.6.0: 1036 | version "1.8.1" 1037 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 1038 | dependencies: 1039 | path-parse "^1.0.5" 1040 | 1041 | restore-cursor@^2.0.0: 1042 | version "2.0.0" 1043 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1044 | dependencies: 1045 | onetime "^2.0.0" 1046 | signal-exit "^3.0.2" 1047 | 1048 | rimraf@^2.2.8: 1049 | version "2.6.2" 1050 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1051 | dependencies: 1052 | glob "^7.0.5" 1053 | 1054 | run-async@^2.2.0: 1055 | version "2.3.0" 1056 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1057 | dependencies: 1058 | is-promise "^2.1.0" 1059 | 1060 | rxjs@^5.5.2: 1061 | version "5.5.11" 1062 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" 1063 | dependencies: 1064 | symbol-observable "1.0.1" 1065 | 1066 | "safer-buffer@>= 2.1.2 < 3": 1067 | version "2.1.2" 1068 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1069 | 1070 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 1071 | version "5.5.1" 1072 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" 1073 | 1074 | shebang-command@^1.2.0: 1075 | version "1.2.0" 1076 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1077 | dependencies: 1078 | shebang-regex "^1.0.0" 1079 | 1080 | shebang-regex@^1.0.0: 1081 | version "1.0.0" 1082 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1083 | 1084 | signal-exit@^3.0.2: 1085 | version "3.0.2" 1086 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1087 | 1088 | slice-ansi@1.0.0: 1089 | version "1.0.0" 1090 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 1091 | dependencies: 1092 | is-fullwidth-code-point "^2.0.0" 1093 | 1094 | source-map@^0.5.0: 1095 | version "0.5.7" 1096 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1097 | 1098 | spdx-correct@^3.0.0: 1099 | version "3.0.0" 1100 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 1101 | dependencies: 1102 | spdx-expression-parse "^3.0.0" 1103 | spdx-license-ids "^3.0.0" 1104 | 1105 | spdx-exceptions@^2.1.0: 1106 | version "2.1.0" 1107 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 1108 | 1109 | spdx-expression-parse@^3.0.0: 1110 | version "3.0.0" 1111 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1112 | dependencies: 1113 | spdx-exceptions "^2.1.0" 1114 | spdx-license-ids "^3.0.0" 1115 | 1116 | spdx-license-ids@^3.0.0: 1117 | version "3.0.0" 1118 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 1119 | 1120 | sprintf-js@~1.0.2: 1121 | version "1.0.3" 1122 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1123 | 1124 | string-width@^2.1.0, string-width@^2.1.1: 1125 | version "2.1.1" 1126 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1127 | dependencies: 1128 | is-fullwidth-code-point "^2.0.0" 1129 | strip-ansi "^4.0.0" 1130 | 1131 | strip-ansi@^3.0.0: 1132 | version "3.0.1" 1133 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1134 | dependencies: 1135 | ansi-regex "^2.0.0" 1136 | 1137 | strip-ansi@^4.0.0: 1138 | version "4.0.0" 1139 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1140 | dependencies: 1141 | ansi-regex "^3.0.0" 1142 | 1143 | strip-bom@^3.0.0: 1144 | version "3.0.0" 1145 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1146 | 1147 | strip-json-comments@^2.0.1: 1148 | version "2.0.1" 1149 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1150 | 1151 | supports-color@^2.0.0: 1152 | version "2.0.0" 1153 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1154 | 1155 | supports-color@^5.3.0: 1156 | version "5.5.0" 1157 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1158 | dependencies: 1159 | has-flag "^3.0.0" 1160 | 1161 | symbol-observable@1.0.1: 1162 | version "1.0.1" 1163 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" 1164 | 1165 | table@^4.0.3: 1166 | version "4.0.3" 1167 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" 1168 | dependencies: 1169 | ajv "^6.0.1" 1170 | ajv-keywords "^3.0.0" 1171 | chalk "^2.1.0" 1172 | lodash "^4.17.4" 1173 | slice-ansi "1.0.0" 1174 | string-width "^2.1.1" 1175 | 1176 | text-table@^0.2.0: 1177 | version "0.2.0" 1178 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1179 | 1180 | through@^2.3.6: 1181 | version "2.3.8" 1182 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1183 | 1184 | tmp@^0.0.33: 1185 | version "0.0.33" 1186 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1187 | dependencies: 1188 | os-tmpdir "~1.0.2" 1189 | 1190 | to-fast-properties@^2.0.0: 1191 | version "2.0.0" 1192 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1193 | 1194 | trim-right@^1.0.1: 1195 | version "1.0.1" 1196 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1197 | 1198 | type-check@~0.3.2: 1199 | version "0.3.2" 1200 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1201 | dependencies: 1202 | prelude-ls "~1.1.2" 1203 | 1204 | uri-js@^4.2.2: 1205 | version "4.2.2" 1206 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1207 | dependencies: 1208 | punycode "^2.1.0" 1209 | 1210 | validate-npm-package-license@^3.0.1: 1211 | version "3.0.4" 1212 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1213 | dependencies: 1214 | spdx-correct "^3.0.0" 1215 | spdx-expression-parse "^3.0.0" 1216 | 1217 | which@^1.2.9: 1218 | version "1.3.1" 1219 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1220 | dependencies: 1221 | isexe "^2.0.0" 1222 | 1223 | wordwrap@~1.0.0: 1224 | version "1.0.0" 1225 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1226 | 1227 | wrappy@1: 1228 | version "1.0.2" 1229 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1230 | 1231 | write@^0.2.1: 1232 | version "0.2.1" 1233 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1234 | dependencies: 1235 | mkdirp "^0.5.1" 1236 | --------------------------------------------------------------------------------