├── .babelrc ├── .eslintrc.js ├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── src ├── Context.js ├── DefaultNotificationBody │ ├── index.android.js │ └── index.ios.js ├── Notification.js ├── Provider.js ├── WithInAppNotification.hoc.js └── index.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react-native"] 3 | } 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "extends": "airbnb", 3 | "plugins": [ 4 | "react", 5 | "jsx-a11y", 6 | "import" 7 | ], 8 | "rules": { 9 | "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], 10 | // These two are turned off due to peerDependencies not being read by ESLint 11 | "import/no-unresolved": 0, 12 | "import/extensions": 0, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://www.paypal.me/robcalcroft 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | # IDE Jetbrans 4 | .idea/ 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Rob Calcroft 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 | # react-native-in-app-notification [![npm version](https://badge.fury.io/js/react-native-in-app-notification.svg)](https://badge.fury.io/js/react-native-in-app-notification) 2 | 3 | > :bell: Customisable in-app notification component for React Native 4 | 5 | ## Contents 6 | 7 | 1. [UI](#ui) 8 | 2. [Install](#install) 9 | 3. [Versions](#versions) 10 | 4. [Props](#props) 11 | 5. [Usage](#usage) 12 | 13 | ## UI 14 | 15 | The basic look of `react-native-in-app-notification`: 16 | 17 | ![A GIF showing what react-native-in-app-notification can do](http://i.imgur.com/3PILcKg.gif) 18 | 19 | What you can make `react-native-in-app-notification` do with a customised component: 20 | 21 | ![A GIF showing what react-native-in-app-notification can do](http://i.imgur.com/k0SBlrW.gif) 22 | 23 | ## Install 24 | 25 | ```bash 26 | yarn add react-native-in-app-notification 27 | ``` 28 | 29 | OR 30 | 31 | ```bash 32 | npm install react-native-in-app-notification --save 33 | ``` 34 | 35 | ### Android 36 | 37 | For Android you need to add the `VIBRATE` permission to your app `AndroidManifest.xml` 38 | ```xml 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | ... 49 | 50 | ``` 51 | 52 | ## Versions 53 | 54 | | version | RN | 55 | | ------- | :-------- | 56 | | >=3.0.0 | >= 0.54.0 | 57 | | <3.0.0 | >= 0.43.4 | 58 | 59 | ## Props 60 | 61 | | Prop Name | Prop Description | Data Type | Required | Default | 62 | | ------------------------- | --------------------------------------------------- | ---------------------- | ----------- | --------------------------- | 63 | | closeInterval | How long the notification stays visible | Number | No | `4000` | 64 | | openCloseDuration | The length of the open / close animation | Number | No | `200` | 65 | | height | The height of the Notification component | Number | No | `80` | 66 | | backgroundColour | The background colour of the Notification component | String | No | `white` | 67 | | iconApp | App Icon | ImageSourcePropType | No | `null` | 68 | | notificationBodyComponent | **See below about NotificationBody** | React Node or Function | Recommended | `./DefaultNotificationBody` | 69 | 70 | ### NotificationBody 71 | 72 | The notification body is what is rendered inside the main Notification component and gives you the ability to customise how the notification looks. You can use the default notification body component in `./DefaultNotificationBody.js` as inspiration and guidance. 73 | 74 | Your `notificationBodyComponent` component is given five props: 75 | 76 | | Prop Name | Prop Description | Data Type | Default | 77 | | ----------------- | ------------------------------------------------------------- | ------------------- | ------- | 78 | | title | The title passed to `NotificationRef.show` | String | `''` | 79 | | message | The message passed to `NotificationRef.show` | String | `''` | 80 | | onPress | The callback passed to `NotificationRef.show` | Function | `null` | 81 | | icon | Icon for notification passed to `NotificationRef.show` | ImageSourcePropType | `null` | 82 | | vibrate | Vibrate on show notification passed to `NotificationRef.show` | Boolean | `true` | 83 | | additionalProps | Any additional props passed to `NotificationBodyComponent` | Object | `null` | 84 | 85 | ## Usage 86 | 87 | Adding `react-native-in-app-notification` is simple; 88 | Just wrap you main `App` component with the `InAppNotificationProvider` component exported from this module. 89 | 90 | ```javascript 91 | import { InAppNotificationProvider } from 'react-native-in-app-notification'; 92 | 93 | import App from './App.js'; 94 | 95 | class AppWithNotifications extends Component { 96 | render() { 97 | return ( 98 | 99 | 100 | 101 | ); 102 | } 103 | } 104 | ``` 105 | 106 | When you want to show the notification, just wrap the component which needs to display a notification with the `withInAppNotification` HOC and call the `.showNotification` methods from its props. 107 | 108 | `.showNotification` can take four arguments (all of which are optional): 109 | 110 | - `title` 111 | - `message` 112 | - `onPress` 113 | - `additionalProps` 114 | 115 | **N.B:** you should probably include at least one of `title` or `message`! 116 | 117 | `onPress` doesn't need to be used for passive notifications and you can use `onClose` in your `NotificationBody` component to allow your users to close the notification. 118 | 119 | `additionalProps` can be used to pass arbitory props to `NotificationBody` component. Can be accessed in `NotificationBody` component via `props.additionalProps`. 120 | 121 | ```javascript 122 | import React, { Component } from 'react'; 123 | import { View, Text, TouchableHighlight } from 'react-native'; 124 | import { withInAppNotification } from 'react-native-in-app-notification'; 125 | 126 | class MyApp extends Component { 127 | render() { 128 | return ( 129 | 130 | This is my app 131 | { 133 | this.props.showNotification({ 134 | title: 'You pressed it!', 135 | message: 'The notification has been triggered', 136 | onPress: () => Alert.alert('Alert', 'You clicked the notification!'), 137 | additionalProps: { type: 'error' }, 138 | }); 139 | }} 140 | > 141 | Click me to trigger a notification 142 | 143 | 144 | ); 145 | } 146 | } 147 | 148 | export default withInAppNotification(MyApp); 149 | ``` 150 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-in-app-notification", 3 | "version": "3.2.0", 4 | "description": "Customisable in-app notification component for React Native", 5 | "main": "src/index.js", 6 | "repository": "https://github.com/robcalcroft/react-native-in-app-notification.git", 7 | "author": "Rob Calcroft ", 8 | "license": "MIT", 9 | "scripts": { 10 | "lint": "eslint Notification.js DefaultNotificationBody.ios.js DefaultNotificationBody.android.js" 11 | }, 12 | "peerDependencies": { 13 | "prop-types": "^15.5.10", 14 | "react": ">=16.3.0", 15 | "react-native": ">=0.54.0" 16 | }, 17 | "dependencies": { 18 | "hoist-non-react-statics": "^3.0.1", 19 | "react-native-iphone-x-helper": "^1.2.0", 20 | "react-native-swipe-gestures": "^1.0.2" 21 | }, 22 | "devDependencies": { 23 | "eslint": "^4.18.2", 24 | "eslint-config-airbnb": "^14.1.0", 25 | "eslint-plugin-import": "^2.2.0", 26 | "eslint-plugin-jsx-a11y": "^4.0.0", 27 | "eslint-plugin-react": "^6.10.3" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Context.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const context = React.createContext(() => {}); 4 | 5 | export default context; 6 | -------------------------------------------------------------------------------- /src/DefaultNotificationBody/index.android.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { TouchableOpacity, View, Text, Image, Vibration } from 'react-native'; 4 | import GestureRecognizer, { swipeDirections } from 'react-native-swipe-gestures'; 5 | 6 | const styles = { 7 | container: { 8 | flex: 1, 9 | }, 10 | content: { 11 | flex: 1, 12 | flexDirection: 'row', 13 | }, 14 | iconContainer: { 15 | width: 60, 16 | height: 70, 17 | marginTop: 5, 18 | marginLeft: 10, 19 | }, 20 | icon: { 21 | resizeMode: 'contain', 22 | width: 60, 23 | height: 70, 24 | }, 25 | textContainer: { 26 | alignSelf: 'center', 27 | marginLeft: 20, 28 | }, 29 | title: { 30 | color: '#000', 31 | fontWeight: 'bold', 32 | }, 33 | message: { 34 | color: '#000', 35 | marginTop: 5, 36 | }, 37 | }; 38 | 39 | class DefaultNotificationBody extends React.Component { 40 | constructor() { 41 | super(); 42 | 43 | this.onNotificationPress = this.onNotificationPress.bind(this); 44 | this.onSwipe = this.onSwipe.bind(this); 45 | } 46 | 47 | componentDidUpdate(prevProps) { 48 | if ((prevProps.vibrate || this.props.vibrate) && this.props.isOpen && !prevProps.isOpen) { 49 | Vibration.vibrate(); 50 | } 51 | } 52 | 53 | onNotificationPress() { 54 | const { 55 | onPress, 56 | onClose, 57 | } = this.props; 58 | 59 | onClose(); 60 | onPress(); 61 | } 62 | 63 | onSwipe(direction) { 64 | const { onClose } = this.props; 65 | const { SWIPE_LEFT, SWIPE_RIGHT } = swipeDirections; 66 | 67 | if (direction === SWIPE_RIGHT || direction === SWIPE_LEFT) { 68 | onClose(); 69 | } 70 | } 71 | 72 | render() { 73 | const { 74 | title, 75 | message, 76 | iconApp, 77 | icon, 78 | } = this.props; 79 | 80 | return ( 81 | 82 | 88 | 89 | {(icon || iconApp) && } 90 | 91 | 92 | {title} 93 | {message} 94 | 95 | 96 | 97 | ); 98 | } 99 | } 100 | 101 | DefaultNotificationBody.propTypes = { 102 | title: PropTypes.string, 103 | message: PropTypes.string, 104 | vibrate: PropTypes.bool, 105 | isOpen: PropTypes.bool, 106 | onPress: PropTypes.func, 107 | onClose: PropTypes.func, 108 | iconApp: Image.propTypes.source, 109 | icon: Image.propTypes.source, 110 | additionalProps: PropTypes.object, 111 | }; 112 | 113 | DefaultNotificationBody.defaultProps = { 114 | title: 'Notification', 115 | message: 'This is a test notification', 116 | vibrate: true, 117 | isOpen: false, 118 | iconApp: null, 119 | icon: null, 120 | onPress: () => null, 121 | onClose: () => null, 122 | additionalProps: null, 123 | }; 124 | 125 | export default DefaultNotificationBody; 126 | -------------------------------------------------------------------------------- /src/DefaultNotificationBody/index.ios.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { TouchableOpacity, StatusBar, View, Text, Image, Vibration } from 'react-native'; 4 | import { getStatusBarHeight, isIphoneX } from 'react-native-iphone-x-helper'; 5 | import GestureRecognizer, { swipeDirections } from 'react-native-swipe-gestures'; 6 | 7 | const styles = { 8 | root: { 9 | flex: 1, 10 | backgroundColor: '#050505', 11 | }, 12 | container: { 13 | position: 'absolute', 14 | top: isIphoneX() && getStatusBarHeight(), 15 | bottom: 0, 16 | left: 0, 17 | right: 0, 18 | }, 19 | content: { 20 | flex: 1, 21 | flexDirection: 'row', 22 | }, 23 | iconApp: { 24 | marginTop: 10, 25 | marginLeft: 20, 26 | resizeMode: 'contain', 27 | width: 24, 28 | height: 24, 29 | borderRadius: 5, 30 | }, 31 | icon: { 32 | marginTop: 10, 33 | marginLeft: 10, 34 | resizeMode: 'contain', 35 | width: 48, 36 | height: 48, 37 | }, 38 | textContainer: { 39 | alignSelf: 'center', 40 | marginLeft: 20, 41 | }, 42 | title: { 43 | color: '#FFF', 44 | fontWeight: 'bold', 45 | }, 46 | message: { 47 | color: '#FFF', 48 | marginTop: 5, 49 | }, 50 | footer: { 51 | backgroundColor: '#696969', 52 | borderRadius: 5, 53 | alignSelf: 'center', 54 | height: 5, 55 | width: 35, 56 | margin: 5, 57 | }, 58 | }; 59 | 60 | class DefaultNotificationBody extends React.Component { 61 | constructor() { 62 | super(); 63 | 64 | this.onNotificationPress = this.onNotificationPress.bind(this); 65 | this.onSwipe = this.onSwipe.bind(this); 66 | } 67 | 68 | componentDidUpdate(prevProps) { 69 | if (this.props.isOpen !== prevProps.isOpen) { 70 | StatusBar.setHidden(this.props.isOpen); 71 | } 72 | 73 | if (this.props.vibrate && this.props.isOpen && !prevProps.isOpen){ 74 | Vibration.vibrate(); 75 | } 76 | } 77 | 78 | onNotificationPress() { 79 | const { 80 | onPress, 81 | onClose, 82 | } = this.props; 83 | 84 | onClose(); 85 | onPress(); 86 | } 87 | 88 | onSwipe(direction) { 89 | const { SWIPE_UP } = swipeDirections; 90 | 91 | if (direction === SWIPE_UP) { 92 | this.props.onClose(); 93 | } 94 | } 95 | 96 | renderIcon() { 97 | const { 98 | iconApp, 99 | icon, 100 | } = this.props; 101 | 102 | if (icon) { 103 | return ; 104 | } else if (iconApp) { 105 | return ; 106 | } 107 | 108 | return null; 109 | } 110 | 111 | render() { 112 | const { 113 | title, 114 | message, 115 | } = this.props; 116 | 117 | return ( 118 | 119 | 120 | 126 | {this.renderIcon()} 127 | 128 | {title} 129 | {message} 130 | 131 | 132 | 133 | 134 | 135 | 136 | ); 137 | } 138 | } 139 | 140 | DefaultNotificationBody.propTypes = { 141 | title: PropTypes.string, 142 | message: PropTypes.string, 143 | vibrate: PropTypes.bool, 144 | isOpen: PropTypes.bool, 145 | onPress: PropTypes.func, 146 | onClose: PropTypes.func, 147 | iconApp: Image.propTypes.source, 148 | icon: Image.propTypes.source, 149 | }; 150 | 151 | DefaultNotificationBody.defaultProps = { 152 | title: 'Notification', 153 | message: 'This is a test notification', 154 | vibrate: true, 155 | isOpen: false, 156 | iconApp: null, 157 | icon: null, 158 | onPress: () => null, 159 | onClose: () => null, 160 | }; 161 | 162 | export default DefaultNotificationBody; 163 | -------------------------------------------------------------------------------- /src/Notification.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Animated, StyleSheet, Image } from 'react-native'; 4 | import { getStatusBarHeight, isIphoneX } from 'react-native-iphone-x-helper'; 5 | 6 | import DefaultNotificationBody from './DefaultNotificationBody'; 7 | 8 | const styles = StyleSheet.create({ 9 | notification: { 10 | position: 'absolute', 11 | width: '100%', 12 | }, 13 | }); 14 | 15 | class Notification extends Component { 16 | constructor() { 17 | super(); 18 | 19 | this.heightOffset = isIphoneX() ? getStatusBarHeight() : 0; 20 | 21 | this.show = this.show.bind(this); 22 | this.showNotification = this.showNotification.bind(this); 23 | this.closeNotification = this.closeNotification.bind(this); 24 | 25 | this.state = { 26 | animatedValue: new Animated.Value(0), 27 | isOpen: false, 28 | }; 29 | } 30 | 31 | show( 32 | { title, message, onPress, icon, vibrate, additionalProps } = { 33 | title: '', 34 | message: '', 35 | onPress: null, 36 | icon: null, 37 | vibrate: true, 38 | additionalProps: {}, 39 | }, 40 | ) { 41 | const { closeInterval } = this.props; 42 | const { isOpen } = this.state; 43 | 44 | // Clear any currently showing notification timeouts so the new one doesn't get prematurely 45 | // closed 46 | clearTimeout(this.currentNotificationInterval); 47 | 48 | const showNotificationWithStateChanges = () => { 49 | this.setState( 50 | { 51 | isOpen: true, 52 | title, 53 | message, 54 | onPress, 55 | icon, 56 | vibrate, 57 | additionalProps, 58 | }, 59 | () => this.showNotification(() => { 60 | this.currentNotificationInterval = setTimeout(() => { 61 | this.setState( 62 | { 63 | isOpen: false, 64 | title: '', 65 | message: '', 66 | onPress: null, 67 | icon: null, 68 | vibrate: true, 69 | additionalProps, 70 | }, 71 | this.closeNotification, 72 | ); 73 | }, closeInterval); 74 | }), 75 | ); 76 | }; 77 | 78 | if (isOpen) { 79 | this.setState({ isOpen: false }, () => { 80 | this.closeNotification(showNotificationWithStateChanges); 81 | }); 82 | } else { 83 | showNotificationWithStateChanges(); 84 | } 85 | } 86 | 87 | showNotification(done) { 88 | Animated.timing(this.state.animatedValue, { 89 | toValue: 1, 90 | duration: this.props.openCloseDuration, 91 | useNativeDriver: true, 92 | }).start(done); 93 | } 94 | 95 | closeNotification(done) { 96 | Animated.timing(this.state.animatedValue, { 97 | toValue: 0, 98 | duration: this.props.openCloseDuration, 99 | useNativeDriver: true, 100 | }).start(done); 101 | } 102 | 103 | render() { 104 | const { 105 | height: baseHeight, 106 | topOffset, 107 | backgroundColour, 108 | iconApp, 109 | notificationBodyComponent: NotificationBody, 110 | } = this.props; 111 | 112 | const { animatedValue, title, message, onPress, isOpen, icon, vibrate } = this.state; 113 | 114 | const height = baseHeight + this.heightOffset; 115 | 116 | return ( 117 | 133 | this.setState({ isOpen: false }, this.closeNotification)} 142 | additionalProps={this.state.additionalProps} 143 | /> 144 | 145 | ); 146 | } 147 | } 148 | 149 | Notification.propTypes = { 150 | closeInterval: PropTypes.number, 151 | openCloseDuration: PropTypes.number, 152 | height: PropTypes.number, 153 | topOffset: PropTypes.number, 154 | backgroundColour: PropTypes.string, 155 | notificationBodyComponent: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), 156 | iconApp: Image.propTypes.source, 157 | }; 158 | 159 | Notification.defaultProps = { 160 | closeInterval: 4000, 161 | openCloseDuration: 200, 162 | height: 80, 163 | topOffset: 0, 164 | backgroundColour: 'white', 165 | notificationBodyComponent: DefaultNotificationBody, 166 | iconApp: null, 167 | }; 168 | 169 | export default Notification; 170 | -------------------------------------------------------------------------------- /src/Provider.js: -------------------------------------------------------------------------------- 1 | import React, { Children } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | import Context from './Context'; 5 | import Notification from './Notification'; 6 | 7 | class Provider extends React.PureComponent { 8 | constructor(props) { 9 | super(props); 10 | 11 | this.showNotification = this.showNotification.bind(this); 12 | } 13 | 14 | showNotification(notificationOptions) { 15 | if (this.notification) { 16 | this.notification.show(notificationOptions); 17 | } 18 | } 19 | 20 | render() { 21 | return ( 22 | 23 | {Children.only(this.props.children)} 24 | { 26 | this.notification = ref; 27 | }} 28 | {...this.props} 29 | /> 30 | 31 | ); 32 | } 33 | } 34 | 35 | Provider.propTypes = { 36 | ...Notification.propTypes, 37 | children: PropTypes.element.isRequired, 38 | }; 39 | 40 | export default Provider; 41 | -------------------------------------------------------------------------------- /src/WithInAppNotification.hoc.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import hoistNonReactStatic from 'hoist-non-react-statics'; 4 | 5 | import Context from './Context'; 6 | 7 | function withInAppNotification(WrappedComponent) { 8 | class Enhanced extends React.PureComponent { 9 | render() { 10 | return ( 11 | 12 | {showNotification => ( 13 | 17 | )} 18 | 19 | ); 20 | } 21 | } 22 | 23 | // Pass over static props 24 | hoistNonReactStatic(Enhanced, WrappedComponent); 25 | 26 | return Enhanced; 27 | } 28 | 29 | export default withInAppNotification; 30 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export { default as Notification } from './Notification'; 2 | export { default as Context } from './Context'; 3 | export { default as InAppNotificationProvider } from './Provider'; 4 | export { default as withInAppNotification } from './WithInAppNotification.hoc'; 5 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | acorn-jsx@^3.0.0: 6 | version "3.0.1" 7 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 8 | integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= 9 | dependencies: 10 | acorn "^3.0.4" 11 | 12 | acorn@^3.0.4: 13 | version "3.3.0" 14 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 15 | integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= 16 | 17 | acorn@^5.5.0: 18 | version "5.7.3" 19 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" 20 | integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== 21 | 22 | ajv-keywords@^2.1.0: 23 | version "2.1.1" 24 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 25 | integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= 26 | 27 | ajv@^5.2.3, ajv@^5.3.0: 28 | version "5.5.2" 29 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 30 | integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= 31 | dependencies: 32 | co "^4.6.0" 33 | fast-deep-equal "^1.0.0" 34 | fast-json-stable-stringify "^2.0.0" 35 | json-schema-traverse "^0.3.0" 36 | 37 | ansi-escapes@^3.0.0: 38 | version "3.2.0" 39 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 40 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 41 | 42 | ansi-regex@^2.0.0: 43 | version "2.1.1" 44 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 45 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 46 | 47 | ansi-regex@^3.0.0: 48 | version "3.0.0" 49 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 50 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 51 | 52 | ansi-styles@^2.2.1: 53 | version "2.2.1" 54 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 55 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 56 | 57 | ansi-styles@^3.2.1: 58 | version "3.2.1" 59 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 60 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 61 | dependencies: 62 | color-convert "^1.9.0" 63 | 64 | argparse@^1.0.7: 65 | version "1.0.10" 66 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 67 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 68 | dependencies: 69 | sprintf-js "~1.0.2" 70 | 71 | aria-query@^0.3.0: 72 | version "0.3.0" 73 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.3.0.tgz#cb8a9984e2862711c83c80ade5b8f5ca0de2b467" 74 | integrity sha1-y4qZhOKGJxHIPICt5bj1yg3itGc= 75 | dependencies: 76 | ast-types-flow "0.0.7" 77 | 78 | array-includes@^3.0.3: 79 | version "3.0.3" 80 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 81 | integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= 82 | dependencies: 83 | define-properties "^1.1.2" 84 | es-abstract "^1.7.0" 85 | 86 | array.prototype.find@^2.0.1: 87 | version "2.1.0" 88 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" 89 | integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg== 90 | dependencies: 91 | define-properties "^1.1.3" 92 | es-abstract "^1.13.0" 93 | 94 | ast-types-flow@0.0.7: 95 | version "0.0.7" 96 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 97 | integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= 98 | 99 | babel-code-frame@^6.22.0: 100 | version "6.26.0" 101 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 102 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= 103 | dependencies: 104 | chalk "^1.1.3" 105 | esutils "^2.0.2" 106 | js-tokens "^3.0.2" 107 | 108 | balanced-match@^1.0.0: 109 | version "1.0.0" 110 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 111 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 112 | 113 | brace-expansion@^1.1.7: 114 | version "1.1.11" 115 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 116 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 117 | dependencies: 118 | balanced-match "^1.0.0" 119 | concat-map "0.0.1" 120 | 121 | buffer-from@^1.0.0: 122 | version "1.1.1" 123 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 124 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 125 | 126 | caller-path@^0.1.0: 127 | version "0.1.0" 128 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 129 | integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= 130 | dependencies: 131 | callsites "^0.2.0" 132 | 133 | callsites@^0.2.0: 134 | version "0.2.0" 135 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 136 | integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= 137 | 138 | chalk@^1.1.3: 139 | version "1.1.3" 140 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 141 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 142 | dependencies: 143 | ansi-styles "^2.2.1" 144 | escape-string-regexp "^1.0.2" 145 | has-ansi "^2.0.0" 146 | strip-ansi "^3.0.0" 147 | supports-color "^2.0.0" 148 | 149 | chalk@^2.0.0, chalk@^2.1.0: 150 | version "2.4.2" 151 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 152 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 153 | dependencies: 154 | ansi-styles "^3.2.1" 155 | escape-string-regexp "^1.0.5" 156 | supports-color "^5.3.0" 157 | 158 | chardet@^0.4.0: 159 | version "0.4.2" 160 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 161 | integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= 162 | 163 | circular-json@^0.3.1: 164 | version "0.3.3" 165 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 166 | integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== 167 | 168 | cli-cursor@^2.1.0: 169 | version "2.1.0" 170 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 171 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 172 | dependencies: 173 | restore-cursor "^2.0.0" 174 | 175 | cli-width@^2.0.0: 176 | version "2.2.0" 177 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 178 | integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= 179 | 180 | co@^4.6.0: 181 | version "4.6.0" 182 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 183 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 184 | 185 | color-convert@^1.9.0: 186 | version "1.9.3" 187 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 188 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 189 | dependencies: 190 | color-name "1.1.3" 191 | 192 | color-name@1.1.3: 193 | version "1.1.3" 194 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 195 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 196 | 197 | concat-map@0.0.1: 198 | version "0.0.1" 199 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 200 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 201 | 202 | concat-stream@^1.6.0: 203 | version "1.6.2" 204 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 205 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 206 | dependencies: 207 | buffer-from "^1.0.0" 208 | inherits "^2.0.3" 209 | readable-stream "^2.2.2" 210 | typedarray "^0.0.6" 211 | 212 | contains-path@^0.1.0: 213 | version "0.1.0" 214 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 215 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 216 | 217 | core-util-is@~1.0.0: 218 | version "1.0.2" 219 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 220 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 221 | 222 | cross-spawn@^5.1.0: 223 | version "5.1.0" 224 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 225 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 226 | dependencies: 227 | lru-cache "^4.0.1" 228 | shebang-command "^1.2.0" 229 | which "^1.2.9" 230 | 231 | damerau-levenshtein@^1.0.0: 232 | version "1.0.5" 233 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" 234 | integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== 235 | 236 | debug@^2.6.8, debug@^2.6.9: 237 | version "2.6.9" 238 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 239 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 240 | dependencies: 241 | ms "2.0.0" 242 | 243 | debug@^3.1.0: 244 | version "3.2.6" 245 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 246 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 247 | dependencies: 248 | ms "^2.1.1" 249 | 250 | deep-is@~0.1.3: 251 | version "0.1.3" 252 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 253 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 254 | 255 | define-properties@^1.1.2, define-properties@^1.1.3: 256 | version "1.1.3" 257 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 258 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 259 | dependencies: 260 | object-keys "^1.0.12" 261 | 262 | doctrine@1.5.0, doctrine@^1.2.2: 263 | version "1.5.0" 264 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 265 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 266 | dependencies: 267 | esutils "^2.0.2" 268 | isarray "^1.0.0" 269 | 270 | doctrine@^2.1.0: 271 | version "2.1.0" 272 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 273 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 274 | dependencies: 275 | esutils "^2.0.2" 276 | 277 | emoji-regex@^6.1.0: 278 | version "6.5.1" 279 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" 280 | integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== 281 | 282 | error-ex@^1.2.0: 283 | version "1.3.2" 284 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 285 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 286 | dependencies: 287 | is-arrayish "^0.2.1" 288 | 289 | es-abstract@^1.13.0, es-abstract@^1.7.0: 290 | version "1.13.0" 291 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" 292 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== 293 | dependencies: 294 | es-to-primitive "^1.2.0" 295 | function-bind "^1.1.1" 296 | has "^1.0.3" 297 | is-callable "^1.1.4" 298 | is-regex "^1.0.4" 299 | object-keys "^1.0.12" 300 | 301 | es-to-primitive@^1.2.0: 302 | version "1.2.0" 303 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 304 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== 305 | dependencies: 306 | is-callable "^1.1.4" 307 | is-date-object "^1.0.1" 308 | is-symbol "^1.0.2" 309 | 310 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 311 | version "1.0.5" 312 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 313 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 314 | 315 | eslint-config-airbnb-base@^11.1.0: 316 | version "11.3.2" 317 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a" 318 | integrity sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w== 319 | dependencies: 320 | eslint-restricted-globals "^0.1.1" 321 | 322 | eslint-config-airbnb@^14.1.0: 323 | version "14.1.0" 324 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz#355d290040bbf8e00bf8b4b19f4b70cbe7c2317f" 325 | integrity sha1-NV0pAEC7+OAL+LSxn0twy+fCMX8= 326 | dependencies: 327 | eslint-config-airbnb-base "^11.1.0" 328 | 329 | eslint-import-resolver-node@^0.3.2: 330 | version "0.3.2" 331 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" 332 | integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== 333 | dependencies: 334 | debug "^2.6.9" 335 | resolve "^1.5.0" 336 | 337 | eslint-module-utils@^2.4.0: 338 | version "2.4.0" 339 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" 340 | integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== 341 | dependencies: 342 | debug "^2.6.8" 343 | pkg-dir "^2.0.0" 344 | 345 | eslint-plugin-import@^2.2.0: 346 | version "2.18.0" 347 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz#7a5ba8d32622fb35eb9c8db195c2090bd18a3678" 348 | integrity sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig== 349 | dependencies: 350 | array-includes "^3.0.3" 351 | contains-path "^0.1.0" 352 | debug "^2.6.9" 353 | doctrine "1.5.0" 354 | eslint-import-resolver-node "^0.3.2" 355 | eslint-module-utils "^2.4.0" 356 | has "^1.0.3" 357 | lodash "^4.17.11" 358 | minimatch "^3.0.4" 359 | read-pkg-up "^2.0.0" 360 | resolve "^1.11.0" 361 | 362 | eslint-plugin-jsx-a11y@^4.0.0: 363 | version "4.0.0" 364 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz#779bb0fe7b08da564a422624911de10061e048ee" 365 | integrity sha1-d5uw/nsI2lZKQiYkkR3hAGHgSO4= 366 | dependencies: 367 | aria-query "^0.3.0" 368 | ast-types-flow "0.0.7" 369 | damerau-levenshtein "^1.0.0" 370 | emoji-regex "^6.1.0" 371 | jsx-ast-utils "^1.0.0" 372 | object-assign "^4.0.1" 373 | 374 | eslint-plugin-react@^6.10.3: 375 | version "6.10.3" 376 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" 377 | integrity sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g= 378 | dependencies: 379 | array.prototype.find "^2.0.1" 380 | doctrine "^1.2.2" 381 | has "^1.0.1" 382 | jsx-ast-utils "^1.3.4" 383 | object.assign "^4.0.4" 384 | 385 | eslint-restricted-globals@^0.1.1: 386 | version "0.1.1" 387 | resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" 388 | integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= 389 | 390 | eslint-scope@^3.7.1: 391 | version "3.7.3" 392 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" 393 | integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== 394 | dependencies: 395 | esrecurse "^4.1.0" 396 | estraverse "^4.1.1" 397 | 398 | eslint-visitor-keys@^1.0.0: 399 | version "1.0.0" 400 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 401 | integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== 402 | 403 | eslint@^4.18.2: 404 | version "4.19.1" 405 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" 406 | integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== 407 | dependencies: 408 | ajv "^5.3.0" 409 | babel-code-frame "^6.22.0" 410 | chalk "^2.1.0" 411 | concat-stream "^1.6.0" 412 | cross-spawn "^5.1.0" 413 | debug "^3.1.0" 414 | doctrine "^2.1.0" 415 | eslint-scope "^3.7.1" 416 | eslint-visitor-keys "^1.0.0" 417 | espree "^3.5.4" 418 | esquery "^1.0.0" 419 | esutils "^2.0.2" 420 | file-entry-cache "^2.0.0" 421 | functional-red-black-tree "^1.0.1" 422 | glob "^7.1.2" 423 | globals "^11.0.1" 424 | ignore "^3.3.3" 425 | imurmurhash "^0.1.4" 426 | inquirer "^3.0.6" 427 | is-resolvable "^1.0.0" 428 | js-yaml "^3.9.1" 429 | json-stable-stringify-without-jsonify "^1.0.1" 430 | levn "^0.3.0" 431 | lodash "^4.17.4" 432 | minimatch "^3.0.2" 433 | mkdirp "^0.5.1" 434 | natural-compare "^1.4.0" 435 | optionator "^0.8.2" 436 | path-is-inside "^1.0.2" 437 | pluralize "^7.0.0" 438 | progress "^2.0.0" 439 | regexpp "^1.0.1" 440 | require-uncached "^1.0.3" 441 | semver "^5.3.0" 442 | strip-ansi "^4.0.0" 443 | strip-json-comments "~2.0.1" 444 | table "4.0.2" 445 | text-table "~0.2.0" 446 | 447 | espree@^3.5.4: 448 | version "3.5.4" 449 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 450 | integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== 451 | dependencies: 452 | acorn "^5.5.0" 453 | acorn-jsx "^3.0.0" 454 | 455 | esprima@^4.0.0: 456 | version "4.0.1" 457 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 458 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 459 | 460 | esquery@^1.0.0: 461 | version "1.0.1" 462 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 463 | integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== 464 | dependencies: 465 | estraverse "^4.0.0" 466 | 467 | esrecurse@^4.1.0: 468 | version "4.2.1" 469 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 470 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 471 | dependencies: 472 | estraverse "^4.1.0" 473 | 474 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 475 | version "4.2.0" 476 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 477 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= 478 | 479 | esutils@^2.0.2: 480 | version "2.0.2" 481 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 482 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 483 | 484 | external-editor@^2.0.4: 485 | version "2.2.0" 486 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 487 | integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== 488 | dependencies: 489 | chardet "^0.4.0" 490 | iconv-lite "^0.4.17" 491 | tmp "^0.0.33" 492 | 493 | fast-deep-equal@^1.0.0: 494 | version "1.1.0" 495 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 496 | integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= 497 | 498 | fast-json-stable-stringify@^2.0.0: 499 | version "2.0.0" 500 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 501 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 502 | 503 | fast-levenshtein@~2.0.4: 504 | version "2.0.6" 505 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 506 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 507 | 508 | figures@^2.0.0: 509 | version "2.0.0" 510 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 511 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 512 | dependencies: 513 | escape-string-regexp "^1.0.5" 514 | 515 | file-entry-cache@^2.0.0: 516 | version "2.0.0" 517 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 518 | integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= 519 | dependencies: 520 | flat-cache "^1.2.1" 521 | object-assign "^4.0.1" 522 | 523 | find-up@^2.0.0, find-up@^2.1.0: 524 | version "2.1.0" 525 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 526 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 527 | dependencies: 528 | locate-path "^2.0.0" 529 | 530 | flat-cache@^1.2.1: 531 | version "1.3.4" 532 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" 533 | integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== 534 | dependencies: 535 | circular-json "^0.3.1" 536 | graceful-fs "^4.1.2" 537 | rimraf "~2.6.2" 538 | write "^0.2.1" 539 | 540 | fs.realpath@^1.0.0: 541 | version "1.0.0" 542 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 543 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 544 | 545 | function-bind@^1.1.1: 546 | version "1.1.1" 547 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 548 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 549 | 550 | functional-red-black-tree@^1.0.1: 551 | version "1.0.1" 552 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 553 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 554 | 555 | glob@^7.1.2, glob@^7.1.3: 556 | version "7.1.4" 557 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 558 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 559 | dependencies: 560 | fs.realpath "^1.0.0" 561 | inflight "^1.0.4" 562 | inherits "2" 563 | minimatch "^3.0.4" 564 | once "^1.3.0" 565 | path-is-absolute "^1.0.0" 566 | 567 | globals@^11.0.1: 568 | version "11.12.0" 569 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 570 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 571 | 572 | graceful-fs@^4.1.2: 573 | version "4.2.0" 574 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" 575 | integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== 576 | 577 | has-ansi@^2.0.0: 578 | version "2.0.0" 579 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 580 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 581 | dependencies: 582 | ansi-regex "^2.0.0" 583 | 584 | has-flag@^3.0.0: 585 | version "3.0.0" 586 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 587 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 588 | 589 | has-symbols@^1.0.0: 590 | version "1.0.0" 591 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 592 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 593 | 594 | has@^1.0.1, has@^1.0.3: 595 | version "1.0.3" 596 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 597 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 598 | dependencies: 599 | function-bind "^1.1.1" 600 | 601 | hoist-non-react-statics@^3.0.1: 602 | version "3.3.0" 603 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" 604 | integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== 605 | dependencies: 606 | react-is "^16.7.0" 607 | 608 | hosted-git-info@^2.1.4: 609 | version "2.8.9" 610 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 611 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 612 | 613 | iconv-lite@^0.4.17: 614 | version "0.4.24" 615 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 616 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 617 | dependencies: 618 | safer-buffer ">= 2.1.2 < 3" 619 | 620 | ignore@^3.3.3: 621 | version "3.3.10" 622 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" 623 | integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== 624 | 625 | imurmurhash@^0.1.4: 626 | version "0.1.4" 627 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 628 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 629 | 630 | inflight@^1.0.4: 631 | version "1.0.6" 632 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 633 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 634 | dependencies: 635 | once "^1.3.0" 636 | wrappy "1" 637 | 638 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 639 | version "2.0.4" 640 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 641 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 642 | 643 | inquirer@^3.0.6: 644 | version "3.3.0" 645 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 646 | integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== 647 | dependencies: 648 | ansi-escapes "^3.0.0" 649 | chalk "^2.0.0" 650 | cli-cursor "^2.1.0" 651 | cli-width "^2.0.0" 652 | external-editor "^2.0.4" 653 | figures "^2.0.0" 654 | lodash "^4.3.0" 655 | mute-stream "0.0.7" 656 | run-async "^2.2.0" 657 | rx-lite "^4.0.8" 658 | rx-lite-aggregates "^4.0.8" 659 | string-width "^2.1.0" 660 | strip-ansi "^4.0.0" 661 | through "^2.3.6" 662 | 663 | is-arrayish@^0.2.1: 664 | version "0.2.1" 665 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 666 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 667 | 668 | is-callable@^1.1.4: 669 | version "1.1.4" 670 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 671 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== 672 | 673 | is-date-object@^1.0.1: 674 | version "1.0.1" 675 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 676 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= 677 | 678 | is-fullwidth-code-point@^2.0.0: 679 | version "2.0.0" 680 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 681 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 682 | 683 | is-promise@^2.1.0: 684 | version "2.1.0" 685 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 686 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= 687 | 688 | is-regex@^1.0.4: 689 | version "1.0.4" 690 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 691 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 692 | dependencies: 693 | has "^1.0.1" 694 | 695 | is-resolvable@^1.0.0: 696 | version "1.1.0" 697 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 698 | integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== 699 | 700 | is-symbol@^1.0.2: 701 | version "1.0.2" 702 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 703 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== 704 | dependencies: 705 | has-symbols "^1.0.0" 706 | 707 | isarray@^1.0.0, isarray@~1.0.0: 708 | version "1.0.0" 709 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 710 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 711 | 712 | isexe@^2.0.0: 713 | version "2.0.0" 714 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 715 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 716 | 717 | js-tokens@^3.0.2: 718 | version "3.0.2" 719 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 720 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= 721 | 722 | js-yaml@^3.9.1: 723 | version "3.13.1" 724 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 725 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 726 | dependencies: 727 | argparse "^1.0.7" 728 | esprima "^4.0.0" 729 | 730 | json-schema-traverse@^0.3.0: 731 | version "0.3.1" 732 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 733 | integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= 734 | 735 | json-stable-stringify-without-jsonify@^1.0.1: 736 | version "1.0.1" 737 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 738 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 739 | 740 | jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4: 741 | version "1.4.1" 742 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" 743 | integrity sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE= 744 | 745 | levn@^0.3.0, levn@~0.3.0: 746 | version "0.3.0" 747 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 748 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 749 | dependencies: 750 | prelude-ls "~1.1.2" 751 | type-check "~0.3.2" 752 | 753 | load-json-file@^2.0.0: 754 | version "2.0.0" 755 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 756 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 757 | dependencies: 758 | graceful-fs "^4.1.2" 759 | parse-json "^2.2.0" 760 | pify "^2.0.0" 761 | strip-bom "^3.0.0" 762 | 763 | locate-path@^2.0.0: 764 | version "2.0.0" 765 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 766 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 767 | dependencies: 768 | p-locate "^2.0.0" 769 | path-exists "^3.0.0" 770 | 771 | lodash@^4.17.11, lodash@^4.17.4, lodash@^4.3.0: 772 | version "4.17.21" 773 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 774 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 775 | 776 | lru-cache@^4.0.1: 777 | version "4.1.5" 778 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 779 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 780 | dependencies: 781 | pseudomap "^1.0.2" 782 | yallist "^2.1.2" 783 | 784 | mimic-fn@^1.0.0: 785 | version "1.2.0" 786 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 787 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 788 | 789 | minimatch@^3.0.2, minimatch@^3.0.4: 790 | version "3.0.4" 791 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 792 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 793 | dependencies: 794 | brace-expansion "^1.1.7" 795 | 796 | minimist@0.0.8: 797 | version "0.0.8" 798 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 799 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 800 | 801 | mkdirp@^0.5.1: 802 | version "0.5.1" 803 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 804 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 805 | dependencies: 806 | minimist "0.0.8" 807 | 808 | ms@2.0.0: 809 | version "2.0.0" 810 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 811 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 812 | 813 | ms@^2.1.1: 814 | version "2.1.2" 815 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 816 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 817 | 818 | mute-stream@0.0.7: 819 | version "0.0.7" 820 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 821 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 822 | 823 | natural-compare@^1.4.0: 824 | version "1.4.0" 825 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 826 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 827 | 828 | normalize-package-data@^2.3.2: 829 | version "2.5.0" 830 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 831 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 832 | dependencies: 833 | hosted-git-info "^2.1.4" 834 | resolve "^1.10.0" 835 | semver "2 || 3 || 4 || 5" 836 | validate-npm-package-license "^3.0.1" 837 | 838 | object-assign@^4.0.1: 839 | version "4.1.1" 840 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 841 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 842 | 843 | object-keys@^1.0.11, object-keys@^1.0.12: 844 | version "1.1.1" 845 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 846 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 847 | 848 | object.assign@^4.0.4: 849 | version "4.1.0" 850 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 851 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 852 | dependencies: 853 | define-properties "^1.1.2" 854 | function-bind "^1.1.1" 855 | has-symbols "^1.0.0" 856 | object-keys "^1.0.11" 857 | 858 | once@^1.3.0: 859 | version "1.4.0" 860 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 861 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 862 | dependencies: 863 | wrappy "1" 864 | 865 | onetime@^2.0.0: 866 | version "2.0.1" 867 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 868 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= 869 | dependencies: 870 | mimic-fn "^1.0.0" 871 | 872 | optionator@^0.8.2: 873 | version "0.8.2" 874 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 875 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= 876 | dependencies: 877 | deep-is "~0.1.3" 878 | fast-levenshtein "~2.0.4" 879 | levn "~0.3.0" 880 | prelude-ls "~1.1.2" 881 | type-check "~0.3.2" 882 | wordwrap "~1.0.0" 883 | 884 | os-tmpdir@~1.0.2: 885 | version "1.0.2" 886 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 887 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 888 | 889 | p-limit@^1.1.0: 890 | version "1.3.0" 891 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 892 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 893 | dependencies: 894 | p-try "^1.0.0" 895 | 896 | p-locate@^2.0.0: 897 | version "2.0.0" 898 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 899 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 900 | dependencies: 901 | p-limit "^1.1.0" 902 | 903 | p-try@^1.0.0: 904 | version "1.0.0" 905 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 906 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 907 | 908 | parse-json@^2.2.0: 909 | version "2.2.0" 910 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 911 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 912 | dependencies: 913 | error-ex "^1.2.0" 914 | 915 | path-exists@^3.0.0: 916 | version "3.0.0" 917 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 918 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 919 | 920 | path-is-absolute@^1.0.0: 921 | version "1.0.1" 922 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 923 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 924 | 925 | path-is-inside@^1.0.2: 926 | version "1.0.2" 927 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 928 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 929 | 930 | path-parse@^1.0.6: 931 | version "1.0.6" 932 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 933 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 934 | 935 | path-type@^2.0.0: 936 | version "2.0.0" 937 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 938 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 939 | dependencies: 940 | pify "^2.0.0" 941 | 942 | pify@^2.0.0: 943 | version "2.3.0" 944 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 945 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 946 | 947 | pkg-dir@^2.0.0: 948 | version "2.0.0" 949 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 950 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 951 | dependencies: 952 | find-up "^2.1.0" 953 | 954 | pluralize@^7.0.0: 955 | version "7.0.0" 956 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 957 | integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== 958 | 959 | prelude-ls@~1.1.2: 960 | version "1.1.2" 961 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 962 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 963 | 964 | process-nextick-args@~2.0.0: 965 | version "2.0.1" 966 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 967 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 968 | 969 | progress@^2.0.0: 970 | version "2.0.3" 971 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 972 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 973 | 974 | pseudomap@^1.0.2: 975 | version "1.0.2" 976 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 977 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 978 | 979 | react-is@^16.7.0: 980 | version "16.8.6" 981 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" 982 | integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== 983 | 984 | react-native-iphone-x-helper@^1.2.0: 985 | version "1.2.1" 986 | resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz#645e2ffbbb49e80844bb4cbbe34a126fda1e6772" 987 | integrity sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ== 988 | 989 | react-native-swipe-gestures@^1.0.2: 990 | version "1.0.3" 991 | resolved "https://registry.yarnpkg.com/react-native-swipe-gestures/-/react-native-swipe-gestures-1.0.3.tgz#4160f8d459627323f3a3d2770af4bcd82fd054f5" 992 | integrity sha512-KOouRzPB2fHFjVombsSdRfYo8SFeNVa4Ho4B5il87DuuF26sPNOtb3je+qaT/xVptedOsCzRPJGbWFMsaBApgg== 993 | 994 | read-pkg-up@^2.0.0: 995 | version "2.0.0" 996 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 997 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 998 | dependencies: 999 | find-up "^2.0.0" 1000 | read-pkg "^2.0.0" 1001 | 1002 | read-pkg@^2.0.0: 1003 | version "2.0.0" 1004 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1005 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 1006 | dependencies: 1007 | load-json-file "^2.0.0" 1008 | normalize-package-data "^2.3.2" 1009 | path-type "^2.0.0" 1010 | 1011 | readable-stream@^2.2.2: 1012 | version "2.3.6" 1013 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1014 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 1015 | dependencies: 1016 | core-util-is "~1.0.0" 1017 | inherits "~2.0.3" 1018 | isarray "~1.0.0" 1019 | process-nextick-args "~2.0.0" 1020 | safe-buffer "~5.1.1" 1021 | string_decoder "~1.1.1" 1022 | util-deprecate "~1.0.1" 1023 | 1024 | regexpp@^1.0.1: 1025 | version "1.1.0" 1026 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 1027 | integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== 1028 | 1029 | require-uncached@^1.0.3: 1030 | version "1.0.3" 1031 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1032 | integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= 1033 | dependencies: 1034 | caller-path "^0.1.0" 1035 | resolve-from "^1.0.0" 1036 | 1037 | resolve-from@^1.0.0: 1038 | version "1.0.1" 1039 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1040 | integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= 1041 | 1042 | resolve@^1.10.0, resolve@^1.11.0, resolve@^1.5.0: 1043 | version "1.11.1" 1044 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" 1045 | integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== 1046 | dependencies: 1047 | path-parse "^1.0.6" 1048 | 1049 | restore-cursor@^2.0.0: 1050 | version "2.0.0" 1051 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1052 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= 1053 | dependencies: 1054 | onetime "^2.0.0" 1055 | signal-exit "^3.0.2" 1056 | 1057 | rimraf@~2.6.2: 1058 | version "2.6.3" 1059 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 1060 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 1061 | dependencies: 1062 | glob "^7.1.3" 1063 | 1064 | run-async@^2.2.0: 1065 | version "2.3.0" 1066 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1067 | integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= 1068 | dependencies: 1069 | is-promise "^2.1.0" 1070 | 1071 | rx-lite-aggregates@^4.0.8: 1072 | version "4.0.8" 1073 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 1074 | integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= 1075 | dependencies: 1076 | rx-lite "*" 1077 | 1078 | rx-lite@*, rx-lite@^4.0.8: 1079 | version "4.0.8" 1080 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 1081 | integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= 1082 | 1083 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1084 | version "5.1.2" 1085 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1086 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1087 | 1088 | "safer-buffer@>= 2.1.2 < 3": 1089 | version "2.1.2" 1090 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1091 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1092 | 1093 | "semver@2 || 3 || 4 || 5", semver@^5.3.0: 1094 | version "5.7.0" 1095 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 1096 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 1097 | 1098 | shebang-command@^1.2.0: 1099 | version "1.2.0" 1100 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1101 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1102 | dependencies: 1103 | shebang-regex "^1.0.0" 1104 | 1105 | shebang-regex@^1.0.0: 1106 | version "1.0.0" 1107 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1108 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1109 | 1110 | signal-exit@^3.0.2: 1111 | version "3.0.2" 1112 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1113 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 1114 | 1115 | slice-ansi@1.0.0: 1116 | version "1.0.0" 1117 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 1118 | integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== 1119 | dependencies: 1120 | is-fullwidth-code-point "^2.0.0" 1121 | 1122 | spdx-correct@^3.0.0: 1123 | version "3.1.0" 1124 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 1125 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 1126 | dependencies: 1127 | spdx-expression-parse "^3.0.0" 1128 | spdx-license-ids "^3.0.0" 1129 | 1130 | spdx-exceptions@^2.1.0: 1131 | version "2.2.0" 1132 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 1133 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 1134 | 1135 | spdx-expression-parse@^3.0.0: 1136 | version "3.0.0" 1137 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1138 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 1139 | dependencies: 1140 | spdx-exceptions "^2.1.0" 1141 | spdx-license-ids "^3.0.0" 1142 | 1143 | spdx-license-ids@^3.0.0: 1144 | version "3.0.4" 1145 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" 1146 | integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== 1147 | 1148 | sprintf-js@~1.0.2: 1149 | version "1.0.3" 1150 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1151 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1152 | 1153 | string-width@^2.1.0, string-width@^2.1.1: 1154 | version "2.1.1" 1155 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1156 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1157 | dependencies: 1158 | is-fullwidth-code-point "^2.0.0" 1159 | strip-ansi "^4.0.0" 1160 | 1161 | string_decoder@~1.1.1: 1162 | version "1.1.1" 1163 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1164 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1165 | dependencies: 1166 | safe-buffer "~5.1.0" 1167 | 1168 | strip-ansi@^3.0.0: 1169 | version "3.0.1" 1170 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1171 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1172 | dependencies: 1173 | ansi-regex "^2.0.0" 1174 | 1175 | strip-ansi@^4.0.0: 1176 | version "4.0.0" 1177 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1178 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1179 | dependencies: 1180 | ansi-regex "^3.0.0" 1181 | 1182 | strip-bom@^3.0.0: 1183 | version "3.0.0" 1184 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1185 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1186 | 1187 | strip-json-comments@~2.0.1: 1188 | version "2.0.1" 1189 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1190 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1191 | 1192 | supports-color@^2.0.0: 1193 | version "2.0.0" 1194 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1195 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 1196 | 1197 | supports-color@^5.3.0: 1198 | version "5.5.0" 1199 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1200 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1201 | dependencies: 1202 | has-flag "^3.0.0" 1203 | 1204 | table@4.0.2: 1205 | version "4.0.2" 1206 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 1207 | integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== 1208 | dependencies: 1209 | ajv "^5.2.3" 1210 | ajv-keywords "^2.1.0" 1211 | chalk "^2.1.0" 1212 | lodash "^4.17.4" 1213 | slice-ansi "1.0.0" 1214 | string-width "^2.1.1" 1215 | 1216 | text-table@~0.2.0: 1217 | version "0.2.0" 1218 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1219 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1220 | 1221 | through@^2.3.6: 1222 | version "2.3.8" 1223 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1224 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1225 | 1226 | tmp@^0.0.33: 1227 | version "0.0.33" 1228 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1229 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1230 | dependencies: 1231 | os-tmpdir "~1.0.2" 1232 | 1233 | type-check@~0.3.2: 1234 | version "0.3.2" 1235 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1236 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1237 | dependencies: 1238 | prelude-ls "~1.1.2" 1239 | 1240 | typedarray@^0.0.6: 1241 | version "0.0.6" 1242 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1243 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= 1244 | 1245 | util-deprecate@~1.0.1: 1246 | version "1.0.2" 1247 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1248 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1249 | 1250 | validate-npm-package-license@^3.0.1: 1251 | version "3.0.4" 1252 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1253 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1254 | dependencies: 1255 | spdx-correct "^3.0.0" 1256 | spdx-expression-parse "^3.0.0" 1257 | 1258 | which@^1.2.9: 1259 | version "1.3.1" 1260 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1261 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1262 | dependencies: 1263 | isexe "^2.0.0" 1264 | 1265 | wordwrap@~1.0.0: 1266 | version "1.0.0" 1267 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1268 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= 1269 | 1270 | wrappy@1: 1271 | version "1.0.2" 1272 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1273 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1274 | 1275 | write@^0.2.1: 1276 | version "0.2.1" 1277 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1278 | integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= 1279 | dependencies: 1280 | mkdirp "^0.5.1" 1281 | 1282 | yallist@^2.1.2: 1283 | version "2.1.2" 1284 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1285 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 1286 | --------------------------------------------------------------------------------