├── .gitignore ├── LICENSE ├── README.md ├── index.d.ts ├── index.js ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Omar Khaled 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-photo-upload 2 | 3 | ![screenshot](http://g.recordit.co/egzm6lL96l.gif) 4 | 5 | This component handles all the hassle in dealing with photos in react native, it's built on top of `react-native-image-picker`, `react-native-image-resizer` and `react-native-fs` 6 | it takes an image component and upon click, you get the image picker prompt, get the base64 string of the image and the image source changes to whatever image was picked. 7 | 8 | ## Installing 9 | 10 | npm or yarn install 11 | 12 | ``` 13 | npm install react-native-photo-upload --save 14 | ``` 15 | or 16 | ``` 17 | yarn add react-native-photo-upload 18 | ``` 19 | ## Automatic Installation 20 | 21 | link `react-native-image-picker`, `react-native-image-resizer` and `react-native-fs` which the component depends on 22 | ``` 23 | react-native link react-native-image-picker 24 | react-native link react-native-image-resizer 25 | react-native link react-native-fs 26 | ``` 27 | #### The following steps are required by `react-native-image-picker` for both Android and IOS even with automatic linking 28 | 29 | ### Android 30 | 31 | * Update the android build tools version to `2.2.+` in `android/build.gradle` (required step by `react-native-image-picker): 32 | ```gradle 33 | buildscript { 34 | ... 35 | dependencies { 36 | classpath 'com.android.tools.build:gradle:2.2.+' // <- USE 2.2.+ version 37 | } 38 | ... 39 | } 40 | ... 41 | ``` 42 | 43 | * Update the gradle version to `2.14.1` in `android/gradle/wrapper/gradle-wrapper.properties`: 44 | ``` 45 | ... 46 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 47 | ``` 48 | 49 | * Add the required permissions in `AndroidManifest.xml`: 50 | ```xml 51 | 52 | 53 | ``` 54 | 55 | ### IOS 56 | For iOS 10+, Add the `NSPhotoLibraryUsageDescription`, `NSCameraUsageDescription`, and `NSMicrophoneUsageDescription` (if allowing video) keys to your `Info.plist` with strings describing why your app needs these permissions. **Note: You will get a SIGABRT crash if you don't complete this step** 57 | ``` 58 | 59 | 60 | ... 61 | NSPhotoLibraryUsageDescription 62 | YOUR_REASON_FOR_USING_USER_PHOTOS_HERE 63 | NSCameraUsageDescription 64 | YOUR_REASON_FOR_USING_USER_CAMERA_HERE 65 | 66 | 67 | ``` 68 | 69 | ## Manual Installation 70 | 71 | check the docs of each library on how to link manually. 72 | 73 | * [react-native-image-picker](https://github.com/react-community/react-native-image-picker) 74 | * [react-native-image-resizer](https://github.com/bamlab/react-native-image-resizer) 75 | * [react-native-fs](https://github.com/itinance/react-native-fs) 76 | 77 | ## Usage 78 | 79 | Wrap your default image inside the PhotoUpload component, the component wraps the image with TouchableOpacity, on press it will trigger the image picker prompt. after selecting a new image from the picker, the image source will get replaced with the new image base64 string as uri 80 | 81 | ``` 82 | 83 | 88 | 89 | ``` 90 | 91 | ## Example 92 | 93 | ``` 94 | import { Image } from 'react-native' 95 | import PhotoUpload from 'react-native-photo-upload' 96 | 97 | { 99 | if (avatar) { 100 | console.log('Image base64 string: ', avatar) 101 | } 102 | }} 103 | > 104 | 116 | 117 | ``` 118 | 119 | ## Props 120 | 121 | Prop | Type | Description 122 | -----|------|------------ 123 | containerStyle | Object | Style object for the image container 124 | photoPickerTitle | String | Title for the image picker prompt, default is 'Select Photo' 125 | maxHeight | Number | the resized image max height, maintains aspect ratio, default is 600 126 | maxWidth | Number | the resized image max width, maintains aspect ratio default is 600 127 | format | String | The format desired of the resized image, 'JPEG' or 'PNG' default is 'JPEG' 128 | quality | Number | The quality of the resized image indicated by a number between 1 and 100, default is 100 129 | onPhotoSelect | Function | function which takes the base64 string of the new image as parameter 130 | onError | Function | fires if any error occur with response 131 | onTapCustomButton | Function | fires on tap custom button 132 | onStart | Function | fires when user starts (useful for loading, etc) 133 | onCancel | Function | fires when user cancel 134 | onResponse | Function | fires on response exists 135 | onRender | Function | fires after render 136 | onResizedImageUri | Function | fires when image resized is ready 137 | imagePickerProps | Object | Other props for react-native-image-picker 138 | 139 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react-native-photo-upload" { 2 | import { StyleProp, ViewStyle } from "react-native"; 3 | 4 | interface ImagePickerResponse { 5 | customButton: string; 6 | didCancel: boolean; 7 | error: string; 8 | data: string; 9 | uri: string; 10 | origURL?: string; 11 | isVertical: boolean; 12 | width: number; 13 | height: number; 14 | fileSize: number; 15 | type?: string; 16 | fileName?: string; 17 | path?: string; 18 | latitude?: number; 19 | longitude?: number; 20 | timestamp?: string; 21 | } 22 | 23 | interface ImageResizerResponse { 24 | path: string; 25 | uri: string; 26 | size?: number; 27 | name?: string; 28 | } 29 | 30 | interface PhotoUploadProps { 31 | /** Style object for the image container */ 32 | containerStyle?: StyleProp; 33 | /** Title for the image picker prompt, default is 'Select Photo' */ 34 | photoPickerTitle?: string; 35 | /** the resized image height, default is 300 */ 36 | height?: number; 37 | /** the resized image width, default is 300 */ 38 | width?: number; 39 | /** The format desired of the resized image, 'JPEG' or 'PNG' default is 'JPEG' */ 40 | format?: "JPEG" | "PNG"; 41 | /** The quality of the resized image indicated by a number between 1 and 100, default is 80 */ 42 | quality?: number; 43 | /** function which takes the base64 string of the new image as parameter */ 44 | onPhotoSelect?: (base64: string) => void; 45 | /** fires if any error occur with response */ 46 | onError?: (err: Error) => void; 47 | /** fires on tap custom button */ 48 | onTapCustomButton?: (customButton: string) => void; 49 | /** fires when user starts (useful for loading, etc) */ 50 | onStart?: () => void; 51 | /** fires when user cancel */ 52 | onCancel?: (reason: string) => void; 53 | /** fires on response exists */ 54 | onResponse?: (response: ImagePickerResponse) => void; 55 | /** fires after render */ 56 | onRender?: () => void; 57 | /** fires when image resized is ready */ 58 | onResizedImageUri?: (response: ImageResizerResponse) => void; 59 | /** react-native-image-picker props */ 60 | imagePickerProps?: object; 61 | 62 | } 63 | 64 | export default class PhotoUpload extends React.Component {} 65 | } 66 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | import { 4 | View, 5 | Image, 6 | StyleSheet, 7 | TouchableOpacity, 8 | Platform 9 | } from 'react-native' 10 | import ImagePicker from 'react-native-image-picker' 11 | import ImageResizer from 'react-native-image-resizer' 12 | import RNFS from 'react-native-fs' 13 | 14 | export default class PhotoUpload extends React.Component { 15 | static propTypes = { 16 | containerStyle: PropTypes.object, 17 | photoPickerTitle: PropTypes.string, 18 | maxHeight: PropTypes.number, 19 | maxWidth: PropTypes.number, 20 | format: PropTypes.string, 21 | quality: PropTypes.number, 22 | onPhotoSelect: PropTypes.func, // returns the base64 string of uploaded photo 23 | onError: PropTypes.func, // if any error occur with response 24 | onTapCustomButton: PropTypes.func, // on tap custom button 25 | onStart: PropTypes.func, // when user starts (useful for loading, etc) 26 | onCancel: PropTypes.func, // when user cancel 27 | onResponse: PropTypes.func, // on response exists! 28 | onRender: PropTypes.func, // after render 29 | onResizedImageUri: PropTypes.func, // when image resized is ready 30 | imagePickerProps: PropTypes.object // react-native-image-picker props 31 | } 32 | 33 | state = { 34 | maxHeight: this.props.height || 600, 35 | maxWidth: this.props.width || 600, 36 | format: this.props.format || 'JPEG', 37 | quality: this.props.quality || 100, 38 | buttonDisabled: false 39 | } 40 | 41 | options = { 42 | title: this.props.photoPickerTitle || 'Select Photo', 43 | storageOptions: { 44 | skipBackup: true, 45 | path: 'images' 46 | }, 47 | ...this.props.imagePickerProps 48 | } 49 | 50 | openImagePicker = () => { 51 | this.setState({buttonDisabled: true}) 52 | if (this.props.onStart) this.props.onStart() 53 | 54 | // get image from image picker 55 | ImagePicker.showImagePicker(this.options, async response => { 56 | this.setState({buttonDisabled: false}) 57 | 58 | let rotation = 0 59 | const {originalRotation} = response 60 | 61 | 62 | if (this.props.onResponse) this.props.onResponse(response) 63 | 64 | if (response.didCancel) { 65 | console.log('User cancelled image picker') 66 | if (this.props.onCancel) this.props.onCancel('User cancelled image picker') 67 | return 68 | } else if (response.error) { 69 | console.log('ImagePicker Error: ', response.error) 70 | if (this.props.onError) this.props.onError(response.error) 71 | return 72 | } else if (response.customButton) { 73 | console.log('User tapped custom button: ', response.customButton) 74 | if (this.props.onTapCustomButton) this.props.onTapCustomButton(response.customButton) 75 | return 76 | } 77 | 78 | let { maxHeight, maxWidth, quality, format } = this.state 79 | 80 | //Determining rotation param 81 | if ( originalRotation === 90) { 82 | rotation = 90 83 | } else if (originalRotation === 180) { 84 | //For a few images rotation is 180. 85 | rotation = -180 86 | } else if ( originalRotation === 270 ) { 87 | //When taking images with the front camera (selfie), the rotation is 270. 88 | rotation = -90 89 | } 90 | // resize image 91 | const resizedImageUri = await ImageResizer.createResizedImage( 92 | `data:image/jpeg;base64,${response.data}`, 93 | maxHeight, 94 | maxWidth, 95 | format, 96 | quality, 97 | rotation 98 | ) 99 | 100 | if (this.props.onResizedImageUri) this.props.onResizedImageUri(resizedImageUri) 101 | 102 | const filePath = Platform.OS === 'android' && resizedImageUri.uri.replace 103 | ? resizedImageUri.uri.replace('file:/data', '/data') 104 | : resizedImageUri.uri 105 | 106 | // convert image back to base64 string 107 | const photoData = await RNFS.readFile(filePath, 'base64') 108 | let source = { uri: resizedImageUri.uri } 109 | this.setState({ 110 | avatarSource: source 111 | }) 112 | 113 | // handle photo in props functions as data string 114 | if (this.props.onPhotoSelect) this.props.onPhotoSelect(photoData) 115 | }) 116 | } 117 | 118 | renderChildren = props => { 119 | return React.Children.map(props.children, child => { 120 | if (child && child.type === Image && this.state.avatarSource) { 121 | return React.cloneElement(child, { 122 | source: this.state.avatarSource 123 | }) 124 | } else return child 125 | }) 126 | } 127 | 128 | componentDidUpdate() { 129 | if (this.props.onAfterRender) this.props.onAfterRender(this.state) 130 | } 131 | 132 | render() { 133 | return ( 134 | 135 | 139 | {this.renderChildren(this.props)} 140 | 141 | 142 | ) 143 | } 144 | } 145 | 146 | const styles = StyleSheet.create({ 147 | container: { 148 | flex: 1, 149 | justifyContent: 'center', 150 | alignItems: 'center' 151 | } 152 | }) 153 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-photo-upload", 3 | "version": "1.3.0", 4 | "description": "Cross platform photo upload component for react native", 5 | "main": "index.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/malsapp/react-native-photo-upload.git" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "dependencies": { 14 | "prop-types": "^15.5.10", 15 | "react-native-fs": "^2.5.1", 16 | "react-native-image-picker": "^0.26.7", 17 | "react-native-image-resizer": "^1.0.0" 18 | }, 19 | "devDependencies": { 20 | "standard": "^10.0.2" 21 | }, 22 | "peerDependencies": { 23 | "react": ">15.0", 24 | "react-native": ">0.27" 25 | }, 26 | "keywords": [ 27 | "photo", 28 | "react", 29 | "react-native", 30 | "resizer", 31 | "image", 32 | "picker", 33 | "base64", 34 | "ios", 35 | "android" 36 | ], 37 | "author": "Omar Khaled ", 38 | "license": "MIT" 39 | } 40 | -------------------------------------------------------------------------------- /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 | dependencies: 9 | acorn "^3.0.4" 10 | 11 | acorn@^3.0.4: 12 | version "3.3.0" 13 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 14 | 15 | acorn@^5.0.1: 16 | version "5.0.3" 17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" 18 | 19 | ajv-keywords@^1.0.0: 20 | version "1.5.1" 21 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 22 | 23 | ajv@^4.7.0: 24 | version "4.11.8" 25 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 26 | dependencies: 27 | co "^4.6.0" 28 | json-stable-stringify "^1.0.1" 29 | 30 | ansi-escapes@^1.1.0: 31 | version "1.4.0" 32 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 33 | 34 | ansi-regex@^2.0.0: 35 | version "2.1.1" 36 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 37 | 38 | ansi-styles@^2.2.1: 39 | version "2.2.1" 40 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 41 | 42 | argparse@^1.0.7: 43 | version "1.0.9" 44 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 45 | dependencies: 46 | sprintf-js "~1.0.2" 47 | 48 | array-union@^1.0.1: 49 | version "1.0.2" 50 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 51 | dependencies: 52 | array-uniq "^1.0.1" 53 | 54 | array-uniq@^1.0.1: 55 | version "1.0.3" 56 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 57 | 58 | array.prototype.find@^2.0.1: 59 | version "2.0.4" 60 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" 61 | dependencies: 62 | define-properties "^1.1.2" 63 | es-abstract "^1.7.0" 64 | 65 | arrify@^1.0.0: 66 | version "1.0.1" 67 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 68 | 69 | asap@~2.0.3: 70 | version "2.0.5" 71 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 72 | 73 | babel-code-frame@^6.16.0: 74 | version "6.22.0" 75 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 76 | dependencies: 77 | chalk "^1.1.0" 78 | esutils "^2.0.2" 79 | js-tokens "^3.0.0" 80 | 81 | balanced-match@^0.4.1: 82 | version "0.4.2" 83 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 84 | 85 | base-64@^0.1.0: 86 | version "0.1.0" 87 | resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" 88 | 89 | brace-expansion@^1.1.7: 90 | version "1.1.7" 91 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" 92 | dependencies: 93 | balanced-match "^0.4.1" 94 | concat-map "0.0.1" 95 | 96 | builtin-modules@^1.1.1: 97 | version "1.1.1" 98 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 99 | 100 | caller-path@^0.1.0: 101 | version "0.1.0" 102 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 103 | dependencies: 104 | callsites "^0.2.0" 105 | 106 | callsites@^0.2.0: 107 | version "0.2.0" 108 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 109 | 110 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 111 | version "1.1.3" 112 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 113 | dependencies: 114 | ansi-styles "^2.2.1" 115 | escape-string-regexp "^1.0.2" 116 | has-ansi "^2.0.0" 117 | strip-ansi "^3.0.0" 118 | supports-color "^2.0.0" 119 | 120 | circular-json@^0.3.1: 121 | version "0.3.1" 122 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 123 | 124 | cli-cursor@^1.0.1: 125 | version "1.0.2" 126 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 127 | dependencies: 128 | restore-cursor "^1.0.1" 129 | 130 | cli-width@^2.0.0: 131 | version "2.1.0" 132 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 133 | 134 | co@^4.6.0: 135 | version "4.6.0" 136 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 137 | 138 | code-point-at@^1.0.0: 139 | version "1.1.0" 140 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 141 | 142 | concat-map@0.0.1: 143 | version "0.0.1" 144 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 145 | 146 | concat-stream@^1.5.2: 147 | version "1.6.0" 148 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 149 | dependencies: 150 | inherits "^2.0.3" 151 | readable-stream "^2.2.2" 152 | typedarray "^0.0.6" 153 | 154 | contains-path@^0.1.0: 155 | version "0.1.0" 156 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 157 | 158 | core-js@^1.0.0: 159 | version "1.2.7" 160 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 161 | 162 | core-util-is@~1.0.0: 163 | version "1.0.2" 164 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 165 | 166 | d@1: 167 | version "1.0.0" 168 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 169 | dependencies: 170 | es5-ext "^0.10.9" 171 | 172 | debug-log@^1.0.0: 173 | version "1.0.1" 174 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 175 | 176 | debug@2.2.0: 177 | version "2.2.0" 178 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 179 | dependencies: 180 | ms "0.7.1" 181 | 182 | debug@^2.1.1, debug@^2.2.0: 183 | version "2.6.8" 184 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 185 | dependencies: 186 | ms "2.0.0" 187 | 188 | deep-is@~0.1.3: 189 | version "0.1.3" 190 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 191 | 192 | define-properties@^1.1.2: 193 | version "1.1.2" 194 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 195 | dependencies: 196 | foreach "^2.0.5" 197 | object-keys "^1.0.8" 198 | 199 | deglob@^2.1.0: 200 | version "2.1.0" 201 | resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a" 202 | dependencies: 203 | find-root "^1.0.0" 204 | glob "^7.0.5" 205 | ignore "^3.0.9" 206 | pkg-config "^1.1.0" 207 | run-parallel "^1.1.2" 208 | uniq "^1.0.1" 209 | 210 | del@^2.0.2: 211 | version "2.2.2" 212 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 213 | dependencies: 214 | globby "^5.0.0" 215 | is-path-cwd "^1.0.0" 216 | is-path-in-cwd "^1.0.0" 217 | object-assign "^4.0.1" 218 | pify "^2.0.0" 219 | pinkie-promise "^2.0.0" 220 | rimraf "^2.2.8" 221 | 222 | doctrine@1.5.0, doctrine@^1.2.2: 223 | version "1.5.0" 224 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 225 | dependencies: 226 | esutils "^2.0.2" 227 | isarray "^1.0.0" 228 | 229 | doctrine@^2.0.0: 230 | version "2.0.0" 231 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 232 | dependencies: 233 | esutils "^2.0.2" 234 | isarray "^1.0.0" 235 | 236 | encoding@^0.1.11: 237 | version "0.1.12" 238 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 239 | dependencies: 240 | iconv-lite "~0.4.13" 241 | 242 | error-ex@^1.2.0: 243 | version "1.3.1" 244 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 245 | dependencies: 246 | is-arrayish "^0.2.1" 247 | 248 | es-abstract@^1.7.0: 249 | version "1.7.0" 250 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" 251 | dependencies: 252 | es-to-primitive "^1.1.1" 253 | function-bind "^1.1.0" 254 | is-callable "^1.1.3" 255 | is-regex "^1.0.3" 256 | 257 | es-to-primitive@^1.1.1: 258 | version "1.1.1" 259 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 260 | dependencies: 261 | is-callable "^1.1.1" 262 | is-date-object "^1.0.1" 263 | is-symbol "^1.0.1" 264 | 265 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 266 | version "0.10.22" 267 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.22.tgz#1876c51f990769c112c781ea3ebe89f84fd39071" 268 | dependencies: 269 | es6-iterator "2" 270 | es6-symbol "~3.1" 271 | 272 | es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: 273 | version "2.0.1" 274 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 275 | dependencies: 276 | d "1" 277 | es5-ext "^0.10.14" 278 | es6-symbol "^3.1" 279 | 280 | es6-map@^0.1.3: 281 | version "0.1.5" 282 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 283 | dependencies: 284 | d "1" 285 | es5-ext "~0.10.14" 286 | es6-iterator "~2.0.1" 287 | es6-set "~0.1.5" 288 | es6-symbol "~3.1.1" 289 | event-emitter "~0.3.5" 290 | 291 | es6-set@~0.1.5: 292 | version "0.1.5" 293 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 294 | dependencies: 295 | d "1" 296 | es5-ext "~0.10.14" 297 | es6-iterator "~2.0.1" 298 | es6-symbol "3.1.1" 299 | event-emitter "~0.3.5" 300 | 301 | es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: 302 | version "3.1.1" 303 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 304 | dependencies: 305 | d "1" 306 | es5-ext "~0.10.14" 307 | 308 | es6-weak-map@^2.0.1: 309 | version "2.0.2" 310 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 311 | dependencies: 312 | d "1" 313 | es5-ext "^0.10.14" 314 | es6-iterator "^2.0.1" 315 | es6-symbol "^3.1.1" 316 | 317 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 318 | version "1.0.5" 319 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 320 | 321 | escope@^3.6.0: 322 | version "3.6.0" 323 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 324 | dependencies: 325 | es6-map "^0.1.3" 326 | es6-weak-map "^2.0.1" 327 | esrecurse "^4.1.0" 328 | estraverse "^4.1.1" 329 | 330 | eslint-config-standard-jsx@4.0.1: 331 | version "4.0.1" 332 | resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.1.tgz#cd4e463d0268e2d9e707f61f42f73f5b3333c642" 333 | 334 | eslint-config-standard@10.2.1: 335 | version "10.2.1" 336 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591" 337 | 338 | eslint-import-resolver-node@^0.2.0: 339 | version "0.2.3" 340 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" 341 | dependencies: 342 | debug "^2.2.0" 343 | object-assign "^4.0.1" 344 | resolve "^1.1.6" 345 | 346 | eslint-module-utils@^2.0.0: 347 | version "2.0.0" 348 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce" 349 | dependencies: 350 | debug "2.2.0" 351 | pkg-dir "^1.0.0" 352 | 353 | eslint-plugin-import@~2.2.0: 354 | version "2.2.0" 355 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" 356 | dependencies: 357 | builtin-modules "^1.1.1" 358 | contains-path "^0.1.0" 359 | debug "^2.2.0" 360 | doctrine "1.5.0" 361 | eslint-import-resolver-node "^0.2.0" 362 | eslint-module-utils "^2.0.0" 363 | has "^1.0.1" 364 | lodash.cond "^4.3.0" 365 | minimatch "^3.0.3" 366 | pkg-up "^1.0.0" 367 | 368 | eslint-plugin-node@~4.2.2: 369 | version "4.2.2" 370 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-4.2.2.tgz#82959ca9aed79fcbd28bb1b188d05cac04fb3363" 371 | dependencies: 372 | ignore "^3.0.11" 373 | minimatch "^3.0.2" 374 | object-assign "^4.0.1" 375 | resolve "^1.1.7" 376 | semver "5.3.0" 377 | 378 | eslint-plugin-promise@~3.5.0: 379 | version "3.5.0" 380 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz#78fbb6ffe047201627569e85a6c5373af2a68fca" 381 | 382 | eslint-plugin-react@~6.10.0: 383 | version "6.10.3" 384 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" 385 | dependencies: 386 | array.prototype.find "^2.0.1" 387 | doctrine "^1.2.2" 388 | has "^1.0.1" 389 | jsx-ast-utils "^1.3.4" 390 | object.assign "^4.0.4" 391 | 392 | eslint-plugin-standard@~3.0.1: 393 | version "3.0.1" 394 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" 395 | 396 | eslint@~3.19.0: 397 | version "3.19.0" 398 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" 399 | dependencies: 400 | babel-code-frame "^6.16.0" 401 | chalk "^1.1.3" 402 | concat-stream "^1.5.2" 403 | debug "^2.1.1" 404 | doctrine "^2.0.0" 405 | escope "^3.6.0" 406 | espree "^3.4.0" 407 | esquery "^1.0.0" 408 | estraverse "^4.2.0" 409 | esutils "^2.0.2" 410 | file-entry-cache "^2.0.0" 411 | glob "^7.0.3" 412 | globals "^9.14.0" 413 | ignore "^3.2.0" 414 | imurmurhash "^0.1.4" 415 | inquirer "^0.12.0" 416 | is-my-json-valid "^2.10.0" 417 | is-resolvable "^1.0.0" 418 | js-yaml "^3.5.1" 419 | json-stable-stringify "^1.0.0" 420 | levn "^0.3.0" 421 | lodash "^4.0.0" 422 | mkdirp "^0.5.0" 423 | natural-compare "^1.4.0" 424 | optionator "^0.8.2" 425 | path-is-inside "^1.0.1" 426 | pluralize "^1.2.1" 427 | progress "^1.1.8" 428 | require-uncached "^1.0.2" 429 | shelljs "^0.7.5" 430 | strip-bom "^3.0.0" 431 | strip-json-comments "~2.0.1" 432 | table "^3.7.8" 433 | text-table "~0.2.0" 434 | user-home "^2.0.0" 435 | 436 | espree@^3.4.0: 437 | version "3.4.3" 438 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" 439 | dependencies: 440 | acorn "^5.0.1" 441 | acorn-jsx "^3.0.0" 442 | 443 | esprima@^3.1.1: 444 | version "3.1.3" 445 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 446 | 447 | esquery@^1.0.0: 448 | version "1.0.0" 449 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 450 | dependencies: 451 | estraverse "^4.0.0" 452 | 453 | esrecurse@^4.1.0: 454 | version "4.1.0" 455 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" 456 | dependencies: 457 | estraverse "~4.1.0" 458 | object-assign "^4.0.1" 459 | 460 | estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: 461 | version "4.2.0" 462 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 463 | 464 | estraverse@~4.1.0: 465 | version "4.1.1" 466 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" 467 | 468 | esutils@^2.0.2: 469 | version "2.0.2" 470 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 471 | 472 | event-emitter@~0.3.5: 473 | version "0.3.5" 474 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 475 | dependencies: 476 | d "1" 477 | es5-ext "~0.10.14" 478 | 479 | exit-hook@^1.0.0: 480 | version "1.1.1" 481 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 482 | 483 | fast-levenshtein@~2.0.4: 484 | version "2.0.6" 485 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 486 | 487 | fbjs@^0.8.9: 488 | version "0.8.12" 489 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 490 | dependencies: 491 | core-js "^1.0.0" 492 | isomorphic-fetch "^2.1.1" 493 | loose-envify "^1.0.0" 494 | object-assign "^4.1.0" 495 | promise "^7.1.1" 496 | setimmediate "^1.0.5" 497 | ua-parser-js "^0.7.9" 498 | 499 | figures@^1.3.5: 500 | version "1.7.0" 501 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 502 | dependencies: 503 | escape-string-regexp "^1.0.5" 504 | object-assign "^4.1.0" 505 | 506 | file-entry-cache@^2.0.0: 507 | version "2.0.0" 508 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 509 | dependencies: 510 | flat-cache "^1.2.1" 511 | object-assign "^4.0.1" 512 | 513 | find-root@^1.0.0: 514 | version "1.0.0" 515 | resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" 516 | 517 | find-up@^1.0.0: 518 | version "1.1.2" 519 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 520 | dependencies: 521 | path-exists "^2.0.0" 522 | pinkie-promise "^2.0.0" 523 | 524 | find-up@^2.0.0: 525 | version "2.1.0" 526 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 527 | dependencies: 528 | locate-path "^2.0.0" 529 | 530 | flat-cache@^1.2.1: 531 | version "1.2.2" 532 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 533 | dependencies: 534 | circular-json "^0.3.1" 535 | del "^2.0.2" 536 | graceful-fs "^4.1.2" 537 | write "^0.2.1" 538 | 539 | foreach@^2.0.5: 540 | version "2.0.5" 541 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 542 | 543 | fs.realpath@^1.0.0: 544 | version "1.0.0" 545 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 546 | 547 | function-bind@^1.0.2, function-bind@^1.1.0: 548 | version "1.1.0" 549 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" 550 | 551 | generate-function@^2.0.0: 552 | version "2.0.0" 553 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 554 | 555 | generate-object-property@^1.1.0: 556 | version "1.2.0" 557 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 558 | dependencies: 559 | is-property "^1.0.0" 560 | 561 | get-stdin@^5.0.1: 562 | version "5.0.1" 563 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 564 | 565 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: 566 | version "7.1.2" 567 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 568 | dependencies: 569 | fs.realpath "^1.0.0" 570 | inflight "^1.0.4" 571 | inherits "2" 572 | minimatch "^3.0.4" 573 | once "^1.3.0" 574 | path-is-absolute "^1.0.0" 575 | 576 | globals@^9.14.0: 577 | version "9.17.0" 578 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" 579 | 580 | globby@^5.0.0: 581 | version "5.0.0" 582 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 583 | dependencies: 584 | array-union "^1.0.1" 585 | arrify "^1.0.0" 586 | glob "^7.0.3" 587 | object-assign "^4.0.1" 588 | pify "^2.0.0" 589 | pinkie-promise "^2.0.0" 590 | 591 | graceful-fs@^4.1.2: 592 | version "4.1.11" 593 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 594 | 595 | has-ansi@^2.0.0: 596 | version "2.0.0" 597 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 598 | dependencies: 599 | ansi-regex "^2.0.0" 600 | 601 | has@^1.0.1: 602 | version "1.0.1" 603 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 604 | dependencies: 605 | function-bind "^1.0.2" 606 | 607 | iconv-lite@~0.4.13: 608 | version "0.4.17" 609 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" 610 | 611 | ignore@^3.0.11, ignore@^3.0.9, ignore@^3.2.0: 612 | version "3.3.3" 613 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" 614 | 615 | imurmurhash@^0.1.4: 616 | version "0.1.4" 617 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 618 | 619 | inflight@^1.0.4: 620 | version "1.0.6" 621 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 622 | dependencies: 623 | once "^1.3.0" 624 | wrappy "1" 625 | 626 | inherits@2, inherits@^2.0.3, inherits@~2.0.1: 627 | version "2.0.3" 628 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 629 | 630 | inquirer@^0.12.0: 631 | version "0.12.0" 632 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 633 | dependencies: 634 | ansi-escapes "^1.1.0" 635 | ansi-regex "^2.0.0" 636 | chalk "^1.0.0" 637 | cli-cursor "^1.0.1" 638 | cli-width "^2.0.0" 639 | figures "^1.3.5" 640 | lodash "^4.3.0" 641 | readline2 "^1.0.1" 642 | run-async "^0.1.0" 643 | rx-lite "^3.1.2" 644 | string-width "^1.0.1" 645 | strip-ansi "^3.0.0" 646 | through "^2.3.6" 647 | 648 | interpret@^1.0.0: 649 | version "1.0.3" 650 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" 651 | 652 | is-arrayish@^0.2.1: 653 | version "0.2.1" 654 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 655 | 656 | is-callable@^1.1.1, is-callable@^1.1.3: 657 | version "1.1.3" 658 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 659 | 660 | is-date-object@^1.0.1: 661 | version "1.0.1" 662 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 663 | 664 | is-fullwidth-code-point@^1.0.0: 665 | version "1.0.0" 666 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 667 | dependencies: 668 | number-is-nan "^1.0.0" 669 | 670 | is-fullwidth-code-point@^2.0.0: 671 | version "2.0.0" 672 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 673 | 674 | is-my-json-valid@^2.10.0: 675 | version "2.16.0" 676 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" 677 | dependencies: 678 | generate-function "^2.0.0" 679 | generate-object-property "^1.1.0" 680 | jsonpointer "^4.0.0" 681 | xtend "^4.0.0" 682 | 683 | is-path-cwd@^1.0.0: 684 | version "1.0.0" 685 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 686 | 687 | is-path-in-cwd@^1.0.0: 688 | version "1.0.0" 689 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 690 | dependencies: 691 | is-path-inside "^1.0.0" 692 | 693 | is-path-inside@^1.0.0: 694 | version "1.0.0" 695 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 696 | dependencies: 697 | path-is-inside "^1.0.1" 698 | 699 | is-property@^1.0.0: 700 | version "1.0.2" 701 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 702 | 703 | is-regex@^1.0.3: 704 | version "1.0.4" 705 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 706 | dependencies: 707 | has "^1.0.1" 708 | 709 | is-resolvable@^1.0.0: 710 | version "1.0.0" 711 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 712 | dependencies: 713 | tryit "^1.0.1" 714 | 715 | is-stream@^1.0.1: 716 | version "1.1.0" 717 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 718 | 719 | is-symbol@^1.0.1: 720 | version "1.0.1" 721 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 722 | 723 | isarray@^1.0.0, isarray@~1.0.0: 724 | version "1.0.0" 725 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 726 | 727 | isomorphic-fetch@^2.1.1: 728 | version "2.2.1" 729 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 730 | dependencies: 731 | node-fetch "^1.0.1" 732 | whatwg-fetch ">=0.10.0" 733 | 734 | js-tokens@^3.0.0: 735 | version "3.0.1" 736 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 737 | 738 | js-yaml@^3.5.1: 739 | version "3.8.4" 740 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" 741 | dependencies: 742 | argparse "^1.0.7" 743 | esprima "^3.1.1" 744 | 745 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 746 | version "1.0.1" 747 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 748 | dependencies: 749 | jsonify "~0.0.0" 750 | 751 | jsonify@~0.0.0: 752 | version "0.0.0" 753 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 754 | 755 | jsonpointer@^4.0.0: 756 | version "4.0.1" 757 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 758 | 759 | jsx-ast-utils@^1.3.4: 760 | version "1.4.1" 761 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" 762 | 763 | levn@^0.3.0, levn@~0.3.0: 764 | version "0.3.0" 765 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 766 | dependencies: 767 | prelude-ls "~1.1.2" 768 | type-check "~0.3.2" 769 | 770 | load-json-file@^2.0.0: 771 | version "2.0.0" 772 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 773 | dependencies: 774 | graceful-fs "^4.1.2" 775 | parse-json "^2.2.0" 776 | pify "^2.0.0" 777 | strip-bom "^3.0.0" 778 | 779 | locate-path@^2.0.0: 780 | version "2.0.0" 781 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 782 | dependencies: 783 | p-locate "^2.0.0" 784 | path-exists "^3.0.0" 785 | 786 | lodash.cond@^4.3.0: 787 | version "4.5.2" 788 | resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" 789 | 790 | lodash@^4.0.0, lodash@^4.3.0: 791 | version "4.17.4" 792 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 793 | 794 | loose-envify@^1.0.0, loose-envify@^1.3.1: 795 | version "1.3.1" 796 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 797 | dependencies: 798 | js-tokens "^3.0.0" 799 | 800 | minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: 801 | version "3.0.4" 802 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 803 | dependencies: 804 | brace-expansion "^1.1.7" 805 | 806 | minimist@0.0.8: 807 | version "0.0.8" 808 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 809 | 810 | minimist@^1.1.0: 811 | version "1.2.0" 812 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 813 | 814 | mkdirp@^0.5.0, mkdirp@^0.5.1: 815 | version "0.5.1" 816 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 817 | dependencies: 818 | minimist "0.0.8" 819 | 820 | ms@0.7.1: 821 | version "0.7.1" 822 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 823 | 824 | ms@2.0.0: 825 | version "2.0.0" 826 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 827 | 828 | mute-stream@0.0.5: 829 | version "0.0.5" 830 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 831 | 832 | natural-compare@^1.4.0: 833 | version "1.4.0" 834 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 835 | 836 | node-fetch@^1.0.1: 837 | version "1.7.0" 838 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.0.tgz#3ff6c56544f9b7fb00682338bb55ee6f54a8a0ef" 839 | dependencies: 840 | encoding "^0.1.11" 841 | is-stream "^1.0.1" 842 | 843 | number-is-nan@^1.0.0: 844 | version "1.0.1" 845 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 846 | 847 | object-assign@^4.0.1, object-assign@^4.1.0: 848 | version "4.1.1" 849 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 850 | 851 | object-keys@^1.0.10, object-keys@^1.0.8: 852 | version "1.0.11" 853 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 854 | 855 | object.assign@^4.0.4: 856 | version "4.0.4" 857 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" 858 | dependencies: 859 | define-properties "^1.1.2" 860 | function-bind "^1.1.0" 861 | object-keys "^1.0.10" 862 | 863 | once@^1.3.0: 864 | version "1.4.0" 865 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 866 | dependencies: 867 | wrappy "1" 868 | 869 | onetime@^1.0.0: 870 | version "1.1.0" 871 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 872 | 873 | optionator@^0.8.2: 874 | version "0.8.2" 875 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 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-homedir@^1.0.0: 885 | version "1.0.2" 886 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 887 | 888 | p-limit@^1.1.0: 889 | version "1.1.0" 890 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" 891 | 892 | p-locate@^2.0.0: 893 | version "2.0.0" 894 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 895 | dependencies: 896 | p-limit "^1.1.0" 897 | 898 | parse-json@^2.2.0: 899 | version "2.2.0" 900 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 901 | dependencies: 902 | error-ex "^1.2.0" 903 | 904 | path-exists@^2.0.0: 905 | version "2.1.0" 906 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 907 | dependencies: 908 | pinkie-promise "^2.0.0" 909 | 910 | path-exists@^3.0.0: 911 | version "3.0.0" 912 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 913 | 914 | path-is-absolute@^1.0.0: 915 | version "1.0.1" 916 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 917 | 918 | path-is-inside@^1.0.1: 919 | version "1.0.2" 920 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 921 | 922 | path-parse@^1.0.5: 923 | version "1.0.5" 924 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 925 | 926 | pify@^2.0.0: 927 | version "2.3.0" 928 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 929 | 930 | pinkie-promise@^2.0.0: 931 | version "2.0.1" 932 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 933 | dependencies: 934 | pinkie "^2.0.0" 935 | 936 | pinkie@^2.0.0: 937 | version "2.0.4" 938 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 939 | 940 | pkg-conf@^2.0.0: 941 | version "2.0.0" 942 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279" 943 | dependencies: 944 | find-up "^2.0.0" 945 | load-json-file "^2.0.0" 946 | 947 | pkg-config@^1.1.0: 948 | version "1.1.1" 949 | resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" 950 | dependencies: 951 | debug-log "^1.0.0" 952 | find-root "^1.0.0" 953 | xtend "^4.0.1" 954 | 955 | pkg-dir@^1.0.0: 956 | version "1.0.0" 957 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 958 | dependencies: 959 | find-up "^1.0.0" 960 | 961 | pkg-up@^1.0.0: 962 | version "1.0.0" 963 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" 964 | dependencies: 965 | find-up "^1.0.0" 966 | 967 | pluralize@^1.2.1: 968 | version "1.2.1" 969 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 970 | 971 | prelude-ls@~1.1.2: 972 | version "1.1.2" 973 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 974 | 975 | process-nextick-args@~1.0.6: 976 | version "1.0.7" 977 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 978 | 979 | progress@^1.1.8: 980 | version "1.1.8" 981 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 982 | 983 | promise@^7.1.1: 984 | version "7.1.1" 985 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 986 | dependencies: 987 | asap "~2.0.3" 988 | 989 | prop-types@^15.5.10: 990 | version "15.5.10" 991 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" 992 | dependencies: 993 | fbjs "^0.8.9" 994 | loose-envify "^1.3.1" 995 | 996 | react-native-fs@^2.3.2: 997 | version "2.3.3" 998 | resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.3.3.tgz#94c0d9699ec20405f30b79a69b6d8b96d2a4851b" 999 | dependencies: 1000 | base-64 "^0.1.0" 1001 | utf8 "^2.1.1" 1002 | 1003 | react-native-image-picker@^0.26.3: 1004 | version "0.26.3" 1005 | resolved "https://registry.yarnpkg.com/react-native-image-picker/-/react-native-image-picker-0.26.3.tgz#0ad2eede49501a7046d8046a73813696539c3dcd" 1006 | 1007 | react-native-image-resizer@^0.1.1: 1008 | version "0.1.1" 1009 | resolved "https://registry.yarnpkg.com/react-native-image-resizer/-/react-native-image-resizer-0.1.1.tgz#2abcac85d97e08854b2de716d62953bbae003c77" 1010 | 1011 | readable-stream@^2.2.2: 1012 | version "2.2.10" 1013 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.10.tgz#effe72bb7c884c0dd335e2379d526196d9d011ee" 1014 | dependencies: 1015 | core-util-is "~1.0.0" 1016 | inherits "~2.0.1" 1017 | isarray "~1.0.0" 1018 | process-nextick-args "~1.0.6" 1019 | safe-buffer "^5.0.1" 1020 | string_decoder "~1.0.0" 1021 | util-deprecate "~1.0.1" 1022 | 1023 | readline2@^1.0.1: 1024 | version "1.0.1" 1025 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 1026 | dependencies: 1027 | code-point-at "^1.0.0" 1028 | is-fullwidth-code-point "^1.0.0" 1029 | mute-stream "0.0.5" 1030 | 1031 | rechoir@^0.6.2: 1032 | version "0.6.2" 1033 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 1034 | dependencies: 1035 | resolve "^1.1.6" 1036 | 1037 | require-uncached@^1.0.2: 1038 | version "1.0.3" 1039 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1040 | dependencies: 1041 | caller-path "^0.1.0" 1042 | resolve-from "^1.0.0" 1043 | 1044 | resolve-from@^1.0.0: 1045 | version "1.0.1" 1046 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1047 | 1048 | resolve@^1.1.6, resolve@^1.1.7: 1049 | version "1.3.3" 1050 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" 1051 | dependencies: 1052 | path-parse "^1.0.5" 1053 | 1054 | restore-cursor@^1.0.1: 1055 | version "1.0.1" 1056 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 1057 | dependencies: 1058 | exit-hook "^1.0.0" 1059 | onetime "^1.0.0" 1060 | 1061 | rimraf@^2.2.8: 1062 | version "2.6.1" 1063 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 1064 | dependencies: 1065 | glob "^7.0.5" 1066 | 1067 | run-async@^0.1.0: 1068 | version "0.1.0" 1069 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 1070 | dependencies: 1071 | once "^1.3.0" 1072 | 1073 | run-parallel@^1.1.2: 1074 | version "1.1.6" 1075 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039" 1076 | 1077 | rx-lite@^3.1.2: 1078 | version "3.1.2" 1079 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 1080 | 1081 | safe-buffer@^5.0.1: 1082 | version "5.1.0" 1083 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" 1084 | 1085 | semver@5.3.0: 1086 | version "5.3.0" 1087 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 1088 | 1089 | setimmediate@^1.0.5: 1090 | version "1.0.5" 1091 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1092 | 1093 | shelljs@^0.7.5: 1094 | version "0.7.7" 1095 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" 1096 | dependencies: 1097 | glob "^7.0.0" 1098 | interpret "^1.0.0" 1099 | rechoir "^0.6.2" 1100 | 1101 | slice-ansi@0.0.4: 1102 | version "0.0.4" 1103 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 1104 | 1105 | sprintf-js@~1.0.2: 1106 | version "1.0.3" 1107 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1108 | 1109 | standard-engine@~7.0.0: 1110 | version "7.0.0" 1111 | resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-7.0.0.tgz#ebb77b9c8fc2c8165ffa353bd91ba0dff41af690" 1112 | dependencies: 1113 | deglob "^2.1.0" 1114 | get-stdin "^5.0.1" 1115 | minimist "^1.1.0" 1116 | pkg-conf "^2.0.0" 1117 | 1118 | standard@^10.0.2: 1119 | version "10.0.2" 1120 | resolved "https://registry.yarnpkg.com/standard/-/standard-10.0.2.tgz#974c1c53cc865b075a4b576e78441e1695daaf7b" 1121 | dependencies: 1122 | eslint "~3.19.0" 1123 | eslint-config-standard "10.2.1" 1124 | eslint-config-standard-jsx "4.0.1" 1125 | eslint-plugin-import "~2.2.0" 1126 | eslint-plugin-node "~4.2.2" 1127 | eslint-plugin-promise "~3.5.0" 1128 | eslint-plugin-react "~6.10.0" 1129 | eslint-plugin-standard "~3.0.1" 1130 | standard-engine "~7.0.0" 1131 | 1132 | string-width@^1.0.1: 1133 | version "1.0.2" 1134 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1135 | dependencies: 1136 | code-point-at "^1.0.0" 1137 | is-fullwidth-code-point "^1.0.0" 1138 | strip-ansi "^3.0.0" 1139 | 1140 | string-width@^2.0.0: 1141 | version "2.0.0" 1142 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 1143 | dependencies: 1144 | is-fullwidth-code-point "^2.0.0" 1145 | strip-ansi "^3.0.0" 1146 | 1147 | string_decoder@~1.0.0: 1148 | version "1.0.1" 1149 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" 1150 | dependencies: 1151 | safe-buffer "^5.0.1" 1152 | 1153 | strip-ansi@^3.0.0: 1154 | version "3.0.1" 1155 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1156 | dependencies: 1157 | ansi-regex "^2.0.0" 1158 | 1159 | strip-bom@^3.0.0: 1160 | version "3.0.0" 1161 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1162 | 1163 | strip-json-comments@~2.0.1: 1164 | version "2.0.1" 1165 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1166 | 1167 | supports-color@^2.0.0: 1168 | version "2.0.0" 1169 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1170 | 1171 | table@^3.7.8: 1172 | version "3.8.3" 1173 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 1174 | dependencies: 1175 | ajv "^4.7.0" 1176 | ajv-keywords "^1.0.0" 1177 | chalk "^1.1.1" 1178 | lodash "^4.0.0" 1179 | slice-ansi "0.0.4" 1180 | string-width "^2.0.0" 1181 | 1182 | text-table@~0.2.0: 1183 | version "0.2.0" 1184 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1185 | 1186 | through@^2.3.6: 1187 | version "2.3.8" 1188 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1189 | 1190 | tryit@^1.0.1: 1191 | version "1.0.3" 1192 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 1193 | 1194 | type-check@~0.3.2: 1195 | version "0.3.2" 1196 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1197 | dependencies: 1198 | prelude-ls "~1.1.2" 1199 | 1200 | typedarray@^0.0.6: 1201 | version "0.0.6" 1202 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1203 | 1204 | ua-parser-js@^0.7.9: 1205 | version "0.7.12" 1206 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 1207 | 1208 | uniq@^1.0.1: 1209 | version "1.0.1" 1210 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 1211 | 1212 | user-home@^2.0.0: 1213 | version "2.0.0" 1214 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 1215 | dependencies: 1216 | os-homedir "^1.0.0" 1217 | 1218 | utf8@^2.1.1: 1219 | version "2.1.2" 1220 | resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" 1221 | 1222 | util-deprecate@~1.0.1: 1223 | version "1.0.2" 1224 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1225 | 1226 | whatwg-fetch@>=0.10.0: 1227 | version "2.0.3" 1228 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 1229 | 1230 | wordwrap@~1.0.0: 1231 | version "1.0.0" 1232 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1233 | 1234 | wrappy@1: 1235 | version "1.0.2" 1236 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1237 | 1238 | write@^0.2.1: 1239 | version "0.2.1" 1240 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1241 | dependencies: 1242 | mkdirp "^0.5.1" 1243 | 1244 | xtend@^4.0.0, xtend@^4.0.1: 1245 | version "4.0.1" 1246 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1247 | --------------------------------------------------------------------------------