├── index.js ├── .babelrc ├── .gitignore ├── LICENSE ├── rollup.config.js ├── package.json ├── index.d.ts ├── README.md ├── src └── index.js └── yarn.lock /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-simple-file-input.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-simple-file-input.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "es2015", 5 | { 6 | "modules": false 7 | } 8 | ], 9 | "react" 10 | ], 11 | 12 | "plugins": [ 13 | "external-helpers" 14 | ], 15 | 16 | "env": { 17 | "development": { 18 | "plugins": [ 19 | 20 | ] 21 | }, 22 | 23 | "production": { 24 | "plugins": [ 25 | "remove-comments" 26 | ] 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Node template 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | 13 | # Directory for instrumented libs generated by jscoverage/JSCover 14 | lib-cov 15 | 16 | # Coverage directory used by tools like istanbul 17 | coverage 18 | 19 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 20 | .grunt 21 | 22 | # node-waf configuration 23 | .lock-wscript 24 | 25 | # Compiled binary addons (http://nodejs.org/api/addons.html) 26 | build/Release 27 | 28 | # Dependency directory 29 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git 30 | node_modules 31 | cjs 32 | 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2018, Aleck Greenham 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 8 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from 'rollup-plugin-babel'; 2 | import replace from 'rollup-plugin-replace'; 3 | import uglify from 'rollup-plugin-uglify'; 4 | import license from 'rollup-plugin-license'; 5 | import path from 'path'; 6 | 7 | export default { 8 | input: 'src/index.js', 9 | 10 | output: { 11 | format: 'cjs', 12 | file: process.env.NODE_ENV === 'production' ? 'cjs/react-simple-file-input.production.min.js' : 'cjs/react-simple-file-input.development.js', 13 | exports: 'named' 14 | }, 15 | external: [ 'react', 'prop-types' ], 16 | plugins: [ 17 | babel({ 18 | exclude: 'node_modules/**' 19 | }), 20 | 21 | replace({ 22 | exclude: 'node_modules/**', 23 | ENV: JSON.stringify(process.env.NODE_ENV || 'development') 24 | }), 25 | 26 | (process.env.NODE_ENV === 'production' && uglify()), 27 | 28 | license({ 29 | banner: { 30 | file: path.join(__dirname, 'LICENSE'), 31 | } 32 | }) 33 | ] 34 | }; 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-simple-file-input", 3 | "version": "2.1.0", 4 | "description": "Simple wrapper for the HTML input tag and HTML5 FileReader API", 5 | "main": "index.js", 6 | "scripts": { 7 | "prepublish": "rm -rf cjs && npm run build-development && npm run build-production", 8 | "build-development": "BABEL_ENV=development NODE_ENV=development rollup -c", 9 | "build-production": "BABEL_ENV=production NODE_ENV=production rollup -c" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/greena13/react-simple-file-input.git" 14 | }, 15 | "keywords": [ 16 | "file", 17 | "upload", 18 | "FileReader", 19 | "React" 20 | ], 21 | "files": [ 22 | "cjs", 23 | "package.json", 24 | "README.md", 25 | "LICENSE", 26 | "index.d.ts", 27 | "index.js" 28 | ], 29 | "typings": "./index.d.ts", 30 | "dependencies": { 31 | "prop-types": "^15.5.7" 32 | }, 33 | "devDependencies": { 34 | "babel-cli": "^6.24.1", 35 | "babel-plugin-external-helpers": "^6.22.0", 36 | "babel-plugin-remove-comments": "^2.0.0", 37 | "babel-preset-es2015": "^6.18.0", 38 | "babel-preset-react": "^6.16.0", 39 | "rollup": "^0.55.5", 40 | "rollup-plugin-babel": "^3.0.3", 41 | "rollup-plugin-license": "^0.5.0", 42 | "rollup-plugin-replace": "^2.0.0", 43 | "rollup-plugin-uglify": "^3.0.0" 44 | }, 45 | "peerDependencies": { 46 | "react": ">= 0.14.9" 47 | }, 48 | "author": "Aleck Greenham", 49 | "license": "ISC", 50 | "bugs": { 51 | "url": "https://github.com/greena13/react-simple-file-input/issues" 52 | }, 53 | "homepage": "https://github.com/greena13/react-simple-file-input#readme" 54 | } 55 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for React Simple File Input 2 | // Project: react-simple-file-input 3 | 4 | /** 5 | * Called after the user has finished selecting file(s) using the browser dialog. 6 | */ 7 | type onChangeCallback = (file: File|File[]) => void; 8 | 9 | /** 10 | * Called after the onChangeCallback for every file the user has selected. If it 11 | * returns a truthy value, the read operation for that file is never started - the 12 | * other files may still be read. 13 | */ 14 | type cancelIfFunction = (file: File|File[]) => boolean; 15 | 16 | /** 17 | * Called when cancelIfFunction() returns a truthy value 18 | */ 19 | type onCancelCallback = (file: File|File[]) => void; 20 | 21 | /** 22 | * Called when a file starts to be loaded 23 | */ 24 | type onLoadStartCallback = (event: ProgressEvent, file: File|File[]) => void; 25 | 26 | /** 27 | * Called every time a file read operation progresses. If it returns a truthy value, 28 | * the read operation for that file is aborted immediately and the onAbortCallback 29 | * is called instead of the onProgressCallback. 30 | */ 31 | type abortIfFunction = (event: ProgressEvent, file: File|File[]) => boolean; 32 | 33 | /** 34 | * Called when a file load operation has been aborted because the abortIfFunction 35 | * has returned a truthy value. 36 | */ 37 | type onAbortCallback = (event: UIEvent, file: File|File[]) => void; 38 | 39 | /** 40 | * Called every time the file read progresses. It is NOT called if the abortIfCallback 41 | * is defined and returns a truthy value. 42 | */ 43 | type onProgressCallback = (event: ProgressEvent, file: File|File[]) => void; 44 | 45 | /** 46 | * Called when a file has finished successfully being loaded. This callback is NOT 47 | * called if the load operation is aborted or results in an error. 48 | */ 49 | type onLoadCallback = (event: UIEvent, file: File|File[]) => void; 50 | 51 | /** 52 | * Called when a file read results in an error 53 | */ 54 | type onErrorCallback = (event: UIEvent, file: File|File[]) => void; 55 | 56 | /** 57 | * Called when a file has finished loading, either after onLoadCallback, 58 | * onErrorCallback or onAbortCallback, depending on the result of the file load 59 | * operation. 60 | */ 61 | type onLoadEndCallback = (event: ProgressEvent, file: File|File[]) => void; 62 | 63 | /** 64 | * Props object accepted by FileInput 65 | */ 66 | interface ComponentProps { 67 | /** 68 | * id attribute to pass to input field 69 | */ 70 | id?: string, 71 | 72 | /** 73 | * class attribute to pass to input field 74 | */ 75 | className?: string, 76 | 77 | /** 78 | * Whether to allow the user to select more than one file at a time from the 79 | * browser dialog that appears. 80 | */ 81 | multiple?: boolean, 82 | 83 | /** 84 | * When 'buffer', files are read as array buffers; when 'binary', as binary strings; 85 | * when 'dataUrl' they are read as data urls and when 'text' they are read as text. 86 | * If not provided, the files selected by the user are not read at all, and only 87 | * the onChange handler is called. 88 | */ 89 | readAs?: 'buffer'|'binary'|'dataUrl'|'text', 90 | 91 | /** 92 | * Callback that handles when the files have been selected 93 | */ 94 | onChange?: onChangeCallback, 95 | 96 | /** 97 | * Function to handle whether each file should be read, based on its File object 98 | */ 99 | cancelIf?: cancelIfFunction, 100 | 101 | /** 102 | * Callback to handle if a file read is cancelled 103 | */ 104 | onCancel?: onCancelCallback, 105 | 106 | /** 107 | * Callback to handle when a file has started being loaded 108 | */ 109 | onLoadStart?: onLoadStartCallback, 110 | 111 | /** 112 | * Function to handle whether each file should abort loading the file 113 | */ 114 | abortIf?: abortIfFunction, 115 | 116 | /** 117 | * Callback to handle when loading a file is aborted 118 | */ 119 | onAbort?: onAbortCallback, 120 | 121 | /** 122 | * Callback to handle when loading a file has progressed (and not been aborted) 123 | */ 124 | onProgress?: onProgressCallback, 125 | 126 | /** 127 | * Callback to handle when a file has been successfully loaded 128 | */ 129 | onLoad?: onLoadCallback, 130 | 131 | /** 132 | * Callback to handle when loading a file results in an error 133 | */ 134 | onError?: onErrorCallback, 135 | 136 | /** 137 | * Callback to handle when a file load operation has completed - whether it was 138 | * successful, aborted or resulted in an error 139 | */ 140 | onLoadEnd?: onLoadEndCallback, 141 | } 142 | 143 | /** 144 | * Class that provides a wrapper around a basic input field that provides an API that is 145 | * consistent with React and JSX conventions. 146 | * 147 | * It supports all of the properties available to a file input field, and all of the 148 | * events supplied by a FileReader with a few additional ones as well. 149 | */ 150 | export default class FileInput { 151 | /** 152 | * Creates a new instance of FileInput React component 153 | */ 154 | constructor(props: ComponentProps, context?: object); 155 | } 156 | 157 | 158 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-simple-file-input 2 | 3 | [![npm](https://img.shields.io/npm/dm/react-simple-file-input.svg)]() 4 | [![GitHub license](https://img.shields.io/github/license/greena13/react-simple-file-input.svg)](https://github.com/greena13/react-simple-file-input/blob/master/LICENSE) 5 | 6 | Simple wrapper for the HTML input tag and HTML5 FileReader API that supports multiple files 7 | 8 | ## Usage 9 | 10 | ```javascript 11 | var FileInput = require('react-simple-file-input'); 12 | 13 | 27 | ``` 28 | 29 | ## Installation 30 | 31 | ### React >=0.14.9 32 | 33 | ```bash 34 | npm install react-simple-file-input --save 35 | ``` 36 | 37 | ### React <0.14.9 38 | 39 | ```bash 40 | npm install react-simple-file-input@1.0.0 --save 41 | ``` 42 | 43 | ## Options 44 | 45 | ### readAs 46 | 47 | react-simple-file-input expects a `readAs` option to indicate how the file should be read. Valid options are: 48 | 49 | - 'text' (Text) 50 | - 'buffer' (Array Buffer) 51 | - 'binary' (Binary String) 52 | - 'dataUrl' (Data URL) 53 | 54 | By default the `readAs` option is `undefined`. If left undefined, the file will not be read from disk and only the `onChange` event will be triggered. 55 | 56 | ### Events 57 | 58 | react-simple-file-input supports the following event handlers: 59 | 60 | #### FileReader events 61 | 62 | - onLoadStart 63 | - onProgress 64 | - onLoadEnd 65 | - onLoad 66 | - onAbort 67 | - onError 68 | 69 | Each event handler receives the native event as the first argument and the selected `File` object as the second. 70 | 71 | #### Custom events 72 | 73 | - onChange 74 | - onCancel 75 | 76 | The `onChange` handler is called whenever the file is changed and occurs before the file is read from disk. It receives a `File` object as its only argument when the `multiple` prop is false (or left undefined), otherwise it receives an array-like list of `File` objects as its only argument. 77 | 78 | The `onCancel` handler receives the `File` object corresponding to the file the user attempted to read from the file system. 79 | 80 | ### Allowing multiple files to be selected 81 | 82 | By setting the `multiple` prop to a truthy value, you allow the user to select multiple files at once, using the same input by either ctrl + click or shift + clicking more than one file in file selection modal that appears. 83 | 84 | This causes the `onChange` handler to receive a list of `File` objects (even if it's a only one file) rather a single `File` object. All other handlers are triggered independently, for each file the user has selected, so cancelling, aborting and monitoring the progress of reading each file may be done separately. 85 | 86 | If you wish to cancel or abort all file reads if one fails, this must be done by maintaining state externally, in your handlers. 87 | 88 | ### Skipping file reads 89 | 90 | If the `readAs` option is not specified, the file will not be read from disk and only `onChange` will be triggered. All other events as skipped. 91 | 92 | ### Aborting and cancelling file reads 93 | 94 | There are two props for canceling and aborting file reads: 95 | 96 | #### Cancelling the file read before it begins 97 | 98 | The `cancelIf` prop accepts a function that receives the `File` object. If the function is defined and returns a truthy value then the file upload will be cancelled before it begins reading from the filesystem and the `onCancel` handler is called with the `File` object. 99 | 100 | ### Aborting the file read once it has begun 101 | 102 | If defined, the `abortIf` function is executed just before every time the `onProgress` handler is called. It is passed the native event and the `File` object the first and second arguments; if it returns a truthy value, the file read is aborted and the `onAbort` handler is called. The `onProgress` event is *not* called if the file read aborts. 103 | 104 | ### Children 105 | 106 | Children are not supported. If you wish to use another element to set the clickable area for the user, use labels or a similar strategy (see example below). 107 | 108 | ### Styling, hiding or replacing the default input field 109 | 110 | All props passed to `FileInput` are passed to the resulting `` tag so it's possible to style or hide the default input field by passing `style` or `className` prop values. 111 | 112 | To replace the input field with another element, hide it and use a parent label as demonstrated in the example below: 113 | 114 | ## Examples 115 | 116 | ```javascript 117 | import React, { Component } from 'react'; 118 | var FileInput = require('react-simple-file-input'); 119 | 120 | var allowedFileTypes = ["image/png", "image/jpeg", "image/gif"]; 121 | 122 | function fileIsIncorrectFiletype(file){ 123 | if (allowedFileTypes.indexOf(file.type) === -1) { 124 | return true; 125 | } else { 126 | return false; 127 | } 128 | } 129 | 130 | class AssetsForm extends Component { 131 | constructor(props, context) { 132 | super(props, context); 133 | 134 | this.cancelButtonClicked = this.cancelButtonClicked.bind(this); 135 | this.resetCancelButtonClicked = this.resetCancelButtonClicked.bind(this); 136 | this.showProgressBar = this.showProgressBar.bind(this); 137 | this.updateProgressBar = this.updateProgressBar.bind(this); 138 | this.handleFileSelected = this.handleFileSelected.bind(this); 139 | 140 | this.state = { 141 | cancelButtonClicked: false 142 | }; 143 | } 144 | 145 | render(){ 146 | return( 147 |
148 | To upload a file: 149 | 150 | 171 |
172 | ); 173 | } 174 | 175 | cancelButtonClicked(){ 176 | return this.state.cancelButtonClicked; 177 | } 178 | 179 | resetCancelButtonClicked(){ 180 | this.setState({ cancelButtonClicked: false }); 181 | } 182 | 183 | showInvalidFileTypeMessage(file){ 184 | window.alert("Tried to upload invalid filetype " + file.type); 185 | } 186 | 187 | showProgressBar(){ 188 | this.setState({ progressBarVisible: true}); 189 | } 190 | 191 | updateProgressBar(event){ 192 | this.setState({ 193 | progressPercent: (event.loaded / event.total) * 100 194 | }); 195 | } 196 | 197 | handleFileSelected(event, file){ 198 | this.setState({file: file, fileContents: event.target.result}); 199 | } 200 | } 201 | ``` 202 | 203 | ## Upgrading from 0.x.x 204 | 205 | To upgrade from 0.x.x to 1.0.0, you simply need to move any children of `FileInput` into an enclosing `label` tag, as shown in the example above and pass some styling using the `style` or `className` props to hide the default input field. 206 | 207 | ## Contributors 208 | 209 | Thank you to github users selbekk and Zhouzi for your valued contributions via pull requests. They ended up informing most of the improvements in version 1.0.0. 210 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | /** 5 | * Map of short-hand aliases accepted by react-simple-file-input to 6 | * actual javascript methods 7 | */ 8 | const READ_METHOD_ALIASES = { 9 | buffer: 'readAsArrayBuffer', 10 | binary: 'readAsBinaryString', 11 | dataUrl: 'readAsDataURL', 12 | text: 'readAsText' 13 | }; 14 | 15 | /** 16 | * List of props that are accepted by the component and that should be 17 | * passed to the FileReader instance (after down-casing the name and checking 18 | * that they are indeed defined) 19 | */ 20 | const SUPPORTED_EVENTS = [ 21 | 'onLoadStart', 22 | 'onLoadEnd', 23 | 'onLoad', 24 | 'onAbort', 25 | 'onError' 26 | ]; 27 | 28 | /** 29 | * A look-up of properties supported by the React component, but should 30 | * not be passed down to the input component 31 | */ 32 | const UNSUPPORTED_BY_INPUT = { 33 | readAs: true, 34 | abortIf: true, 35 | cancelIf: true, 36 | onCancel: true 37 | }; 38 | 39 | /** 40 | * @class Provides a wrapper around a basic input field that provides an API that is 41 | * consistent with React and JSX conventions. 42 | * 43 | * It supports all of the properties available to a file input field, and all of the 44 | * events supplied by a FileReader with a few additional ones as well. 45 | */ 46 | class FileInput extends Component { 47 | 48 | /** 49 | * Creates a new instance of FileInput React component 50 | * @param {ComponentProps} props React props object - see propTypes below 51 | * @param {Object} context React context object 52 | */ 53 | constructor(props, context) { 54 | super(props, context); 55 | 56 | this.handleChange = this.handleChange.bind(this); 57 | } 58 | 59 | /** 60 | * Checks that the necessary APIs are available in the browser environment 61 | * when the component is mounted and displays a warning if anything is 62 | * missing. 63 | */ 64 | componentDidMount(){ 65 | 66 | if (window && !window.File || !window.FileReader) { 67 | console.warn( 68 | 'Browser does not appear to support API react-simple-file-input relies upon' 69 | ); 70 | } 71 | } 72 | 73 | /** 74 | * Function that is called to handle every change event that is triggered by the 75 | * input component. 76 | * 77 | * @param {Event} event file input field event to handle 78 | */ 79 | handleChange(event){ 80 | const { 81 | readAs, cancelIf, onCancel, onProgress, abortIf, onChange, multiple 82 | } = this.props; 83 | 84 | const { files } = event.target; 85 | 86 | if (onChange) { 87 | if (multiple) { 88 | onChange(files); 89 | } else { 90 | onChange(files[0]); 91 | } 92 | } 93 | 94 | if (readAs) { 95 | for (let i = 0; i < files.length; i++) { 96 | const file = files[i]; 97 | 98 | if(cancelIf && cancelIf(file)){ 99 | if(onCancel){ 100 | onCancel(file); 101 | } 102 | 103 | return; 104 | } 105 | 106 | const fileReader = new window.FileReader(); 107 | 108 | for(let i = 0; i < SUPPORTED_EVENTS.length; i++){ 109 | const handlerName = SUPPORTED_EVENTS[i]; 110 | 111 | if (this.props[handlerName]) { 112 | fileReader[handlerName.toLowerCase()] = (fileReadEvent)=>{ 113 | this.props[handlerName](fileReadEvent, file); 114 | }; 115 | } 116 | } 117 | 118 | if (typeof abortIf !== 'undefined') { 119 | fileReader.onprogress = (event)=>{ 120 | 121 | if (abortIf(event, file)) { 122 | fileReader.abort(); 123 | } else if (onProgress){ 124 | onProgress(event, file); 125 | } 126 | 127 | } 128 | } else if(onProgress) { 129 | fileReader.onprogress = onProgress; 130 | } 131 | 132 | fileReader[READ_METHOD_ALIASES[readAs]](file); 133 | } 134 | 135 | } 136 | 137 | } 138 | 139 | /** 140 | * Renders an input component that receives all of the props passed to this component 141 | * less those that are not supported by the input component. 142 | * @returns {Component} input component configured according to the props passed 143 | * to this component 144 | */ 145 | render() { 146 | const inputProps = {}; 147 | 148 | for (let property in this.props) { 149 | if (this.props.hasOwnProperty(property) && !UNSUPPORTED_BY_INPUT[property]) { 150 | inputProps[property] = this.props[property]; 151 | } 152 | } 153 | 154 | return( 155 | 159 | ); 160 | } 161 | } 162 | 163 | /** 164 | * @callback onChangeCallback called after the user has finished selecting file(s) 165 | * using the browser dialog. 166 | * @param {File|Array.} files Either a single File object representing the 167 | * file the user has selected, or if the multiple prop was used then an 168 | * array of File objects representing the files the user selected. 169 | */ 170 | 171 | /** 172 | * @callback cancelIfFunction called after the onChangeCallback for every file the 173 | * user has selected. If it returns a truthy value, the read operation for 174 | * that file is never started - the other files may still be read. 175 | * @param {File} file a File object representing one of the files the user has 176 | * selected. 177 | * @return {Boolean} Whether to cancel reading the file 178 | */ 179 | 180 | /** 181 | * @callback onCancelCallback called when cancelIfFunction() returns a truthy value 182 | * @param {File} file File object that caused cancelIfFunction() to return a truthy 183 | * value 184 | */ 185 | 186 | /** 187 | * @callback onLoadStartCallback called when a file starts to be loaded 188 | * @param {ProgressEvent} event The event object representing the progress of reading 189 | * the file 190 | * @param {File} file The File object containing information about the file 191 | */ 192 | 193 | /** 194 | * @callback abortIfFunction called every time a file read operation progresses. 195 | * If it returns a truthy value, the read operation for that file is 196 | * aborted immediately and the onAbortCallback is called instead of 197 | * the onProgressCallback. 198 | * @param {ProgressEvent} event The event object representing the progress of reading 199 | * the file 200 | * @param {File} file a File object representing one of the files the user has 201 | * selected. 202 | * @return {Boolean} Whether to abort reading the file 203 | */ 204 | 205 | /** 206 | * @callback onAbortCallback called when a file load operation has been aborted 207 | * because the abortIfFunction has returned a truthy value. 208 | * @param {UIEvent} event The event object representing the progress of reading 209 | * the file 210 | * @param {File} file The File object containing information about the file 211 | */ 212 | 213 | /** 214 | * @callback onProgressCallback called every time the file read progresses. It is 215 | * NOT called if the abortIfCallback is defined and returns a truthy value. 216 | * @param {ProgressEvent} event The event object representing the progress of reading 217 | * the file 218 | * @param {File} file The File object containing information about the file 219 | */ 220 | 221 | /** 222 | * @callback onLoadCallback called when a file has finished successfully being loaded 223 | * This callback is NOT called if the load operation is aborted or results 224 | * in an error. 225 | * @param {UIEvent} event The event object representing the progress of reading 226 | * the file 227 | * @param {File} file The File object containing information about the file 228 | */ 229 | 230 | /** 231 | * @callback onErrorCallback called when a file read results in an error 232 | * @param {UIEvent} event The event object representing the progress of reading 233 | * the file 234 | * @param {File} file The File object containing information about the file 235 | */ 236 | 237 | /** 238 | * @callback onLoadEndCallback called when a file has finished loading, either 239 | * after onLoadCallback, onErrorCallback or onAbortCallback, depending on 240 | * the result of the file load operation. 241 | * @param {ProgressEvent} event The event object representing the progress of 242 | * reading the file 243 | * @param {File} file The File object containing information about the file 244 | */ 245 | 246 | /** 247 | * @typedef {Object} ComponentProps Props object accepted by FileInput 248 | */ 249 | FileInput.propTypes = { 250 | /** 251 | * @property {String} [id] id attribute to pass to input field 252 | */ 253 | id: PropTypes.string, 254 | 255 | /** 256 | * @property {String} [className] class attribute to pass to input field 257 | */ 258 | className: PropTypes.string, 259 | 260 | /** 261 | * @property {Boolean} [multiple=false] Whether to allow the user to select more than 262 | * one file at a time from the browser dialog that appears. 263 | */ 264 | multiple: PropTypes.bool, 265 | 266 | /** 267 | * @property {'buffer'|'binary'|'dataUrl'|'text'} [readAs] When 'buffer', files 268 | * are read as array buffers; when 'binary', as binary strings; when 269 | * 'dataUrl' they are read as data urls and when 'text' they are read as 270 | * text. If not provided, the files selected by the user are not read 271 | * at all, and only the onChange handler is called. 272 | */ 273 | readAs: PropTypes.oneOf( Object.keys(READ_METHOD_ALIASES) ), 274 | 275 | /** 276 | * @property {onChangeCallback} [onChange] Callback that handles when the files 277 | * have been selected 278 | */ 279 | onChange: PropTypes.func, 280 | 281 | /** 282 | * @property {cancelIfFunction} [cancelIf] Function to handle whether each file 283 | * should be read, based on its File object 284 | */ 285 | cancelIf: PropTypes.func, 286 | 287 | /** 288 | * @property {onCancelCallback} [onCancel] Callback to handle if a file read is 289 | * cancelled 290 | */ 291 | onCancel: PropTypes.func, 292 | 293 | /** 294 | * @property {onLoadStartCallback} [onLoadStart] Callback to handle when a file 295 | * has started being loaded 296 | */ 297 | onLoadStart: PropTypes.func, 298 | 299 | /** 300 | * @property {abortIfFunction} [abortIf] Function to handle whether each file 301 | * should abort loading the file 302 | */ 303 | abortIf: PropTypes.func, 304 | 305 | /** 306 | * @property {onAbortCallback} [onAbort] Callback to handle when loading a file 307 | * is aborted 308 | */ 309 | onAbort: PropTypes.func, 310 | 311 | /** 312 | * @property {onProgressCallback} [onProgress] Callback to handle when loading a 313 | * file has progressed (and not been aborted) 314 | */ 315 | onProgress: PropTypes.func, 316 | 317 | /** 318 | * @property {onLoadCallback} [onLoad] Callback to handle when a file has been 319 | * successfully loaded 320 | */ 321 | onLoad: PropTypes.func, 322 | 323 | /** 324 | * @property {onErrorCallback} [onError] Callback to handle when loading a file 325 | * results in an error 326 | */ 327 | onError: PropTypes.func, 328 | 329 | /** 330 | * @property {onLoadEndCallback} [onLoadEnd] Callback to handle when a file load 331 | * operation has completed - whether it was successful, aborted or 332 | * resulted in an error 333 | */ 334 | onLoadEnd: PropTypes.func, 335 | }; 336 | 337 | export default FileInput; 338 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.1" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 8 | 9 | ajv@^4.9.1: 10 | version "4.11.8" 11 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 12 | dependencies: 13 | co "^4.6.0" 14 | json-stable-stringify "^1.0.1" 15 | 16 | ansi-regex@^2.0.0: 17 | version "2.1.1" 18 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 19 | 20 | ansi-styles@^2.2.1: 21 | version "2.2.1" 22 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 23 | 24 | anymatch@^1.3.0: 25 | version "1.3.2" 26 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 27 | dependencies: 28 | micromatch "^2.1.5" 29 | normalize-path "^2.0.0" 30 | 31 | aproba@^1.0.3: 32 | version "1.2.0" 33 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 34 | 35 | are-we-there-yet@~1.1.2: 36 | version "1.1.4" 37 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 38 | dependencies: 39 | delegates "^1.0.0" 40 | readable-stream "^2.0.6" 41 | 42 | arr-diff@^2.0.0: 43 | version "2.0.0" 44 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 45 | dependencies: 46 | arr-flatten "^1.0.1" 47 | 48 | arr-flatten@^1.0.1: 49 | version "1.1.0" 50 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 51 | 52 | array-unique@^0.2.1: 53 | version "0.2.1" 54 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 55 | 56 | asap@~2.0.3: 57 | version "2.0.6" 58 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 59 | 60 | asn1@~0.2.3: 61 | version "0.2.3" 62 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 63 | 64 | assert-plus@1.0.0, assert-plus@^1.0.0: 65 | version "1.0.0" 66 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 67 | 68 | assert-plus@^0.2.0: 69 | version "0.2.0" 70 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 71 | 72 | async-each@^1.0.0: 73 | version "1.0.1" 74 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 75 | 76 | asynckit@^0.4.0: 77 | version "0.4.0" 78 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 79 | 80 | aws-sign2@~0.6.0: 81 | version "0.6.0" 82 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 83 | 84 | aws4@^1.2.1: 85 | version "1.6.0" 86 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 87 | 88 | babel-cli@^6.24.1: 89 | version "6.26.0" 90 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" 91 | dependencies: 92 | babel-core "^6.26.0" 93 | babel-polyfill "^6.26.0" 94 | babel-register "^6.26.0" 95 | babel-runtime "^6.26.0" 96 | commander "^2.11.0" 97 | convert-source-map "^1.5.0" 98 | fs-readdir-recursive "^1.0.0" 99 | glob "^7.1.2" 100 | lodash "^4.17.4" 101 | output-file-sync "^1.1.2" 102 | path-is-absolute "^1.0.1" 103 | slash "^1.0.0" 104 | source-map "^0.5.6" 105 | v8flags "^2.1.1" 106 | optionalDependencies: 107 | chokidar "^1.6.1" 108 | 109 | babel-code-frame@^6.26.0: 110 | version "6.26.0" 111 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 112 | dependencies: 113 | chalk "^1.1.3" 114 | esutils "^2.0.2" 115 | js-tokens "^3.0.2" 116 | 117 | babel-core@^6.26.0: 118 | version "6.26.0" 119 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" 120 | dependencies: 121 | babel-code-frame "^6.26.0" 122 | babel-generator "^6.26.0" 123 | babel-helpers "^6.24.1" 124 | babel-messages "^6.23.0" 125 | babel-register "^6.26.0" 126 | babel-runtime "^6.26.0" 127 | babel-template "^6.26.0" 128 | babel-traverse "^6.26.0" 129 | babel-types "^6.26.0" 130 | babylon "^6.18.0" 131 | convert-source-map "^1.5.0" 132 | debug "^2.6.8" 133 | json5 "^0.5.1" 134 | lodash "^4.17.4" 135 | minimatch "^3.0.4" 136 | path-is-absolute "^1.0.1" 137 | private "^0.1.7" 138 | slash "^1.0.0" 139 | source-map "^0.5.6" 140 | 141 | babel-generator@^6.26.0: 142 | version "6.26.1" 143 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 144 | dependencies: 145 | babel-messages "^6.23.0" 146 | babel-runtime "^6.26.0" 147 | babel-types "^6.26.0" 148 | detect-indent "^4.0.0" 149 | jsesc "^1.3.0" 150 | lodash "^4.17.4" 151 | source-map "^0.5.7" 152 | trim-right "^1.0.1" 153 | 154 | babel-helper-builder-react-jsx@^6.24.1: 155 | version "6.26.0" 156 | resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" 157 | dependencies: 158 | babel-runtime "^6.26.0" 159 | babel-types "^6.26.0" 160 | esutils "^2.0.2" 161 | 162 | babel-helper-call-delegate@^6.24.1: 163 | version "6.24.1" 164 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 165 | dependencies: 166 | babel-helper-hoist-variables "^6.24.1" 167 | babel-runtime "^6.22.0" 168 | babel-traverse "^6.24.1" 169 | babel-types "^6.24.1" 170 | 171 | babel-helper-define-map@^6.24.1: 172 | version "6.26.0" 173 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" 174 | dependencies: 175 | babel-helper-function-name "^6.24.1" 176 | babel-runtime "^6.26.0" 177 | babel-types "^6.26.0" 178 | lodash "^4.17.4" 179 | 180 | babel-helper-function-name@^6.24.1: 181 | version "6.24.1" 182 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 183 | dependencies: 184 | babel-helper-get-function-arity "^6.24.1" 185 | babel-runtime "^6.22.0" 186 | babel-template "^6.24.1" 187 | babel-traverse "^6.24.1" 188 | babel-types "^6.24.1" 189 | 190 | babel-helper-get-function-arity@^6.24.1: 191 | version "6.24.1" 192 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 193 | dependencies: 194 | babel-runtime "^6.22.0" 195 | babel-types "^6.24.1" 196 | 197 | babel-helper-hoist-variables@^6.24.1: 198 | version "6.24.1" 199 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 200 | dependencies: 201 | babel-runtime "^6.22.0" 202 | babel-types "^6.24.1" 203 | 204 | babel-helper-optimise-call-expression@^6.24.1: 205 | version "6.24.1" 206 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 207 | dependencies: 208 | babel-runtime "^6.22.0" 209 | babel-types "^6.24.1" 210 | 211 | babel-helper-regex@^6.24.1: 212 | version "6.26.0" 213 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" 214 | dependencies: 215 | babel-runtime "^6.26.0" 216 | babel-types "^6.26.0" 217 | lodash "^4.17.4" 218 | 219 | babel-helper-replace-supers@^6.24.1: 220 | version "6.24.1" 221 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 222 | dependencies: 223 | babel-helper-optimise-call-expression "^6.24.1" 224 | babel-messages "^6.23.0" 225 | babel-runtime "^6.22.0" 226 | babel-template "^6.24.1" 227 | babel-traverse "^6.24.1" 228 | babel-types "^6.24.1" 229 | 230 | babel-helpers@^6.24.1: 231 | version "6.24.1" 232 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 233 | dependencies: 234 | babel-runtime "^6.22.0" 235 | babel-template "^6.24.1" 236 | 237 | babel-messages@^6.23.0: 238 | version "6.23.0" 239 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 240 | dependencies: 241 | babel-runtime "^6.22.0" 242 | 243 | babel-plugin-check-es2015-constants@^6.22.0: 244 | version "6.22.0" 245 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 246 | dependencies: 247 | babel-runtime "^6.22.0" 248 | 249 | babel-plugin-external-helpers@^6.22.0: 250 | version "6.22.0" 251 | resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" 252 | dependencies: 253 | babel-runtime "^6.22.0" 254 | 255 | babel-plugin-remove-comments@^2.0.0: 256 | version "2.0.0" 257 | resolved "https://registry.yarnpkg.com/babel-plugin-remove-comments/-/babel-plugin-remove-comments-2.0.0.tgz#48c3a12ba0416a78b7cc8fe100098b2f737a2d6b" 258 | 259 | babel-plugin-syntax-flow@^6.18.0: 260 | version "6.18.0" 261 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" 262 | 263 | babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: 264 | version "6.18.0" 265 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 266 | 267 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 268 | version "6.22.0" 269 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 270 | dependencies: 271 | babel-runtime "^6.22.0" 272 | 273 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 274 | version "6.22.0" 275 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 276 | dependencies: 277 | babel-runtime "^6.22.0" 278 | 279 | babel-plugin-transform-es2015-block-scoping@^6.24.1: 280 | version "6.26.0" 281 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" 282 | dependencies: 283 | babel-runtime "^6.26.0" 284 | babel-template "^6.26.0" 285 | babel-traverse "^6.26.0" 286 | babel-types "^6.26.0" 287 | lodash "^4.17.4" 288 | 289 | babel-plugin-transform-es2015-classes@^6.24.1: 290 | version "6.24.1" 291 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 292 | dependencies: 293 | babel-helper-define-map "^6.24.1" 294 | babel-helper-function-name "^6.24.1" 295 | babel-helper-optimise-call-expression "^6.24.1" 296 | babel-helper-replace-supers "^6.24.1" 297 | babel-messages "^6.23.0" 298 | babel-runtime "^6.22.0" 299 | babel-template "^6.24.1" 300 | babel-traverse "^6.24.1" 301 | babel-types "^6.24.1" 302 | 303 | babel-plugin-transform-es2015-computed-properties@^6.24.1: 304 | version "6.24.1" 305 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 306 | dependencies: 307 | babel-runtime "^6.22.0" 308 | babel-template "^6.24.1" 309 | 310 | babel-plugin-transform-es2015-destructuring@^6.22.0: 311 | version "6.23.0" 312 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 313 | dependencies: 314 | babel-runtime "^6.22.0" 315 | 316 | babel-plugin-transform-es2015-duplicate-keys@^6.24.1: 317 | version "6.24.1" 318 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 319 | dependencies: 320 | babel-runtime "^6.22.0" 321 | babel-types "^6.24.1" 322 | 323 | babel-plugin-transform-es2015-for-of@^6.22.0: 324 | version "6.23.0" 325 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 326 | dependencies: 327 | babel-runtime "^6.22.0" 328 | 329 | babel-plugin-transform-es2015-function-name@^6.24.1: 330 | version "6.24.1" 331 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 332 | dependencies: 333 | babel-helper-function-name "^6.24.1" 334 | babel-runtime "^6.22.0" 335 | babel-types "^6.24.1" 336 | 337 | babel-plugin-transform-es2015-literals@^6.22.0: 338 | version "6.22.0" 339 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 340 | dependencies: 341 | babel-runtime "^6.22.0" 342 | 343 | babel-plugin-transform-es2015-modules-amd@^6.24.1: 344 | version "6.24.1" 345 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 346 | dependencies: 347 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 348 | babel-runtime "^6.22.0" 349 | babel-template "^6.24.1" 350 | 351 | babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 352 | version "6.26.0" 353 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" 354 | dependencies: 355 | babel-plugin-transform-strict-mode "^6.24.1" 356 | babel-runtime "^6.26.0" 357 | babel-template "^6.26.0" 358 | babel-types "^6.26.0" 359 | 360 | babel-plugin-transform-es2015-modules-systemjs@^6.24.1: 361 | version "6.24.1" 362 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 363 | dependencies: 364 | babel-helper-hoist-variables "^6.24.1" 365 | babel-runtime "^6.22.0" 366 | babel-template "^6.24.1" 367 | 368 | babel-plugin-transform-es2015-modules-umd@^6.24.1: 369 | version "6.24.1" 370 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 371 | dependencies: 372 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 373 | babel-runtime "^6.22.0" 374 | babel-template "^6.24.1" 375 | 376 | babel-plugin-transform-es2015-object-super@^6.24.1: 377 | version "6.24.1" 378 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 379 | dependencies: 380 | babel-helper-replace-supers "^6.24.1" 381 | babel-runtime "^6.22.0" 382 | 383 | babel-plugin-transform-es2015-parameters@^6.24.1: 384 | version "6.24.1" 385 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 386 | dependencies: 387 | babel-helper-call-delegate "^6.24.1" 388 | babel-helper-get-function-arity "^6.24.1" 389 | babel-runtime "^6.22.0" 390 | babel-template "^6.24.1" 391 | babel-traverse "^6.24.1" 392 | babel-types "^6.24.1" 393 | 394 | babel-plugin-transform-es2015-shorthand-properties@^6.24.1: 395 | version "6.24.1" 396 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 397 | dependencies: 398 | babel-runtime "^6.22.0" 399 | babel-types "^6.24.1" 400 | 401 | babel-plugin-transform-es2015-spread@^6.22.0: 402 | version "6.22.0" 403 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 404 | dependencies: 405 | babel-runtime "^6.22.0" 406 | 407 | babel-plugin-transform-es2015-sticky-regex@^6.24.1: 408 | version "6.24.1" 409 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 410 | dependencies: 411 | babel-helper-regex "^6.24.1" 412 | babel-runtime "^6.22.0" 413 | babel-types "^6.24.1" 414 | 415 | babel-plugin-transform-es2015-template-literals@^6.22.0: 416 | version "6.22.0" 417 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 418 | dependencies: 419 | babel-runtime "^6.22.0" 420 | 421 | babel-plugin-transform-es2015-typeof-symbol@^6.22.0: 422 | version "6.23.0" 423 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 424 | dependencies: 425 | babel-runtime "^6.22.0" 426 | 427 | babel-plugin-transform-es2015-unicode-regex@^6.24.1: 428 | version "6.24.1" 429 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 430 | dependencies: 431 | babel-helper-regex "^6.24.1" 432 | babel-runtime "^6.22.0" 433 | regexpu-core "^2.0.0" 434 | 435 | babel-plugin-transform-flow-strip-types@^6.22.0: 436 | version "6.22.0" 437 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" 438 | dependencies: 439 | babel-plugin-syntax-flow "^6.18.0" 440 | babel-runtime "^6.22.0" 441 | 442 | babel-plugin-transform-react-display-name@^6.23.0: 443 | version "6.25.0" 444 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" 445 | dependencies: 446 | babel-runtime "^6.22.0" 447 | 448 | babel-plugin-transform-react-jsx-self@^6.22.0: 449 | version "6.22.0" 450 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" 451 | dependencies: 452 | babel-plugin-syntax-jsx "^6.8.0" 453 | babel-runtime "^6.22.0" 454 | 455 | babel-plugin-transform-react-jsx-source@^6.22.0: 456 | version "6.22.0" 457 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" 458 | dependencies: 459 | babel-plugin-syntax-jsx "^6.8.0" 460 | babel-runtime "^6.22.0" 461 | 462 | babel-plugin-transform-react-jsx@^6.24.1: 463 | version "6.24.1" 464 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" 465 | dependencies: 466 | babel-helper-builder-react-jsx "^6.24.1" 467 | babel-plugin-syntax-jsx "^6.8.0" 468 | babel-runtime "^6.22.0" 469 | 470 | babel-plugin-transform-regenerator@^6.24.1: 471 | version "6.26.0" 472 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" 473 | dependencies: 474 | regenerator-transform "^0.10.0" 475 | 476 | babel-plugin-transform-strict-mode@^6.24.1: 477 | version "6.24.1" 478 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 479 | dependencies: 480 | babel-runtime "^6.22.0" 481 | babel-types "^6.24.1" 482 | 483 | babel-polyfill@^6.26.0: 484 | version "6.26.0" 485 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" 486 | dependencies: 487 | babel-runtime "^6.26.0" 488 | core-js "^2.5.0" 489 | regenerator-runtime "^0.10.5" 490 | 491 | babel-preset-es2015@^6.18.0: 492 | version "6.24.1" 493 | resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" 494 | dependencies: 495 | babel-plugin-check-es2015-constants "^6.22.0" 496 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 497 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 498 | babel-plugin-transform-es2015-block-scoping "^6.24.1" 499 | babel-plugin-transform-es2015-classes "^6.24.1" 500 | babel-plugin-transform-es2015-computed-properties "^6.24.1" 501 | babel-plugin-transform-es2015-destructuring "^6.22.0" 502 | babel-plugin-transform-es2015-duplicate-keys "^6.24.1" 503 | babel-plugin-transform-es2015-for-of "^6.22.0" 504 | babel-plugin-transform-es2015-function-name "^6.24.1" 505 | babel-plugin-transform-es2015-literals "^6.22.0" 506 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 507 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 508 | babel-plugin-transform-es2015-modules-systemjs "^6.24.1" 509 | babel-plugin-transform-es2015-modules-umd "^6.24.1" 510 | babel-plugin-transform-es2015-object-super "^6.24.1" 511 | babel-plugin-transform-es2015-parameters "^6.24.1" 512 | babel-plugin-transform-es2015-shorthand-properties "^6.24.1" 513 | babel-plugin-transform-es2015-spread "^6.22.0" 514 | babel-plugin-transform-es2015-sticky-regex "^6.24.1" 515 | babel-plugin-transform-es2015-template-literals "^6.22.0" 516 | babel-plugin-transform-es2015-typeof-symbol "^6.22.0" 517 | babel-plugin-transform-es2015-unicode-regex "^6.24.1" 518 | babel-plugin-transform-regenerator "^6.24.1" 519 | 520 | babel-preset-flow@^6.23.0: 521 | version "6.23.0" 522 | resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" 523 | dependencies: 524 | babel-plugin-transform-flow-strip-types "^6.22.0" 525 | 526 | babel-preset-react@^6.16.0: 527 | version "6.24.1" 528 | resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" 529 | dependencies: 530 | babel-plugin-syntax-jsx "^6.3.13" 531 | babel-plugin-transform-react-display-name "^6.23.0" 532 | babel-plugin-transform-react-jsx "^6.24.1" 533 | babel-plugin-transform-react-jsx-self "^6.22.0" 534 | babel-plugin-transform-react-jsx-source "^6.22.0" 535 | babel-preset-flow "^6.23.0" 536 | 537 | babel-register@^6.26.0: 538 | version "6.26.0" 539 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 540 | dependencies: 541 | babel-core "^6.26.0" 542 | babel-runtime "^6.26.0" 543 | core-js "^2.5.0" 544 | home-or-tmp "^2.0.0" 545 | lodash "^4.17.4" 546 | mkdirp "^0.5.1" 547 | source-map-support "^0.4.15" 548 | 549 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: 550 | version "6.26.0" 551 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 552 | dependencies: 553 | core-js "^2.4.0" 554 | regenerator-runtime "^0.11.0" 555 | 556 | babel-template@^6.24.1, babel-template@^6.26.0: 557 | version "6.26.0" 558 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 559 | dependencies: 560 | babel-runtime "^6.26.0" 561 | babel-traverse "^6.26.0" 562 | babel-types "^6.26.0" 563 | babylon "^6.18.0" 564 | lodash "^4.17.4" 565 | 566 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: 567 | version "6.26.0" 568 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 569 | dependencies: 570 | babel-code-frame "^6.26.0" 571 | babel-messages "^6.23.0" 572 | babel-runtime "^6.26.0" 573 | babel-types "^6.26.0" 574 | babylon "^6.18.0" 575 | debug "^2.6.8" 576 | globals "^9.18.0" 577 | invariant "^2.2.2" 578 | lodash "^4.17.4" 579 | 580 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: 581 | version "6.26.0" 582 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 583 | dependencies: 584 | babel-runtime "^6.26.0" 585 | esutils "^2.0.2" 586 | lodash "^4.17.4" 587 | to-fast-properties "^1.0.3" 588 | 589 | babylon@^6.18.0: 590 | version "6.18.0" 591 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 592 | 593 | balanced-match@^1.0.0: 594 | version "1.0.0" 595 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 596 | 597 | bcrypt-pbkdf@^1.0.0: 598 | version "1.0.1" 599 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 600 | dependencies: 601 | tweetnacl "^0.14.3" 602 | 603 | binary-extensions@^1.0.0: 604 | version "1.11.0" 605 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 606 | 607 | block-stream@*: 608 | version "0.0.9" 609 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 610 | dependencies: 611 | inherits "~2.0.0" 612 | 613 | boom@2.x.x: 614 | version "2.10.1" 615 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 616 | dependencies: 617 | hoek "2.x.x" 618 | 619 | brace-expansion@^1.1.7: 620 | version "1.1.11" 621 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 622 | dependencies: 623 | balanced-match "^1.0.0" 624 | concat-map "0.0.1" 625 | 626 | braces@^1.8.2: 627 | version "1.8.5" 628 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 629 | dependencies: 630 | expand-range "^1.8.1" 631 | preserve "^0.2.0" 632 | repeat-element "^1.1.2" 633 | 634 | caseless@~0.12.0: 635 | version "0.12.0" 636 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 637 | 638 | chalk@^1.1.3: 639 | version "1.1.3" 640 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 641 | dependencies: 642 | ansi-styles "^2.2.1" 643 | escape-string-regexp "^1.0.2" 644 | has-ansi "^2.0.0" 645 | strip-ansi "^3.0.0" 646 | supports-color "^2.0.0" 647 | 648 | chokidar@^1.6.1: 649 | version "1.7.0" 650 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 651 | dependencies: 652 | anymatch "^1.3.0" 653 | async-each "^1.0.0" 654 | glob-parent "^2.0.0" 655 | inherits "^2.0.1" 656 | is-binary-path "^1.0.0" 657 | is-glob "^2.0.0" 658 | path-is-absolute "^1.0.0" 659 | readdirp "^2.0.0" 660 | optionalDependencies: 661 | fsevents "^1.0.0" 662 | 663 | co@^4.6.0: 664 | version "4.6.0" 665 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 666 | 667 | code-point-at@^1.0.0: 668 | version "1.1.0" 669 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 670 | 671 | combined-stream@^1.0.5, combined-stream@~1.0.5: 672 | version "1.0.5" 673 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 674 | dependencies: 675 | delayed-stream "~1.0.0" 676 | 677 | commander@^2.11.0, commander@~2.14.1: 678 | version "2.14.1" 679 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" 680 | 681 | commenting@1.0.4: 682 | version "1.0.4" 683 | resolved "https://registry.yarnpkg.com/commenting/-/commenting-1.0.4.tgz#d140af32634fcbdee4d71396934c1fcdac147e50" 684 | 685 | concat-map@0.0.1: 686 | version "0.0.1" 687 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 688 | 689 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 690 | version "1.1.0" 691 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 692 | 693 | convert-source-map@^1.5.0: 694 | version "1.5.1" 695 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 696 | 697 | core-js@^1.0.0: 698 | version "1.2.7" 699 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 700 | 701 | core-js@^2.4.0, core-js@^2.5.0: 702 | version "2.5.3" 703 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" 704 | 705 | core-util-is@1.0.2, core-util-is@~1.0.0: 706 | version "1.0.2" 707 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 708 | 709 | cryptiles@2.x.x: 710 | version "2.0.5" 711 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 712 | dependencies: 713 | boom "2.x.x" 714 | 715 | dashdash@^1.12.0: 716 | version "1.14.1" 717 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 718 | dependencies: 719 | assert-plus "^1.0.0" 720 | 721 | debug@^2.2.0, debug@^2.6.8: 722 | version "2.6.9" 723 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 724 | dependencies: 725 | ms "2.0.0" 726 | 727 | deep-extend@~0.4.0: 728 | version "0.4.2" 729 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 730 | 731 | delayed-stream@~1.0.0: 732 | version "1.0.0" 733 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 734 | 735 | delegates@^1.0.0: 736 | version "1.0.0" 737 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 738 | 739 | detect-indent@^4.0.0: 740 | version "4.0.0" 741 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 742 | dependencies: 743 | repeating "^2.0.0" 744 | 745 | detect-libc@^1.0.2: 746 | version "1.0.3" 747 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 748 | 749 | ecc-jsbn@~0.1.1: 750 | version "0.1.1" 751 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 752 | dependencies: 753 | jsbn "~0.1.0" 754 | 755 | encoding@^0.1.11: 756 | version "0.1.12" 757 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 758 | dependencies: 759 | iconv-lite "~0.4.13" 760 | 761 | escape-string-regexp@^1.0.2: 762 | version "1.0.5" 763 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 764 | 765 | estree-walker@^0.2.1: 766 | version "0.2.1" 767 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" 768 | 769 | estree-walker@^0.3.0: 770 | version "0.3.1" 771 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" 772 | 773 | esutils@^2.0.2: 774 | version "2.0.2" 775 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 776 | 777 | expand-brackets@^0.1.4: 778 | version "0.1.5" 779 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 780 | dependencies: 781 | is-posix-bracket "^0.1.0" 782 | 783 | expand-range@^1.8.1: 784 | version "1.8.2" 785 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 786 | dependencies: 787 | fill-range "^2.1.0" 788 | 789 | extend@~3.0.0: 790 | version "3.0.1" 791 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 792 | 793 | extglob@^0.3.1: 794 | version "0.3.2" 795 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 796 | dependencies: 797 | is-extglob "^1.0.0" 798 | 799 | extsprintf@1.3.0: 800 | version "1.3.0" 801 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 802 | 803 | extsprintf@^1.2.0: 804 | version "1.4.0" 805 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 806 | 807 | fbjs@^0.8.16: 808 | version "0.8.16" 809 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" 810 | dependencies: 811 | core-js "^1.0.0" 812 | isomorphic-fetch "^2.1.1" 813 | loose-envify "^1.0.0" 814 | object-assign "^4.1.0" 815 | promise "^7.1.1" 816 | setimmediate "^1.0.5" 817 | ua-parser-js "^0.7.9" 818 | 819 | filename-regex@^2.0.0: 820 | version "2.0.1" 821 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 822 | 823 | fill-range@^2.1.0: 824 | version "2.2.3" 825 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 826 | dependencies: 827 | is-number "^2.1.0" 828 | isobject "^2.0.0" 829 | randomatic "^1.1.3" 830 | repeat-element "^1.1.2" 831 | repeat-string "^1.5.2" 832 | 833 | for-in@^1.0.1: 834 | version "1.0.2" 835 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 836 | 837 | for-own@^0.1.4: 838 | version "0.1.5" 839 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 840 | dependencies: 841 | for-in "^1.0.1" 842 | 843 | forever-agent@~0.6.1: 844 | version "0.6.1" 845 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 846 | 847 | form-data@~2.1.1: 848 | version "2.1.4" 849 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 850 | dependencies: 851 | asynckit "^0.4.0" 852 | combined-stream "^1.0.5" 853 | mime-types "^2.1.12" 854 | 855 | fs-readdir-recursive@^1.0.0: 856 | version "1.1.0" 857 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" 858 | 859 | fs.realpath@^1.0.0: 860 | version "1.0.0" 861 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 862 | 863 | fsevents@^1.0.0: 864 | version "1.1.3" 865 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" 866 | dependencies: 867 | nan "^2.3.0" 868 | node-pre-gyp "^0.6.39" 869 | 870 | fstream-ignore@^1.0.5: 871 | version "1.0.5" 872 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 873 | dependencies: 874 | fstream "^1.0.0" 875 | inherits "2" 876 | minimatch "^3.0.0" 877 | 878 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 879 | version "1.0.11" 880 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 881 | dependencies: 882 | graceful-fs "^4.1.2" 883 | inherits "~2.0.0" 884 | mkdirp ">=0.5 0" 885 | rimraf "2" 886 | 887 | gauge@~2.7.3: 888 | version "2.7.4" 889 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 890 | dependencies: 891 | aproba "^1.0.3" 892 | console-control-strings "^1.0.0" 893 | has-unicode "^2.0.0" 894 | object-assign "^4.1.0" 895 | signal-exit "^3.0.0" 896 | string-width "^1.0.1" 897 | strip-ansi "^3.0.1" 898 | wide-align "^1.1.0" 899 | 900 | getpass@^0.1.1: 901 | version "0.1.7" 902 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 903 | dependencies: 904 | assert-plus "^1.0.0" 905 | 906 | glob-base@^0.3.0: 907 | version "0.3.0" 908 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 909 | dependencies: 910 | glob-parent "^2.0.0" 911 | is-glob "^2.0.0" 912 | 913 | glob-parent@^2.0.0: 914 | version "2.0.0" 915 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 916 | dependencies: 917 | is-glob "^2.0.0" 918 | 919 | glob@^7.0.5, glob@^7.1.2: 920 | version "7.1.2" 921 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 922 | dependencies: 923 | fs.realpath "^1.0.0" 924 | inflight "^1.0.4" 925 | inherits "2" 926 | minimatch "^3.0.4" 927 | once "^1.3.0" 928 | path-is-absolute "^1.0.0" 929 | 930 | globals@^9.18.0: 931 | version "9.18.0" 932 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 933 | 934 | graceful-fs@^4.1.2, graceful-fs@^4.1.4: 935 | version "4.1.11" 936 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 937 | 938 | har-schema@^1.0.5: 939 | version "1.0.5" 940 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 941 | 942 | har-validator@~4.2.1: 943 | version "4.2.1" 944 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 945 | dependencies: 946 | ajv "^4.9.1" 947 | har-schema "^1.0.5" 948 | 949 | has-ansi@^2.0.0: 950 | version "2.0.0" 951 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 952 | dependencies: 953 | ansi-regex "^2.0.0" 954 | 955 | has-unicode@^2.0.0: 956 | version "2.0.1" 957 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 958 | 959 | hawk@3.1.3, hawk@~3.1.3: 960 | version "3.1.3" 961 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 962 | dependencies: 963 | boom "2.x.x" 964 | cryptiles "2.x.x" 965 | hoek "2.x.x" 966 | sntp "1.x.x" 967 | 968 | hoek@2.x.x: 969 | version "2.16.3" 970 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 971 | 972 | home-or-tmp@^2.0.0: 973 | version "2.0.0" 974 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 975 | dependencies: 976 | os-homedir "^1.0.0" 977 | os-tmpdir "^1.0.1" 978 | 979 | http-signature@~1.1.0: 980 | version "1.1.1" 981 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 982 | dependencies: 983 | assert-plus "^0.2.0" 984 | jsprim "^1.2.2" 985 | sshpk "^1.7.0" 986 | 987 | iconv-lite@~0.4.13: 988 | version "0.4.19" 989 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 990 | 991 | inflight@^1.0.4: 992 | version "1.0.6" 993 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 994 | dependencies: 995 | once "^1.3.0" 996 | wrappy "1" 997 | 998 | inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: 999 | version "2.0.3" 1000 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1001 | 1002 | ini@~1.3.0: 1003 | version "1.3.5" 1004 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1005 | 1006 | invariant@^2.2.2: 1007 | version "2.2.2" 1008 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 1009 | dependencies: 1010 | loose-envify "^1.0.0" 1011 | 1012 | is-binary-path@^1.0.0: 1013 | version "1.0.1" 1014 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1015 | dependencies: 1016 | binary-extensions "^1.0.0" 1017 | 1018 | is-buffer@^1.1.5: 1019 | version "1.1.6" 1020 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1021 | 1022 | is-dotfile@^1.0.0: 1023 | version "1.0.3" 1024 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1025 | 1026 | is-equal-shallow@^0.1.3: 1027 | version "0.1.3" 1028 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1029 | dependencies: 1030 | is-primitive "^2.0.0" 1031 | 1032 | is-extendable@^0.1.1: 1033 | version "0.1.1" 1034 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1035 | 1036 | is-extglob@^1.0.0: 1037 | version "1.0.0" 1038 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1039 | 1040 | is-finite@^1.0.0: 1041 | version "1.0.2" 1042 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1043 | dependencies: 1044 | number-is-nan "^1.0.0" 1045 | 1046 | is-fullwidth-code-point@^1.0.0: 1047 | version "1.0.0" 1048 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1049 | dependencies: 1050 | number-is-nan "^1.0.0" 1051 | 1052 | is-glob@^2.0.0, is-glob@^2.0.1: 1053 | version "2.0.1" 1054 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1055 | dependencies: 1056 | is-extglob "^1.0.0" 1057 | 1058 | is-number@^2.1.0: 1059 | version "2.1.0" 1060 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1061 | dependencies: 1062 | kind-of "^3.0.2" 1063 | 1064 | is-number@^3.0.0: 1065 | version "3.0.0" 1066 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1067 | dependencies: 1068 | kind-of "^3.0.2" 1069 | 1070 | is-posix-bracket@^0.1.0: 1071 | version "0.1.1" 1072 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1073 | 1074 | is-primitive@^2.0.0: 1075 | version "2.0.0" 1076 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1077 | 1078 | is-stream@^1.0.1: 1079 | version "1.1.0" 1080 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1081 | 1082 | is-typedarray@~1.0.0: 1083 | version "1.0.0" 1084 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1085 | 1086 | isarray@1.0.0, isarray@~1.0.0: 1087 | version "1.0.0" 1088 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1089 | 1090 | isobject@^2.0.0: 1091 | version "2.1.0" 1092 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1093 | dependencies: 1094 | isarray "1.0.0" 1095 | 1096 | isomorphic-fetch@^2.1.1: 1097 | version "2.2.1" 1098 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 1099 | dependencies: 1100 | node-fetch "^1.0.1" 1101 | whatwg-fetch ">=0.10.0" 1102 | 1103 | isstream@~0.1.2: 1104 | version "0.1.2" 1105 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1106 | 1107 | js-tokens@^3.0.0, js-tokens@^3.0.2: 1108 | version "3.0.2" 1109 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1110 | 1111 | jsbn@~0.1.0: 1112 | version "0.1.1" 1113 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1114 | 1115 | jsesc@^1.3.0: 1116 | version "1.3.0" 1117 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1118 | 1119 | jsesc@~0.5.0: 1120 | version "0.5.0" 1121 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1122 | 1123 | json-schema@0.2.3: 1124 | version "0.2.3" 1125 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1126 | 1127 | json-stable-stringify@^1.0.1: 1128 | version "1.0.1" 1129 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1130 | dependencies: 1131 | jsonify "~0.0.0" 1132 | 1133 | json-stringify-safe@~5.0.1: 1134 | version "5.0.1" 1135 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1136 | 1137 | json5@^0.5.1: 1138 | version "0.5.1" 1139 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1140 | 1141 | jsonify@~0.0.0: 1142 | version "0.0.0" 1143 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1144 | 1145 | jsprim@^1.2.2: 1146 | version "1.4.1" 1147 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1148 | dependencies: 1149 | assert-plus "1.0.0" 1150 | extsprintf "1.3.0" 1151 | json-schema "0.2.3" 1152 | verror "1.10.0" 1153 | 1154 | kind-of@^3.0.2: 1155 | version "3.2.2" 1156 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1157 | dependencies: 1158 | is-buffer "^1.1.5" 1159 | 1160 | kind-of@^4.0.0: 1161 | version "4.0.0" 1162 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1163 | dependencies: 1164 | is-buffer "^1.1.5" 1165 | 1166 | lodash@4.17.4: 1167 | version "4.17.4" 1168 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 1169 | 1170 | lodash@^4.17.4: 1171 | version "4.17.5" 1172 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" 1173 | 1174 | loose-envify@^1.0.0, loose-envify@^1.3.1: 1175 | version "1.3.1" 1176 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 1177 | dependencies: 1178 | js-tokens "^3.0.0" 1179 | 1180 | magic-string@0.22.4, magic-string@^0.22.4: 1181 | version "0.22.4" 1182 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff" 1183 | dependencies: 1184 | vlq "^0.2.1" 1185 | 1186 | micromatch@^2.1.5, micromatch@^2.3.11: 1187 | version "2.3.11" 1188 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1189 | dependencies: 1190 | arr-diff "^2.0.0" 1191 | array-unique "^0.2.1" 1192 | braces "^1.8.2" 1193 | expand-brackets "^0.1.4" 1194 | extglob "^0.3.1" 1195 | filename-regex "^2.0.0" 1196 | is-extglob "^1.0.0" 1197 | is-glob "^2.0.1" 1198 | kind-of "^3.0.2" 1199 | normalize-path "^2.0.1" 1200 | object.omit "^2.0.0" 1201 | parse-glob "^3.0.4" 1202 | regex-cache "^0.4.2" 1203 | 1204 | mime-db@~1.30.0: 1205 | version "1.30.0" 1206 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" 1207 | 1208 | mime-types@^2.1.12, mime-types@~2.1.7: 1209 | version "2.1.17" 1210 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" 1211 | dependencies: 1212 | mime-db "~1.30.0" 1213 | 1214 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 1215 | version "3.0.4" 1216 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1217 | dependencies: 1218 | brace-expansion "^1.1.7" 1219 | 1220 | minimist@0.0.8: 1221 | version "0.0.8" 1222 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1223 | 1224 | minimist@^1.2.0: 1225 | version "1.2.0" 1226 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1227 | 1228 | mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.1: 1229 | version "0.5.1" 1230 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1231 | dependencies: 1232 | minimist "0.0.8" 1233 | 1234 | moment@2.18.1: 1235 | version "2.18.1" 1236 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" 1237 | 1238 | ms@2.0.0: 1239 | version "2.0.0" 1240 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1241 | 1242 | nan@^2.3.0: 1243 | version "2.8.0" 1244 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" 1245 | 1246 | node-fetch@^1.0.1: 1247 | version "1.7.3" 1248 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" 1249 | dependencies: 1250 | encoding "^0.1.11" 1251 | is-stream "^1.0.1" 1252 | 1253 | node-pre-gyp@^0.6.39: 1254 | version "0.6.39" 1255 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" 1256 | dependencies: 1257 | detect-libc "^1.0.2" 1258 | hawk "3.1.3" 1259 | mkdirp "^0.5.1" 1260 | nopt "^4.0.1" 1261 | npmlog "^4.0.2" 1262 | rc "^1.1.7" 1263 | request "2.81.0" 1264 | rimraf "^2.6.1" 1265 | semver "^5.3.0" 1266 | tar "^2.2.1" 1267 | tar-pack "^3.4.0" 1268 | 1269 | nopt@^4.0.1: 1270 | version "4.0.1" 1271 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1272 | dependencies: 1273 | abbrev "1" 1274 | osenv "^0.1.4" 1275 | 1276 | normalize-path@^2.0.0, normalize-path@^2.0.1: 1277 | version "2.1.1" 1278 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1279 | dependencies: 1280 | remove-trailing-separator "^1.0.1" 1281 | 1282 | npmlog@^4.0.2: 1283 | version "4.1.2" 1284 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1285 | dependencies: 1286 | are-we-there-yet "~1.1.2" 1287 | console-control-strings "~1.1.0" 1288 | gauge "~2.7.3" 1289 | set-blocking "~2.0.0" 1290 | 1291 | number-is-nan@^1.0.0: 1292 | version "1.0.1" 1293 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1294 | 1295 | oauth-sign@~0.8.1: 1296 | version "0.8.2" 1297 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1298 | 1299 | object-assign@^4.1.0, object-assign@^4.1.1: 1300 | version "4.1.1" 1301 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1302 | 1303 | object.omit@^2.0.0: 1304 | version "2.0.1" 1305 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1306 | dependencies: 1307 | for-own "^0.1.4" 1308 | is-extendable "^0.1.1" 1309 | 1310 | once@^1.3.0, once@^1.3.3: 1311 | version "1.4.0" 1312 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1313 | dependencies: 1314 | wrappy "1" 1315 | 1316 | os-homedir@^1.0.0: 1317 | version "1.0.2" 1318 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1319 | 1320 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 1321 | version "1.0.2" 1322 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1323 | 1324 | osenv@^0.1.4: 1325 | version "0.1.4" 1326 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 1327 | dependencies: 1328 | os-homedir "^1.0.0" 1329 | os-tmpdir "^1.0.0" 1330 | 1331 | output-file-sync@^1.1.2: 1332 | version "1.1.2" 1333 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 1334 | dependencies: 1335 | graceful-fs "^4.1.4" 1336 | mkdirp "^0.5.1" 1337 | object-assign "^4.1.0" 1338 | 1339 | parse-glob@^3.0.4: 1340 | version "3.0.4" 1341 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1342 | dependencies: 1343 | glob-base "^0.3.0" 1344 | is-dotfile "^1.0.0" 1345 | is-extglob "^1.0.0" 1346 | is-glob "^2.0.0" 1347 | 1348 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 1349 | version "1.0.1" 1350 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1351 | 1352 | performance-now@^0.2.0: 1353 | version "0.2.0" 1354 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 1355 | 1356 | preserve@^0.2.0: 1357 | version "0.2.0" 1358 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1359 | 1360 | private@^0.1.6, private@^0.1.7: 1361 | version "0.1.8" 1362 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 1363 | 1364 | process-nextick-args@~2.0.0: 1365 | version "2.0.0" 1366 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1367 | 1368 | promise@^7.1.1: 1369 | version "7.3.1" 1370 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" 1371 | dependencies: 1372 | asap "~2.0.3" 1373 | 1374 | prop-types@^15.5.7: 1375 | version "15.6.0" 1376 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" 1377 | dependencies: 1378 | fbjs "^0.8.16" 1379 | loose-envify "^1.3.1" 1380 | object-assign "^4.1.1" 1381 | 1382 | punycode@^1.4.1: 1383 | version "1.4.1" 1384 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1385 | 1386 | qs@~6.4.0: 1387 | version "6.4.0" 1388 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 1389 | 1390 | randomatic@^1.1.3: 1391 | version "1.1.7" 1392 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 1393 | dependencies: 1394 | is-number "^3.0.0" 1395 | kind-of "^4.0.0" 1396 | 1397 | rc@^1.1.7: 1398 | version "1.2.5" 1399 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" 1400 | dependencies: 1401 | deep-extend "~0.4.0" 1402 | ini "~1.3.0" 1403 | minimist "^1.2.0" 1404 | strip-json-comments "~2.0.1" 1405 | 1406 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: 1407 | version "2.3.4" 1408 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" 1409 | dependencies: 1410 | core-util-is "~1.0.0" 1411 | inherits "~2.0.3" 1412 | isarray "~1.0.0" 1413 | process-nextick-args "~2.0.0" 1414 | safe-buffer "~5.1.1" 1415 | string_decoder "~1.0.3" 1416 | util-deprecate "~1.0.1" 1417 | 1418 | readdirp@^2.0.0: 1419 | version "2.1.0" 1420 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1421 | dependencies: 1422 | graceful-fs "^4.1.2" 1423 | minimatch "^3.0.2" 1424 | readable-stream "^2.0.2" 1425 | set-immediate-shim "^1.0.1" 1426 | 1427 | regenerate@^1.2.1: 1428 | version "1.3.3" 1429 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" 1430 | 1431 | regenerator-runtime@^0.10.5: 1432 | version "0.10.5" 1433 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 1434 | 1435 | regenerator-runtime@^0.11.0: 1436 | version "0.11.1" 1437 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 1438 | 1439 | regenerator-transform@^0.10.0: 1440 | version "0.10.1" 1441 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" 1442 | dependencies: 1443 | babel-runtime "^6.18.0" 1444 | babel-types "^6.19.0" 1445 | private "^0.1.6" 1446 | 1447 | regex-cache@^0.4.2: 1448 | version "0.4.4" 1449 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 1450 | dependencies: 1451 | is-equal-shallow "^0.1.3" 1452 | 1453 | regexpu-core@^2.0.0: 1454 | version "2.0.0" 1455 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 1456 | dependencies: 1457 | regenerate "^1.2.1" 1458 | regjsgen "^0.2.0" 1459 | regjsparser "^0.1.4" 1460 | 1461 | regjsgen@^0.2.0: 1462 | version "0.2.0" 1463 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 1464 | 1465 | regjsparser@^0.1.4: 1466 | version "0.1.5" 1467 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 1468 | dependencies: 1469 | jsesc "~0.5.0" 1470 | 1471 | remove-trailing-separator@^1.0.1: 1472 | version "1.1.0" 1473 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1474 | 1475 | repeat-element@^1.1.2: 1476 | version "1.1.2" 1477 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1478 | 1479 | repeat-string@^1.5.2: 1480 | version "1.6.1" 1481 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1482 | 1483 | repeating@^2.0.0: 1484 | version "2.0.1" 1485 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 1486 | dependencies: 1487 | is-finite "^1.0.0" 1488 | 1489 | request@2.81.0: 1490 | version "2.81.0" 1491 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 1492 | dependencies: 1493 | aws-sign2 "~0.6.0" 1494 | aws4 "^1.2.1" 1495 | caseless "~0.12.0" 1496 | combined-stream "~1.0.5" 1497 | extend "~3.0.0" 1498 | forever-agent "~0.6.1" 1499 | form-data "~2.1.1" 1500 | har-validator "~4.2.1" 1501 | hawk "~3.1.3" 1502 | http-signature "~1.1.0" 1503 | is-typedarray "~1.0.0" 1504 | isstream "~0.1.2" 1505 | json-stringify-safe "~5.0.1" 1506 | mime-types "~2.1.7" 1507 | oauth-sign "~0.8.1" 1508 | performance-now "^0.2.0" 1509 | qs "~6.4.0" 1510 | safe-buffer "^5.0.1" 1511 | stringstream "~0.0.4" 1512 | tough-cookie "~2.3.0" 1513 | tunnel-agent "^0.6.0" 1514 | uuid "^3.0.0" 1515 | 1516 | rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: 1517 | version "2.6.2" 1518 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1519 | dependencies: 1520 | glob "^7.0.5" 1521 | 1522 | rollup-plugin-babel@^3.0.3: 1523 | version "3.0.3" 1524 | resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-3.0.3.tgz#63adedc863130327512a4a9006efc2241c5b7c15" 1525 | dependencies: 1526 | rollup-pluginutils "^1.5.0" 1527 | 1528 | rollup-plugin-license@^0.5.0: 1529 | version "0.5.0" 1530 | resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-0.5.0.tgz#5e707375fb58d29575253a0d28e97e41882682f7" 1531 | dependencies: 1532 | commenting "1.0.4" 1533 | lodash "4.17.4" 1534 | magic-string "0.22.4" 1535 | mkdirp "0.5.1" 1536 | moment "2.18.1" 1537 | 1538 | rollup-plugin-replace@^2.0.0: 1539 | version "2.0.0" 1540 | resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277" 1541 | dependencies: 1542 | magic-string "^0.22.4" 1543 | minimatch "^3.0.2" 1544 | rollup-pluginutils "^2.0.1" 1545 | 1546 | rollup-plugin-uglify@^3.0.0: 1547 | version "3.0.0" 1548 | resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz#a34eca24617709c6bf1778e9653baafa06099b86" 1549 | dependencies: 1550 | uglify-es "^3.3.7" 1551 | 1552 | rollup-pluginutils@^1.5.0: 1553 | version "1.5.2" 1554 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" 1555 | dependencies: 1556 | estree-walker "^0.2.1" 1557 | minimatch "^3.0.2" 1558 | 1559 | rollup-pluginutils@^2.0.1: 1560 | version "2.0.1" 1561 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" 1562 | dependencies: 1563 | estree-walker "^0.3.0" 1564 | micromatch "^2.3.11" 1565 | 1566 | rollup@^0.55.5: 1567 | version "0.55.5" 1568 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.55.5.tgz#2f88c300f7cf24b5ec2dca8a6aba73b04e087e93" 1569 | 1570 | safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1571 | version "5.1.1" 1572 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1573 | 1574 | semver@^5.3.0: 1575 | version "5.5.0" 1576 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1577 | 1578 | set-blocking@~2.0.0: 1579 | version "2.0.0" 1580 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1581 | 1582 | set-immediate-shim@^1.0.1: 1583 | version "1.0.1" 1584 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1585 | 1586 | setimmediate@^1.0.5: 1587 | version "1.0.5" 1588 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1589 | 1590 | signal-exit@^3.0.0: 1591 | version "3.0.2" 1592 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1593 | 1594 | slash@^1.0.0: 1595 | version "1.0.0" 1596 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 1597 | 1598 | sntp@1.x.x: 1599 | version "1.0.9" 1600 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1601 | dependencies: 1602 | hoek "2.x.x" 1603 | 1604 | source-map-support@^0.4.15: 1605 | version "0.4.18" 1606 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 1607 | dependencies: 1608 | source-map "^0.5.6" 1609 | 1610 | source-map@^0.5.6, source-map@^0.5.7: 1611 | version "0.5.7" 1612 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1613 | 1614 | source-map@~0.6.1: 1615 | version "0.6.1" 1616 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1617 | 1618 | sshpk@^1.7.0: 1619 | version "1.13.1" 1620 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 1621 | dependencies: 1622 | asn1 "~0.2.3" 1623 | assert-plus "^1.0.0" 1624 | dashdash "^1.12.0" 1625 | getpass "^0.1.1" 1626 | optionalDependencies: 1627 | bcrypt-pbkdf "^1.0.0" 1628 | ecc-jsbn "~0.1.1" 1629 | jsbn "~0.1.0" 1630 | tweetnacl "~0.14.0" 1631 | 1632 | string-width@^1.0.1, string-width@^1.0.2: 1633 | version "1.0.2" 1634 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1635 | dependencies: 1636 | code-point-at "^1.0.0" 1637 | is-fullwidth-code-point "^1.0.0" 1638 | strip-ansi "^3.0.0" 1639 | 1640 | string_decoder@~1.0.3: 1641 | version "1.0.3" 1642 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 1643 | dependencies: 1644 | safe-buffer "~5.1.0" 1645 | 1646 | stringstream@~0.0.4: 1647 | version "0.0.5" 1648 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1649 | 1650 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1651 | version "3.0.1" 1652 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1653 | dependencies: 1654 | ansi-regex "^2.0.0" 1655 | 1656 | strip-json-comments@~2.0.1: 1657 | version "2.0.1" 1658 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1659 | 1660 | supports-color@^2.0.0: 1661 | version "2.0.0" 1662 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1663 | 1664 | tar-pack@^3.4.0: 1665 | version "3.4.1" 1666 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" 1667 | dependencies: 1668 | debug "^2.2.0" 1669 | fstream "^1.0.10" 1670 | fstream-ignore "^1.0.5" 1671 | once "^1.3.3" 1672 | readable-stream "^2.1.4" 1673 | rimraf "^2.5.1" 1674 | tar "^2.2.1" 1675 | uid-number "^0.0.6" 1676 | 1677 | tar@^2.2.1: 1678 | version "2.2.1" 1679 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1680 | dependencies: 1681 | block-stream "*" 1682 | fstream "^1.0.2" 1683 | inherits "2" 1684 | 1685 | to-fast-properties@^1.0.3: 1686 | version "1.0.3" 1687 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 1688 | 1689 | tough-cookie@~2.3.0: 1690 | version "2.3.3" 1691 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" 1692 | dependencies: 1693 | punycode "^1.4.1" 1694 | 1695 | trim-right@^1.0.1: 1696 | version "1.0.1" 1697 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1698 | 1699 | tunnel-agent@^0.6.0: 1700 | version "0.6.0" 1701 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1702 | dependencies: 1703 | safe-buffer "^5.0.1" 1704 | 1705 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1706 | version "0.14.5" 1707 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1708 | 1709 | ua-parser-js@^0.7.9: 1710 | version "0.7.17" 1711 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" 1712 | 1713 | uglify-es@^3.3.7: 1714 | version "3.3.10" 1715 | resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" 1716 | dependencies: 1717 | commander "~2.14.1" 1718 | source-map "~0.6.1" 1719 | 1720 | uid-number@^0.0.6: 1721 | version "0.0.6" 1722 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 1723 | 1724 | user-home@^1.1.1: 1725 | version "1.1.1" 1726 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 1727 | 1728 | util-deprecate@~1.0.1: 1729 | version "1.0.2" 1730 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1731 | 1732 | uuid@^3.0.0: 1733 | version "3.2.1" 1734 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 1735 | 1736 | v8flags@^2.1.1: 1737 | version "2.1.1" 1738 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 1739 | dependencies: 1740 | user-home "^1.1.1" 1741 | 1742 | verror@1.10.0: 1743 | version "1.10.0" 1744 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1745 | dependencies: 1746 | assert-plus "^1.0.0" 1747 | core-util-is "1.0.2" 1748 | extsprintf "^1.2.0" 1749 | 1750 | vlq@^0.2.1: 1751 | version "0.2.3" 1752 | resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" 1753 | 1754 | whatwg-fetch@>=0.10.0: 1755 | version "2.0.3" 1756 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 1757 | 1758 | wide-align@^1.1.0: 1759 | version "1.1.2" 1760 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 1761 | dependencies: 1762 | string-width "^1.0.2" 1763 | 1764 | wrappy@1: 1765 | version "1.0.2" 1766 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1767 | --------------------------------------------------------------------------------