├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── README.md ├── package.json ├── dist ├── buffered-interpolation.min.js └── buffered-interpolation.js ├── index.js ├── LICENSE └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | package.json 2 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "parser": "babylon" 4 | } 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # buffered-interpolation 2 | 3 | This package aims to provide a solution for interpolation of position, rotation, and scale for networked THREE.js objects. 4 | 5 | It specifically aims to work well both in situations with continuous and sparse network updates. 6 | 7 | Inspired by: [godot-snapshot-interpolation-demo](https://github.com/empyreanx/godot-snapshot-interpolation-demo) 8 | 9 | For position and scale, uses either linear interpolation (default) or [hermite](https://en.wikipedia.org/wiki/Hermite_interpolation) function (which takes into account velocity). 10 | 11 | For rotation (quaternions), uses spherical interpolation. 12 | 13 | ## Usage 14 | 15 | ``` 16 | var InterpolationBuffer = require('buffered-interpolation'); 17 | let interpolationBuffer = new InterpolationBuffer(); 18 | ``` 19 | 20 | on receipt of networked data: 21 | ``` 22 | interpolationBuffer.setPosition(new THREE.Vector3(data.x, data.y, data.z)); 23 | ``` 24 | 25 | in some update/tick method: 26 | ``` 27 | object3d.position.copy(interpolationBuffer.getPosition()); 28 | ``` -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "buffered-interpolation", 3 | "version": "0.2.5", 4 | "description": "A class for handling interpolation of networked THREE.js objects.", 5 | "homepage": "https://github.com/infinitelee/buffered-interpolation", 6 | "main": "dist/buffered-interpolation.js", 7 | "author": "Kevin Lee ", 8 | "license": "MPL-2.0", 9 | "bugs": { 10 | "url": "https://github.com/infinitelee/buffered-interpolation/issues" 11 | }, 12 | "scripts": { 13 | "dist": "babel index.js -o dist/buffered-interpolation.js --presets=env && babel index.js -o dist/buffered-interpolation.min.js --presets=minify" 14 | }, 15 | "devDependencies": { 16 | "babel-cli": "^6.26.0", 17 | "babel-preset-env": "^1.7.0", 18 | "babel-preset-minify": "^0.4.3" 19 | }, 20 | "repository": "infinitelee/buffered-interpolation", 21 | "keywords": [ 22 | "interpolation", 23 | "lerping", 24 | "hermite", 25 | "aframe", 26 | "multiplayer", 27 | "networked", 28 | "networking", 29 | "three", 30 | "three.js" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /dist/buffered-interpolation.min.js: -------------------------------------------------------------------------------- 1 | const INITIALIZING=0,BUFFERING=1,PLAYING=2,MODE_LERP=0,MODE_HERMITE=1,vectorPool=[],quatPool=[],framePool=[],getPooledVector=()=>vectorPool.shift()||new THREE.Vector3,getPooledQuaternion=()=>quatPool.shift()||new THREE.Quaternion,getPooledFrame=()=>{let a=framePool.pop();return a||(a={position:new THREE.Vector3,velocity:new THREE.Vector3,scale:new THREE.Vector3,quaternion:new THREE.Quaternion,time:0}),a},freeFrame=a=>framePool.push(a);class InterpolationBuffer{constructor(a=MODE_LERP,b=.15){this.state=INITIALIZING,this.buffer=[],this.bufferTime=1e3*b,this.time=0,this.mode=a,this.originFrame=getPooledFrame(),this.position=new THREE.Vector3,this.quaternion=new THREE.Quaternion,this.scale=new THREE.Vector3(1,1,1)}hermite(a,b,c,d,e,f){const g=b*b,h=b*b*b;a.copy(c.multiplyScalar(2*h-3*g+1)),a.add(d.multiplyScalar(-2*h+3*g)),a.add(e.multiplyScalar(h-2*g+b)),a.add(f.multiplyScalar(h-g))}lerp(a,b,c,d){a.lerpVectors(b,c,d)}slerp(a,b,c,d){a.slerpQuaternions(b,c,d)}updateOriginFrameToBufferTail(){freeFrame(this.originFrame),this.originFrame=this.buffer.shift()}appendBuffer(a,b,c,d){const e=0this.bufferTime&&(this.state=PLAYING),this.state===PLAYING){const b=this.time-this.bufferTime;for(;0this.buffer[0].time;)1 vectorPool.shift() || new THREE.Vector3(); 15 | const getPooledQuaternion = () => quatPool.shift() || new THREE.Quaternion(); 16 | 17 | const getPooledFrame = () => { 18 | let frame = framePool.pop(); 19 | 20 | if (!frame) { 21 | frame = { position: new THREE.Vector3(), velocity: new THREE.Vector3(), scale: new THREE.Vector3(), quaternion: new THREE.Quaternion(), time: 0 }; 22 | } 23 | 24 | return frame; 25 | }; 26 | 27 | const freeFrame = f => framePool.push(f); 28 | 29 | class InterpolationBuffer { 30 | constructor(mode = MODE_LERP, bufferTime = 0.15) { 31 | this.state = INITIALIZING; 32 | this.buffer = []; 33 | this.bufferTime = bufferTime * 1000; 34 | this.time = 0; 35 | this.mode = mode; 36 | 37 | this.originFrame = getPooledFrame(); 38 | this.position = new THREE.Vector3(); 39 | this.quaternion = new THREE.Quaternion(); 40 | this.scale = new THREE.Vector3(1, 1, 1); 41 | } 42 | 43 | hermite(target, t, p1, p2, v1, v2) { 44 | const t2 = t * t; 45 | const t3 = t * t * t; 46 | const a = 2 * t3 - 3 * t2 + 1; 47 | const b = -2 * t3 + 3 * t2; 48 | const c = t3 - 2 * t2 + t; 49 | const d = t3 - t2; 50 | 51 | target.copy(p1.multiplyScalar(a)); 52 | target.add(p2.multiplyScalar(b)); 53 | target.add(v1.multiplyScalar(c)); 54 | target.add(v2.multiplyScalar(d)); 55 | } 56 | 57 | lerp(target, v1, v2, alpha) { 58 | target.lerpVectors(v1, v2, alpha); 59 | } 60 | 61 | slerp(target, r1, r2, alpha) { 62 | target.slerpQuaternions(r1, r2, alpha); 63 | } 64 | 65 | updateOriginFrameToBufferTail() { 66 | freeFrame(this.originFrame); 67 | this.originFrame = this.buffer.shift(); 68 | } 69 | 70 | appendBuffer(position, velocity, quaternion, scale) { 71 | const tail = this.buffer.length > 0 ? this.buffer[this.buffer.length - 1] : null; 72 | // update the last entry in the buffer if this is the same frame 73 | if (tail && tail.time === this.time) { 74 | if (position) { 75 | tail.position.copy(position); 76 | } 77 | 78 | if (velocity) { 79 | tail.velocity.copy(velocity); 80 | } 81 | 82 | if (quaternion) { 83 | tail.quaternion.copy(quaternion); 84 | } 85 | 86 | if (scale) { 87 | tail.scale.copy(scale); 88 | } 89 | } else { 90 | const priorFrame = tail || this.originFrame; 91 | const newFrame = getPooledFrame(); 92 | newFrame.position.copy(position || priorFrame.position); 93 | newFrame.velocity.copy(velocity || priorFrame.velocity); 94 | newFrame.quaternion.copy(quaternion || priorFrame.quaternion); 95 | newFrame.scale.copy(scale || priorFrame.scale); 96 | newFrame.time = this.time; 97 | 98 | this.buffer.push(newFrame); 99 | } 100 | } 101 | 102 | setTarget(position, velocity, quaternion, scale) { 103 | this.appendBuffer(position, velocity, quaternion, scale); 104 | } 105 | 106 | setPosition(position, velocity) { 107 | this.appendBuffer(position, velocity, null, null); 108 | } 109 | 110 | setQuaternion(quaternion) { 111 | this.appendBuffer(null, null, quaternion, null); 112 | } 113 | 114 | setScale(scale) { 115 | this.appendBuffer(null, null, null, scale); 116 | } 117 | 118 | update(delta) { 119 | if (this.state === INITIALIZING) { 120 | if (this.buffer.length > 0) { 121 | this.updateOriginFrameToBufferTail(); 122 | this.position.copy(this.originFrame.position); 123 | this.quaternion.copy(this.originFrame.quaternion); 124 | this.scale.copy(this.originFrame.scale); 125 | this.state = BUFFERING; 126 | } 127 | } 128 | 129 | if (this.state === BUFFERING) { 130 | if (this.buffer.length > 0 && this.time > this.bufferTime) { 131 | this.state = PLAYING; 132 | } 133 | } 134 | 135 | if (this.state === PLAYING) { 136 | const mark = this.time - this.bufferTime; 137 | //Purge this.buffer of expired frames 138 | while (this.buffer.length > 0 && mark > this.buffer[0].time) { 139 | //if this is the last frame in the buffer, just update the time and reuse it 140 | if (this.buffer.length > 1) { 141 | this.updateOriginFrameToBufferTail(); 142 | } else { 143 | this.originFrame.position.copy(this.buffer[0].position); 144 | this.originFrame.velocity.copy(this.buffer[0].velocity); 145 | this.originFrame.quaternion.copy(this.buffer[0].quaternion); 146 | this.originFrame.scale.copy(this.buffer[0].scale); 147 | this.originFrame.time = this.buffer[0].time; 148 | this.buffer[0].time = this.time + delta; 149 | } 150 | } 151 | if (this.buffer.length > 0 && this.buffer[0].time > 0) { 152 | const targetFrame = this.buffer[0]; 153 | const delta_time = targetFrame.time - this.originFrame.time; 154 | const alpha = (mark - this.originFrame.time) / delta_time; 155 | 156 | if (this.mode === MODE_LERP) { 157 | this.lerp(this.position, this.originFrame.position, targetFrame.position, alpha); 158 | } else if (this.mode === MODE_HERMITE) { 159 | this.hermite( 160 | this.position, 161 | alpha, 162 | this.originFrame.position, 163 | targetFrame.position, 164 | this.originFrame.velocity.multiplyScalar(delta_time), 165 | targetFrame.velocity.multiplyScalar(delta_time) 166 | ); 167 | } 168 | 169 | this.slerp(this.quaternion, this.originFrame.quaternion, targetFrame.quaternion, alpha); 170 | 171 | this.lerp(this.scale, this.originFrame.scale, targetFrame.scale, alpha); 172 | } 173 | } 174 | 175 | if (this.state !== INITIALIZING) { 176 | this.time += delta; 177 | } 178 | } 179 | 180 | getPosition() { 181 | return this.position; 182 | } 183 | 184 | getQuaternion() { 185 | return this.quaternion; 186 | } 187 | 188 | getScale() { 189 | return this.scale; 190 | } 191 | } 192 | 193 | module.exports = InterpolationBuffer; 194 | -------------------------------------------------------------------------------- /dist/buffered-interpolation.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 4 | 5 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 6 | 7 | /* global THREE */ 8 | 9 | var INITIALIZING = 0; 10 | var BUFFERING = 1; 11 | var PLAYING = 2; 12 | 13 | var MODE_LERP = 0; 14 | var MODE_HERMITE = 1; 15 | 16 | var vectorPool = []; 17 | var quatPool = []; 18 | var framePool = []; 19 | 20 | var getPooledVector = function getPooledVector() { 21 | return vectorPool.shift() || new THREE.Vector3(); 22 | }; 23 | var getPooledQuaternion = function getPooledQuaternion() { 24 | return quatPool.shift() || new THREE.Quaternion(); 25 | }; 26 | 27 | var getPooledFrame = function getPooledFrame() { 28 | var frame = framePool.pop(); 29 | 30 | if (!frame) { 31 | frame = { position: new THREE.Vector3(), velocity: new THREE.Vector3(), scale: new THREE.Vector3(), quaternion: new THREE.Quaternion(), time: 0 }; 32 | } 33 | 34 | return frame; 35 | }; 36 | 37 | var freeFrame = function freeFrame(f) { 38 | return framePool.push(f); 39 | }; 40 | 41 | var InterpolationBuffer = function () { 42 | function InterpolationBuffer() { 43 | var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MODE_LERP; 44 | var bufferTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15; 45 | 46 | _classCallCheck(this, InterpolationBuffer); 47 | 48 | this.state = INITIALIZING; 49 | this.buffer = []; 50 | this.bufferTime = bufferTime * 1000; 51 | this.time = 0; 52 | this.mode = mode; 53 | 54 | this.originFrame = getPooledFrame(); 55 | this.position = new THREE.Vector3(); 56 | this.quaternion = new THREE.Quaternion(); 57 | this.scale = new THREE.Vector3(1, 1, 1); 58 | } 59 | 60 | _createClass(InterpolationBuffer, [{ 61 | key: "hermite", 62 | value: function hermite(target, t, p1, p2, v1, v2) { 63 | var t2 = t * t; 64 | var t3 = t * t * t; 65 | var a = 2 * t3 - 3 * t2 + 1; 66 | var b = -2 * t3 + 3 * t2; 67 | var c = t3 - 2 * t2 + t; 68 | var d = t3 - t2; 69 | 70 | target.copy(p1.multiplyScalar(a)); 71 | target.add(p2.multiplyScalar(b)); 72 | target.add(v1.multiplyScalar(c)); 73 | target.add(v2.multiplyScalar(d)); 74 | } 75 | }, { 76 | key: "lerp", 77 | value: function lerp(target, v1, v2, alpha) { 78 | target.lerpVectors(v1, v2, alpha); 79 | } 80 | }, { 81 | key: "slerp", 82 | value: function slerp(target, r1, r2, alpha) { 83 | target.slerpQuaternions(r1, r2, alpha); 84 | } 85 | }, { 86 | key: "updateOriginFrameToBufferTail", 87 | value: function updateOriginFrameToBufferTail() { 88 | freeFrame(this.originFrame); 89 | this.originFrame = this.buffer.shift(); 90 | } 91 | }, { 92 | key: "appendBuffer", 93 | value: function appendBuffer(position, velocity, quaternion, scale) { 94 | var tail = this.buffer.length > 0 ? this.buffer[this.buffer.length - 1] : null; 95 | // update the last entry in the buffer if this is the same frame 96 | if (tail && tail.time === this.time) { 97 | if (position) { 98 | tail.position.copy(position); 99 | } 100 | 101 | if (velocity) { 102 | tail.velocity.copy(velocity); 103 | } 104 | 105 | if (quaternion) { 106 | tail.quaternion.copy(quaternion); 107 | } 108 | 109 | if (scale) { 110 | tail.scale.copy(scale); 111 | } 112 | } else { 113 | var priorFrame = tail || this.originFrame; 114 | var newFrame = getPooledFrame(); 115 | newFrame.position.copy(position || priorFrame.position); 116 | newFrame.velocity.copy(velocity || priorFrame.velocity); 117 | newFrame.quaternion.copy(quaternion || priorFrame.quaternion); 118 | newFrame.scale.copy(scale || priorFrame.scale); 119 | newFrame.time = this.time; 120 | 121 | this.buffer.push(newFrame); 122 | } 123 | } 124 | }, { 125 | key: "setTarget", 126 | value: function setTarget(position, velocity, quaternion, scale) { 127 | this.appendBuffer(position, velocity, quaternion, scale); 128 | } 129 | }, { 130 | key: "setPosition", 131 | value: function setPosition(position, velocity) { 132 | this.appendBuffer(position, velocity, null, null); 133 | } 134 | }, { 135 | key: "setQuaternion", 136 | value: function setQuaternion(quaternion) { 137 | this.appendBuffer(null, null, quaternion, null); 138 | } 139 | }, { 140 | key: "setScale", 141 | value: function setScale(scale) { 142 | this.appendBuffer(null, null, null, scale); 143 | } 144 | }, { 145 | key: "update", 146 | value: function update(delta) { 147 | if (this.state === INITIALIZING) { 148 | if (this.buffer.length > 0) { 149 | this.updateOriginFrameToBufferTail(); 150 | this.position.copy(this.originFrame.position); 151 | this.quaternion.copy(this.originFrame.quaternion); 152 | this.scale.copy(this.originFrame.scale); 153 | this.state = BUFFERING; 154 | } 155 | } 156 | 157 | if (this.state === BUFFERING) { 158 | if (this.buffer.length > 0 && this.time > this.bufferTime) { 159 | this.state = PLAYING; 160 | } 161 | } 162 | 163 | if (this.state === PLAYING) { 164 | var mark = this.time - this.bufferTime; 165 | //Purge this.buffer of expired frames 166 | while (this.buffer.length > 0 && mark > this.buffer[0].time) { 167 | //if this is the last frame in the buffer, just update the time and reuse it 168 | if (this.buffer.length > 1) { 169 | this.updateOriginFrameToBufferTail(); 170 | } else { 171 | this.originFrame.position.copy(this.buffer[0].position); 172 | this.originFrame.velocity.copy(this.buffer[0].velocity); 173 | this.originFrame.quaternion.copy(this.buffer[0].quaternion); 174 | this.originFrame.scale.copy(this.buffer[0].scale); 175 | this.originFrame.time = this.buffer[0].time; 176 | this.buffer[0].time = this.time + delta; 177 | } 178 | } 179 | if (this.buffer.length > 0 && this.buffer[0].time > 0) { 180 | var targetFrame = this.buffer[0]; 181 | var delta_time = targetFrame.time - this.originFrame.time; 182 | var alpha = (mark - this.originFrame.time) / delta_time; 183 | 184 | if (this.mode === MODE_LERP) { 185 | this.lerp(this.position, this.originFrame.position, targetFrame.position, alpha); 186 | } else if (this.mode === MODE_HERMITE) { 187 | this.hermite(this.position, alpha, this.originFrame.position, targetFrame.position, this.originFrame.velocity.multiplyScalar(delta_time), targetFrame.velocity.multiplyScalar(delta_time)); 188 | } 189 | 190 | this.slerp(this.quaternion, this.originFrame.quaternion, targetFrame.quaternion, alpha); 191 | 192 | this.lerp(this.scale, this.originFrame.scale, targetFrame.scale, alpha); 193 | } 194 | } 195 | 196 | if (this.state !== INITIALIZING) { 197 | this.time += delta; 198 | } 199 | } 200 | }, { 201 | key: "getPosition", 202 | value: function getPosition() { 203 | return this.position; 204 | } 205 | }, { 206 | key: "getQuaternion", 207 | value: function getQuaternion() { 208 | return this.quaternion; 209 | } 210 | }, { 211 | key: "getScale", 212 | value: function getScale() { 213 | return this.scale; 214 | } 215 | }]); 216 | 217 | return InterpolationBuffer; 218 | }(); 219 | 220 | module.exports = InterpolationBuffer; 221 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /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 | ansi-regex@^2.0.0: 10 | version "2.1.1" 11 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 12 | 13 | ansi-regex@^3.0.0: 14 | version "3.0.0" 15 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 16 | 17 | ansi-styles@^2.2.1: 18 | version "2.2.1" 19 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 20 | 21 | anymatch@^1.3.0: 22 | version "1.3.2" 23 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 24 | dependencies: 25 | micromatch "^2.1.5" 26 | normalize-path "^2.0.0" 27 | 28 | aproba@^1.0.3: 29 | version "1.2.0" 30 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 31 | 32 | are-we-there-yet@~1.1.2: 33 | version "1.1.5" 34 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 35 | dependencies: 36 | delegates "^1.0.0" 37 | readable-stream "^2.0.6" 38 | 39 | arr-diff@^2.0.0: 40 | version "2.0.0" 41 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 42 | dependencies: 43 | arr-flatten "^1.0.1" 44 | 45 | arr-flatten@^1.0.1: 46 | version "1.1.0" 47 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 48 | 49 | array-unique@^0.2.1: 50 | version "0.2.1" 51 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 52 | 53 | async-each@^1.0.0: 54 | version "1.0.1" 55 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 56 | 57 | babel-cli@^6.26.0: 58 | version "6.26.0" 59 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" 60 | dependencies: 61 | babel-core "^6.26.0" 62 | babel-polyfill "^6.26.0" 63 | babel-register "^6.26.0" 64 | babel-runtime "^6.26.0" 65 | commander "^2.11.0" 66 | convert-source-map "^1.5.0" 67 | fs-readdir-recursive "^1.0.0" 68 | glob "^7.1.2" 69 | lodash "^4.17.4" 70 | output-file-sync "^1.1.2" 71 | path-is-absolute "^1.0.1" 72 | slash "^1.0.0" 73 | source-map "^0.5.6" 74 | v8flags "^2.1.1" 75 | optionalDependencies: 76 | chokidar "^1.6.1" 77 | 78 | babel-code-frame@^6.26.0: 79 | version "6.26.0" 80 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 81 | dependencies: 82 | chalk "^1.1.3" 83 | esutils "^2.0.2" 84 | js-tokens "^3.0.2" 85 | 86 | babel-core@^6.26.0: 87 | version "6.26.3" 88 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" 89 | dependencies: 90 | babel-code-frame "^6.26.0" 91 | babel-generator "^6.26.0" 92 | babel-helpers "^6.24.1" 93 | babel-messages "^6.23.0" 94 | babel-register "^6.26.0" 95 | babel-runtime "^6.26.0" 96 | babel-template "^6.26.0" 97 | babel-traverse "^6.26.0" 98 | babel-types "^6.26.0" 99 | babylon "^6.18.0" 100 | convert-source-map "^1.5.1" 101 | debug "^2.6.9" 102 | json5 "^0.5.1" 103 | lodash "^4.17.4" 104 | minimatch "^3.0.4" 105 | path-is-absolute "^1.0.1" 106 | private "^0.1.8" 107 | slash "^1.0.0" 108 | source-map "^0.5.7" 109 | 110 | babel-generator@^6.26.0: 111 | version "6.26.1" 112 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 113 | dependencies: 114 | babel-messages "^6.23.0" 115 | babel-runtime "^6.26.0" 116 | babel-types "^6.26.0" 117 | detect-indent "^4.0.0" 118 | jsesc "^1.3.0" 119 | lodash "^4.17.4" 120 | source-map "^0.5.7" 121 | trim-right "^1.0.1" 122 | 123 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 124 | version "6.24.1" 125 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" 126 | dependencies: 127 | babel-helper-explode-assignable-expression "^6.24.1" 128 | babel-runtime "^6.22.0" 129 | babel-types "^6.24.1" 130 | 131 | babel-helper-call-delegate@^6.24.1: 132 | version "6.24.1" 133 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 134 | dependencies: 135 | babel-helper-hoist-variables "^6.24.1" 136 | babel-runtime "^6.22.0" 137 | babel-traverse "^6.24.1" 138 | babel-types "^6.24.1" 139 | 140 | babel-helper-define-map@^6.24.1: 141 | version "6.26.0" 142 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" 143 | dependencies: 144 | babel-helper-function-name "^6.24.1" 145 | babel-runtime "^6.26.0" 146 | babel-types "^6.26.0" 147 | lodash "^4.17.4" 148 | 149 | babel-helper-evaluate-path@^0.4.3: 150 | version "0.4.3" 151 | resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.4.3.tgz#0a89af702c06b217027fa371908dd4989d3e633f" 152 | 153 | babel-helper-explode-assignable-expression@^6.24.1: 154 | version "6.24.1" 155 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 156 | dependencies: 157 | babel-runtime "^6.22.0" 158 | babel-traverse "^6.24.1" 159 | babel-types "^6.24.1" 160 | 161 | babel-helper-flip-expressions@^0.4.3: 162 | version "0.4.3" 163 | resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz#3696736a128ac18bc25254b5f40a22ceb3c1d3fd" 164 | 165 | babel-helper-function-name@^6.24.1: 166 | version "6.24.1" 167 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 168 | dependencies: 169 | babel-helper-get-function-arity "^6.24.1" 170 | babel-runtime "^6.22.0" 171 | babel-template "^6.24.1" 172 | babel-traverse "^6.24.1" 173 | babel-types "^6.24.1" 174 | 175 | babel-helper-get-function-arity@^6.24.1: 176 | version "6.24.1" 177 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 178 | dependencies: 179 | babel-runtime "^6.22.0" 180 | babel-types "^6.24.1" 181 | 182 | babel-helper-hoist-variables@^6.24.1: 183 | version "6.24.1" 184 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 185 | dependencies: 186 | babel-runtime "^6.22.0" 187 | babel-types "^6.24.1" 188 | 189 | babel-helper-is-nodes-equiv@^0.0.1: 190 | version "0.0.1" 191 | resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" 192 | 193 | babel-helper-is-void-0@^0.4.3: 194 | version "0.4.3" 195 | resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz#7d9c01b4561e7b95dbda0f6eee48f5b60e67313e" 196 | 197 | babel-helper-mark-eval-scopes@^0.4.3: 198 | version "0.4.3" 199 | resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz#d244a3bef9844872603ffb46e22ce8acdf551562" 200 | 201 | babel-helper-optimise-call-expression@^6.24.1: 202 | version "6.24.1" 203 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 204 | dependencies: 205 | babel-runtime "^6.22.0" 206 | babel-types "^6.24.1" 207 | 208 | babel-helper-regex@^6.24.1: 209 | version "6.26.0" 210 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" 211 | dependencies: 212 | babel-runtime "^6.26.0" 213 | babel-types "^6.26.0" 214 | lodash "^4.17.4" 215 | 216 | babel-helper-remap-async-to-generator@^6.24.1: 217 | version "6.24.1" 218 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" 219 | dependencies: 220 | babel-helper-function-name "^6.24.1" 221 | babel-runtime "^6.22.0" 222 | babel-template "^6.24.1" 223 | babel-traverse "^6.24.1" 224 | babel-types "^6.24.1" 225 | 226 | babel-helper-remove-or-void@^0.4.3: 227 | version "0.4.3" 228 | resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz#a4f03b40077a0ffe88e45d07010dee241ff5ae60" 229 | 230 | babel-helper-replace-supers@^6.24.1: 231 | version "6.24.1" 232 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 233 | dependencies: 234 | babel-helper-optimise-call-expression "^6.24.1" 235 | babel-messages "^6.23.0" 236 | babel-runtime "^6.22.0" 237 | babel-template "^6.24.1" 238 | babel-traverse "^6.24.1" 239 | babel-types "^6.24.1" 240 | 241 | babel-helper-to-multiple-sequence-expressions@^0.4.3: 242 | version "0.4.3" 243 | resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.4.3.tgz#5b518b1127f47b3038773386a1561a2b48e632b6" 244 | 245 | babel-helpers@^6.24.1: 246 | version "6.24.1" 247 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 248 | dependencies: 249 | babel-runtime "^6.22.0" 250 | babel-template "^6.24.1" 251 | 252 | babel-messages@^6.23.0: 253 | version "6.23.0" 254 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 255 | dependencies: 256 | babel-runtime "^6.22.0" 257 | 258 | babel-plugin-check-es2015-constants@^6.22.0: 259 | version "6.22.0" 260 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 261 | dependencies: 262 | babel-runtime "^6.22.0" 263 | 264 | babel-plugin-minify-builtins@^0.4.3: 265 | version "0.4.3" 266 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.4.3.tgz#9ea3d59f4ac4a7bb958d712d29556a1f86f7f81e" 267 | dependencies: 268 | babel-helper-evaluate-path "^0.4.3" 269 | 270 | babel-plugin-minify-constant-folding@^0.4.3: 271 | version "0.4.3" 272 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.4.3.tgz#300f9de8dda0844a176b193653960e24ad33e191" 273 | dependencies: 274 | babel-helper-evaluate-path "^0.4.3" 275 | 276 | babel-plugin-minify-dead-code-elimination@^0.4.3: 277 | version "0.4.3" 278 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.4.3.tgz#73628265864f9008d0027506f58abeb3c1d02d98" 279 | dependencies: 280 | babel-helper-evaluate-path "^0.4.3" 281 | babel-helper-mark-eval-scopes "^0.4.3" 282 | babel-helper-remove-or-void "^0.4.3" 283 | lodash.some "^4.6.0" 284 | 285 | babel-plugin-minify-flip-comparisons@^0.4.3: 286 | version "0.4.3" 287 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz#00ca870cb8f13b45c038b3c1ebc0f227293c965a" 288 | dependencies: 289 | babel-helper-is-void-0 "^0.4.3" 290 | 291 | babel-plugin-minify-guarded-expressions@^0.4.3: 292 | version "0.4.3" 293 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.3.tgz#cc709b4453fd21b1f302877444c89f88427ce397" 294 | dependencies: 295 | babel-helper-flip-expressions "^0.4.3" 296 | 297 | babel-plugin-minify-infinity@^0.4.3: 298 | version "0.4.3" 299 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz#dfb876a1b08a06576384ef3f92e653ba607b39ca" 300 | 301 | babel-plugin-minify-mangle-names@^0.4.3: 302 | version "0.4.3" 303 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.4.3.tgz#16f1bff74b7a7c93dfc241e7831dd5fb4b023ef7" 304 | dependencies: 305 | babel-helper-mark-eval-scopes "^0.4.3" 306 | 307 | babel-plugin-minify-numeric-literals@^0.4.3: 308 | version "0.4.3" 309 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz#8e4fd561c79f7801286ff60e8c5fd9deee93c0bc" 310 | 311 | babel-plugin-minify-replace@^0.4.3: 312 | version "0.4.3" 313 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.4.3.tgz#9d289f4ba15d4e6011e8799fa5f1ba77ec81219d" 314 | 315 | babel-plugin-minify-simplify@^0.4.3: 316 | version "0.4.3" 317 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.4.3.tgz#37756d85c614464b4b0927f2b4e417191d55738a" 318 | dependencies: 319 | babel-helper-flip-expressions "^0.4.3" 320 | babel-helper-is-nodes-equiv "^0.0.1" 321 | babel-helper-to-multiple-sequence-expressions "^0.4.3" 322 | 323 | babel-plugin-minify-type-constructors@^0.4.3: 324 | version "0.4.3" 325 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz#1bc6f15b87f7ab1085d42b330b717657a2156500" 326 | dependencies: 327 | babel-helper-is-void-0 "^0.4.3" 328 | 329 | babel-plugin-syntax-async-functions@^6.8.0: 330 | version "6.13.0" 331 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 332 | 333 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 334 | version "6.13.0" 335 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 336 | 337 | babel-plugin-syntax-trailing-function-commas@^6.22.0: 338 | version "6.22.0" 339 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 340 | 341 | babel-plugin-transform-async-to-generator@^6.22.0: 342 | version "6.24.1" 343 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" 344 | dependencies: 345 | babel-helper-remap-async-to-generator "^6.24.1" 346 | babel-plugin-syntax-async-functions "^6.8.0" 347 | babel-runtime "^6.22.0" 348 | 349 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 350 | version "6.22.0" 351 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 352 | dependencies: 353 | babel-runtime "^6.22.0" 354 | 355 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 356 | version "6.22.0" 357 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 358 | dependencies: 359 | babel-runtime "^6.22.0" 360 | 361 | babel-plugin-transform-es2015-block-scoping@^6.23.0: 362 | version "6.26.0" 363 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" 364 | dependencies: 365 | babel-runtime "^6.26.0" 366 | babel-template "^6.26.0" 367 | babel-traverse "^6.26.0" 368 | babel-types "^6.26.0" 369 | lodash "^4.17.4" 370 | 371 | babel-plugin-transform-es2015-classes@^6.23.0: 372 | version "6.24.1" 373 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 374 | dependencies: 375 | babel-helper-define-map "^6.24.1" 376 | babel-helper-function-name "^6.24.1" 377 | babel-helper-optimise-call-expression "^6.24.1" 378 | babel-helper-replace-supers "^6.24.1" 379 | babel-messages "^6.23.0" 380 | babel-runtime "^6.22.0" 381 | babel-template "^6.24.1" 382 | babel-traverse "^6.24.1" 383 | babel-types "^6.24.1" 384 | 385 | babel-plugin-transform-es2015-computed-properties@^6.22.0: 386 | version "6.24.1" 387 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 388 | dependencies: 389 | babel-runtime "^6.22.0" 390 | babel-template "^6.24.1" 391 | 392 | babel-plugin-transform-es2015-destructuring@^6.23.0: 393 | version "6.23.0" 394 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 395 | dependencies: 396 | babel-runtime "^6.22.0" 397 | 398 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0: 399 | version "6.24.1" 400 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 401 | dependencies: 402 | babel-runtime "^6.22.0" 403 | babel-types "^6.24.1" 404 | 405 | babel-plugin-transform-es2015-for-of@^6.23.0: 406 | version "6.23.0" 407 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 408 | dependencies: 409 | babel-runtime "^6.22.0" 410 | 411 | babel-plugin-transform-es2015-function-name@^6.22.0: 412 | version "6.24.1" 413 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 414 | dependencies: 415 | babel-helper-function-name "^6.24.1" 416 | babel-runtime "^6.22.0" 417 | babel-types "^6.24.1" 418 | 419 | babel-plugin-transform-es2015-literals@^6.22.0: 420 | version "6.22.0" 421 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 422 | dependencies: 423 | babel-runtime "^6.22.0" 424 | 425 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: 426 | version "6.24.1" 427 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 428 | dependencies: 429 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 430 | babel-runtime "^6.22.0" 431 | babel-template "^6.24.1" 432 | 433 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 434 | version "6.26.2" 435 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" 436 | dependencies: 437 | babel-plugin-transform-strict-mode "^6.24.1" 438 | babel-runtime "^6.26.0" 439 | babel-template "^6.26.0" 440 | babel-types "^6.26.0" 441 | 442 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0: 443 | version "6.24.1" 444 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 445 | dependencies: 446 | babel-helper-hoist-variables "^6.24.1" 447 | babel-runtime "^6.22.0" 448 | babel-template "^6.24.1" 449 | 450 | babel-plugin-transform-es2015-modules-umd@^6.23.0: 451 | version "6.24.1" 452 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 453 | dependencies: 454 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 455 | babel-runtime "^6.22.0" 456 | babel-template "^6.24.1" 457 | 458 | babel-plugin-transform-es2015-object-super@^6.22.0: 459 | version "6.24.1" 460 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 461 | dependencies: 462 | babel-helper-replace-supers "^6.24.1" 463 | babel-runtime "^6.22.0" 464 | 465 | babel-plugin-transform-es2015-parameters@^6.23.0: 466 | version "6.24.1" 467 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 468 | dependencies: 469 | babel-helper-call-delegate "^6.24.1" 470 | babel-helper-get-function-arity "^6.24.1" 471 | babel-runtime "^6.22.0" 472 | babel-template "^6.24.1" 473 | babel-traverse "^6.24.1" 474 | babel-types "^6.24.1" 475 | 476 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0: 477 | version "6.24.1" 478 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 479 | dependencies: 480 | babel-runtime "^6.22.0" 481 | babel-types "^6.24.1" 482 | 483 | babel-plugin-transform-es2015-spread@^6.22.0: 484 | version "6.22.0" 485 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 486 | dependencies: 487 | babel-runtime "^6.22.0" 488 | 489 | babel-plugin-transform-es2015-sticky-regex@^6.22.0: 490 | version "6.24.1" 491 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 492 | dependencies: 493 | babel-helper-regex "^6.24.1" 494 | babel-runtime "^6.22.0" 495 | babel-types "^6.24.1" 496 | 497 | babel-plugin-transform-es2015-template-literals@^6.22.0: 498 | version "6.22.0" 499 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 500 | dependencies: 501 | babel-runtime "^6.22.0" 502 | 503 | babel-plugin-transform-es2015-typeof-symbol@^6.23.0: 504 | version "6.23.0" 505 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 506 | dependencies: 507 | babel-runtime "^6.22.0" 508 | 509 | babel-plugin-transform-es2015-unicode-regex@^6.22.0: 510 | version "6.24.1" 511 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 512 | dependencies: 513 | babel-helper-regex "^6.24.1" 514 | babel-runtime "^6.22.0" 515 | regexpu-core "^2.0.0" 516 | 517 | babel-plugin-transform-exponentiation-operator@^6.22.0: 518 | version "6.24.1" 519 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 520 | dependencies: 521 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 522 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 523 | babel-runtime "^6.22.0" 524 | 525 | babel-plugin-transform-inline-consecutive-adds@^0.4.3: 526 | version "0.4.3" 527 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" 528 | 529 | babel-plugin-transform-member-expression-literals@^6.9.4: 530 | version "6.9.4" 531 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" 532 | 533 | babel-plugin-transform-merge-sibling-variables@^6.9.4: 534 | version "6.9.4" 535 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" 536 | 537 | babel-plugin-transform-minify-booleans@^6.9.4: 538 | version "6.9.4" 539 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" 540 | 541 | babel-plugin-transform-property-literals@^6.9.4: 542 | version "6.9.4" 543 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" 544 | dependencies: 545 | esutils "^2.0.2" 546 | 547 | babel-plugin-transform-regenerator@^6.22.0: 548 | version "6.26.0" 549 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" 550 | dependencies: 551 | regenerator-transform "^0.10.0" 552 | 553 | babel-plugin-transform-regexp-constructors@^0.4.3: 554 | version "0.4.3" 555 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" 556 | 557 | babel-plugin-transform-remove-console@^6.9.4: 558 | version "6.9.4" 559 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" 560 | 561 | babel-plugin-transform-remove-debugger@^6.9.4: 562 | version "6.9.4" 563 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" 564 | 565 | babel-plugin-transform-remove-undefined@^0.4.3: 566 | version "0.4.3" 567 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.4.3.tgz#d40b0da7f91c08c06cc72b767474c01c4894de02" 568 | dependencies: 569 | babel-helper-evaluate-path "^0.4.3" 570 | 571 | babel-plugin-transform-simplify-comparison-operators@^6.9.4: 572 | version "6.9.4" 573 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" 574 | 575 | babel-plugin-transform-strict-mode@^6.24.1: 576 | version "6.24.1" 577 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 578 | dependencies: 579 | babel-runtime "^6.22.0" 580 | babel-types "^6.24.1" 581 | 582 | babel-plugin-transform-undefined-to-void@^6.9.4: 583 | version "6.9.4" 584 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" 585 | 586 | babel-polyfill@^6.26.0: 587 | version "6.26.0" 588 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" 589 | dependencies: 590 | babel-runtime "^6.26.0" 591 | core-js "^2.5.0" 592 | regenerator-runtime "^0.10.5" 593 | 594 | babel-preset-env@^1.7.0: 595 | version "1.7.0" 596 | resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" 597 | dependencies: 598 | babel-plugin-check-es2015-constants "^6.22.0" 599 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 600 | babel-plugin-transform-async-to-generator "^6.22.0" 601 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 602 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 603 | babel-plugin-transform-es2015-block-scoping "^6.23.0" 604 | babel-plugin-transform-es2015-classes "^6.23.0" 605 | babel-plugin-transform-es2015-computed-properties "^6.22.0" 606 | babel-plugin-transform-es2015-destructuring "^6.23.0" 607 | babel-plugin-transform-es2015-duplicate-keys "^6.22.0" 608 | babel-plugin-transform-es2015-for-of "^6.23.0" 609 | babel-plugin-transform-es2015-function-name "^6.22.0" 610 | babel-plugin-transform-es2015-literals "^6.22.0" 611 | babel-plugin-transform-es2015-modules-amd "^6.22.0" 612 | babel-plugin-transform-es2015-modules-commonjs "^6.23.0" 613 | babel-plugin-transform-es2015-modules-systemjs "^6.23.0" 614 | babel-plugin-transform-es2015-modules-umd "^6.23.0" 615 | babel-plugin-transform-es2015-object-super "^6.22.0" 616 | babel-plugin-transform-es2015-parameters "^6.23.0" 617 | babel-plugin-transform-es2015-shorthand-properties "^6.22.0" 618 | babel-plugin-transform-es2015-spread "^6.22.0" 619 | babel-plugin-transform-es2015-sticky-regex "^6.22.0" 620 | babel-plugin-transform-es2015-template-literals "^6.22.0" 621 | babel-plugin-transform-es2015-typeof-symbol "^6.23.0" 622 | babel-plugin-transform-es2015-unicode-regex "^6.22.0" 623 | babel-plugin-transform-exponentiation-operator "^6.22.0" 624 | babel-plugin-transform-regenerator "^6.22.0" 625 | browserslist "^3.2.6" 626 | invariant "^2.2.2" 627 | semver "^5.3.0" 628 | 629 | babel-preset-minify@^0.4.3: 630 | version "0.4.3" 631 | resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.4.3.tgz#b29c3dd6918905384598f092b955152e26a1fe0f" 632 | dependencies: 633 | babel-plugin-minify-builtins "^0.4.3" 634 | babel-plugin-minify-constant-folding "^0.4.3" 635 | babel-plugin-minify-dead-code-elimination "^0.4.3" 636 | babel-plugin-minify-flip-comparisons "^0.4.3" 637 | babel-plugin-minify-guarded-expressions "^0.4.3" 638 | babel-plugin-minify-infinity "^0.4.3" 639 | babel-plugin-minify-mangle-names "^0.4.3" 640 | babel-plugin-minify-numeric-literals "^0.4.3" 641 | babel-plugin-minify-replace "^0.4.3" 642 | babel-plugin-minify-simplify "^0.4.3" 643 | babel-plugin-minify-type-constructors "^0.4.3" 644 | babel-plugin-transform-inline-consecutive-adds "^0.4.3" 645 | babel-plugin-transform-member-expression-literals "^6.9.4" 646 | babel-plugin-transform-merge-sibling-variables "^6.9.4" 647 | babel-plugin-transform-minify-booleans "^6.9.4" 648 | babel-plugin-transform-property-literals "^6.9.4" 649 | babel-plugin-transform-regexp-constructors "^0.4.3" 650 | babel-plugin-transform-remove-console "^6.9.4" 651 | babel-plugin-transform-remove-debugger "^6.9.4" 652 | babel-plugin-transform-remove-undefined "^0.4.3" 653 | babel-plugin-transform-simplify-comparison-operators "^6.9.4" 654 | babel-plugin-transform-undefined-to-void "^6.9.4" 655 | lodash.isplainobject "^4.0.6" 656 | 657 | babel-register@^6.26.0: 658 | version "6.26.0" 659 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 660 | dependencies: 661 | babel-core "^6.26.0" 662 | babel-runtime "^6.26.0" 663 | core-js "^2.5.0" 664 | home-or-tmp "^2.0.0" 665 | lodash "^4.17.4" 666 | mkdirp "^0.5.1" 667 | source-map-support "^0.4.15" 668 | 669 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: 670 | version "6.26.0" 671 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 672 | dependencies: 673 | core-js "^2.4.0" 674 | regenerator-runtime "^0.11.0" 675 | 676 | babel-template@^6.24.1, babel-template@^6.26.0: 677 | version "6.26.0" 678 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 679 | dependencies: 680 | babel-runtime "^6.26.0" 681 | babel-traverse "^6.26.0" 682 | babel-types "^6.26.0" 683 | babylon "^6.18.0" 684 | lodash "^4.17.4" 685 | 686 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: 687 | version "6.26.0" 688 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 689 | dependencies: 690 | babel-code-frame "^6.26.0" 691 | babel-messages "^6.23.0" 692 | babel-runtime "^6.26.0" 693 | babel-types "^6.26.0" 694 | babylon "^6.18.0" 695 | debug "^2.6.8" 696 | globals "^9.18.0" 697 | invariant "^2.2.2" 698 | lodash "^4.17.4" 699 | 700 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: 701 | version "6.26.0" 702 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 703 | dependencies: 704 | babel-runtime "^6.26.0" 705 | esutils "^2.0.2" 706 | lodash "^4.17.4" 707 | to-fast-properties "^1.0.3" 708 | 709 | babylon@^6.18.0: 710 | version "6.18.0" 711 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 712 | 713 | balanced-match@^1.0.0: 714 | version "1.0.0" 715 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 716 | 717 | binary-extensions@^1.0.0: 718 | version "1.11.0" 719 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 720 | 721 | brace-expansion@^1.1.7: 722 | version "1.1.11" 723 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 724 | dependencies: 725 | balanced-match "^1.0.0" 726 | concat-map "0.0.1" 727 | 728 | braces@^1.8.2: 729 | version "1.8.5" 730 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 731 | dependencies: 732 | expand-range "^1.8.1" 733 | preserve "^0.2.0" 734 | repeat-element "^1.1.2" 735 | 736 | browserslist@^3.2.6: 737 | version "3.2.8" 738 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" 739 | dependencies: 740 | caniuse-lite "^1.0.30000844" 741 | electron-to-chromium "^1.3.47" 742 | 743 | caniuse-lite@^1.0.30000844: 744 | version "1.0.30000858" 745 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000858.tgz#f6f203a9128bac507136de1cf6cfd966d2df027c" 746 | 747 | chalk@^1.1.3: 748 | version "1.1.3" 749 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 750 | dependencies: 751 | ansi-styles "^2.2.1" 752 | escape-string-regexp "^1.0.2" 753 | has-ansi "^2.0.0" 754 | strip-ansi "^3.0.0" 755 | supports-color "^2.0.0" 756 | 757 | chokidar@^1.6.1: 758 | version "1.7.0" 759 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 760 | dependencies: 761 | anymatch "^1.3.0" 762 | async-each "^1.0.0" 763 | glob-parent "^2.0.0" 764 | inherits "^2.0.1" 765 | is-binary-path "^1.0.0" 766 | is-glob "^2.0.0" 767 | path-is-absolute "^1.0.0" 768 | readdirp "^2.0.0" 769 | optionalDependencies: 770 | fsevents "^1.0.0" 771 | 772 | chownr@^1.0.1: 773 | version "1.0.1" 774 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" 775 | 776 | code-point-at@^1.0.0: 777 | version "1.1.0" 778 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 779 | 780 | commander@^2.11.0: 781 | version "2.15.1" 782 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 783 | 784 | concat-map@0.0.1: 785 | version "0.0.1" 786 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 787 | 788 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 789 | version "1.1.0" 790 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 791 | 792 | convert-source-map@^1.5.0, convert-source-map@^1.5.1: 793 | version "1.5.1" 794 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 795 | 796 | core-js@^2.4.0, core-js@^2.5.0: 797 | version "2.5.7" 798 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 799 | 800 | core-util-is@~1.0.0: 801 | version "1.0.2" 802 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 803 | 804 | debug@^2.1.2, debug@^2.6.8, debug@^2.6.9: 805 | version "2.6.9" 806 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 807 | dependencies: 808 | ms "2.0.0" 809 | 810 | deep-extend@^0.6.0: 811 | version "0.6.0" 812 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 813 | 814 | delegates@^1.0.0: 815 | version "1.0.0" 816 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 817 | 818 | detect-indent@^4.0.0: 819 | version "4.0.0" 820 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 821 | dependencies: 822 | repeating "^2.0.0" 823 | 824 | detect-libc@^1.0.2: 825 | version "1.0.3" 826 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 827 | 828 | electron-to-chromium@^1.3.47: 829 | version "1.3.50" 830 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz#7438b76f92b41b919f3fbdd350fbd0757dacddf7" 831 | 832 | escape-string-regexp@^1.0.2: 833 | version "1.0.5" 834 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 835 | 836 | esutils@^2.0.2: 837 | version "2.0.2" 838 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 839 | 840 | expand-brackets@^0.1.4: 841 | version "0.1.5" 842 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 843 | dependencies: 844 | is-posix-bracket "^0.1.0" 845 | 846 | expand-range@^1.8.1: 847 | version "1.8.2" 848 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 849 | dependencies: 850 | fill-range "^2.1.0" 851 | 852 | extglob@^0.3.1: 853 | version "0.3.2" 854 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 855 | dependencies: 856 | is-extglob "^1.0.0" 857 | 858 | filename-regex@^2.0.0: 859 | version "2.0.1" 860 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 861 | 862 | fill-range@^2.1.0: 863 | version "2.2.4" 864 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" 865 | dependencies: 866 | is-number "^2.1.0" 867 | isobject "^2.0.0" 868 | randomatic "^3.0.0" 869 | repeat-element "^1.1.2" 870 | repeat-string "^1.5.2" 871 | 872 | for-in@^1.0.1: 873 | version "1.0.2" 874 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 875 | 876 | for-own@^0.1.4: 877 | version "0.1.5" 878 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 879 | dependencies: 880 | for-in "^1.0.1" 881 | 882 | fs-minipass@^1.2.5: 883 | version "1.2.5" 884 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 885 | dependencies: 886 | minipass "^2.2.1" 887 | 888 | fs-readdir-recursive@^1.0.0: 889 | version "1.1.0" 890 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" 891 | 892 | fs.realpath@^1.0.0: 893 | version "1.0.0" 894 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 895 | 896 | fsevents@^1.0.0: 897 | version "1.2.4" 898 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 899 | dependencies: 900 | nan "^2.9.2" 901 | node-pre-gyp "^0.10.0" 902 | 903 | gauge@~2.7.3: 904 | version "2.7.4" 905 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 906 | dependencies: 907 | aproba "^1.0.3" 908 | console-control-strings "^1.0.0" 909 | has-unicode "^2.0.0" 910 | object-assign "^4.1.0" 911 | signal-exit "^3.0.0" 912 | string-width "^1.0.1" 913 | strip-ansi "^3.0.1" 914 | wide-align "^1.1.0" 915 | 916 | glob-base@^0.3.0: 917 | version "0.3.0" 918 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 919 | dependencies: 920 | glob-parent "^2.0.0" 921 | is-glob "^2.0.0" 922 | 923 | glob-parent@^2.0.0: 924 | version "2.0.0" 925 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 926 | dependencies: 927 | is-glob "^2.0.0" 928 | 929 | glob@^7.0.5, glob@^7.1.2: 930 | version "7.1.2" 931 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 932 | dependencies: 933 | fs.realpath "^1.0.0" 934 | inflight "^1.0.4" 935 | inherits "2" 936 | minimatch "^3.0.4" 937 | once "^1.3.0" 938 | path-is-absolute "^1.0.0" 939 | 940 | globals@^9.18.0: 941 | version "9.18.0" 942 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 943 | 944 | graceful-fs@^4.1.2, graceful-fs@^4.1.4: 945 | version "4.1.11" 946 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 947 | 948 | has-ansi@^2.0.0: 949 | version "2.0.0" 950 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 951 | dependencies: 952 | ansi-regex "^2.0.0" 953 | 954 | has-unicode@^2.0.0: 955 | version "2.0.1" 956 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 957 | 958 | home-or-tmp@^2.0.0: 959 | version "2.0.0" 960 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 961 | dependencies: 962 | os-homedir "^1.0.0" 963 | os-tmpdir "^1.0.1" 964 | 965 | iconv-lite@^0.4.4: 966 | version "0.4.23" 967 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 968 | dependencies: 969 | safer-buffer ">= 2.1.2 < 3" 970 | 971 | ignore-walk@^3.0.1: 972 | version "3.0.1" 973 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 974 | dependencies: 975 | minimatch "^3.0.4" 976 | 977 | inflight@^1.0.4: 978 | version "1.0.6" 979 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 980 | dependencies: 981 | once "^1.3.0" 982 | wrappy "1" 983 | 984 | inherits@2, inherits@^2.0.1, inherits@~2.0.3: 985 | version "2.0.3" 986 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 987 | 988 | ini@~1.3.0: 989 | version "1.3.5" 990 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 991 | 992 | invariant@^2.2.2: 993 | version "2.2.4" 994 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 995 | dependencies: 996 | loose-envify "^1.0.0" 997 | 998 | is-binary-path@^1.0.0: 999 | version "1.0.1" 1000 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1001 | dependencies: 1002 | binary-extensions "^1.0.0" 1003 | 1004 | is-buffer@^1.1.5: 1005 | version "1.1.6" 1006 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1007 | 1008 | is-dotfile@^1.0.0: 1009 | version "1.0.3" 1010 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1011 | 1012 | is-equal-shallow@^0.1.3: 1013 | version "0.1.3" 1014 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1015 | dependencies: 1016 | is-primitive "^2.0.0" 1017 | 1018 | is-extendable@^0.1.1: 1019 | version "0.1.1" 1020 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1021 | 1022 | is-extglob@^1.0.0: 1023 | version "1.0.0" 1024 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1025 | 1026 | is-finite@^1.0.0: 1027 | version "1.0.2" 1028 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1029 | dependencies: 1030 | number-is-nan "^1.0.0" 1031 | 1032 | is-fullwidth-code-point@^1.0.0: 1033 | version "1.0.0" 1034 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1035 | dependencies: 1036 | number-is-nan "^1.0.0" 1037 | 1038 | is-fullwidth-code-point@^2.0.0: 1039 | version "2.0.0" 1040 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1041 | 1042 | is-glob@^2.0.0, is-glob@^2.0.1: 1043 | version "2.0.1" 1044 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1045 | dependencies: 1046 | is-extglob "^1.0.0" 1047 | 1048 | is-number@^2.1.0: 1049 | version "2.1.0" 1050 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1051 | dependencies: 1052 | kind-of "^3.0.2" 1053 | 1054 | is-number@^4.0.0: 1055 | version "4.0.0" 1056 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" 1057 | 1058 | is-posix-bracket@^0.1.0: 1059 | version "0.1.1" 1060 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1061 | 1062 | is-primitive@^2.0.0: 1063 | version "2.0.0" 1064 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1065 | 1066 | isarray@1.0.0, isarray@~1.0.0: 1067 | version "1.0.0" 1068 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1069 | 1070 | isobject@^2.0.0: 1071 | version "2.1.0" 1072 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1073 | dependencies: 1074 | isarray "1.0.0" 1075 | 1076 | js-tokens@^3.0.0, js-tokens@^3.0.2: 1077 | version "3.0.2" 1078 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1079 | 1080 | jsesc@^1.3.0: 1081 | version "1.3.0" 1082 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1083 | 1084 | jsesc@~0.5.0: 1085 | version "0.5.0" 1086 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1087 | 1088 | json5@^0.5.1: 1089 | version "0.5.1" 1090 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1091 | 1092 | kind-of@^3.0.2: 1093 | version "3.2.2" 1094 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1095 | dependencies: 1096 | is-buffer "^1.1.5" 1097 | 1098 | kind-of@^6.0.0: 1099 | version "6.0.2" 1100 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1101 | 1102 | lodash.isplainobject@^4.0.6: 1103 | version "4.0.6" 1104 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1105 | 1106 | lodash.some@^4.6.0: 1107 | version "4.6.0" 1108 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" 1109 | 1110 | lodash@^4.17.4: 1111 | version "4.17.10" 1112 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 1113 | 1114 | loose-envify@^1.0.0: 1115 | version "1.3.1" 1116 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 1117 | dependencies: 1118 | js-tokens "^3.0.0" 1119 | 1120 | math-random@^1.0.1: 1121 | version "1.0.1" 1122 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" 1123 | 1124 | micromatch@^2.1.5: 1125 | version "2.3.11" 1126 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1127 | dependencies: 1128 | arr-diff "^2.0.0" 1129 | array-unique "^0.2.1" 1130 | braces "^1.8.2" 1131 | expand-brackets "^0.1.4" 1132 | extglob "^0.3.1" 1133 | filename-regex "^2.0.0" 1134 | is-extglob "^1.0.0" 1135 | is-glob "^2.0.1" 1136 | kind-of "^3.0.2" 1137 | normalize-path "^2.0.1" 1138 | object.omit "^2.0.0" 1139 | parse-glob "^3.0.4" 1140 | regex-cache "^0.4.2" 1141 | 1142 | minimatch@^3.0.2, minimatch@^3.0.4: 1143 | version "3.0.4" 1144 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1145 | dependencies: 1146 | brace-expansion "^1.1.7" 1147 | 1148 | minimist@0.0.8: 1149 | version "0.0.8" 1150 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1151 | 1152 | minimist@^1.2.0: 1153 | version "1.2.0" 1154 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1155 | 1156 | minipass@^2.2.1, minipass@^2.3.3: 1157 | version "2.3.3" 1158 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" 1159 | dependencies: 1160 | safe-buffer "^5.1.2" 1161 | yallist "^3.0.0" 1162 | 1163 | minizlib@^1.1.0: 1164 | version "1.1.0" 1165 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" 1166 | dependencies: 1167 | minipass "^2.2.1" 1168 | 1169 | mkdirp@^0.5.0, mkdirp@^0.5.1: 1170 | version "0.5.1" 1171 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1172 | dependencies: 1173 | minimist "0.0.8" 1174 | 1175 | ms@2.0.0: 1176 | version "2.0.0" 1177 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1178 | 1179 | nan@^2.9.2: 1180 | version "2.10.0" 1181 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 1182 | 1183 | needle@^2.2.0: 1184 | version "2.2.1" 1185 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" 1186 | dependencies: 1187 | debug "^2.1.2" 1188 | iconv-lite "^0.4.4" 1189 | sax "^1.2.4" 1190 | 1191 | node-pre-gyp@^0.10.0: 1192 | version "0.10.0" 1193 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" 1194 | dependencies: 1195 | detect-libc "^1.0.2" 1196 | mkdirp "^0.5.1" 1197 | needle "^2.2.0" 1198 | nopt "^4.0.1" 1199 | npm-packlist "^1.1.6" 1200 | npmlog "^4.0.2" 1201 | rc "^1.1.7" 1202 | rimraf "^2.6.1" 1203 | semver "^5.3.0" 1204 | tar "^4" 1205 | 1206 | nopt@^4.0.1: 1207 | version "4.0.1" 1208 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1209 | dependencies: 1210 | abbrev "1" 1211 | osenv "^0.1.4" 1212 | 1213 | normalize-path@^2.0.0, normalize-path@^2.0.1: 1214 | version "2.1.1" 1215 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1216 | dependencies: 1217 | remove-trailing-separator "^1.0.1" 1218 | 1219 | npm-bundled@^1.0.1: 1220 | version "1.0.3" 1221 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" 1222 | 1223 | npm-packlist@^1.1.6: 1224 | version "1.1.10" 1225 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" 1226 | dependencies: 1227 | ignore-walk "^3.0.1" 1228 | npm-bundled "^1.0.1" 1229 | 1230 | npmlog@^4.0.2: 1231 | version "4.1.2" 1232 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1233 | dependencies: 1234 | are-we-there-yet "~1.1.2" 1235 | console-control-strings "~1.1.0" 1236 | gauge "~2.7.3" 1237 | set-blocking "~2.0.0" 1238 | 1239 | number-is-nan@^1.0.0: 1240 | version "1.0.1" 1241 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1242 | 1243 | object-assign@^4.1.0: 1244 | version "4.1.1" 1245 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1246 | 1247 | object.omit@^2.0.0: 1248 | version "2.0.1" 1249 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1250 | dependencies: 1251 | for-own "^0.1.4" 1252 | is-extendable "^0.1.1" 1253 | 1254 | once@^1.3.0: 1255 | version "1.4.0" 1256 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1257 | dependencies: 1258 | wrappy "1" 1259 | 1260 | os-homedir@^1.0.0: 1261 | version "1.0.2" 1262 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1263 | 1264 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 1265 | version "1.0.2" 1266 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1267 | 1268 | osenv@^0.1.4: 1269 | version "0.1.5" 1270 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 1271 | dependencies: 1272 | os-homedir "^1.0.0" 1273 | os-tmpdir "^1.0.0" 1274 | 1275 | output-file-sync@^1.1.2: 1276 | version "1.1.2" 1277 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 1278 | dependencies: 1279 | graceful-fs "^4.1.4" 1280 | mkdirp "^0.5.1" 1281 | object-assign "^4.1.0" 1282 | 1283 | parse-glob@^3.0.4: 1284 | version "3.0.4" 1285 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1286 | dependencies: 1287 | glob-base "^0.3.0" 1288 | is-dotfile "^1.0.0" 1289 | is-extglob "^1.0.0" 1290 | is-glob "^2.0.0" 1291 | 1292 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 1293 | version "1.0.1" 1294 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1295 | 1296 | preserve@^0.2.0: 1297 | version "0.2.0" 1298 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1299 | 1300 | private@^0.1.6, private@^0.1.8: 1301 | version "0.1.8" 1302 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 1303 | 1304 | process-nextick-args@~2.0.0: 1305 | version "2.0.0" 1306 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1307 | 1308 | randomatic@^3.0.0: 1309 | version "3.0.0" 1310 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" 1311 | dependencies: 1312 | is-number "^4.0.0" 1313 | kind-of "^6.0.0" 1314 | math-random "^1.0.1" 1315 | 1316 | rc@^1.1.7: 1317 | version "1.2.8" 1318 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1319 | dependencies: 1320 | deep-extend "^0.6.0" 1321 | ini "~1.3.0" 1322 | minimist "^1.2.0" 1323 | strip-json-comments "~2.0.1" 1324 | 1325 | readable-stream@^2.0.2, readable-stream@^2.0.6: 1326 | version "2.3.6" 1327 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1328 | dependencies: 1329 | core-util-is "~1.0.0" 1330 | inherits "~2.0.3" 1331 | isarray "~1.0.0" 1332 | process-nextick-args "~2.0.0" 1333 | safe-buffer "~5.1.1" 1334 | string_decoder "~1.1.1" 1335 | util-deprecate "~1.0.1" 1336 | 1337 | readdirp@^2.0.0: 1338 | version "2.1.0" 1339 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1340 | dependencies: 1341 | graceful-fs "^4.1.2" 1342 | minimatch "^3.0.2" 1343 | readable-stream "^2.0.2" 1344 | set-immediate-shim "^1.0.1" 1345 | 1346 | regenerate@^1.2.1: 1347 | version "1.4.0" 1348 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 1349 | 1350 | regenerator-runtime@^0.10.5: 1351 | version "0.10.5" 1352 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 1353 | 1354 | regenerator-runtime@^0.11.0: 1355 | version "0.11.1" 1356 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 1357 | 1358 | regenerator-transform@^0.10.0: 1359 | version "0.10.1" 1360 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" 1361 | dependencies: 1362 | babel-runtime "^6.18.0" 1363 | babel-types "^6.19.0" 1364 | private "^0.1.6" 1365 | 1366 | regex-cache@^0.4.2: 1367 | version "0.4.4" 1368 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 1369 | dependencies: 1370 | is-equal-shallow "^0.1.3" 1371 | 1372 | regexpu-core@^2.0.0: 1373 | version "2.0.0" 1374 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 1375 | dependencies: 1376 | regenerate "^1.2.1" 1377 | regjsgen "^0.2.0" 1378 | regjsparser "^0.1.4" 1379 | 1380 | regjsgen@^0.2.0: 1381 | version "0.2.0" 1382 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 1383 | 1384 | regjsparser@^0.1.4: 1385 | version "0.1.5" 1386 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 1387 | dependencies: 1388 | jsesc "~0.5.0" 1389 | 1390 | remove-trailing-separator@^1.0.1: 1391 | version "1.1.0" 1392 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1393 | 1394 | repeat-element@^1.1.2: 1395 | version "1.1.2" 1396 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1397 | 1398 | repeat-string@^1.5.2: 1399 | version "1.6.1" 1400 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1401 | 1402 | repeating@^2.0.0: 1403 | version "2.0.1" 1404 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 1405 | dependencies: 1406 | is-finite "^1.0.0" 1407 | 1408 | rimraf@^2.6.1: 1409 | version "2.6.2" 1410 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1411 | dependencies: 1412 | glob "^7.0.5" 1413 | 1414 | safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1415 | version "5.1.2" 1416 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1417 | 1418 | "safer-buffer@>= 2.1.2 < 3": 1419 | version "2.1.2" 1420 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1421 | 1422 | sax@^1.2.4: 1423 | version "1.2.4" 1424 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1425 | 1426 | semver@^5.3.0: 1427 | version "5.5.0" 1428 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1429 | 1430 | set-blocking@~2.0.0: 1431 | version "2.0.0" 1432 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1433 | 1434 | set-immediate-shim@^1.0.1: 1435 | version "1.0.1" 1436 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1437 | 1438 | signal-exit@^3.0.0: 1439 | version "3.0.2" 1440 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1441 | 1442 | slash@^1.0.0: 1443 | version "1.0.0" 1444 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 1445 | 1446 | source-map-support@^0.4.15: 1447 | version "0.4.18" 1448 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 1449 | dependencies: 1450 | source-map "^0.5.6" 1451 | 1452 | source-map@^0.5.6, source-map@^0.5.7: 1453 | version "0.5.7" 1454 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1455 | 1456 | string-width@^1.0.1: 1457 | version "1.0.2" 1458 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1459 | dependencies: 1460 | code-point-at "^1.0.0" 1461 | is-fullwidth-code-point "^1.0.0" 1462 | strip-ansi "^3.0.0" 1463 | 1464 | "string-width@^1.0.2 || 2": 1465 | version "2.1.1" 1466 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1467 | dependencies: 1468 | is-fullwidth-code-point "^2.0.0" 1469 | strip-ansi "^4.0.0" 1470 | 1471 | string_decoder@~1.1.1: 1472 | version "1.1.1" 1473 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1474 | dependencies: 1475 | safe-buffer "~5.1.0" 1476 | 1477 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1478 | version "3.0.1" 1479 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1480 | dependencies: 1481 | ansi-regex "^2.0.0" 1482 | 1483 | strip-ansi@^4.0.0: 1484 | version "4.0.0" 1485 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1486 | dependencies: 1487 | ansi-regex "^3.0.0" 1488 | 1489 | strip-json-comments@~2.0.1: 1490 | version "2.0.1" 1491 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1492 | 1493 | supports-color@^2.0.0: 1494 | version "2.0.0" 1495 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1496 | 1497 | tar@^4: 1498 | version "4.4.4" 1499 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" 1500 | dependencies: 1501 | chownr "^1.0.1" 1502 | fs-minipass "^1.2.5" 1503 | minipass "^2.3.3" 1504 | minizlib "^1.1.0" 1505 | mkdirp "^0.5.0" 1506 | safe-buffer "^5.1.2" 1507 | yallist "^3.0.2" 1508 | 1509 | to-fast-properties@^1.0.3: 1510 | version "1.0.3" 1511 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 1512 | 1513 | trim-right@^1.0.1: 1514 | version "1.0.1" 1515 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1516 | 1517 | user-home@^1.1.1: 1518 | version "1.1.1" 1519 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 1520 | 1521 | util-deprecate@~1.0.1: 1522 | version "1.0.2" 1523 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1524 | 1525 | v8flags@^2.1.1: 1526 | version "2.1.1" 1527 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 1528 | dependencies: 1529 | user-home "^1.1.1" 1530 | 1531 | wide-align@^1.1.0: 1532 | version "1.1.3" 1533 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 1534 | dependencies: 1535 | string-width "^1.0.2 || 2" 1536 | 1537 | wrappy@1: 1538 | version "1.0.2" 1539 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1540 | 1541 | yallist@^3.0.0, yallist@^3.0.2: 1542 | version "3.0.2" 1543 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 1544 | --------------------------------------------------------------------------------