├── .eslintrc.yaml ├── .gitignore ├── .npmignore ├── LISCENSE ├── README.md ├── docs ├── bomb7.svg ├── d3-exploder.js ├── index.html └── us.json ├── index.js ├── package.json ├── src └── exploder.js └── yarn.lock /.eslintrc.yaml: -------------------------------------------------------------------------------- 1 | parserOptions: 2 | sourceType: module 3 | 4 | env: 5 | es6: true 6 | browser: true 7 | 8 | extends: 9 | "eslint:recommended" 10 | 11 | rules: 12 | no-cond-assign: 0 13 | no-constant-condition: 0 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | build/* 3 | .vscode -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | test/* 3 | .vscode/* 4 | docs/* -------------------------------------------------------------------------------- /LISCENSE: -------------------------------------------------------------------------------- 1 | D3 Exploder! extension 2 | Ben Southgate 3 | 4 | Copyright (c) 2017 Benjamin Southgate 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # `d3-exploder` 2 | 3 | [![npm version](https://badge.fury.io/js/d3-exploder.svg)](https://badge.fury.io/js/d3-exploder) 4 | 5 | ### Make your d3 maps explode 6 | 7 | A tiny d3 extension which lets you turn your maps into other types of charts! 8 | 9 | [See examples here](http://bsouthga.github.io/d3-exploder/) 10 | 11 | [Another example brought up by a user](https://jsfiddle.net/9Lpcm56n/16/) 12 | 13 | 14 | ### Installation 15 | 16 | `d3-exploder` can be installed via `npm` 17 | 18 | ``` 19 | npm install d3-exploder 20 | ``` 21 | 22 | **Note:** 23 | 24 | d3-exploder >= 2.0.0 supports d3 v4. For use with d3 v3, install version 1 of d3-exploder. 25 | 26 | ### Usage 27 | 28 | 29 | ```javascript 30 | import * as d3 from 'd3'; 31 | import { exploder } from 'd3-exploder'; 32 | 33 | 34 | 35 | // Create an exploder function 36 | var exploder = exploder() 37 | .projection(d3.geoAlbersUsa().scale(width)) 38 | .size(function(d, i) { 39 | // function new size of features in pixels 40 | }) 41 | .position(function(d, index) { 42 | // function returning array [x, y] 43 | // which specifies the position of 44 | // the features in the svg 45 | }); 46 | 47 | // Call exploder, optionally in a transition 48 | 49 | var width = 960, 50 | height = 500, 51 | centered; 52 | 53 | var projection = d3.geoAlbersUsa().scale(width); 54 | 55 | var path = d3.geoPath() 56 | .projection(projection); 57 | 58 | var svg = d3.select("body").append("svg") 59 | .attr("width", width) 60 | .attr("height", height); 61 | 62 | var g = svg.append("g"); 63 | 64 | 65 | d3.json("us.json", function(error, us) { 66 | 67 | var state_features = topojson.feature(us, us.objects.states).features; 68 | 69 | var scale = d3.scaleLinear() 70 | .domain([0, state_features.length]) 71 | .range([0, 360]); 72 | 73 | var states = g.append("g") 74 | .attr("id", "states") 75 | .selectAll("path") 76 | .data(state_features) 77 | .enter().append("path") 78 | .attr("d", path); 79 | 80 | var exploder = d3.exploder() 81 | .projection(projection) 82 | .size(function(d, i) { return 40; }); 83 | 84 | d3.select("#shuffle").on('click', function() { 85 | var rand = d3.shuffle(d3.range(state_features.length)); 86 | states.transition() 87 | .duration(500) 88 | .call( 89 | exploder.position(function(d, index) { 90 | var i = rand[index]; 91 | return [120 + (i%10)*60, 40 + Math.floor(i/10)*60]; 92 | }) 93 | ); 94 | }); 95 | 96 | }); 97 | ``` 98 | -------------------------------------------------------------------------------- /docs/bomb7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 18 | 24 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /docs/d3-exploder.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-geo')) : 3 | typeof define === 'function' && define.amd ? define(['exports', 'd3-geo'], factory) : 4 | (factory((global.d3 = global.d3 || {}),global.d3)); 5 | }(this, (function (exports,d3Geo) { 'use strict'; 6 | 7 | var version = '2.0.0'; 8 | 9 | 10 | /** 11 | * getter/setter methods for exploder object 12 | */ 13 | var methods = [ 14 | "size", 15 | "position", 16 | "projection" 17 | ]; 18 | 19 | 20 | function error(message) { 21 | throw new Error("d3-exploder: " + message); 22 | } 23 | 24 | 25 | function exploder() { 26 | 27 | 28 | var path = d3Geo.geoPath(); 29 | 30 | 31 | // create getters / setters 32 | var state = {}; 33 | methods.forEach(function(option) { 34 | explode[option] = function(value) { 35 | if (!arguments.length) return state[option]; 36 | if (!(value instanceof Function)) error(option + " needs to be a function."); 37 | state[option] = value; 38 | return explode; 39 | }; 40 | }); 41 | 42 | 43 | function explode(selection) { 44 | 45 | 46 | // check for necessary parameters 47 | methods.forEach(function(option) { 48 | if (!state[option]) error(option + " not provided to exploder."); 49 | }); 50 | 51 | 52 | // local references to configuration 53 | var projection = state.projection, 54 | size = state.size, 55 | position = state.position, 56 | scale = projection.scale(), 57 | cache = {}; 58 | 59 | 60 | // update projection of path function 61 | path.projection(projection); 62 | 63 | 64 | // the order of the attribute changes matters! 65 | // setting 'd' caches the new scale which is used 66 | // in the transform change 67 | selection 68 | .attr('d', function(d, i) { 69 | // compute size based on user functions 70 | var sz = size(d, i); 71 | 72 | // calculate new scale for projection based on desired 73 | // pixel size of feature 74 | projection.scale(scale); 75 | 76 | var bounds = path.bounds(d); 77 | var w = bounds[1][0] - bounds[0][0]; 78 | var h = bounds[1][1] - bounds[0][1]; 79 | var sc = cache[i] = Math.min(sz / h, sz / w); 80 | 81 | // scale projection to desired size 82 | projection.scale(scale * sc); 83 | 84 | // return scaled path 85 | return path(d); 86 | }) 87 | .attr("transform", function(d, i) { 88 | // update projection with cached scale 89 | projection.scale(scale * cache[i]); 90 | 91 | var center = path.centroid(d); 92 | var desired = position(d, i); 93 | var translate = [desired[0] - center[0], desired[1] - center[1]]; 94 | 95 | // return desired coordinates offset by centroid 96 | return "translate(" + translate + ")"; 97 | }); 98 | 99 | 100 | // reset scale for projection 101 | projection.scale(scale); 102 | } 103 | 104 | 105 | // return configurable exploder function 106 | return explode; 107 | } 108 | 109 | exports.exploder = exploder; 110 | exports.version = version; 111 | 112 | Object.defineProperty(exports, '__esModule', { value: true }); 113 | 114 | }))); 115 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | d3-exploder 6 | 7 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | Fork me on GitHub 93 | 94 |
95 | 96 | view on github 97 |

d3-exploder

98 | 99 |
100 |
101 | 102 |

What is this?

103 | 104 |

105 | This is a tiny d3 extension that lets you easily move and resize geographic features rendered with d3 and topojson. 106 |

107 | 108 |

Why would I want this?

109 | 110 |

111 | Say you have a map of the US (like above) and you want to gratuitously transition the map into a scatter plot where the states are the points. This will let you do that. To see this in action, click the "scatter" button above. 112 |

113 | 114 |

How can I use this?

115 | 116 | You can install via... 117 | 118 |
119 |       npm install d3-exploder
120 |     
121 | 122 | And then import within javascript 123 |
124 |       import { exploder } from 'd3-exploder';
125 | 
126 | var myExploder = exploder();
127 |     
128 | 129 |

or include via a script tag

130 | 131 |
132 |     <script src="http://d3js.org/d3.v4.min.js" charset="utf-8"></script>
133 | <script src="http://d3js.org/topojson.v2.min.js"></script>
134 | <script src="d3-exploder.min.js"></script>
135 |   
136 | 137 | Next, create a map with some geographic features... and then create an exploder function and call it! 138 | 139 |
140 |     
141 | var width = 960,
142 |     height = 500;
143 | 
144 | var projection = d3.geoAlbersUsa().scale(width);
145 | 
146 | var path = d3.geoPath()
147 |     .projection(projection);
148 | 
149 | var svg = d3.select("#map").append("svg")
150 |     .attr("width", width)
151 |     .attr("height", height);
152 | 
153 | var g = svg.append("g");
154 | 
155 | 
156 | d3.json("us.json", function(error, us) {
157 | 
158 |   var state_features = topojson.feature(
159 |     us, us.objects.states
160 |   ).features;
161 | 
162 |   var states = g.append("g")
163 |       .attr("id", "states")
164 |     .selectAll("path")
165 |       .data(state_features)
166 |     .enter().append("path")
167 |       .attr("d", path);
168 | 
169 | 
170 |   // Here is the magic!
171 |   // This exploder will create a grid of the states
172 |   // when called on a featurelist selection
173 |   var exploder = d3.exploder()
174 |                   // use the same projection as the map
175 |                   .projection(projection)
176 |                   // provide a function to determine the size
177 |                   // of each feature when called
178 |                   .size(function(d, i) { return 40; })
179 |                   // provide a function to determine the
180 |                   // new (grid) positions of the features
181 |                   // -> returns an [x, y] array (in pixels)
182 |                   .position(function(d, i) {
183 |                     var px = Math.max(0, width - 9*60)/2
184 |                     return [px + (i%10)*60, 70 + Math.floor(i/10)*60];
185 |                   })
186 |   //
187 |   // transition to the grid
188 |   //
189 |   states
190 |     .transition()
191 |     .duration(500)
192 |     .call(exploder);
193 | 
194 | });
195 |     
196 |   
197 | 198 | 199 | 200 |
201 | 202 | 203 | 204 | 205 | 206 | 446 | 447 | 448 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | export { exploder, version } from './src/exploder'; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "d3-exploder", 3 | "version": "2.0.0", 4 | "description": "A tiny d3 extension which lets you turn your maps into other types of charts!", 5 | "main": "build/d3-exploder.js", 6 | "jsnext:main": "index.js", 7 | "module": "index.js", 8 | "scripts": { 9 | "build": "rollup -f umd -n d3 -g d3-geo:d3 -o build/d3-exploder.js -- index.js && cp ./build/d3-exploder.js ./docs/d3-exploder.js", 10 | "minify": "uglifyjs --preamble \"$(preamble)\" build/d3-exploder.js -c negate_iife=false -m -o build/d3-exploder.min.js", 11 | "prepublish": "npm run build && npm run minify" 12 | }, 13 | "author": { 14 | "name": "Ben Southgate", 15 | "url": "http://bsou.io" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/bsouthga/d3-exploder" 20 | }, 21 | "keywords": [ 22 | "d3", 23 | "exploder", 24 | "d3-exploder", 25 | "svg", 26 | "maps" 27 | ], 28 | "license": "MIT", 29 | "bugs": { 30 | "url": "https://github.com/bsouthga/d3-exploder/issues" 31 | }, 32 | "homepage": "https://github.com/bsouthga/d3-exploder", 33 | "dependencies": { 34 | "d3-geo": "^1.4.0" 35 | }, 36 | "devDependencies": { 37 | "eslint": "^3.12.2", 38 | "package-preamble": "^0.0.2", 39 | "rollup": "^0.38.0", 40 | "uglifyjs": "^2.4.10" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/exploder.js: -------------------------------------------------------------------------------- 1 | import { geoPath } from 'd3-geo'; 2 | 3 | 4 | export var version = '2.0.0'; 5 | 6 | 7 | /** 8 | * getter/setter methods for exploder object 9 | */ 10 | var methods = [ 11 | "size", 12 | "position", 13 | "projection" 14 | ]; 15 | 16 | 17 | function error(message) { 18 | throw new Error("d3-exploder: " + message); 19 | } 20 | 21 | 22 | export function exploder() { 23 | 24 | 25 | var path = geoPath(); 26 | 27 | 28 | // create getters / setters 29 | var state = {}; 30 | methods.forEach(function(option) { 31 | explode[option] = function(value) { 32 | if (!arguments.length) return state[option]; 33 | if (!(value instanceof Function)) error(option + " needs to be a function."); 34 | state[option] = value; 35 | return explode; 36 | }; 37 | }); 38 | 39 | 40 | function explode(selection) { 41 | 42 | 43 | // check for necessary parameters 44 | methods.forEach(function(option) { 45 | if (!state[option]) error(option + " not provided to exploder."); 46 | }); 47 | 48 | 49 | // local references to configuration 50 | var projection = state.projection, 51 | size = state.size, 52 | position = state.position, 53 | scale = projection.scale(), 54 | cache = {}; 55 | 56 | 57 | // update projection of path function 58 | path.projection(projection); 59 | 60 | 61 | // the order of the attribute changes matters! 62 | // setting 'd' caches the new scale which is used 63 | // in the transform change 64 | selection 65 | .attr('d', function(d, i) { 66 | // compute size based on user functions 67 | var sz = size(d, i); 68 | 69 | // calculate new scale for projection based on desired 70 | // pixel size of feature 71 | projection.scale(scale) 72 | 73 | var bounds = path.bounds(d); 74 | var w = bounds[1][0] - bounds[0][0]; 75 | var h = bounds[1][1] - bounds[0][1]; 76 | var sc = cache[i] = Math.min(sz / h, sz / w); 77 | 78 | // scale projection to desired size 79 | projection.scale(scale * sc); 80 | 81 | // return scaled path 82 | return path(d); 83 | }) 84 | .attr("transform", function(d, i) { 85 | // update projection with cached scale 86 | projection.scale(scale * cache[i]); 87 | 88 | var center = path.centroid(d); 89 | var desired = position(d, i); 90 | var translate = [desired[0] - center[0], desired[1] - center[1]]; 91 | 92 | // return desired coordinates offset by centroid 93 | return "translate(" + translate + ")"; 94 | }); 95 | 96 | 97 | // reset scale for projection 98 | projection.scale(scale); 99 | } 100 | 101 | 102 | // return configurable exploder function 103 | return explode; 104 | } 105 | 106 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | acorn-jsx@^3.0.0: 6 | version "3.0.1" 7 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 8 | dependencies: 9 | acorn "^3.0.4" 10 | 11 | acorn@^3.0.4: 12 | version "3.3.0" 13 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 14 | 15 | acorn@^4.0.1: 16 | version "4.0.4" 17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" 18 | 19 | ajv-keywords@^1.0.0: 20 | version "1.4.1" 21 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.4.1.tgz#f080e635e230baae26537ce727f260ae62b43802" 22 | 23 | ajv@^4.7.0: 24 | version "4.10.3" 25 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.3.tgz#3e4fea9675b157de7888b80dd0ed735b83f28e11" 26 | dependencies: 27 | co "^4.6.0" 28 | json-stable-stringify "^1.0.1" 29 | 30 | amdefine@>=0.0.4: 31 | version "1.0.1" 32 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 33 | 34 | ansi-escapes@^1.1.0: 35 | version "1.4.0" 36 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 37 | 38 | ansi-regex@^2.0.0: 39 | version "2.0.0" 40 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" 41 | 42 | ansi-styles@^2.2.1: 43 | version "2.2.1" 44 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 45 | 46 | argparse@^1.0.7: 47 | version "1.0.9" 48 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 49 | dependencies: 50 | sprintf-js "~1.0.2" 51 | 52 | array-union@^1.0.1: 53 | version "1.0.2" 54 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 55 | dependencies: 56 | array-uniq "^1.0.1" 57 | 58 | array-uniq@^1.0.1: 59 | version "1.0.3" 60 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 61 | 62 | arrify@^1.0.0: 63 | version "1.0.1" 64 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 65 | 66 | async@~0.2.6: 67 | version "0.2.10" 68 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" 69 | 70 | babel-code-frame@^6.16.0: 71 | version "6.20.0" 72 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" 73 | dependencies: 74 | chalk "^1.1.0" 75 | esutils "^2.0.2" 76 | js-tokens "^2.0.0" 77 | 78 | balanced-match@^0.4.1: 79 | version "0.4.2" 80 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 81 | 82 | brace-expansion@^1.0.0: 83 | version "1.1.6" 84 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" 85 | dependencies: 86 | balanced-match "^0.4.1" 87 | concat-map "0.0.1" 88 | 89 | buffer-shims@^1.0.0: 90 | version "1.0.0" 91 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 92 | 93 | caller-path@^0.1.0: 94 | version "0.1.0" 95 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 96 | dependencies: 97 | callsites "^0.2.0" 98 | 99 | callsites@^0.2.0: 100 | version "0.2.0" 101 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 102 | 103 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 104 | version "1.1.3" 105 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 106 | dependencies: 107 | ansi-styles "^2.2.1" 108 | escape-string-regexp "^1.0.2" 109 | has-ansi "^2.0.0" 110 | strip-ansi "^3.0.0" 111 | supports-color "^2.0.0" 112 | 113 | circular-json@^0.3.1: 114 | version "0.3.1" 115 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 116 | 117 | cli-cursor@^1.0.1: 118 | version "1.0.2" 119 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 120 | dependencies: 121 | restore-cursor "^1.0.1" 122 | 123 | cli-width@^2.0.0: 124 | version "2.1.0" 125 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 126 | 127 | co@^4.6.0: 128 | version "4.6.0" 129 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 130 | 131 | code-point-at@^1.0.0: 132 | version "1.1.0" 133 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 134 | 135 | concat-map@0.0.1: 136 | version "0.0.1" 137 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 138 | 139 | concat-stream@^1.4.6: 140 | version "1.6.0" 141 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 142 | dependencies: 143 | inherits "^2.0.3" 144 | readable-stream "^2.2.2" 145 | typedarray "^0.0.6" 146 | 147 | core-util-is@~1.0.0: 148 | version "1.0.2" 149 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 150 | 151 | d3-array@1: 152 | version "1.0.2" 153 | resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.0.2.tgz#174237bf356a852fadd6af87743d928631de7655" 154 | 155 | d3-geo@^1.4.0: 156 | version "1.4.0" 157 | resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.4.0.tgz#15e58c414b5bafa1a960eeeb29059c94a60d8408" 158 | dependencies: 159 | d3-array "1" 160 | 161 | d@^0.1.1, d@~0.1.1: 162 | version "0.1.1" 163 | resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" 164 | dependencies: 165 | es5-ext "~0.10.2" 166 | 167 | debug@^2.1.1: 168 | version "2.5.2" 169 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.5.2.tgz#50c295a53dbf1657146e0c1b21307275e90d49cb" 170 | dependencies: 171 | ms "0.7.2" 172 | 173 | deep-is@~0.1.3: 174 | version "0.1.3" 175 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 176 | 177 | del@^2.0.2: 178 | version "2.2.2" 179 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 180 | dependencies: 181 | globby "^5.0.0" 182 | is-path-cwd "^1.0.0" 183 | is-path-in-cwd "^1.0.0" 184 | object-assign "^4.0.1" 185 | pify "^2.0.0" 186 | pinkie-promise "^2.0.0" 187 | rimraf "^2.2.8" 188 | 189 | doctrine@^1.2.2: 190 | version "1.5.0" 191 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 192 | dependencies: 193 | esutils "^2.0.2" 194 | isarray "^1.0.0" 195 | 196 | es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: 197 | version "0.10.12" 198 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" 199 | dependencies: 200 | es6-iterator "2" 201 | es6-symbol "~3.1" 202 | 203 | es6-iterator@2: 204 | version "2.0.0" 205 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" 206 | dependencies: 207 | d "^0.1.1" 208 | es5-ext "^0.10.7" 209 | es6-symbol "3" 210 | 211 | es6-map@^0.1.3: 212 | version "0.1.4" 213 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" 214 | dependencies: 215 | d "~0.1.1" 216 | es5-ext "~0.10.11" 217 | es6-iterator "2" 218 | es6-set "~0.1.3" 219 | es6-symbol "~3.1.0" 220 | event-emitter "~0.3.4" 221 | 222 | es6-set@~0.1.3: 223 | version "0.1.4" 224 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" 225 | dependencies: 226 | d "~0.1.1" 227 | es5-ext "~0.10.11" 228 | es6-iterator "2" 229 | es6-symbol "3" 230 | event-emitter "~0.3.4" 231 | 232 | es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: 233 | version "3.1.0" 234 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" 235 | dependencies: 236 | d "~0.1.1" 237 | es5-ext "~0.10.11" 238 | 239 | es6-weak-map@^2.0.1: 240 | version "2.0.1" 241 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" 242 | dependencies: 243 | d "^0.1.1" 244 | es5-ext "^0.10.8" 245 | es6-iterator "2" 246 | es6-symbol "3" 247 | 248 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 249 | version "1.0.5" 250 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 251 | 252 | escope@^3.6.0: 253 | version "3.6.0" 254 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 255 | dependencies: 256 | es6-map "^0.1.3" 257 | es6-weak-map "^2.0.1" 258 | esrecurse "^4.1.0" 259 | estraverse "^4.1.1" 260 | 261 | eslint@^3.12.2: 262 | version "3.12.2" 263 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.12.2.tgz#6be5a9aa29658252abd7f91e9132bab1f26f3c34" 264 | dependencies: 265 | babel-code-frame "^6.16.0" 266 | chalk "^1.1.3" 267 | concat-stream "^1.4.6" 268 | debug "^2.1.1" 269 | doctrine "^1.2.2" 270 | escope "^3.6.0" 271 | espree "^3.3.1" 272 | estraverse "^4.2.0" 273 | esutils "^2.0.2" 274 | file-entry-cache "^2.0.0" 275 | glob "^7.0.3" 276 | globals "^9.14.0" 277 | ignore "^3.2.0" 278 | imurmurhash "^0.1.4" 279 | inquirer "^0.12.0" 280 | is-my-json-valid "^2.10.0" 281 | is-resolvable "^1.0.0" 282 | js-yaml "^3.5.1" 283 | json-stable-stringify "^1.0.0" 284 | levn "^0.3.0" 285 | lodash "^4.0.0" 286 | mkdirp "^0.5.0" 287 | natural-compare "^1.4.0" 288 | optionator "^0.8.2" 289 | path-is-inside "^1.0.1" 290 | pluralize "^1.2.1" 291 | progress "^1.1.8" 292 | require-uncached "^1.0.2" 293 | shelljs "^0.7.5" 294 | strip-bom "^3.0.0" 295 | strip-json-comments "~1.0.1" 296 | table "^3.7.8" 297 | text-table "~0.2.0" 298 | user-home "^2.0.0" 299 | 300 | espree@^3.3.1: 301 | version "3.3.2" 302 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" 303 | dependencies: 304 | acorn "^4.0.1" 305 | acorn-jsx "^3.0.0" 306 | 307 | esprima@^2.6.0: 308 | version "2.7.3" 309 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" 310 | 311 | esrecurse@^4.1.0: 312 | version "4.1.0" 313 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" 314 | dependencies: 315 | estraverse "~4.1.0" 316 | object-assign "^4.0.1" 317 | 318 | estraverse@^4.1.1, estraverse@^4.2.0: 319 | version "4.2.0" 320 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 321 | 322 | estraverse@~4.1.0: 323 | version "4.1.1" 324 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" 325 | 326 | esutils@^2.0.2: 327 | version "2.0.2" 328 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 329 | 330 | event-emitter@~0.3.4: 331 | version "0.3.4" 332 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" 333 | dependencies: 334 | d "~0.1.1" 335 | es5-ext "~0.10.7" 336 | 337 | exit-hook@^1.0.0: 338 | version "1.1.1" 339 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 340 | 341 | fast-levenshtein@~2.0.4: 342 | version "2.0.5" 343 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" 344 | 345 | figures@^1.3.5: 346 | version "1.7.0" 347 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 348 | dependencies: 349 | escape-string-regexp "^1.0.5" 350 | object-assign "^4.1.0" 351 | 352 | file-entry-cache@^2.0.0: 353 | version "2.0.0" 354 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 355 | dependencies: 356 | flat-cache "^1.2.1" 357 | object-assign "^4.0.1" 358 | 359 | flat-cache@^1.2.1: 360 | version "1.2.2" 361 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 362 | dependencies: 363 | circular-json "^0.3.1" 364 | del "^2.0.2" 365 | graceful-fs "^4.1.2" 366 | write "^0.2.1" 367 | 368 | fs.realpath@^1.0.0: 369 | version "1.0.0" 370 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 371 | 372 | generate-function@^2.0.0: 373 | version "2.0.0" 374 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 375 | 376 | generate-object-property@^1.1.0: 377 | version "1.2.0" 378 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 379 | dependencies: 380 | is-property "^1.0.0" 381 | 382 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: 383 | version "7.1.1" 384 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 385 | dependencies: 386 | fs.realpath "^1.0.0" 387 | inflight "^1.0.4" 388 | inherits "2" 389 | minimatch "^3.0.2" 390 | once "^1.3.0" 391 | path-is-absolute "^1.0.0" 392 | 393 | globals@^9.14.0: 394 | version "9.14.0" 395 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" 396 | 397 | globby@^5.0.0: 398 | version "5.0.0" 399 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 400 | dependencies: 401 | array-union "^1.0.1" 402 | arrify "^1.0.0" 403 | glob "^7.0.3" 404 | object-assign "^4.0.1" 405 | pify "^2.0.0" 406 | pinkie-promise "^2.0.0" 407 | 408 | graceful-fs@^4.1.2: 409 | version "4.1.11" 410 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 411 | 412 | has-ansi@^2.0.0: 413 | version "2.0.0" 414 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 415 | dependencies: 416 | ansi-regex "^2.0.0" 417 | 418 | ignore@^3.2.0: 419 | version "3.2.0" 420 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" 421 | 422 | imurmurhash@^0.1.4: 423 | version "0.1.4" 424 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 425 | 426 | inflight@^1.0.4: 427 | version "1.0.6" 428 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 429 | dependencies: 430 | once "^1.3.0" 431 | wrappy "1" 432 | 433 | inherits@2, inherits@^2.0.3, inherits@~2.0.1: 434 | version "2.0.3" 435 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 436 | 437 | inquirer@^0.12.0: 438 | version "0.12.0" 439 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 440 | dependencies: 441 | ansi-escapes "^1.1.0" 442 | ansi-regex "^2.0.0" 443 | chalk "^1.0.0" 444 | cli-cursor "^1.0.1" 445 | cli-width "^2.0.0" 446 | figures "^1.3.5" 447 | lodash "^4.3.0" 448 | readline2 "^1.0.1" 449 | run-async "^0.1.0" 450 | rx-lite "^3.1.2" 451 | string-width "^1.0.1" 452 | strip-ansi "^3.0.0" 453 | through "^2.3.6" 454 | 455 | interpret@^1.0.0: 456 | version "1.0.1" 457 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" 458 | 459 | is-fullwidth-code-point@^1.0.0: 460 | version "1.0.0" 461 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 462 | dependencies: 463 | number-is-nan "^1.0.0" 464 | 465 | is-fullwidth-code-point@^2.0.0: 466 | version "2.0.0" 467 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 468 | 469 | is-my-json-valid@^2.10.0: 470 | version "2.15.0" 471 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" 472 | dependencies: 473 | generate-function "^2.0.0" 474 | generate-object-property "^1.1.0" 475 | jsonpointer "^4.0.0" 476 | xtend "^4.0.0" 477 | 478 | is-path-cwd@^1.0.0: 479 | version "1.0.0" 480 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 481 | 482 | is-path-in-cwd@^1.0.0: 483 | version "1.0.0" 484 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 485 | dependencies: 486 | is-path-inside "^1.0.0" 487 | 488 | is-path-inside@^1.0.0: 489 | version "1.0.0" 490 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 491 | dependencies: 492 | path-is-inside "^1.0.1" 493 | 494 | is-property@^1.0.0: 495 | version "1.0.2" 496 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 497 | 498 | is-resolvable@^1.0.0: 499 | version "1.0.0" 500 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 501 | dependencies: 502 | tryit "^1.0.1" 503 | 504 | isarray@^1.0.0, isarray@~1.0.0: 505 | version "1.0.0" 506 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 507 | 508 | js-tokens@^2.0.0: 509 | version "2.0.0" 510 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" 511 | 512 | js-yaml@^3.5.1: 513 | version "3.7.0" 514 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" 515 | dependencies: 516 | argparse "^1.0.7" 517 | esprima "^2.6.0" 518 | 519 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 520 | version "1.0.1" 521 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 522 | dependencies: 523 | jsonify "~0.0.0" 524 | 525 | jsonify@~0.0.0: 526 | version "0.0.0" 527 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 528 | 529 | jsonpointer@^4.0.0: 530 | version "4.0.1" 531 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 532 | 533 | levn@^0.3.0, levn@~0.3.0: 534 | version "0.3.0" 535 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 536 | dependencies: 537 | prelude-ls "~1.1.2" 538 | type-check "~0.3.2" 539 | 540 | lodash@^4.0.0, lodash@^4.3.0: 541 | version "4.17.3" 542 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.3.tgz#557ed7d2a9438cac5fd5a43043ca60cb455e01f7" 543 | 544 | minimatch@^3.0.2: 545 | version "3.0.3" 546 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" 547 | dependencies: 548 | brace-expansion "^1.0.0" 549 | 550 | minimist@0.0.8: 551 | version "0.0.8" 552 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 553 | 554 | mkdirp@^0.5.0, mkdirp@^0.5.1: 555 | version "0.5.1" 556 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 557 | dependencies: 558 | minimist "0.0.8" 559 | 560 | ms@0.7.2: 561 | version "0.7.2" 562 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 563 | 564 | mute-stream@0.0.5: 565 | version "0.0.5" 566 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 567 | 568 | natural-compare@^1.4.0: 569 | version "1.4.0" 570 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 571 | 572 | number-is-nan@^1.0.0: 573 | version "1.0.1" 574 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 575 | 576 | object-assign@^4.0.1, object-assign@^4.1.0: 577 | version "4.1.0" 578 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" 579 | 580 | once@^1.3.0: 581 | version "1.4.0" 582 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 583 | dependencies: 584 | wrappy "1" 585 | 586 | onetime@^1.0.0: 587 | version "1.1.0" 588 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 589 | 590 | optionator@^0.8.2: 591 | version "0.8.2" 592 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 593 | dependencies: 594 | deep-is "~0.1.3" 595 | fast-levenshtein "~2.0.4" 596 | levn "~0.3.0" 597 | prelude-ls "~1.1.2" 598 | type-check "~0.3.2" 599 | wordwrap "~1.0.0" 600 | 601 | os-homedir@^1.0.0: 602 | version "1.0.2" 603 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 604 | 605 | package-preamble@^0.0.2: 606 | version "0.0.2" 607 | resolved "https://registry.yarnpkg.com/package-preamble/-/package-preamble-0.0.2.tgz#79c7781b54e5479d41040238b9f98f8e192719cf" 608 | 609 | path-is-absolute@^1.0.0: 610 | version "1.0.1" 611 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 612 | 613 | path-is-inside@^1.0.1: 614 | version "1.0.2" 615 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 616 | 617 | pify@^2.0.0: 618 | version "2.3.0" 619 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 620 | 621 | pinkie-promise@^2.0.0: 622 | version "2.0.1" 623 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 624 | dependencies: 625 | pinkie "^2.0.0" 626 | 627 | pinkie@^2.0.0: 628 | version "2.0.4" 629 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 630 | 631 | pluralize@^1.2.1: 632 | version "1.2.1" 633 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 634 | 635 | prelude-ls@~1.1.2: 636 | version "1.1.2" 637 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 638 | 639 | process-nextick-args@~1.0.6: 640 | version "1.0.7" 641 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 642 | 643 | progress@^1.1.8: 644 | version "1.1.8" 645 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 646 | 647 | readable-stream@^2.2.2: 648 | version "2.2.2" 649 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" 650 | dependencies: 651 | buffer-shims "^1.0.0" 652 | core-util-is "~1.0.0" 653 | inherits "~2.0.1" 654 | isarray "~1.0.0" 655 | process-nextick-args "~1.0.6" 656 | string_decoder "~0.10.x" 657 | util-deprecate "~1.0.1" 658 | 659 | readline2@^1.0.1: 660 | version "1.0.1" 661 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 662 | dependencies: 663 | code-point-at "^1.0.0" 664 | is-fullwidth-code-point "^1.0.0" 665 | mute-stream "0.0.5" 666 | 667 | rechoir@^0.6.2: 668 | version "0.6.2" 669 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 670 | dependencies: 671 | resolve "^1.1.6" 672 | 673 | require-uncached@^1.0.2: 674 | version "1.0.3" 675 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 676 | dependencies: 677 | caller-path "^0.1.0" 678 | resolve-from "^1.0.0" 679 | 680 | resolve-from@^1.0.0: 681 | version "1.0.1" 682 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 683 | 684 | resolve@^1.1.6: 685 | version "1.2.0" 686 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" 687 | 688 | restore-cursor@^1.0.1: 689 | version "1.0.1" 690 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 691 | dependencies: 692 | exit-hook "^1.0.0" 693 | onetime "^1.0.0" 694 | 695 | rimraf@^2.2.8: 696 | version "2.5.4" 697 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" 698 | dependencies: 699 | glob "^7.0.5" 700 | 701 | rollup@^0.38.0: 702 | version "0.38.0" 703 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.38.0.tgz#b58d99538ad96dd1c0239f1de383a80b0e067f70" 704 | dependencies: 705 | source-map-support "^0.4.0" 706 | 707 | run-async@^0.1.0: 708 | version "0.1.0" 709 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 710 | dependencies: 711 | once "^1.3.0" 712 | 713 | rx-lite@^3.1.2: 714 | version "3.1.2" 715 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 716 | 717 | shelljs@^0.7.5: 718 | version "0.7.5" 719 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" 720 | dependencies: 721 | glob "^7.0.0" 722 | interpret "^1.0.0" 723 | rechoir "^0.6.2" 724 | 725 | slice-ansi@0.0.4: 726 | version "0.0.4" 727 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 728 | 729 | source-map-support@^0.4.0: 730 | version "0.4.8" 731 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.8.tgz#4871918d8a3af07289182e974e32844327b2e98b" 732 | dependencies: 733 | source-map "^0.5.3" 734 | 735 | source-map@0.1.34: 736 | version "0.1.34" 737 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.34.tgz#a7cfe89aec7b1682c3b198d0acfb47d7d090566b" 738 | dependencies: 739 | amdefine ">=0.0.4" 740 | 741 | source-map@^0.5.3: 742 | version "0.5.6" 743 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 744 | 745 | sprintf-js@~1.0.2: 746 | version "1.0.3" 747 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 748 | 749 | string-width@^1.0.1: 750 | version "1.0.2" 751 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 752 | dependencies: 753 | code-point-at "^1.0.0" 754 | is-fullwidth-code-point "^1.0.0" 755 | strip-ansi "^3.0.0" 756 | 757 | string-width@^2.0.0: 758 | version "2.0.0" 759 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 760 | dependencies: 761 | is-fullwidth-code-point "^2.0.0" 762 | strip-ansi "^3.0.0" 763 | 764 | string_decoder@~0.10.x: 765 | version "0.10.31" 766 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 767 | 768 | strip-ansi@^3.0.0: 769 | version "3.0.1" 770 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 771 | dependencies: 772 | ansi-regex "^2.0.0" 773 | 774 | strip-bom@^3.0.0: 775 | version "3.0.0" 776 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 777 | 778 | strip-json-comments@~1.0.1: 779 | version "1.0.4" 780 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" 781 | 782 | supports-color@^2.0.0: 783 | version "2.0.0" 784 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 785 | 786 | table@^3.7.8: 787 | version "3.8.3" 788 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 789 | dependencies: 790 | ajv "^4.7.0" 791 | ajv-keywords "^1.0.0" 792 | chalk "^1.1.1" 793 | lodash "^4.0.0" 794 | slice-ansi "0.0.4" 795 | string-width "^2.0.0" 796 | 797 | text-table@~0.2.0: 798 | version "0.2.0" 799 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 800 | 801 | through@^2.3.6: 802 | version "2.3.8" 803 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 804 | 805 | tryit@^1.0.1: 806 | version "1.0.3" 807 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 808 | 809 | type-check@~0.3.2: 810 | version "0.3.2" 811 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 812 | dependencies: 813 | prelude-ls "~1.1.2" 814 | 815 | typedarray@^0.0.6: 816 | version "0.0.6" 817 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 818 | 819 | uglify-to-browserify@~1.0.0: 820 | version "1.0.2" 821 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 822 | 823 | uglifyjs@^2.4.10: 824 | version "2.4.10" 825 | resolved "https://registry.yarnpkg.com/uglifyjs/-/uglifyjs-2.4.10.tgz#632927319fa6a3da3fc91f9773ac27bfe6c3ee92" 826 | dependencies: 827 | async "~0.2.6" 828 | source-map "0.1.34" 829 | uglify-to-browserify "~1.0.0" 830 | yargs "~1.3.3" 831 | 832 | user-home@^2.0.0: 833 | version "2.0.0" 834 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 835 | dependencies: 836 | os-homedir "^1.0.0" 837 | 838 | util-deprecate@~1.0.1: 839 | version "1.0.2" 840 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 841 | 842 | wordwrap@~1.0.0: 843 | version "1.0.0" 844 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 845 | 846 | wrappy@1: 847 | version "1.0.2" 848 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 849 | 850 | write@^0.2.1: 851 | version "0.2.1" 852 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 853 | dependencies: 854 | mkdirp "^0.5.1" 855 | 856 | xtend@^4.0.0: 857 | version "4.0.1" 858 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 859 | 860 | yargs@~1.3.3: 861 | version "1.3.3" 862 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.3.3.tgz#054de8b61f22eefdb7207059eaef9d6b83fb931a" 863 | --------------------------------------------------------------------------------