├── .babelrc ├── .gitignore ├── .npmignore ├── .nvmrc ├── README.md ├── build └── index.js ├── package.json ├── src └── index.js ├── webpack.config.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["env"], 3 | "plugins": [ 4 | "transform-object-rest-spread", 5 | "transform-react-jsx" 6 | ] 7 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | yarn-error.log 3 | package-lock.json 4 | /.idea 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /src/ 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v6.10 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Simple Storage 2 | 3 | A simple component and helper functions for using web storage with React. 4 | 5 | [Check out the demo app and basic example. https://ryanjyost.github.io/react-simple-storage-example-project](https://ryanjyost.github.io/react-simple-storage-example-project/) 6 | 7 | You may also want to check out my related Hacker Noon article, [How to take advantage of Local Storage in your React projects](https://hackernoon.com/how-to-take-advantage-of-local-storage-in-your-react-projects-a895f2b2d3f2), for some context and logic behind this project. 8 | 9 | #### Good use cases for react-simple-storage 10 | * Persist and experiment with a component's state while developing. 11 | * Save form data across user sessions. 12 | * A simple, quick fake backend for a practice or portfolio project. 13 | * More I can't think of... 14 | 15 | ## Install 16 | 17 | [Install via yarn.](https://www.npmjs.com/package/yarn) 18 | ``` 19 | yarn add react-simple-storage 20 | ``` 21 | #### Using on IE11 22 | For react-simple-storage to work on IE11, you'll need to use [babel-polyfill](https://babeljs.io/docs/usage/polyfill/). 23 | ``` 24 | yarn add babel-polyfill 25 | ``` 26 | Then import in your project. 27 | ``` 28 | import "babel-polyfill"; 29 | ``` 30 | 31 | ## Usage 32 | 33 | ### Component 34 | 35 | Import and include an instance of react-simple-storage in a component whose state you want to save to web storage. 36 | ```javascript 37 | import React, { Component } from "react"; 38 | import SimpleStorage from "react-simple-storage"; 39 | 40 | export default class ParentComponent extends Component { 41 | constructor(props) { 42 | super(props) 43 | this.state = { 44 | text: "", 45 | } 46 | } 47 | 48 | render() { 49 | return ( 50 |
51 | 52 | // include the component somewhere in the parent to save the parent's state in web storage 53 | 54 | 55 | // the value of this input will be saved in web storage 56 | this.setState({ text: e.target.value })} 60 | /> 61 | 62 |
63 | ) 64 | } 65 | } 66 | ``` 67 | 68 | ### Props 69 | | Name | Type |Required? | Default | Description 70 | | ---------------- |:--------------- |:-------- | ------------ |------------- 71 | | parent | *object* | Yes | **none** | reference to the parent component, i.e. `this` 72 | | prefix | *string* | No | "" | prefix added to storage keys to avoid name clashes across instances 73 | | blacklist | *array* | No | [] | a list of parent component's `state` names/keys to ignore when saving to storage 74 | | onParentStateHydrated | *func* | No | none | fires after the parent component's `state` has been updated with storage items. Basically a callback for working with the parent component's `state` once updated with storage. 75 | 76 | 77 | 78 | 79 | ## Helper Functions 80 | ### `clearStorage(prefix)` 81 | Clears items in `storage` with the given `prefix`, or all items if no `prefix` is given. 82 | * `prefix: String | optional` - Corresponds to `prefix` prop passed to an instance of the `react-simple-storage` 83 | component. 84 | 85 | #### Example 86 | ```javascript 87 | import React, { Component } from "react"; 88 | import SimpleStorage, { clearStorage } from "react-simple-storage"; 89 | 90 | export default class ParentComponent extends Component { 91 | constructor(props) { 92 | super(props) 93 | this.state = { 94 | text: "", 95 | } 96 | } 97 | 98 | render() { 99 | return ( 100 |
101 | 102 | // provide a prefix prop to be able to clear just the storage items 103 | // created by this instance of the react-simple-storage component 104 | 105 | 106 | this.setState({ text: e.target.value })} 110 | /> 111 | 112 | // removes only storage items related to the ParentComponent 113 | 116 | 117 | // removes all items from storage 118 | 121 | 122 |
123 | ) 124 | } 125 | } 126 | ``` 127 | 128 | 129 | ### `resetParentState(parent, initialState, keysToIgnore)` 130 | Resets the parent's state to given `initialState`. 131 | * `parent: Object | required` - Reference to the parent component, allowing `react-simple-storage` to access and update 132 | the parent component's state. If called within the parent component, simply pass `this`. 133 | * `initialState: Object | required` - The `state` of the parent component after the function executes. 134 | * `keysToIgnore: Array | optional` - A list of keys in the parent component's `state` to ignore on `resetParentState 135 | `. These pieces of that parent's state will NOT be reset. 136 | 137 | #### Example 138 | 139 | ```javascript 140 | import React, { Component } from "react"; 141 | import SimpleStorage, { resetParentState } from "react-simple-storage"; 142 | 143 | export default class ParentComponent extends Component { 144 | constructor(props) { 145 | super(props) 146 | this.state = { 147 | text: "Initial Text", 148 | } 149 | 150 | // store the component's initial state to reset it 151 | this.initialState = this.state; 152 | } 153 | 154 | render() { 155 | return ( 156 |
157 | 158 | 159 | 160 | this.setState({ text: e.target.value })} 164 | /> 165 | 166 | // will set "text" in state to "Initial Text" 167 | 170 | 171 | // ignores "text" on reset, so will have no effect here 172 | 175 | 176 |
177 | ) 178 | } 179 | } 180 | ``` 181 | 182 | ## Built with 183 | * [store.js](https://github.com/marcuswestin/store.js) - Cross-browser storage for all use cases, used across the web. 184 | 185 | ## License 186 | 187 | This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details 188 | -------------------------------------------------------------------------------- /build/index.js: -------------------------------------------------------------------------------- 1 | module.exports = 2 | /******/ (function(modules) { // webpackBootstrap 3 | /******/ // The module cache 4 | /******/ var installedModules = {}; 5 | /******/ 6 | /******/ // The require function 7 | /******/ function __webpack_require__(moduleId) { 8 | /******/ 9 | /******/ // Check if module is in cache 10 | /******/ if(installedModules[moduleId]) { 11 | /******/ return installedModules[moduleId].exports; 12 | /******/ } 13 | /******/ // Create a new module (and put it into the cache) 14 | /******/ var module = installedModules[moduleId] = { 15 | /******/ i: moduleId, 16 | /******/ l: false, 17 | /******/ exports: {} 18 | /******/ }; 19 | /******/ 20 | /******/ // Execute the module function 21 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 22 | /******/ 23 | /******/ // Flag the module as loaded 24 | /******/ module.l = true; 25 | /******/ 26 | /******/ // Return the exports of the module 27 | /******/ return module.exports; 28 | /******/ } 29 | /******/ 30 | /******/ 31 | /******/ // expose the modules object (__webpack_modules__) 32 | /******/ __webpack_require__.m = modules; 33 | /******/ 34 | /******/ // expose the module cache 35 | /******/ __webpack_require__.c = installedModules; 36 | /******/ 37 | /******/ // identity function for calling harmony imports with the correct context 38 | /******/ __webpack_require__.i = function(value) { return value; }; 39 | /******/ 40 | /******/ // define getter function for harmony exports 41 | /******/ __webpack_require__.d = function(exports, name, getter) { 42 | /******/ if(!__webpack_require__.o(exports, name)) { 43 | /******/ Object.defineProperty(exports, name, { 44 | /******/ configurable: false, 45 | /******/ enumerable: true, 46 | /******/ get: getter 47 | /******/ }); 48 | /******/ } 49 | /******/ }; 50 | /******/ 51 | /******/ // getDefaultExport function for compatibility with non-harmony modules 52 | /******/ __webpack_require__.n = function(module) { 53 | /******/ var getter = module && module.__esModule ? 54 | /******/ function getDefault() { return module['default']; } : 55 | /******/ function getModuleExports() { return module; }; 56 | /******/ __webpack_require__.d(getter, 'a', getter); 57 | /******/ return getter; 58 | /******/ }; 59 | /******/ 60 | /******/ // Object.prototype.hasOwnProperty.call 61 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 62 | /******/ 63 | /******/ // __webpack_public_path__ 64 | /******/ __webpack_require__.p = ""; 65 | /******/ 66 | /******/ // Load entry module and return exports 67 | /******/ return __webpack_require__(__webpack_require__.s = 3); 68 | /******/ }) 69 | /************************************************************************/ 70 | /******/ ([ 71 | /* 0 */ 72 | /***/ (function(module, exports, __webpack_require__) { 73 | 74 | /* WEBPACK VAR INJECTION */(function(global) {var assign = make_assign() 75 | var create = make_create() 76 | var trim = make_trim() 77 | var Global = (typeof window !== 'undefined' ? window : global) 78 | 79 | module.exports = { 80 | assign: assign, 81 | create: create, 82 | trim: trim, 83 | bind: bind, 84 | slice: slice, 85 | each: each, 86 | map: map, 87 | pluck: pluck, 88 | isList: isList, 89 | isFunction: isFunction, 90 | isObject: isObject, 91 | Global: Global 92 | } 93 | 94 | function make_assign() { 95 | if (Object.assign) { 96 | return Object.assign 97 | } else { 98 | return function shimAssign(obj, props1, props2, etc) { 99 | for (var i = 1; i < arguments.length; i++) { 100 | each(Object(arguments[i]), function(val, key) { 101 | obj[key] = val 102 | }) 103 | } 104 | return obj 105 | } 106 | } 107 | } 108 | 109 | function make_create() { 110 | if (Object.create) { 111 | return function create(obj, assignProps1, assignProps2, etc) { 112 | var assignArgsList = slice(arguments, 1) 113 | return assign.apply(this, [Object.create(obj)].concat(assignArgsList)) 114 | } 115 | } else { 116 | function F() {} // eslint-disable-line no-inner-declarations 117 | return function create(obj, assignProps1, assignProps2, etc) { 118 | var assignArgsList = slice(arguments, 1) 119 | F.prototype = obj 120 | return assign.apply(this, [new F()].concat(assignArgsList)) 121 | } 122 | } 123 | } 124 | 125 | function make_trim() { 126 | if (String.prototype.trim) { 127 | return function trim(str) { 128 | return String.prototype.trim.call(str) 129 | } 130 | } else { 131 | return function trim(str) { 132 | return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '') 133 | } 134 | } 135 | } 136 | 137 | function bind(obj, fn) { 138 | return function() { 139 | return fn.apply(obj, Array.prototype.slice.call(arguments, 0)) 140 | } 141 | } 142 | 143 | function slice(arr, index) { 144 | return Array.prototype.slice.call(arr, index || 0) 145 | } 146 | 147 | function each(obj, fn) { 148 | pluck(obj, function(val, key) { 149 | fn(val, key) 150 | return false 151 | }) 152 | } 153 | 154 | function map(obj, fn) { 155 | var res = (isList(obj) ? [] : {}) 156 | pluck(obj, function(v, k) { 157 | res[k] = fn(v, k) 158 | return false 159 | }) 160 | return res 161 | } 162 | 163 | function pluck(obj, fn) { 164 | if (isList(obj)) { 165 | for (var i=0; i"); 305 | return false; 306 | } 307 | 308 | // loop through storage 309 | _store2.default.each(function (value, key) { 310 | // if the storage item is in the current parent's state 311 | if (key.includes(prefix)) { 312 | // remove the parent-specific prefix to get original key from parent's state 313 | var name = key.slice(prefix.length + 1); 314 | 315 | // update parent's state with the result 316 | // store.js handles parsing 317 | if (name in parent.state) { 318 | parent.setState(_defineProperty({}, name, value)); 319 | } 320 | } 321 | }); 322 | 323 | this.setState({ didHydrate: true }); 324 | } 325 | }, { 326 | key: "saveStateToStorage", 327 | value: function saveStateToStorage() { 328 | var allowNewKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 329 | 330 | if (_store2.default.get("rss_cleared")) { 331 | _store2.default.set("rss_cleared", false); 332 | return; 333 | } 334 | 335 | var prefix = ""; 336 | var parent = {}; 337 | var blacklist = []; 338 | 339 | if (this.props.parent) { 340 | prefix = this.props.prefix ? this.props.prefix : ""; 341 | parent = this.props.parent; 342 | blacklist = this.props.blacklist || []; 343 | } else { 344 | console.error("No \"parent\" prop was provided to react-simple-storage. A parent component's context is required in order to access and update the parent component's state.\n \nTry the following: "); 345 | return false; 346 | } 347 | 348 | // loop through all of the parent's state 349 | for (var key in parent.state) { 350 | // save item to storage if not on the blacklist 351 | var prefixWithKey = prefix + "_" + key; 352 | if (blacklist.indexOf(key) < 0 && allowNewKey) { 353 | _store2.default.set(prefixWithKey, parent.state[key]); 354 | } 355 | } 356 | } 357 | }, { 358 | key: "render", 359 | value: function render() { 360 | return null; 361 | } 362 | }], [{ 363 | key: "getDerivedStateFromProps", 364 | value: function getDerivedStateFromProps(props, state) { 365 | // callback function that fires after the parent's state has been hydrated with storage items 366 | if ('onParentStateHydrated' in props && state.didHydrate && !state.firedHydrateCallback) { 367 | props.onParentStateHydrated(); 368 | return _extends({}, state, { firedHydrateCallback: true }); 369 | } 370 | return state; 371 | } 372 | }]); 373 | 374 | return SimpleStorage; 375 | }(_react.Component); 376 | 377 | exports.default = SimpleStorage; 378 | 379 | 380 | function _testStorage() { 381 | var test = "test"; 382 | try { 383 | _store2.default.set(test, test); 384 | _store2.default.remove(test); 385 | return true; 386 | } catch (e) { 387 | console.error("react-simple-storage could not access any storage options."); 388 | return false; 389 | } 390 | } 391 | 392 | function clearStorage(prefix) { 393 | if (_testStorage() === true) { 394 | _store2.default.each(function (value, key) { 395 | if (key.includes(prefix)) { 396 | _store2.default.remove(key); 397 | } 398 | }); 399 | 400 | _store2.default.set("rss_cleared", true); 401 | } 402 | } 403 | 404 | function resetParentState(parent) { 405 | var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 406 | var keysToIgnore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; 407 | 408 | if (_testStorage() === true) { 409 | for (var key in initialState) { 410 | // reset property if not in keys to ignore 411 | if (keysToIgnore.indexOf(key) < 0) { 412 | parent.setState(_defineProperty({}, key, initialState[key])); 413 | } 414 | } 415 | } 416 | } 417 | 418 | /***/ }), 419 | /* 4 */ 420 | /***/ (function(module, exports, __webpack_require__) { 421 | 422 | module.exports = json2Plugin 423 | 424 | function json2Plugin() { 425 | __webpack_require__(5) 426 | return {} 427 | } 428 | 429 | 430 | /***/ }), 431 | /* 5 */ 432 | /***/ (function(module, exports) { 433 | 434 | /* eslint-disable */ 435 | 436 | // json2.js 437 | // 2016-10-28 438 | // Public Domain. 439 | // NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. 440 | // See http://www.JSON.org/js.html 441 | // This code should be minified before deployment. 442 | // See http://javascript.crockford.com/jsmin.html 443 | 444 | // USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO 445 | // NOT CONTROL. 446 | 447 | // This file creates a global JSON object containing two methods: stringify 448 | // and parse. This file provides the ES5 JSON capability to ES3 systems. 449 | // If a project might run on IE8 or earlier, then this file should be included. 450 | // This file does nothing on ES5 systems. 451 | 452 | // JSON.stringify(value, replacer, space) 453 | // value any JavaScript value, usually an object or array. 454 | // replacer an optional parameter that determines how object 455 | // values are stringified for objects. It can be a 456 | // function or an array of strings. 457 | // space an optional parameter that specifies the indentation 458 | // of nested structures. If it is omitted, the text will 459 | // be packed without extra whitespace. If it is a number, 460 | // it will specify the number of spaces to indent at each 461 | // level. If it is a string (such as "\t" or " "), 462 | // it contains the characters used to indent at each level. 463 | // This method produces a JSON text from a JavaScript value. 464 | // When an object value is found, if the object contains a toJSON 465 | // method, its toJSON method will be called and the result will be 466 | // stringified. A toJSON method does not serialize: it returns the 467 | // value represented by the name/value pair that should be serialized, 468 | // or undefined if nothing should be serialized. The toJSON method 469 | // will be passed the key associated with the value, and this will be 470 | // bound to the value. 471 | 472 | // For example, this would serialize Dates as ISO strings. 473 | 474 | // Date.prototype.toJSON = function (key) { 475 | // function f(n) { 476 | // // Format integers to have at least two digits. 477 | // return (n < 10) 478 | // ? "0" + n 479 | // : n; 480 | // } 481 | // return this.getUTCFullYear() + "-" + 482 | // f(this.getUTCMonth() + 1) + "-" + 483 | // f(this.getUTCDate()) + "T" + 484 | // f(this.getUTCHours()) + ":" + 485 | // f(this.getUTCMinutes()) + ":" + 486 | // f(this.getUTCSeconds()) + "Z"; 487 | // }; 488 | 489 | // You can provide an optional replacer method. It will be passed the 490 | // key and value of each member, with this bound to the containing 491 | // object. The value that is returned from your method will be 492 | // serialized. If your method returns undefined, then the member will 493 | // be excluded from the serialization. 494 | 495 | // If the replacer parameter is an array of strings, then it will be 496 | // used to select the members to be serialized. It filters the results 497 | // such that only members with keys listed in the replacer array are 498 | // stringified. 499 | 500 | // Values that do not have JSON representations, such as undefined or 501 | // functions, will not be serialized. Such values in objects will be 502 | // dropped; in arrays they will be replaced with null. You can use 503 | // a replacer function to replace those with JSON values. 504 | 505 | // JSON.stringify(undefined) returns undefined. 506 | 507 | // The optional space parameter produces a stringification of the 508 | // value that is filled with line breaks and indentation to make it 509 | // easier to read. 510 | 511 | // If the space parameter is a non-empty string, then that string will 512 | // be used for indentation. If the space parameter is a number, then 513 | // the indentation will be that many spaces. 514 | 515 | // Example: 516 | 517 | // text = JSON.stringify(["e", {pluribus: "unum"}]); 518 | // // text is '["e",{"pluribus":"unum"}]' 519 | 520 | // text = JSON.stringify(["e", {pluribus: "unum"}], null, "\t"); 521 | // // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' 522 | 523 | // text = JSON.stringify([new Date()], function (key, value) { 524 | // return this[key] instanceof Date 525 | // ? "Date(" + this[key] + ")" 526 | // : value; 527 | // }); 528 | // // text is '["Date(---current time---)"]' 529 | 530 | // JSON.parse(text, reviver) 531 | // This method parses a JSON text to produce an object or array. 532 | // It can throw a SyntaxError exception. 533 | 534 | // The optional reviver parameter is a function that can filter and 535 | // transform the results. It receives each of the keys and values, 536 | // and its return value is used instead of the original value. 537 | // If it returns what it received, then the structure is not modified. 538 | // If it returns undefined then the member is deleted. 539 | 540 | // Example: 541 | 542 | // // Parse the text. Values that look like ISO date strings will 543 | // // be converted to Date objects. 544 | 545 | // myData = JSON.parse(text, function (key, value) { 546 | // var a; 547 | // if (typeof value === "string") { 548 | // a = 549 | // /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); 550 | // if (a) { 551 | // return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], 552 | // +a[5], +a[6])); 553 | // } 554 | // } 555 | // return value; 556 | // }); 557 | 558 | // myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { 559 | // var d; 560 | // if (typeof value === "string" && 561 | // value.slice(0, 5) === "Date(" && 562 | // value.slice(-1) === ")") { 563 | // d = new Date(value.slice(5, -1)); 564 | // if (d) { 565 | // return d; 566 | // } 567 | // } 568 | // return value; 569 | // }); 570 | 571 | // This is a reference implementation. You are free to copy, modify, or 572 | // redistribute. 573 | 574 | /*jslint 575 | eval, for, this 576 | */ 577 | 578 | /*property 579 | JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, 580 | getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, 581 | lastIndex, length, parse, prototype, push, replace, slice, stringify, 582 | test, toJSON, toString, valueOf 583 | */ 584 | 585 | 586 | // Create a JSON object only if one does not already exist. We create the 587 | // methods in a closure to avoid creating global variables. 588 | 589 | if (typeof JSON !== "object") { 590 | JSON = {}; 591 | } 592 | 593 | (function () { 594 | "use strict"; 595 | 596 | var rx_one = /^[\],:{}\s]*$/; 597 | var rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g; 598 | var rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; 599 | var rx_four = /(?:^|:|,)(?:\s*\[)+/g; 600 | var rx_escapable = /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; 601 | var rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; 602 | 603 | function f(n) { 604 | // Format integers to have at least two digits. 605 | return n < 10 606 | ? "0" + n 607 | : n; 608 | } 609 | 610 | function this_value() { 611 | return this.valueOf(); 612 | } 613 | 614 | if (typeof Date.prototype.toJSON !== "function") { 615 | 616 | Date.prototype.toJSON = function () { 617 | 618 | return isFinite(this.valueOf()) 619 | ? this.getUTCFullYear() + "-" + 620 | f(this.getUTCMonth() + 1) + "-" + 621 | f(this.getUTCDate()) + "T" + 622 | f(this.getUTCHours()) + ":" + 623 | f(this.getUTCMinutes()) + ":" + 624 | f(this.getUTCSeconds()) + "Z" 625 | : null; 626 | }; 627 | 628 | Boolean.prototype.toJSON = this_value; 629 | Number.prototype.toJSON = this_value; 630 | String.prototype.toJSON = this_value; 631 | } 632 | 633 | var gap; 634 | var indent; 635 | var meta; 636 | var rep; 637 | 638 | 639 | function quote(string) { 640 | 641 | // If the string contains no control characters, no quote characters, and no 642 | // backslash characters, then we can safely slap some quotes around it. 643 | // Otherwise we must also replace the offending characters with safe escape 644 | // sequences. 645 | 646 | rx_escapable.lastIndex = 0; 647 | return rx_escapable.test(string) 648 | ? "\"" + string.replace(rx_escapable, function (a) { 649 | var c = meta[a]; 650 | return typeof c === "string" 651 | ? c 652 | : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4); 653 | }) + "\"" 654 | : "\"" + string + "\""; 655 | } 656 | 657 | 658 | function str(key, holder) { 659 | 660 | // Produce a string from holder[key]. 661 | 662 | var i; // The loop counter. 663 | var k; // The member key. 664 | var v; // The member value. 665 | var length; 666 | var mind = gap; 667 | var partial; 668 | var value = holder[key]; 669 | 670 | // If the value has a toJSON method, call it to obtain a replacement value. 671 | 672 | if (value && typeof value === "object" && 673 | typeof value.toJSON === "function") { 674 | value = value.toJSON(key); 675 | } 676 | 677 | // If we were called with a replacer function, then call the replacer to 678 | // obtain a replacement value. 679 | 680 | if (typeof rep === "function") { 681 | value = rep.call(holder, key, value); 682 | } 683 | 684 | // What happens next depends on the value's type. 685 | 686 | switch (typeof value) { 687 | case "string": 688 | return quote(value); 689 | 690 | case "number": 691 | 692 | // JSON numbers must be finite. Encode non-finite numbers as null. 693 | 694 | return isFinite(value) 695 | ? String(value) 696 | : "null"; 697 | 698 | case "boolean": 699 | case "null": 700 | 701 | // If the value is a boolean or null, convert it to a string. Note: 702 | // typeof null does not produce "null". The case is included here in 703 | // the remote chance that this gets fixed someday. 704 | 705 | return String(value); 706 | 707 | // If the type is "object", we might be dealing with an object or an array or 708 | // null. 709 | 710 | case "object": 711 | 712 | // Due to a specification blunder in ECMAScript, typeof null is "object", 713 | // so watch out for that case. 714 | 715 | if (!value) { 716 | return "null"; 717 | } 718 | 719 | // Make an array to hold the partial results of stringifying this object value. 720 | 721 | gap += indent; 722 | partial = []; 723 | 724 | // Is the value an array? 725 | 726 | if (Object.prototype.toString.apply(value) === "[object Array]") { 727 | 728 | // The value is an array. Stringify every element. Use null as a placeholder 729 | // for non-JSON values. 730 | 731 | length = value.length; 732 | for (i = 0; i < length; i += 1) { 733 | partial[i] = str(i, value) || "null"; 734 | } 735 | 736 | // Join all of the elements together, separated with commas, and wrap them in 737 | // brackets. 738 | 739 | v = partial.length === 0 740 | ? "[]" 741 | : gap 742 | ? "[\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "]" 743 | : "[" + partial.join(",") + "]"; 744 | gap = mind; 745 | return v; 746 | } 747 | 748 | // If the replacer is an array, use it to select the members to be stringified. 749 | 750 | if (rep && typeof rep === "object") { 751 | length = rep.length; 752 | for (i = 0; i < length; i += 1) { 753 | if (typeof rep[i] === "string") { 754 | k = rep[i]; 755 | v = str(k, value); 756 | if (v) { 757 | partial.push(quote(k) + ( 758 | gap 759 | ? ": " 760 | : ":" 761 | ) + v); 762 | } 763 | } 764 | } 765 | } else { 766 | 767 | // Otherwise, iterate through all of the keys in the object. 768 | 769 | for (k in value) { 770 | if (Object.prototype.hasOwnProperty.call(value, k)) { 771 | v = str(k, value); 772 | if (v) { 773 | partial.push(quote(k) + ( 774 | gap 775 | ? ": " 776 | : ":" 777 | ) + v); 778 | } 779 | } 780 | } 781 | } 782 | 783 | // Join all of the member texts together, separated with commas, 784 | // and wrap them in braces. 785 | 786 | v = partial.length === 0 787 | ? "{}" 788 | : gap 789 | ? "{\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "}" 790 | : "{" + partial.join(",") + "}"; 791 | gap = mind; 792 | return v; 793 | } 794 | } 795 | 796 | // If the JSON object does not yet have a stringify method, give it one. 797 | 798 | if (typeof JSON.stringify !== "function") { 799 | meta = { // table of character substitutions 800 | "\b": "\\b", 801 | "\t": "\\t", 802 | "\n": "\\n", 803 | "\f": "\\f", 804 | "\r": "\\r", 805 | "\"": "\\\"", 806 | "\\": "\\\\" 807 | }; 808 | JSON.stringify = function (value, replacer, space) { 809 | 810 | // The stringify method takes a value and an optional replacer, and an optional 811 | // space parameter, and returns a JSON text. The replacer can be a function 812 | // that can replace values, or an array of strings that will select the keys. 813 | // A default replacer method can be provided. Use of the space parameter can 814 | // produce text that is more easily readable. 815 | 816 | var i; 817 | gap = ""; 818 | indent = ""; 819 | 820 | // If the space parameter is a number, make an indent string containing that 821 | // many spaces. 822 | 823 | if (typeof space === "number") { 824 | for (i = 0; i < space; i += 1) { 825 | indent += " "; 826 | } 827 | 828 | // If the space parameter is a string, it will be used as the indent string. 829 | 830 | } else if (typeof space === "string") { 831 | indent = space; 832 | } 833 | 834 | // If there is a replacer, it must be a function or an array. 835 | // Otherwise, throw an error. 836 | 837 | rep = replacer; 838 | if (replacer && typeof replacer !== "function" && 839 | (typeof replacer !== "object" || 840 | typeof replacer.length !== "number")) { 841 | throw new Error("JSON.stringify"); 842 | } 843 | 844 | // Make a fake root object containing our value under the key of "". 845 | // Return the result of stringifying the value. 846 | 847 | return str("", {"": value}); 848 | }; 849 | } 850 | 851 | 852 | // If the JSON object does not yet have a parse method, give it one. 853 | 854 | if (typeof JSON.parse !== "function") { 855 | JSON.parse = function (text, reviver) { 856 | 857 | // The parse method takes a text and an optional reviver function, and returns 858 | // a JavaScript value if the text is a valid JSON text. 859 | 860 | var j; 861 | 862 | function walk(holder, key) { 863 | 864 | // The walk method is used to recursively walk the resulting structure so 865 | // that modifications can be made. 866 | 867 | var k; 868 | var v; 869 | var value = holder[key]; 870 | if (value && typeof value === "object") { 871 | for (k in value) { 872 | if (Object.prototype.hasOwnProperty.call(value, k)) { 873 | v = walk(value, k); 874 | if (v !== undefined) { 875 | value[k] = v; 876 | } else { 877 | delete value[k]; 878 | } 879 | } 880 | } 881 | } 882 | return reviver.call(holder, key, value); 883 | } 884 | 885 | 886 | // Parsing happens in four stages. In the first stage, we replace certain 887 | // Unicode characters with escape sequences. JavaScript handles many characters 888 | // incorrectly, either silently deleting them, or treating them as line endings. 889 | 890 | text = String(text); 891 | rx_dangerous.lastIndex = 0; 892 | if (rx_dangerous.test(text)) { 893 | text = text.replace(rx_dangerous, function (a) { 894 | return "\\u" + 895 | ("0000" + a.charCodeAt(0).toString(16)).slice(-4); 896 | }); 897 | } 898 | 899 | // In the second stage, we run the text against regular expressions that look 900 | // for non-JSON patterns. We are especially concerned with "()" and "new" 901 | // because they can cause invocation, and "=" because it can cause mutation. 902 | // But just to be safe, we want to reject all unexpected forms. 903 | 904 | // We split the second stage into 4 regexp operations in order to work around 905 | // crippling inefficiencies in IE's and Safari's regexp engines. First we 906 | // replace the JSON backslash pairs with "@" (a non-JSON character). Second, we 907 | // replace all simple value tokens with "]" characters. Third, we delete all 908 | // open brackets that follow a colon or comma or that begin the text. Finally, 909 | // we look to see that the remaining characters are only whitespace or "]" or 910 | // "," or ":" or "{" or "}". If that is so, then the text is safe for eval. 911 | 912 | if ( 913 | rx_one.test( 914 | text 915 | .replace(rx_two, "@") 916 | .replace(rx_three, "]") 917 | .replace(rx_four, "") 918 | ) 919 | ) { 920 | 921 | // In the third stage we use the eval function to compile the text into a 922 | // JavaScript structure. The "{" operator is subject to a syntactic ambiguity 923 | // in JavaScript: it can begin a block or an object literal. We wrap the text 924 | // in parens to eliminate the ambiguity. 925 | 926 | j = eval("(" + text + ")"); 927 | 928 | // In the optional fourth stage, we recursively walk the new structure, passing 929 | // each name/value pair to a reviver function for possible transformation. 930 | 931 | return (typeof reviver === "function") 932 | ? walk({"": j}, "") 933 | : j; 934 | } 935 | 936 | // If the text is not JSON parseable, then a SyntaxError is thrown. 937 | 938 | throw new SyntaxError("JSON.parse"); 939 | }; 940 | } 941 | }()); 942 | 943 | /***/ }), 944 | /* 6 */ 945 | /***/ (function(module, exports, __webpack_require__) { 946 | 947 | var util = __webpack_require__(0) 948 | var slice = util.slice 949 | var pluck = util.pluck 950 | var each = util.each 951 | var bind = util.bind 952 | var create = util.create 953 | var isList = util.isList 954 | var isFunction = util.isFunction 955 | var isObject = util.isObject 956 | 957 | module.exports = { 958 | createStore: createStore 959 | } 960 | 961 | var storeAPI = { 962 | version: '2.0.12', 963 | enabled: false, 964 | 965 | // get returns the value of the given key. If that value 966 | // is undefined, it returns optionalDefaultValue instead. 967 | get: function(key, optionalDefaultValue) { 968 | var data = this.storage.read(this._namespacePrefix + key) 969 | return this._deserialize(data, optionalDefaultValue) 970 | }, 971 | 972 | // set will store the given value at key and returns value. 973 | // Calling set with value === undefined is equivalent to calling remove. 974 | set: function(key, value) { 975 | if (value === undefined) { 976 | return this.remove(key) 977 | } 978 | this.storage.write(this._namespacePrefix + key, this._serialize(value)) 979 | return value 980 | }, 981 | 982 | // remove deletes the key and value stored at the given key. 983 | remove: function(key) { 984 | this.storage.remove(this._namespacePrefix + key) 985 | }, 986 | 987 | // each will call the given callback once for each key-value pair 988 | // in this store. 989 | each: function(callback) { 990 | var self = this 991 | this.storage.each(function(val, namespacedKey) { 992 | callback.call(self, self._deserialize(val), (namespacedKey || '').replace(self._namespaceRegexp, '')) 993 | }) 994 | }, 995 | 996 | // clearAll will remove all the stored key-value pairs in this store. 997 | clearAll: function() { 998 | this.storage.clearAll() 999 | }, 1000 | 1001 | // additional functionality that can't live in plugins 1002 | // --------------------------------------------------- 1003 | 1004 | // hasNamespace returns true if this store instance has the given namespace. 1005 | hasNamespace: function(namespace) { 1006 | return (this._namespacePrefix == '__storejs_'+namespace+'_') 1007 | }, 1008 | 1009 | // createStore creates a store.js instance with the first 1010 | // functioning storage in the list of storage candidates, 1011 | // and applies the the given mixins to the instance. 1012 | createStore: function() { 1013 | return createStore.apply(this, arguments) 1014 | }, 1015 | 1016 | addPlugin: function(plugin) { 1017 | this._addPlugin(plugin) 1018 | }, 1019 | 1020 | namespace: function(namespace) { 1021 | return createStore(this.storage, this.plugins, namespace) 1022 | } 1023 | } 1024 | 1025 | function _warn() { 1026 | var _console = (typeof console == 'undefined' ? null : console) 1027 | if (!_console) { return } 1028 | var fn = (_console.warn ? _console.warn : _console.log) 1029 | fn.apply(_console, arguments) 1030 | } 1031 | 1032 | function createStore(storages, plugins, namespace) { 1033 | if (!namespace) { 1034 | namespace = '' 1035 | } 1036 | if (storages && !isList(storages)) { 1037 | storages = [storages] 1038 | } 1039 | if (plugins && !isList(plugins)) { 1040 | plugins = [plugins] 1041 | } 1042 | 1043 | var namespacePrefix = (namespace ? '__storejs_'+namespace+'_' : '') 1044 | var namespaceRegexp = (namespace ? new RegExp('^'+namespacePrefix) : null) 1045 | var legalNamespaces = /^[a-zA-Z0-9_\-]*$/ // alpha-numeric + underscore and dash 1046 | if (!legalNamespaces.test(namespace)) { 1047 | throw new Error('store.js namespaces can only have alphanumerics + underscores and dashes') 1048 | } 1049 | 1050 | var _privateStoreProps = { 1051 | _namespacePrefix: namespacePrefix, 1052 | _namespaceRegexp: namespaceRegexp, 1053 | 1054 | _testStorage: function(storage) { 1055 | try { 1056 | var testStr = '__storejs__test__' 1057 | storage.write(testStr, testStr) 1058 | var ok = (storage.read(testStr) === testStr) 1059 | storage.remove(testStr) 1060 | return ok 1061 | } catch(e) { 1062 | return false 1063 | } 1064 | }, 1065 | 1066 | _assignPluginFnProp: function(pluginFnProp, propName) { 1067 | var oldFn = this[propName] 1068 | this[propName] = function pluginFn() { 1069 | var args = slice(arguments, 0) 1070 | var self = this 1071 | 1072 | // super_fn calls the old function which was overwritten by 1073 | // this mixin. 1074 | function super_fn() { 1075 | if (!oldFn) { return } 1076 | each(arguments, function(arg, i) { 1077 | args[i] = arg 1078 | }) 1079 | return oldFn.apply(self, args) 1080 | } 1081 | 1082 | // Give mixing function access to super_fn by prefixing all mixin function 1083 | // arguments with super_fn. 1084 | var newFnArgs = [super_fn].concat(args) 1085 | 1086 | return pluginFnProp.apply(self, newFnArgs) 1087 | } 1088 | }, 1089 | 1090 | _serialize: function(obj) { 1091 | return JSON.stringify(obj) 1092 | }, 1093 | 1094 | _deserialize: function(strVal, defaultVal) { 1095 | if (!strVal) { return defaultVal } 1096 | // It is possible that a raw string value has been previously stored 1097 | // in a storage without using store.js, meaning it will be a raw 1098 | // string value instead of a JSON serialized string. By defaulting 1099 | // to the raw string value in case of a JSON parse error, we allow 1100 | // for past stored values to be forwards-compatible with store.js 1101 | var val = '' 1102 | try { val = JSON.parse(strVal) } 1103 | catch(e) { val = strVal } 1104 | 1105 | return (val !== undefined ? val : defaultVal) 1106 | }, 1107 | 1108 | _addStorage: function(storage) { 1109 | if (this.enabled) { return } 1110 | if (this._testStorage(storage)) { 1111 | this.storage = storage 1112 | this.enabled = true 1113 | } 1114 | }, 1115 | 1116 | _addPlugin: function(plugin) { 1117 | var self = this 1118 | 1119 | // If the plugin is an array, then add all plugins in the array. 1120 | // This allows for a plugin to depend on other plugins. 1121 | if (isList(plugin)) { 1122 | each(plugin, function(plugin) { 1123 | self._addPlugin(plugin) 1124 | }) 1125 | return 1126 | } 1127 | 1128 | // Keep track of all plugins we've seen so far, so that we 1129 | // don't add any of them twice. 1130 | var seenPlugin = pluck(this.plugins, function(seenPlugin) { 1131 | return (plugin === seenPlugin) 1132 | }) 1133 | if (seenPlugin) { 1134 | return 1135 | } 1136 | this.plugins.push(plugin) 1137 | 1138 | // Check that the plugin is properly formed 1139 | if (!isFunction(plugin)) { 1140 | throw new Error('Plugins must be function values that return objects') 1141 | } 1142 | 1143 | var pluginProperties = plugin.call(this) 1144 | if (!isObject(pluginProperties)) { 1145 | throw new Error('Plugins must return an object of function properties') 1146 | } 1147 | 1148 | // Add the plugin function properties to this store instance. 1149 | each(pluginProperties, function(pluginFnProp, propName) { 1150 | if (!isFunction(pluginFnProp)) { 1151 | throw new Error('Bad plugin property: '+propName+' from plugin '+plugin.name+'. Plugins should only return functions.') 1152 | } 1153 | self._assignPluginFnProp(pluginFnProp, propName) 1154 | }) 1155 | }, 1156 | 1157 | // Put deprecated properties in the private API, so as to not expose it to accidential 1158 | // discovery through inspection of the store object. 1159 | 1160 | // Deprecated: addStorage 1161 | addStorage: function(storage) { 1162 | _warn('store.addStorage(storage) is deprecated. Use createStore([storages])') 1163 | this._addStorage(storage) 1164 | } 1165 | } 1166 | 1167 | var store = create(_privateStoreProps, storeAPI, { 1168 | plugins: [] 1169 | }) 1170 | store.raw = {} 1171 | each(store, function(prop, propName) { 1172 | if (isFunction(prop)) { 1173 | store.raw[propName] = bind(store, prop) 1174 | } 1175 | }) 1176 | each(storages, function(storage) { 1177 | store._addStorage(storage) 1178 | }) 1179 | each(plugins, function(plugin) { 1180 | store._addPlugin(plugin) 1181 | }) 1182 | return store 1183 | } 1184 | 1185 | 1186 | /***/ }), 1187 | /* 7 */ 1188 | /***/ (function(module, exports, __webpack_require__) { 1189 | 1190 | module.exports = [ 1191 | // Listed in order of usage preference 1192 | __webpack_require__(9), 1193 | __webpack_require__(11), 1194 | __webpack_require__(12), 1195 | __webpack_require__(8), 1196 | __webpack_require__(13), 1197 | __webpack_require__(10) 1198 | ] 1199 | 1200 | 1201 | /***/ }), 1202 | /* 8 */ 1203 | /***/ (function(module, exports, __webpack_require__) { 1204 | 1205 | // cookieStorage is useful Safari private browser mode, where localStorage 1206 | // doesn't work but cookies do. This implementation is adopted from 1207 | // https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage 1208 | 1209 | var util = __webpack_require__(0) 1210 | var Global = util.Global 1211 | var trim = util.trim 1212 | 1213 | module.exports = { 1214 | name: 'cookieStorage', 1215 | read: read, 1216 | write: write, 1217 | each: each, 1218 | remove: remove, 1219 | clearAll: clearAll, 1220 | } 1221 | 1222 | var doc = Global.document 1223 | 1224 | function read(key) { 1225 | if (!key || !_has(key)) { return null } 1226 | var regexpStr = "(?:^|.*;\\s*)" + 1227 | escape(key).replace(/[\-\.\+\*]/g, "\\$&") + 1228 | "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*" 1229 | return unescape(doc.cookie.replace(new RegExp(regexpStr), "$1")) 1230 | } 1231 | 1232 | function each(callback) { 1233 | var cookies = doc.cookie.split(/; ?/g) 1234 | for (var i = cookies.length - 1; i >= 0; i--) { 1235 | if (!trim(cookies[i])) { 1236 | continue 1237 | } 1238 | var kvp = cookies[i].split('=') 1239 | var key = unescape(kvp[0]) 1240 | var val = unescape(kvp[1]) 1241 | callback(val, key) 1242 | } 1243 | } 1244 | 1245 | function write(key, data) { 1246 | if(!key) { return } 1247 | doc.cookie = escape(key) + "=" + escape(data) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/" 1248 | } 1249 | 1250 | function remove(key) { 1251 | if (!key || !_has(key)) { 1252 | return 1253 | } 1254 | doc.cookie = escape(key) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/" 1255 | } 1256 | 1257 | function clearAll() { 1258 | each(function(_, key) { 1259 | remove(key) 1260 | }) 1261 | } 1262 | 1263 | function _has(key) { 1264 | return (new RegExp("(?:^|;\\s*)" + escape(key).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(doc.cookie) 1265 | } 1266 | 1267 | 1268 | /***/ }), 1269 | /* 9 */ 1270 | /***/ (function(module, exports, __webpack_require__) { 1271 | 1272 | var util = __webpack_require__(0) 1273 | var Global = util.Global 1274 | 1275 | module.exports = { 1276 | name: 'localStorage', 1277 | read: read, 1278 | write: write, 1279 | each: each, 1280 | remove: remove, 1281 | clearAll: clearAll, 1282 | } 1283 | 1284 | function localStorage() { 1285 | return Global.localStorage 1286 | } 1287 | 1288 | function read(key) { 1289 | return localStorage().getItem(key) 1290 | } 1291 | 1292 | function write(key, data) { 1293 | return localStorage().setItem(key, data) 1294 | } 1295 | 1296 | function each(fn) { 1297 | for (var i = localStorage().length - 1; i >= 0; i--) { 1298 | var key = localStorage().key(i) 1299 | fn(read(key), key) 1300 | } 1301 | } 1302 | 1303 | function remove(key) { 1304 | return localStorage().removeItem(key) 1305 | } 1306 | 1307 | function clearAll() { 1308 | return localStorage().clear() 1309 | } 1310 | 1311 | 1312 | /***/ }), 1313 | /* 10 */ 1314 | /***/ (function(module, exports) { 1315 | 1316 | // memoryStorage is a useful last fallback to ensure that the store 1317 | // is functions (meaning store.get(), store.set(), etc will all function). 1318 | // However, stored values will not persist when the browser navigates to 1319 | // a new page or reloads the current page. 1320 | 1321 | module.exports = { 1322 | name: 'memoryStorage', 1323 | read: read, 1324 | write: write, 1325 | each: each, 1326 | remove: remove, 1327 | clearAll: clearAll, 1328 | } 1329 | 1330 | var memoryStorage = {} 1331 | 1332 | function read(key) { 1333 | return memoryStorage[key] 1334 | } 1335 | 1336 | function write(key, data) { 1337 | memoryStorage[key] = data 1338 | } 1339 | 1340 | function each(callback) { 1341 | for (var key in memoryStorage) { 1342 | if (memoryStorage.hasOwnProperty(key)) { 1343 | callback(memoryStorage[key], key) 1344 | } 1345 | } 1346 | } 1347 | 1348 | function remove(key) { 1349 | delete memoryStorage[key] 1350 | } 1351 | 1352 | function clearAll(key) { 1353 | memoryStorage = {} 1354 | } 1355 | 1356 | 1357 | /***/ }), 1358 | /* 11 */ 1359 | /***/ (function(module, exports, __webpack_require__) { 1360 | 1361 | // oldFF-globalStorage provides storage for Firefox 1362 | // versions 6 and 7, where no localStorage, etc 1363 | // is available. 1364 | 1365 | var util = __webpack_require__(0) 1366 | var Global = util.Global 1367 | 1368 | module.exports = { 1369 | name: 'oldFF-globalStorage', 1370 | read: read, 1371 | write: write, 1372 | each: each, 1373 | remove: remove, 1374 | clearAll: clearAll, 1375 | } 1376 | 1377 | var globalStorage = Global.globalStorage 1378 | 1379 | function read(key) { 1380 | return globalStorage[key] 1381 | } 1382 | 1383 | function write(key, data) { 1384 | globalStorage[key] = data 1385 | } 1386 | 1387 | function each(fn) { 1388 | for (var i = globalStorage.length - 1; i >= 0; i--) { 1389 | var key = globalStorage.key(i) 1390 | fn(globalStorage[key], key) 1391 | } 1392 | } 1393 | 1394 | function remove(key) { 1395 | return globalStorage.removeItem(key) 1396 | } 1397 | 1398 | function clearAll() { 1399 | each(function(key, _) { 1400 | delete globalStorage[key] 1401 | }) 1402 | } 1403 | 1404 | 1405 | /***/ }), 1406 | /* 12 */ 1407 | /***/ (function(module, exports, __webpack_require__) { 1408 | 1409 | // oldIE-userDataStorage provides storage for Internet Explorer 1410 | // versions 6 and 7, where no localStorage, sessionStorage, etc 1411 | // is available. 1412 | 1413 | var util = __webpack_require__(0) 1414 | var Global = util.Global 1415 | 1416 | module.exports = { 1417 | name: 'oldIE-userDataStorage', 1418 | write: write, 1419 | read: read, 1420 | each: each, 1421 | remove: remove, 1422 | clearAll: clearAll, 1423 | } 1424 | 1425 | var storageName = 'storejs' 1426 | var doc = Global.document 1427 | var _withStorageEl = _makeIEStorageElFunction() 1428 | var disable = (Global.navigator ? Global.navigator.userAgent : '').match(/ (MSIE 8|MSIE 9|MSIE 10)\./) // MSIE 9.x, MSIE 10.x 1429 | 1430 | function write(unfixedKey, data) { 1431 | if (disable) { return } 1432 | var fixedKey = fixKey(unfixedKey) 1433 | _withStorageEl(function(storageEl) { 1434 | storageEl.setAttribute(fixedKey, data) 1435 | storageEl.save(storageName) 1436 | }) 1437 | } 1438 | 1439 | function read(unfixedKey) { 1440 | if (disable) { return } 1441 | var fixedKey = fixKey(unfixedKey) 1442 | var res = null 1443 | _withStorageEl(function(storageEl) { 1444 | res = storageEl.getAttribute(fixedKey) 1445 | }) 1446 | return res 1447 | } 1448 | 1449 | function each(callback) { 1450 | _withStorageEl(function(storageEl) { 1451 | var attributes = storageEl.XMLDocument.documentElement.attributes 1452 | for (var i=attributes.length-1; i>=0; i--) { 1453 | var attr = attributes[i] 1454 | callback(storageEl.getAttribute(attr.name), attr.name) 1455 | } 1456 | }) 1457 | } 1458 | 1459 | function remove(unfixedKey) { 1460 | var fixedKey = fixKey(unfixedKey) 1461 | _withStorageEl(function(storageEl) { 1462 | storageEl.removeAttribute(fixedKey) 1463 | storageEl.save(storageName) 1464 | }) 1465 | } 1466 | 1467 | function clearAll() { 1468 | _withStorageEl(function(storageEl) { 1469 | var attributes = storageEl.XMLDocument.documentElement.attributes 1470 | storageEl.load(storageName) 1471 | for (var i=attributes.length-1; i>=0; i--) { 1472 | storageEl.removeAttribute(attributes[i].name) 1473 | } 1474 | storageEl.save(storageName) 1475 | }) 1476 | } 1477 | 1478 | // Helpers 1479 | ////////// 1480 | 1481 | // In IE7, keys cannot start with a digit or contain certain chars. 1482 | // See https://github.com/marcuswestin/store.js/issues/40 1483 | // See https://github.com/marcuswestin/store.js/issues/83 1484 | var forbiddenCharsRegex = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", "g") 1485 | function fixKey(key) { 1486 | return key.replace(/^\d/, '___$&').replace(forbiddenCharsRegex, '___') 1487 | } 1488 | 1489 | function _makeIEStorageElFunction() { 1490 | if (!doc || !doc.documentElement || !doc.documentElement.addBehavior) { 1491 | return null 1492 | } 1493 | var scriptTag = 'script', 1494 | storageOwner, 1495 | storageContainer, 1496 | storageEl 1497 | 1498 | // Since #userData storage applies only to specific paths, we need to 1499 | // somehow link our data to a specific path. We choose /favicon.ico 1500 | // as a pretty safe option, since all browsers already make a request to 1501 | // this URL anyway and being a 404 will not hurt us here. We wrap an 1502 | // iframe pointing to the favicon in an ActiveXObject(htmlfile) object 1503 | // (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx) 1504 | // since the iframe access rules appear to allow direct access and 1505 | // manipulation of the document element, even for a 404 page. This 1506 | // document can be used instead of the current document (which would 1507 | // have been limited to the current path) to perform #userData storage. 1508 | try { 1509 | /* global ActiveXObject */ 1510 | storageContainer = new ActiveXObject('htmlfile') 1511 | storageContainer.open() 1512 | storageContainer.write('<'+scriptTag+'>document.w=window') 1513 | storageContainer.close() 1514 | storageOwner = storageContainer.w.frames[0].document 1515 | storageEl = storageOwner.createElement('div') 1516 | } catch(e) { 1517 | // somehow ActiveXObject instantiation failed (perhaps some special 1518 | // security settings or otherwse), fall back to per-path storage 1519 | storageEl = doc.createElement('div') 1520 | storageOwner = doc.body 1521 | } 1522 | 1523 | return function(storeFunction) { 1524 | var args = [].slice.call(arguments, 0) 1525 | args.unshift(storageEl) 1526 | // See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx 1527 | // and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx 1528 | storageOwner.appendChild(storageEl) 1529 | storageEl.addBehavior('#default#userData') 1530 | storageEl.load(storageName) 1531 | storeFunction.apply(this, args) 1532 | storageOwner.removeChild(storageEl) 1533 | return 1534 | } 1535 | } 1536 | 1537 | 1538 | /***/ }), 1539 | /* 13 */ 1540 | /***/ (function(module, exports, __webpack_require__) { 1541 | 1542 | var util = __webpack_require__(0) 1543 | var Global = util.Global 1544 | 1545 | module.exports = { 1546 | name: 'sessionStorage', 1547 | read: read, 1548 | write: write, 1549 | each: each, 1550 | remove: remove, 1551 | clearAll: clearAll 1552 | } 1553 | 1554 | function sessionStorage() { 1555 | return Global.sessionStorage 1556 | } 1557 | 1558 | function read(key) { 1559 | return sessionStorage().getItem(key) 1560 | } 1561 | 1562 | function write(key, data) { 1563 | return sessionStorage().setItem(key, data) 1564 | } 1565 | 1566 | function each(fn) { 1567 | for (var i = sessionStorage().length - 1; i >= 0; i--) { 1568 | var key = sessionStorage().key(i) 1569 | fn(read(key), key) 1570 | } 1571 | } 1572 | 1573 | function remove(key) { 1574 | return sessionStorage().removeItem(key) 1575 | } 1576 | 1577 | function clearAll() { 1578 | return sessionStorage().clear() 1579 | } 1580 | 1581 | 1582 | /***/ }), 1583 | /* 14 */ 1584 | /***/ (function(module, exports) { 1585 | 1586 | var g; 1587 | 1588 | // This works in non-strict mode 1589 | g = (function() { 1590 | return this; 1591 | })(); 1592 | 1593 | try { 1594 | // This works if eval is allowed (see CSP) 1595 | g = g || Function("return this")() || (1,eval)("this"); 1596 | } catch(e) { 1597 | // This works if the window reference is available 1598 | if(typeof window === "object") 1599 | g = window; 1600 | } 1601 | 1602 | // g can still be undefined, but nothing to do about it... 1603 | // We return undefined, instead of nothing here, so it's 1604 | // easier to handle this case. if(!global) { ...} 1605 | 1606 | module.exports = g; 1607 | 1608 | 1609 | /***/ }) 1610 | /******/ ]); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-simple-storage", 3 | "version": "1.4.2", 4 | "description": "Simple component and helper functions for using web storage with React.", 5 | "keywords": [ 6 | "react, localStorage", 7 | "web storage", 8 | "storage" 9 | ], 10 | "main": "build/index.js", 11 | "homepage": "https://ryanjyost.github.io/react-simple-storage-example-project/", 12 | "bugs": { 13 | "email": "ryanjyost@gmail.com" 14 | }, 15 | "license": "MIT", 16 | "peerDependencies": { 17 | "react": "^16.0.0" 18 | }, 19 | "dependencies": { 20 | "store": "^2.0.12" 21 | }, 22 | "repository": { 23 | "type": "git", 24 | "url": "https://github.com/ryanjyost/react-simple-storage" 25 | }, 26 | "scripts": { 27 | "start": "webpack --watch", 28 | "build": "webpack" 29 | }, 30 | "author": { 31 | "name": "Ryan Yost", 32 | "email": "ryanjyost@gmail.com" 33 | }, 34 | "devDependencies": { 35 | "webpack": "^2.6.1", 36 | "babel-cli": "^6.26.0", 37 | "babel-core": "^6.26.3", 38 | "babel-loader": "^7.0.0", 39 | "babel-plugin-transform-object-rest-spread": "^6.26.0", 40 | "babel-plugin-transform-react-jsx": "^6.24.1", 41 | "babel-preset-env": "^1.7.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from "react"; 2 | import store from "store"; 3 | 4 | export default class SimpleStorage extends Component { 5 | constructor(props) { 6 | super(props); 7 | this.state = { 8 | didHydrate: false, 9 | firedHydrateCallback: false 10 | }; 11 | this.testStorage = _testStorage.bind(this); 12 | } 13 | 14 | static getDerivedStateFromProps(props, state) { 15 | // callback function that fires after the parent's state has been hydrated with storage items 16 | if('onParentStateHydrated' in props && state.didHydrate && !state.firedHydrateCallback){ 17 | props.onParentStateHydrated(); 18 | return { 19 | ...state, ...{firedHydrateCallback: true} 20 | } 21 | } 22 | return state; 23 | } 24 | 25 | componentDidMount() { 26 | if (this.testStorage() === true) { 27 | this.hydrateStateWithStorage(); 28 | window.addEventListener( 29 | "pagehide", 30 | this.saveStateToStorage.bind(this) 31 | ); 32 | } 33 | } 34 | 35 | componentWillUnmount() { 36 | if (this.testStorage() === true) { 37 | this.saveStateToStorage(); 38 | window.removeEventListener( 39 | "pagehide", 40 | this.saveStateToStorage.bind(this) 41 | ); 42 | } 43 | } 44 | 45 | testStorage() { 46 | const test = "test"; 47 | try { 48 | store.set(test, test); 49 | store.remove(test); 50 | return true; 51 | } catch (e) { 52 | console.error("react-simple-storage could not access web storage."); 53 | return false; 54 | } 55 | } 56 | 57 | hydrateStateWithStorage() { 58 | let prefix = ""; 59 | let parent = {}; 60 | 61 | if (this.props.parent) { 62 | parent = this.props.parent; 63 | prefix = this.props.prefix ? this.props.prefix : ""; 64 | } else { 65 | console.error(`No "parent" prop was provided to react-simple-storage. A parent component's context is required in order to access and update the parent component's state. 66 | \nTry the following: `); 67 | return false; 68 | } 69 | 70 | // loop through storage 71 | store.each((value, key) => { 72 | // if the storage item is in the current parent's state 73 | if (key.includes(prefix)) { 74 | // remove the parent-specific prefix to get original key from parent's state 75 | let name = key.slice(prefix.length + 1); 76 | 77 | // update parent's state with the result 78 | // store.js handles parsing 79 | if (name in parent.state) { 80 | parent.setState({ [name]: value }); 81 | } 82 | } 83 | }); 84 | 85 | this.setState({didHydrate: true}) 86 | } 87 | 88 | saveStateToStorage(allowNewKey = true) { 89 | if(store.get("rss_cleared")){ 90 | store.set("rss_cleared", false); 91 | return 92 | } 93 | 94 | let prefix = ""; 95 | let parent = {}; 96 | let blacklist = []; 97 | 98 | if (this.props.parent) { 99 | prefix = this.props.prefix ? this.props.prefix : ""; 100 | parent = this.props.parent; 101 | blacklist = this.props.blacklist || []; 102 | } else { 103 | console.error(`No "parent" prop was provided to react-simple-storage. A parent component's context is required in order to access and update the parent component's state. 104 | \nTry the following: `); 105 | return false; 106 | } 107 | 108 | 109 | // loop through all of the parent's state 110 | for (let key in parent.state) { 111 | // save item to storage if not on the blacklist 112 | let prefixWithKey = `${prefix}_${key}`; 113 | if (blacklist.indexOf(key) < 0 && allowNewKey) { 114 | store.set(prefixWithKey, parent.state[key]); 115 | } 116 | } 117 | } 118 | 119 | render() { 120 | return null; 121 | } 122 | } 123 | 124 | function _testStorage() { 125 | const test = "test"; 126 | try { 127 | store.set(test, test); 128 | store.remove(test); 129 | return true; 130 | } catch (e) { 131 | console.error("react-simple-storage could not access any storage options."); 132 | return false; 133 | } 134 | } 135 | 136 | export function clearStorage(prefix) { 137 | if (_testStorage() === true) { 138 | store.each((value, key) => { 139 | if (key.includes(prefix)) { 140 | store.remove(key); 141 | } 142 | }); 143 | 144 | store.set("rss_cleared", true); 145 | } 146 | } 147 | 148 | export function resetParentState(parent, initialState = {}, keysToIgnore = []) { 149 | if (_testStorage() === true) { 150 | for (let key in initialState) { 151 | // reset property if not in keys to ignore 152 | if (keysToIgnore.indexOf(key) < 0) { 153 | parent.setState({ [key]: initialState[key] }); 154 | } 155 | } 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | module.exports = { 3 | entry: './src/index.js', 4 | output: { 5 | path: path.resolve(__dirname, 'build'), 6 | filename: 'index.js', 7 | libraryTarget: 'commonjs2' // THIS IS THE MOST IMPORTANT LINE! :mindblow: I wasted more than 2 days until realize this was the line most important in all this guide. 8 | }, 9 | module: { 10 | rules: [ 11 | { 12 | test: /\.js$/, 13 | include: path.resolve(__dirname, 'src'), 14 | exclude: /(node_modules|bower_components|build)/, 15 | use: { 16 | loader: 'babel-loader', 17 | options: { 18 | presets: ['env'] 19 | } 20 | } 21 | } 22 | ] 23 | }, 24 | externals: { 25 | 'react': 'commonjs react' // this line is just to use the React dependency of our parent-testing-project instead of using our own React. 26 | } 27 | }; -------------------------------------------------------------------------------- /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 | acorn-dynamic-import@^2.0.0: 10 | version "2.0.2" 11 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" 12 | dependencies: 13 | acorn "^4.0.3" 14 | 15 | acorn@^4.0.3: 16 | version "4.0.13" 17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" 18 | 19 | acorn@^5.0.0: 20 | version "5.7.3" 21 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" 22 | 23 | ajv-keywords@^1.1.1: 24 | version "1.5.1" 25 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 26 | 27 | ajv@^4.7.0: 28 | version "4.11.8" 29 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 30 | dependencies: 31 | co "^4.6.0" 32 | json-stable-stringify "^1.0.1" 33 | 34 | align-text@^0.1.1, align-text@^0.1.3: 35 | version "0.1.4" 36 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 37 | dependencies: 38 | kind-of "^3.0.2" 39 | longest "^1.0.1" 40 | repeat-string "^1.5.2" 41 | 42 | ansi-regex@^2.0.0: 43 | version "2.1.1" 44 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 45 | 46 | ansi-regex@^3.0.0: 47 | version "3.0.0" 48 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 49 | 50 | ansi-styles@^2.2.1: 51 | version "2.2.1" 52 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 53 | 54 | anymatch@^1.3.0: 55 | version "1.3.2" 56 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 57 | dependencies: 58 | micromatch "^2.1.5" 59 | normalize-path "^2.0.0" 60 | 61 | anymatch@^2.0.0: 62 | version "2.0.0" 63 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 64 | dependencies: 65 | micromatch "^3.1.4" 66 | normalize-path "^2.1.1" 67 | 68 | aproba@^1.0.3: 69 | version "1.2.0" 70 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 71 | 72 | are-we-there-yet@~1.1.2: 73 | version "1.1.5" 74 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 75 | dependencies: 76 | delegates "^1.0.0" 77 | readable-stream "^2.0.6" 78 | 79 | arr-diff@^2.0.0: 80 | version "2.0.0" 81 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 82 | dependencies: 83 | arr-flatten "^1.0.1" 84 | 85 | arr-diff@^4.0.0: 86 | version "4.0.0" 87 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 88 | 89 | arr-flatten@^1.0.1, arr-flatten@^1.1.0: 90 | version "1.1.0" 91 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 92 | 93 | arr-union@^3.1.0: 94 | version "3.1.0" 95 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 96 | 97 | array-unique@^0.2.1: 98 | version "0.2.1" 99 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 100 | 101 | array-unique@^0.3.2: 102 | version "0.3.2" 103 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 104 | 105 | asn1.js@^4.0.0: 106 | version "4.10.1" 107 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 108 | dependencies: 109 | bn.js "^4.0.0" 110 | inherits "^2.0.1" 111 | minimalistic-assert "^1.0.0" 112 | 113 | assert@^1.1.1: 114 | version "1.4.1" 115 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" 116 | dependencies: 117 | util "0.10.3" 118 | 119 | assign-symbols@^1.0.0: 120 | version "1.0.0" 121 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 122 | 123 | async-each@^1.0.0: 124 | version "1.0.1" 125 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 126 | 127 | async@^2.1.2: 128 | version "2.6.1" 129 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 130 | dependencies: 131 | lodash "^4.17.10" 132 | 133 | atob@^2.1.1: 134 | version "2.1.2" 135 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 136 | 137 | babel-cli@^6.26.0: 138 | version "6.26.0" 139 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" 140 | dependencies: 141 | babel-core "^6.26.0" 142 | babel-polyfill "^6.26.0" 143 | babel-register "^6.26.0" 144 | babel-runtime "^6.26.0" 145 | commander "^2.11.0" 146 | convert-source-map "^1.5.0" 147 | fs-readdir-recursive "^1.0.0" 148 | glob "^7.1.2" 149 | lodash "^4.17.4" 150 | output-file-sync "^1.1.2" 151 | path-is-absolute "^1.0.1" 152 | slash "^1.0.0" 153 | source-map "^0.5.6" 154 | v8flags "^2.1.1" 155 | optionalDependencies: 156 | chokidar "^1.6.1" 157 | 158 | babel-code-frame@^6.26.0: 159 | version "6.26.0" 160 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 161 | dependencies: 162 | chalk "^1.1.3" 163 | esutils "^2.0.2" 164 | js-tokens "^3.0.2" 165 | 166 | babel-core@^6.26.0, babel-core@^6.26.3: 167 | version "6.26.3" 168 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" 169 | dependencies: 170 | babel-code-frame "^6.26.0" 171 | babel-generator "^6.26.0" 172 | babel-helpers "^6.24.1" 173 | babel-messages "^6.23.0" 174 | babel-register "^6.26.0" 175 | babel-runtime "^6.26.0" 176 | babel-template "^6.26.0" 177 | babel-traverse "^6.26.0" 178 | babel-types "^6.26.0" 179 | babylon "^6.18.0" 180 | convert-source-map "^1.5.1" 181 | debug "^2.6.9" 182 | json5 "^0.5.1" 183 | lodash "^4.17.4" 184 | minimatch "^3.0.4" 185 | path-is-absolute "^1.0.1" 186 | private "^0.1.8" 187 | slash "^1.0.0" 188 | source-map "^0.5.7" 189 | 190 | babel-generator@^6.26.0: 191 | version "6.26.1" 192 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 193 | dependencies: 194 | babel-messages "^6.23.0" 195 | babel-runtime "^6.26.0" 196 | babel-types "^6.26.0" 197 | detect-indent "^4.0.0" 198 | jsesc "^1.3.0" 199 | lodash "^4.17.4" 200 | source-map "^0.5.7" 201 | trim-right "^1.0.1" 202 | 203 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 204 | version "6.24.1" 205 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" 206 | dependencies: 207 | babel-helper-explode-assignable-expression "^6.24.1" 208 | babel-runtime "^6.22.0" 209 | babel-types "^6.24.1" 210 | 211 | babel-helper-builder-react-jsx@^6.24.1: 212 | version "6.26.0" 213 | resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" 214 | dependencies: 215 | babel-runtime "^6.26.0" 216 | babel-types "^6.26.0" 217 | esutils "^2.0.2" 218 | 219 | babel-helper-call-delegate@^6.24.1: 220 | version "6.24.1" 221 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 222 | dependencies: 223 | babel-helper-hoist-variables "^6.24.1" 224 | babel-runtime "^6.22.0" 225 | babel-traverse "^6.24.1" 226 | babel-types "^6.24.1" 227 | 228 | babel-helper-define-map@^6.24.1: 229 | version "6.26.0" 230 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" 231 | dependencies: 232 | babel-helper-function-name "^6.24.1" 233 | babel-runtime "^6.26.0" 234 | babel-types "^6.26.0" 235 | lodash "^4.17.4" 236 | 237 | babel-helper-explode-assignable-expression@^6.24.1: 238 | version "6.24.1" 239 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 240 | dependencies: 241 | babel-runtime "^6.22.0" 242 | babel-traverse "^6.24.1" 243 | babel-types "^6.24.1" 244 | 245 | babel-helper-function-name@^6.24.1: 246 | version "6.24.1" 247 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 248 | dependencies: 249 | babel-helper-get-function-arity "^6.24.1" 250 | babel-runtime "^6.22.0" 251 | babel-template "^6.24.1" 252 | babel-traverse "^6.24.1" 253 | babel-types "^6.24.1" 254 | 255 | babel-helper-get-function-arity@^6.24.1: 256 | version "6.24.1" 257 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 258 | dependencies: 259 | babel-runtime "^6.22.0" 260 | babel-types "^6.24.1" 261 | 262 | babel-helper-hoist-variables@^6.24.1: 263 | version "6.24.1" 264 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 265 | dependencies: 266 | babel-runtime "^6.22.0" 267 | babel-types "^6.24.1" 268 | 269 | babel-helper-optimise-call-expression@^6.24.1: 270 | version "6.24.1" 271 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 272 | dependencies: 273 | babel-runtime "^6.22.0" 274 | babel-types "^6.24.1" 275 | 276 | babel-helper-regex@^6.24.1: 277 | version "6.26.0" 278 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" 279 | dependencies: 280 | babel-runtime "^6.26.0" 281 | babel-types "^6.26.0" 282 | lodash "^4.17.4" 283 | 284 | babel-helper-remap-async-to-generator@^6.24.1: 285 | version "6.24.1" 286 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" 287 | dependencies: 288 | babel-helper-function-name "^6.24.1" 289 | babel-runtime "^6.22.0" 290 | babel-template "^6.24.1" 291 | babel-traverse "^6.24.1" 292 | babel-types "^6.24.1" 293 | 294 | babel-helper-replace-supers@^6.24.1: 295 | version "6.24.1" 296 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 297 | dependencies: 298 | babel-helper-optimise-call-expression "^6.24.1" 299 | babel-messages "^6.23.0" 300 | babel-runtime "^6.22.0" 301 | babel-template "^6.24.1" 302 | babel-traverse "^6.24.1" 303 | babel-types "^6.24.1" 304 | 305 | babel-helpers@^6.24.1: 306 | version "6.24.1" 307 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 308 | dependencies: 309 | babel-runtime "^6.22.0" 310 | babel-template "^6.24.1" 311 | 312 | babel-loader@^7.0.0: 313 | version "7.1.5" 314 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68" 315 | dependencies: 316 | find-cache-dir "^1.0.0" 317 | loader-utils "^1.0.2" 318 | mkdirp "^0.5.1" 319 | 320 | babel-messages@^6.23.0: 321 | version "6.23.0" 322 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 323 | dependencies: 324 | babel-runtime "^6.22.0" 325 | 326 | babel-plugin-check-es2015-constants@^6.22.0: 327 | version "6.22.0" 328 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 329 | dependencies: 330 | babel-runtime "^6.22.0" 331 | 332 | babel-plugin-syntax-async-functions@^6.8.0: 333 | version "6.13.0" 334 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 335 | 336 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 337 | version "6.13.0" 338 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 339 | 340 | babel-plugin-syntax-jsx@^6.8.0: 341 | version "6.18.0" 342 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 343 | 344 | babel-plugin-syntax-object-rest-spread@^6.8.0: 345 | version "6.13.0" 346 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 347 | 348 | babel-plugin-syntax-trailing-function-commas@^6.22.0: 349 | version "6.22.0" 350 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 351 | 352 | babel-plugin-transform-async-to-generator@^6.22.0: 353 | version "6.24.1" 354 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" 355 | dependencies: 356 | babel-helper-remap-async-to-generator "^6.24.1" 357 | babel-plugin-syntax-async-functions "^6.8.0" 358 | babel-runtime "^6.22.0" 359 | 360 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 361 | version "6.22.0" 362 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 363 | dependencies: 364 | babel-runtime "^6.22.0" 365 | 366 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 367 | version "6.22.0" 368 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 369 | dependencies: 370 | babel-runtime "^6.22.0" 371 | 372 | babel-plugin-transform-es2015-block-scoping@^6.23.0: 373 | version "6.26.0" 374 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" 375 | dependencies: 376 | babel-runtime "^6.26.0" 377 | babel-template "^6.26.0" 378 | babel-traverse "^6.26.0" 379 | babel-types "^6.26.0" 380 | lodash "^4.17.4" 381 | 382 | babel-plugin-transform-es2015-classes@^6.23.0: 383 | version "6.24.1" 384 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 385 | dependencies: 386 | babel-helper-define-map "^6.24.1" 387 | babel-helper-function-name "^6.24.1" 388 | babel-helper-optimise-call-expression "^6.24.1" 389 | babel-helper-replace-supers "^6.24.1" 390 | babel-messages "^6.23.0" 391 | babel-runtime "^6.22.0" 392 | babel-template "^6.24.1" 393 | babel-traverse "^6.24.1" 394 | babel-types "^6.24.1" 395 | 396 | babel-plugin-transform-es2015-computed-properties@^6.22.0: 397 | version "6.24.1" 398 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 399 | dependencies: 400 | babel-runtime "^6.22.0" 401 | babel-template "^6.24.1" 402 | 403 | babel-plugin-transform-es2015-destructuring@^6.23.0: 404 | version "6.23.0" 405 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 406 | dependencies: 407 | babel-runtime "^6.22.0" 408 | 409 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0: 410 | version "6.24.1" 411 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 412 | dependencies: 413 | babel-runtime "^6.22.0" 414 | babel-types "^6.24.1" 415 | 416 | babel-plugin-transform-es2015-for-of@^6.23.0: 417 | version "6.23.0" 418 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 419 | dependencies: 420 | babel-runtime "^6.22.0" 421 | 422 | babel-plugin-transform-es2015-function-name@^6.22.0: 423 | version "6.24.1" 424 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 425 | dependencies: 426 | babel-helper-function-name "^6.24.1" 427 | babel-runtime "^6.22.0" 428 | babel-types "^6.24.1" 429 | 430 | babel-plugin-transform-es2015-literals@^6.22.0: 431 | version "6.22.0" 432 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 433 | dependencies: 434 | babel-runtime "^6.22.0" 435 | 436 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: 437 | version "6.24.1" 438 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 439 | dependencies: 440 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 441 | babel-runtime "^6.22.0" 442 | babel-template "^6.24.1" 443 | 444 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 445 | version "6.26.2" 446 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" 447 | dependencies: 448 | babel-plugin-transform-strict-mode "^6.24.1" 449 | babel-runtime "^6.26.0" 450 | babel-template "^6.26.0" 451 | babel-types "^6.26.0" 452 | 453 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0: 454 | version "6.24.1" 455 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 456 | dependencies: 457 | babel-helper-hoist-variables "^6.24.1" 458 | babel-runtime "^6.22.0" 459 | babel-template "^6.24.1" 460 | 461 | babel-plugin-transform-es2015-modules-umd@^6.23.0: 462 | version "6.24.1" 463 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 464 | dependencies: 465 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 466 | babel-runtime "^6.22.0" 467 | babel-template "^6.24.1" 468 | 469 | babel-plugin-transform-es2015-object-super@^6.22.0: 470 | version "6.24.1" 471 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 472 | dependencies: 473 | babel-helper-replace-supers "^6.24.1" 474 | babel-runtime "^6.22.0" 475 | 476 | babel-plugin-transform-es2015-parameters@^6.23.0: 477 | version "6.24.1" 478 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 479 | dependencies: 480 | babel-helper-call-delegate "^6.24.1" 481 | babel-helper-get-function-arity "^6.24.1" 482 | babel-runtime "^6.22.0" 483 | babel-template "^6.24.1" 484 | babel-traverse "^6.24.1" 485 | babel-types "^6.24.1" 486 | 487 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0: 488 | version "6.24.1" 489 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 490 | dependencies: 491 | babel-runtime "^6.22.0" 492 | babel-types "^6.24.1" 493 | 494 | babel-plugin-transform-es2015-spread@^6.22.0: 495 | version "6.22.0" 496 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 497 | dependencies: 498 | babel-runtime "^6.22.0" 499 | 500 | babel-plugin-transform-es2015-sticky-regex@^6.22.0: 501 | version "6.24.1" 502 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 503 | dependencies: 504 | babel-helper-regex "^6.24.1" 505 | babel-runtime "^6.22.0" 506 | babel-types "^6.24.1" 507 | 508 | babel-plugin-transform-es2015-template-literals@^6.22.0: 509 | version "6.22.0" 510 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 511 | dependencies: 512 | babel-runtime "^6.22.0" 513 | 514 | babel-plugin-transform-es2015-typeof-symbol@^6.23.0: 515 | version "6.23.0" 516 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 517 | dependencies: 518 | babel-runtime "^6.22.0" 519 | 520 | babel-plugin-transform-es2015-unicode-regex@^6.22.0: 521 | version "6.24.1" 522 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 523 | dependencies: 524 | babel-helper-regex "^6.24.1" 525 | babel-runtime "^6.22.0" 526 | regexpu-core "^2.0.0" 527 | 528 | babel-plugin-transform-exponentiation-operator@^6.22.0: 529 | version "6.24.1" 530 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 531 | dependencies: 532 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 533 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 534 | babel-runtime "^6.22.0" 535 | 536 | babel-plugin-transform-object-rest-spread@^6.26.0: 537 | version "6.26.0" 538 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" 539 | dependencies: 540 | babel-plugin-syntax-object-rest-spread "^6.8.0" 541 | babel-runtime "^6.26.0" 542 | 543 | babel-plugin-transform-react-jsx@^6.24.1: 544 | version "6.24.1" 545 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" 546 | dependencies: 547 | babel-helper-builder-react-jsx "^6.24.1" 548 | babel-plugin-syntax-jsx "^6.8.0" 549 | babel-runtime "^6.22.0" 550 | 551 | babel-plugin-transform-regenerator@^6.22.0: 552 | version "6.26.0" 553 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" 554 | dependencies: 555 | regenerator-transform "^0.10.0" 556 | 557 | babel-plugin-transform-strict-mode@^6.24.1: 558 | version "6.24.1" 559 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 560 | dependencies: 561 | babel-runtime "^6.22.0" 562 | babel-types "^6.24.1" 563 | 564 | babel-polyfill@^6.26.0: 565 | version "6.26.0" 566 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" 567 | dependencies: 568 | babel-runtime "^6.26.0" 569 | core-js "^2.5.0" 570 | regenerator-runtime "^0.10.5" 571 | 572 | babel-preset-env@^1.7.0: 573 | version "1.7.0" 574 | resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" 575 | dependencies: 576 | babel-plugin-check-es2015-constants "^6.22.0" 577 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 578 | babel-plugin-transform-async-to-generator "^6.22.0" 579 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 580 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 581 | babel-plugin-transform-es2015-block-scoping "^6.23.0" 582 | babel-plugin-transform-es2015-classes "^6.23.0" 583 | babel-plugin-transform-es2015-computed-properties "^6.22.0" 584 | babel-plugin-transform-es2015-destructuring "^6.23.0" 585 | babel-plugin-transform-es2015-duplicate-keys "^6.22.0" 586 | babel-plugin-transform-es2015-for-of "^6.23.0" 587 | babel-plugin-transform-es2015-function-name "^6.22.0" 588 | babel-plugin-transform-es2015-literals "^6.22.0" 589 | babel-plugin-transform-es2015-modules-amd "^6.22.0" 590 | babel-plugin-transform-es2015-modules-commonjs "^6.23.0" 591 | babel-plugin-transform-es2015-modules-systemjs "^6.23.0" 592 | babel-plugin-transform-es2015-modules-umd "^6.23.0" 593 | babel-plugin-transform-es2015-object-super "^6.22.0" 594 | babel-plugin-transform-es2015-parameters "^6.23.0" 595 | babel-plugin-transform-es2015-shorthand-properties "^6.22.0" 596 | babel-plugin-transform-es2015-spread "^6.22.0" 597 | babel-plugin-transform-es2015-sticky-regex "^6.22.0" 598 | babel-plugin-transform-es2015-template-literals "^6.22.0" 599 | babel-plugin-transform-es2015-typeof-symbol "^6.23.0" 600 | babel-plugin-transform-es2015-unicode-regex "^6.22.0" 601 | babel-plugin-transform-exponentiation-operator "^6.22.0" 602 | babel-plugin-transform-regenerator "^6.22.0" 603 | browserslist "^3.2.6" 604 | invariant "^2.2.2" 605 | semver "^5.3.0" 606 | 607 | babel-register@^6.26.0: 608 | version "6.26.0" 609 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 610 | dependencies: 611 | babel-core "^6.26.0" 612 | babel-runtime "^6.26.0" 613 | core-js "^2.5.0" 614 | home-or-tmp "^2.0.0" 615 | lodash "^4.17.4" 616 | mkdirp "^0.5.1" 617 | source-map-support "^0.4.15" 618 | 619 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: 620 | version "6.26.0" 621 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 622 | dependencies: 623 | core-js "^2.4.0" 624 | regenerator-runtime "^0.11.0" 625 | 626 | babel-template@^6.24.1, babel-template@^6.26.0: 627 | version "6.26.0" 628 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 629 | dependencies: 630 | babel-runtime "^6.26.0" 631 | babel-traverse "^6.26.0" 632 | babel-types "^6.26.0" 633 | babylon "^6.18.0" 634 | lodash "^4.17.4" 635 | 636 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: 637 | version "6.26.0" 638 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 639 | dependencies: 640 | babel-code-frame "^6.26.0" 641 | babel-messages "^6.23.0" 642 | babel-runtime "^6.26.0" 643 | babel-types "^6.26.0" 644 | babylon "^6.18.0" 645 | debug "^2.6.8" 646 | globals "^9.18.0" 647 | invariant "^2.2.2" 648 | lodash "^4.17.4" 649 | 650 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: 651 | version "6.26.0" 652 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 653 | dependencies: 654 | babel-runtime "^6.26.0" 655 | esutils "^2.0.2" 656 | lodash "^4.17.4" 657 | to-fast-properties "^1.0.3" 658 | 659 | babylon@^6.18.0: 660 | version "6.18.0" 661 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 662 | 663 | balanced-match@^1.0.0: 664 | version "1.0.0" 665 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 666 | 667 | base64-js@^1.0.2: 668 | version "1.3.0" 669 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 670 | 671 | base@^0.11.1: 672 | version "0.11.2" 673 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 674 | dependencies: 675 | cache-base "^1.0.1" 676 | class-utils "^0.3.5" 677 | component-emitter "^1.2.1" 678 | define-property "^1.0.0" 679 | isobject "^3.0.1" 680 | mixin-deep "^1.2.0" 681 | pascalcase "^0.1.1" 682 | 683 | big.js@^3.1.3: 684 | version "3.2.0" 685 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" 686 | 687 | binary-extensions@^1.0.0: 688 | version "1.12.0" 689 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" 690 | 691 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 692 | version "4.11.8" 693 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 694 | 695 | brace-expansion@^1.1.7: 696 | version "1.1.11" 697 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 698 | dependencies: 699 | balanced-match "^1.0.0" 700 | concat-map "0.0.1" 701 | 702 | braces@^1.8.2: 703 | version "1.8.5" 704 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 705 | dependencies: 706 | expand-range "^1.8.1" 707 | preserve "^0.2.0" 708 | repeat-element "^1.1.2" 709 | 710 | braces@^2.3.0, braces@^2.3.1: 711 | version "2.3.2" 712 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 713 | dependencies: 714 | arr-flatten "^1.1.0" 715 | array-unique "^0.3.2" 716 | extend-shallow "^2.0.1" 717 | fill-range "^4.0.0" 718 | isobject "^3.0.1" 719 | repeat-element "^1.1.2" 720 | snapdragon "^0.8.1" 721 | snapdragon-node "^2.0.1" 722 | split-string "^3.0.2" 723 | to-regex "^3.0.1" 724 | 725 | brorand@^1.0.1: 726 | version "1.1.0" 727 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 728 | 729 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 730 | version "1.2.0" 731 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 732 | dependencies: 733 | buffer-xor "^1.0.3" 734 | cipher-base "^1.0.0" 735 | create-hash "^1.1.0" 736 | evp_bytestokey "^1.0.3" 737 | inherits "^2.0.1" 738 | safe-buffer "^5.0.1" 739 | 740 | browserify-cipher@^1.0.0: 741 | version "1.0.1" 742 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 743 | dependencies: 744 | browserify-aes "^1.0.4" 745 | browserify-des "^1.0.0" 746 | evp_bytestokey "^1.0.0" 747 | 748 | browserify-des@^1.0.0: 749 | version "1.0.2" 750 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 751 | dependencies: 752 | cipher-base "^1.0.1" 753 | des.js "^1.0.0" 754 | inherits "^2.0.1" 755 | safe-buffer "^5.1.2" 756 | 757 | browserify-rsa@^4.0.0: 758 | version "4.0.1" 759 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 760 | dependencies: 761 | bn.js "^4.1.0" 762 | randombytes "^2.0.1" 763 | 764 | browserify-sign@^4.0.0: 765 | version "4.0.4" 766 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 767 | dependencies: 768 | bn.js "^4.1.1" 769 | browserify-rsa "^4.0.0" 770 | create-hash "^1.1.0" 771 | create-hmac "^1.1.2" 772 | elliptic "^6.0.0" 773 | inherits "^2.0.1" 774 | parse-asn1 "^5.0.0" 775 | 776 | browserify-zlib@^0.2.0: 777 | version "0.2.0" 778 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 779 | dependencies: 780 | pako "~1.0.5" 781 | 782 | browserslist@^3.2.6: 783 | version "3.2.8" 784 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" 785 | dependencies: 786 | caniuse-lite "^1.0.30000844" 787 | electron-to-chromium "^1.3.47" 788 | 789 | buffer-xor@^1.0.3: 790 | version "1.0.3" 791 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 792 | 793 | buffer@^4.3.0: 794 | version "4.9.1" 795 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 796 | dependencies: 797 | base64-js "^1.0.2" 798 | ieee754 "^1.1.4" 799 | isarray "^1.0.0" 800 | 801 | builtin-modules@^1.0.0: 802 | version "1.1.1" 803 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 804 | 805 | builtin-status-codes@^3.0.0: 806 | version "3.0.0" 807 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 808 | 809 | cache-base@^1.0.1: 810 | version "1.0.1" 811 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 812 | dependencies: 813 | collection-visit "^1.0.0" 814 | component-emitter "^1.2.1" 815 | get-value "^2.0.6" 816 | has-value "^1.0.0" 817 | isobject "^3.0.1" 818 | set-value "^2.0.0" 819 | to-object-path "^0.3.0" 820 | union-value "^1.0.0" 821 | unset-value "^1.0.0" 822 | 823 | camelcase@^1.0.2: 824 | version "1.2.1" 825 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 826 | 827 | camelcase@^3.0.0: 828 | version "3.0.0" 829 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 830 | 831 | caniuse-lite@^1.0.30000844: 832 | version "1.0.30000887" 833 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000887.tgz#1769458c27bbdcf61b0cb6b5072bb6cd11fd9c23" 834 | 835 | center-align@^0.1.1: 836 | version "0.1.3" 837 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 838 | dependencies: 839 | align-text "^0.1.3" 840 | lazy-cache "^1.0.3" 841 | 842 | chalk@^1.1.3: 843 | version "1.1.3" 844 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 845 | dependencies: 846 | ansi-styles "^2.2.1" 847 | escape-string-regexp "^1.0.2" 848 | has-ansi "^2.0.0" 849 | strip-ansi "^3.0.0" 850 | supports-color "^2.0.0" 851 | 852 | chokidar@^1.6.1: 853 | version "1.7.0" 854 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 855 | dependencies: 856 | anymatch "^1.3.0" 857 | async-each "^1.0.0" 858 | glob-parent "^2.0.0" 859 | inherits "^2.0.1" 860 | is-binary-path "^1.0.0" 861 | is-glob "^2.0.0" 862 | path-is-absolute "^1.0.0" 863 | readdirp "^2.0.0" 864 | optionalDependencies: 865 | fsevents "^1.0.0" 866 | 867 | chokidar@^2.0.2: 868 | version "2.0.4" 869 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" 870 | dependencies: 871 | anymatch "^2.0.0" 872 | async-each "^1.0.0" 873 | braces "^2.3.0" 874 | glob-parent "^3.1.0" 875 | inherits "^2.0.1" 876 | is-binary-path "^1.0.0" 877 | is-glob "^4.0.0" 878 | lodash.debounce "^4.0.8" 879 | normalize-path "^2.1.1" 880 | path-is-absolute "^1.0.0" 881 | readdirp "^2.0.0" 882 | upath "^1.0.5" 883 | optionalDependencies: 884 | fsevents "^1.2.2" 885 | 886 | chownr@^1.0.1: 887 | version "1.1.1" 888 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 889 | 890 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 891 | version "1.0.4" 892 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 893 | dependencies: 894 | inherits "^2.0.1" 895 | safe-buffer "^5.0.1" 896 | 897 | class-utils@^0.3.5: 898 | version "0.3.6" 899 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 900 | dependencies: 901 | arr-union "^3.1.0" 902 | define-property "^0.2.5" 903 | isobject "^3.0.0" 904 | static-extend "^0.1.1" 905 | 906 | cliui@^2.1.0: 907 | version "2.1.0" 908 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 909 | dependencies: 910 | center-align "^0.1.1" 911 | right-align "^0.1.1" 912 | wordwrap "0.0.2" 913 | 914 | cliui@^3.2.0: 915 | version "3.2.0" 916 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 917 | dependencies: 918 | string-width "^1.0.1" 919 | strip-ansi "^3.0.1" 920 | wrap-ansi "^2.0.0" 921 | 922 | co@^4.6.0: 923 | version "4.6.0" 924 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 925 | 926 | code-point-at@^1.0.0: 927 | version "1.1.0" 928 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 929 | 930 | collection-visit@^1.0.0: 931 | version "1.0.0" 932 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 933 | dependencies: 934 | map-visit "^1.0.0" 935 | object-visit "^1.0.0" 936 | 937 | commander@^2.11.0: 938 | version "2.18.0" 939 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" 940 | 941 | commondir@^1.0.1: 942 | version "1.0.1" 943 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 944 | 945 | component-emitter@^1.2.1: 946 | version "1.2.1" 947 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 948 | 949 | concat-map@0.0.1: 950 | version "0.0.1" 951 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 952 | 953 | console-browserify@^1.1.0: 954 | version "1.1.0" 955 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 956 | dependencies: 957 | date-now "^0.1.4" 958 | 959 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 960 | version "1.1.0" 961 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 962 | 963 | constants-browserify@^1.0.0: 964 | version "1.0.0" 965 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 966 | 967 | convert-source-map@^1.5.0, convert-source-map@^1.5.1: 968 | version "1.6.0" 969 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" 970 | dependencies: 971 | safe-buffer "~5.1.1" 972 | 973 | copy-descriptor@^0.1.0: 974 | version "0.1.1" 975 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 976 | 977 | core-js@^2.4.0, core-js@^2.5.0: 978 | version "2.5.7" 979 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 980 | 981 | core-util-is@~1.0.0: 982 | version "1.0.2" 983 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 984 | 985 | create-ecdh@^4.0.0: 986 | version "4.0.3" 987 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 988 | dependencies: 989 | bn.js "^4.1.0" 990 | elliptic "^6.0.0" 991 | 992 | create-hash@^1.1.0, create-hash@^1.1.2: 993 | version "1.2.0" 994 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 995 | dependencies: 996 | cipher-base "^1.0.1" 997 | inherits "^2.0.1" 998 | md5.js "^1.3.4" 999 | ripemd160 "^2.0.1" 1000 | sha.js "^2.4.0" 1001 | 1002 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 1003 | version "1.1.7" 1004 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 1005 | dependencies: 1006 | cipher-base "^1.0.3" 1007 | create-hash "^1.1.0" 1008 | inherits "^2.0.1" 1009 | ripemd160 "^2.0.0" 1010 | safe-buffer "^5.0.1" 1011 | sha.js "^2.4.8" 1012 | 1013 | crypto-browserify@^3.11.0: 1014 | version "3.12.0" 1015 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 1016 | dependencies: 1017 | browserify-cipher "^1.0.0" 1018 | browserify-sign "^4.0.0" 1019 | create-ecdh "^4.0.0" 1020 | create-hash "^1.1.0" 1021 | create-hmac "^1.1.0" 1022 | diffie-hellman "^5.0.0" 1023 | inherits "^2.0.1" 1024 | pbkdf2 "^3.0.3" 1025 | public-encrypt "^4.0.0" 1026 | randombytes "^2.0.0" 1027 | randomfill "^1.0.3" 1028 | 1029 | date-now@^0.1.4: 1030 | version "0.1.4" 1031 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 1032 | 1033 | debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: 1034 | version "2.6.9" 1035 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 1036 | dependencies: 1037 | ms "2.0.0" 1038 | 1039 | decamelize@^1.0.0, decamelize@^1.1.1: 1040 | version "1.2.0" 1041 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 1042 | 1043 | decode-uri-component@^0.2.0: 1044 | version "0.2.0" 1045 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 1046 | 1047 | deep-extend@^0.6.0: 1048 | version "0.6.0" 1049 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 1050 | 1051 | define-property@^0.2.5: 1052 | version "0.2.5" 1053 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 1054 | dependencies: 1055 | is-descriptor "^0.1.0" 1056 | 1057 | define-property@^1.0.0: 1058 | version "1.0.0" 1059 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 1060 | dependencies: 1061 | is-descriptor "^1.0.0" 1062 | 1063 | define-property@^2.0.2: 1064 | version "2.0.2" 1065 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 1066 | dependencies: 1067 | is-descriptor "^1.0.2" 1068 | isobject "^3.0.1" 1069 | 1070 | delegates@^1.0.0: 1071 | version "1.0.0" 1072 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1073 | 1074 | des.js@^1.0.0: 1075 | version "1.0.0" 1076 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 1077 | dependencies: 1078 | inherits "^2.0.1" 1079 | minimalistic-assert "^1.0.0" 1080 | 1081 | detect-indent@^4.0.0: 1082 | version "4.0.0" 1083 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 1084 | dependencies: 1085 | repeating "^2.0.0" 1086 | 1087 | detect-libc@^1.0.2: 1088 | version "1.0.3" 1089 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 1090 | 1091 | diffie-hellman@^5.0.0: 1092 | version "5.0.3" 1093 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 1094 | dependencies: 1095 | bn.js "^4.1.0" 1096 | miller-rabin "^4.0.0" 1097 | randombytes "^2.0.0" 1098 | 1099 | domain-browser@^1.1.1: 1100 | version "1.2.0" 1101 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 1102 | 1103 | electron-to-chromium@^1.3.47: 1104 | version "1.3.70" 1105 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz#ded377256d92d81b4257d36c65aa890274afcfd2" 1106 | 1107 | elliptic@^6.0.0: 1108 | version "6.4.1" 1109 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" 1110 | dependencies: 1111 | bn.js "^4.4.0" 1112 | brorand "^1.0.1" 1113 | hash.js "^1.0.0" 1114 | hmac-drbg "^1.0.0" 1115 | inherits "^2.0.1" 1116 | minimalistic-assert "^1.0.0" 1117 | minimalistic-crypto-utils "^1.0.0" 1118 | 1119 | emojis-list@^2.0.0: 1120 | version "2.1.0" 1121 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 1122 | 1123 | enhanced-resolve@^3.3.0: 1124 | version "3.4.1" 1125 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" 1126 | dependencies: 1127 | graceful-fs "^4.1.2" 1128 | memory-fs "^0.4.0" 1129 | object-assign "^4.0.1" 1130 | tapable "^0.2.7" 1131 | 1132 | errno@^0.1.3: 1133 | version "0.1.7" 1134 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" 1135 | dependencies: 1136 | prr "~1.0.1" 1137 | 1138 | error-ex@^1.2.0: 1139 | version "1.3.2" 1140 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 1141 | dependencies: 1142 | is-arrayish "^0.2.1" 1143 | 1144 | escape-string-regexp@^1.0.2: 1145 | version "1.0.5" 1146 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1147 | 1148 | esutils@^2.0.2: 1149 | version "2.0.2" 1150 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1151 | 1152 | events@^1.0.0: 1153 | version "1.1.1" 1154 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 1155 | 1156 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 1157 | version "1.0.3" 1158 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 1159 | dependencies: 1160 | md5.js "^1.3.4" 1161 | safe-buffer "^5.1.1" 1162 | 1163 | expand-brackets@^0.1.4: 1164 | version "0.1.5" 1165 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1166 | dependencies: 1167 | is-posix-bracket "^0.1.0" 1168 | 1169 | expand-brackets@^2.1.4: 1170 | version "2.1.4" 1171 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 1172 | dependencies: 1173 | debug "^2.3.3" 1174 | define-property "^0.2.5" 1175 | extend-shallow "^2.0.1" 1176 | posix-character-classes "^0.1.0" 1177 | regex-not "^1.0.0" 1178 | snapdragon "^0.8.1" 1179 | to-regex "^3.0.1" 1180 | 1181 | expand-range@^1.8.1: 1182 | version "1.8.2" 1183 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1184 | dependencies: 1185 | fill-range "^2.1.0" 1186 | 1187 | extend-shallow@^2.0.1: 1188 | version "2.0.1" 1189 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1190 | dependencies: 1191 | is-extendable "^0.1.0" 1192 | 1193 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1194 | version "3.0.2" 1195 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1196 | dependencies: 1197 | assign-symbols "^1.0.0" 1198 | is-extendable "^1.0.1" 1199 | 1200 | extglob@^0.3.1: 1201 | version "0.3.2" 1202 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1203 | dependencies: 1204 | is-extglob "^1.0.0" 1205 | 1206 | extglob@^2.0.4: 1207 | version "2.0.4" 1208 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1209 | dependencies: 1210 | array-unique "^0.3.2" 1211 | define-property "^1.0.0" 1212 | expand-brackets "^2.1.4" 1213 | extend-shallow "^2.0.1" 1214 | fragment-cache "^0.2.1" 1215 | regex-not "^1.0.0" 1216 | snapdragon "^0.8.1" 1217 | to-regex "^3.0.1" 1218 | 1219 | filename-regex@^2.0.0: 1220 | version "2.0.1" 1221 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1222 | 1223 | fill-range@^2.1.0: 1224 | version "2.2.4" 1225 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" 1226 | dependencies: 1227 | is-number "^2.1.0" 1228 | isobject "^2.0.0" 1229 | randomatic "^3.0.0" 1230 | repeat-element "^1.1.2" 1231 | repeat-string "^1.5.2" 1232 | 1233 | fill-range@^4.0.0: 1234 | version "4.0.0" 1235 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1236 | dependencies: 1237 | extend-shallow "^2.0.1" 1238 | is-number "^3.0.0" 1239 | repeat-string "^1.6.1" 1240 | to-regex-range "^2.1.0" 1241 | 1242 | find-cache-dir@^1.0.0: 1243 | version "1.0.0" 1244 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" 1245 | dependencies: 1246 | commondir "^1.0.1" 1247 | make-dir "^1.0.0" 1248 | pkg-dir "^2.0.0" 1249 | 1250 | find-up@^1.0.0: 1251 | version "1.1.2" 1252 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1253 | dependencies: 1254 | path-exists "^2.0.0" 1255 | pinkie-promise "^2.0.0" 1256 | 1257 | find-up@^2.1.0: 1258 | version "2.1.0" 1259 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1260 | dependencies: 1261 | locate-path "^2.0.0" 1262 | 1263 | for-in@^1.0.1, for-in@^1.0.2: 1264 | version "1.0.2" 1265 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1266 | 1267 | for-own@^0.1.4: 1268 | version "0.1.5" 1269 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1270 | dependencies: 1271 | for-in "^1.0.1" 1272 | 1273 | fragment-cache@^0.2.1: 1274 | version "0.2.1" 1275 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1276 | dependencies: 1277 | map-cache "^0.2.2" 1278 | 1279 | fs-minipass@^1.2.5: 1280 | version "1.2.5" 1281 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1282 | dependencies: 1283 | minipass "^2.2.1" 1284 | 1285 | fs-readdir-recursive@^1.0.0: 1286 | version "1.1.0" 1287 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" 1288 | 1289 | fs.realpath@^1.0.0: 1290 | version "1.0.0" 1291 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1292 | 1293 | fsevents@^1.0.0, fsevents@^1.2.2: 1294 | version "1.2.4" 1295 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 1296 | dependencies: 1297 | nan "^2.9.2" 1298 | node-pre-gyp "^0.10.0" 1299 | 1300 | gauge@~2.7.3: 1301 | version "2.7.4" 1302 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1303 | dependencies: 1304 | aproba "^1.0.3" 1305 | console-control-strings "^1.0.0" 1306 | has-unicode "^2.0.0" 1307 | object-assign "^4.1.0" 1308 | signal-exit "^3.0.0" 1309 | string-width "^1.0.1" 1310 | strip-ansi "^3.0.1" 1311 | wide-align "^1.1.0" 1312 | 1313 | get-caller-file@^1.0.1: 1314 | version "1.0.3" 1315 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 1316 | 1317 | get-value@^2.0.3, get-value@^2.0.6: 1318 | version "2.0.6" 1319 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1320 | 1321 | glob-base@^0.3.0: 1322 | version "0.3.0" 1323 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1324 | dependencies: 1325 | glob-parent "^2.0.0" 1326 | is-glob "^2.0.0" 1327 | 1328 | glob-parent@^2.0.0: 1329 | version "2.0.0" 1330 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1331 | dependencies: 1332 | is-glob "^2.0.0" 1333 | 1334 | glob-parent@^3.1.0: 1335 | version "3.1.0" 1336 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1337 | dependencies: 1338 | is-glob "^3.1.0" 1339 | path-dirname "^1.0.0" 1340 | 1341 | glob@^7.0.5, glob@^7.1.2: 1342 | version "7.1.3" 1343 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 1344 | dependencies: 1345 | fs.realpath "^1.0.0" 1346 | inflight "^1.0.4" 1347 | inherits "2" 1348 | minimatch "^3.0.4" 1349 | once "^1.3.0" 1350 | path-is-absolute "^1.0.0" 1351 | 1352 | globals@^9.18.0: 1353 | version "9.18.0" 1354 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 1355 | 1356 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: 1357 | version "4.1.11" 1358 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1359 | 1360 | has-ansi@^2.0.0: 1361 | version "2.0.0" 1362 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1363 | dependencies: 1364 | ansi-regex "^2.0.0" 1365 | 1366 | has-flag@^1.0.0: 1367 | version "1.0.0" 1368 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1369 | 1370 | has-unicode@^2.0.0: 1371 | version "2.0.1" 1372 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1373 | 1374 | has-value@^0.3.1: 1375 | version "0.3.1" 1376 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1377 | dependencies: 1378 | get-value "^2.0.3" 1379 | has-values "^0.1.4" 1380 | isobject "^2.0.0" 1381 | 1382 | has-value@^1.0.0: 1383 | version "1.0.0" 1384 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1385 | dependencies: 1386 | get-value "^2.0.6" 1387 | has-values "^1.0.0" 1388 | isobject "^3.0.0" 1389 | 1390 | has-values@^0.1.4: 1391 | version "0.1.4" 1392 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1393 | 1394 | has-values@^1.0.0: 1395 | version "1.0.0" 1396 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1397 | dependencies: 1398 | is-number "^3.0.0" 1399 | kind-of "^4.0.0" 1400 | 1401 | hash-base@^3.0.0: 1402 | version "3.0.4" 1403 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" 1404 | dependencies: 1405 | inherits "^2.0.1" 1406 | safe-buffer "^5.0.1" 1407 | 1408 | hash.js@^1.0.0, hash.js@^1.0.3: 1409 | version "1.1.5" 1410 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" 1411 | dependencies: 1412 | inherits "^2.0.3" 1413 | minimalistic-assert "^1.0.1" 1414 | 1415 | hmac-drbg@^1.0.0: 1416 | version "1.0.1" 1417 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1418 | dependencies: 1419 | hash.js "^1.0.3" 1420 | minimalistic-assert "^1.0.0" 1421 | minimalistic-crypto-utils "^1.0.1" 1422 | 1423 | home-or-tmp@^2.0.0: 1424 | version "2.0.0" 1425 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1426 | dependencies: 1427 | os-homedir "^1.0.0" 1428 | os-tmpdir "^1.0.1" 1429 | 1430 | hosted-git-info@^2.1.4: 1431 | version "2.7.1" 1432 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 1433 | 1434 | https-browserify@^1.0.0: 1435 | version "1.0.0" 1436 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 1437 | 1438 | iconv-lite@^0.4.4: 1439 | version "0.4.24" 1440 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1441 | dependencies: 1442 | safer-buffer ">= 2.1.2 < 3" 1443 | 1444 | ieee754@^1.1.4: 1445 | version "1.1.12" 1446 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" 1447 | 1448 | ignore-walk@^3.0.1: 1449 | version "3.0.1" 1450 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1451 | dependencies: 1452 | minimatch "^3.0.4" 1453 | 1454 | indexof@0.0.1: 1455 | version "0.0.1" 1456 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1457 | 1458 | inflight@^1.0.4: 1459 | version "1.0.6" 1460 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1461 | dependencies: 1462 | once "^1.3.0" 1463 | wrappy "1" 1464 | 1465 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 1466 | version "2.0.3" 1467 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1468 | 1469 | inherits@2.0.1: 1470 | version "2.0.1" 1471 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1472 | 1473 | ini@~1.3.0: 1474 | version "1.3.5" 1475 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1476 | 1477 | interpret@^1.0.0: 1478 | version "1.1.0" 1479 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" 1480 | 1481 | invariant@^2.2.2: 1482 | version "2.2.4" 1483 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1484 | dependencies: 1485 | loose-envify "^1.0.0" 1486 | 1487 | invert-kv@^1.0.0: 1488 | version "1.0.0" 1489 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1490 | 1491 | is-accessor-descriptor@^0.1.6: 1492 | version "0.1.6" 1493 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1494 | dependencies: 1495 | kind-of "^3.0.2" 1496 | 1497 | is-accessor-descriptor@^1.0.0: 1498 | version "1.0.0" 1499 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1500 | dependencies: 1501 | kind-of "^6.0.0" 1502 | 1503 | is-arrayish@^0.2.1: 1504 | version "0.2.1" 1505 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1506 | 1507 | is-binary-path@^1.0.0: 1508 | version "1.0.1" 1509 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1510 | dependencies: 1511 | binary-extensions "^1.0.0" 1512 | 1513 | is-buffer@^1.1.5: 1514 | version "1.1.6" 1515 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1516 | 1517 | is-builtin-module@^1.0.0: 1518 | version "1.0.0" 1519 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1520 | dependencies: 1521 | builtin-modules "^1.0.0" 1522 | 1523 | is-data-descriptor@^0.1.4: 1524 | version "0.1.4" 1525 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1526 | dependencies: 1527 | kind-of "^3.0.2" 1528 | 1529 | is-data-descriptor@^1.0.0: 1530 | version "1.0.0" 1531 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1532 | dependencies: 1533 | kind-of "^6.0.0" 1534 | 1535 | is-descriptor@^0.1.0: 1536 | version "0.1.6" 1537 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1538 | dependencies: 1539 | is-accessor-descriptor "^0.1.6" 1540 | is-data-descriptor "^0.1.4" 1541 | kind-of "^5.0.0" 1542 | 1543 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1544 | version "1.0.2" 1545 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1546 | dependencies: 1547 | is-accessor-descriptor "^1.0.0" 1548 | is-data-descriptor "^1.0.0" 1549 | kind-of "^6.0.2" 1550 | 1551 | is-dotfile@^1.0.0: 1552 | version "1.0.3" 1553 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1554 | 1555 | is-equal-shallow@^0.1.3: 1556 | version "0.1.3" 1557 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1558 | dependencies: 1559 | is-primitive "^2.0.0" 1560 | 1561 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1562 | version "0.1.1" 1563 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1564 | 1565 | is-extendable@^1.0.1: 1566 | version "1.0.1" 1567 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1568 | dependencies: 1569 | is-plain-object "^2.0.4" 1570 | 1571 | is-extglob@^1.0.0: 1572 | version "1.0.0" 1573 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1574 | 1575 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1576 | version "2.1.1" 1577 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1578 | 1579 | is-finite@^1.0.0: 1580 | version "1.0.2" 1581 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1582 | dependencies: 1583 | number-is-nan "^1.0.0" 1584 | 1585 | is-fullwidth-code-point@^1.0.0: 1586 | version "1.0.0" 1587 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1588 | dependencies: 1589 | number-is-nan "^1.0.0" 1590 | 1591 | is-fullwidth-code-point@^2.0.0: 1592 | version "2.0.0" 1593 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1594 | 1595 | is-glob@^2.0.0, is-glob@^2.0.1: 1596 | version "2.0.1" 1597 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1598 | dependencies: 1599 | is-extglob "^1.0.0" 1600 | 1601 | is-glob@^3.1.0: 1602 | version "3.1.0" 1603 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1604 | dependencies: 1605 | is-extglob "^2.1.0" 1606 | 1607 | is-glob@^4.0.0: 1608 | version "4.0.0" 1609 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" 1610 | dependencies: 1611 | is-extglob "^2.1.1" 1612 | 1613 | is-number@^2.1.0: 1614 | version "2.1.0" 1615 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1616 | dependencies: 1617 | kind-of "^3.0.2" 1618 | 1619 | is-number@^3.0.0: 1620 | version "3.0.0" 1621 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1622 | dependencies: 1623 | kind-of "^3.0.2" 1624 | 1625 | is-number@^4.0.0: 1626 | version "4.0.0" 1627 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" 1628 | 1629 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1630 | version "2.0.4" 1631 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1632 | dependencies: 1633 | isobject "^3.0.1" 1634 | 1635 | is-posix-bracket@^0.1.0: 1636 | version "0.1.1" 1637 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1638 | 1639 | is-primitive@^2.0.0: 1640 | version "2.0.0" 1641 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1642 | 1643 | is-utf8@^0.2.0: 1644 | version "0.2.1" 1645 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1646 | 1647 | is-windows@^1.0.2: 1648 | version "1.0.2" 1649 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1650 | 1651 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1652 | version "1.0.0" 1653 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1654 | 1655 | isobject@^2.0.0: 1656 | version "2.1.0" 1657 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1658 | dependencies: 1659 | isarray "1.0.0" 1660 | 1661 | isobject@^3.0.0, isobject@^3.0.1: 1662 | version "3.0.1" 1663 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1664 | 1665 | "js-tokens@^3.0.0 || ^4.0.0": 1666 | version "4.0.0" 1667 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1668 | 1669 | js-tokens@^3.0.2: 1670 | version "3.0.2" 1671 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1672 | 1673 | jsesc@^1.3.0: 1674 | version "1.3.0" 1675 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1676 | 1677 | jsesc@~0.5.0: 1678 | version "0.5.0" 1679 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1680 | 1681 | json-loader@^0.5.4: 1682 | version "0.5.7" 1683 | resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" 1684 | 1685 | json-stable-stringify@^1.0.1: 1686 | version "1.0.1" 1687 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1688 | dependencies: 1689 | jsonify "~0.0.0" 1690 | 1691 | json5@^0.5.0, json5@^0.5.1: 1692 | version "0.5.1" 1693 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1694 | 1695 | jsonify@~0.0.0: 1696 | version "0.0.0" 1697 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1698 | 1699 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1700 | version "3.2.2" 1701 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1702 | dependencies: 1703 | is-buffer "^1.1.5" 1704 | 1705 | kind-of@^4.0.0: 1706 | version "4.0.0" 1707 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1708 | dependencies: 1709 | is-buffer "^1.1.5" 1710 | 1711 | kind-of@^5.0.0: 1712 | version "5.1.0" 1713 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1714 | 1715 | kind-of@^6.0.0, kind-of@^6.0.2: 1716 | version "6.0.2" 1717 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1718 | 1719 | lazy-cache@^1.0.3: 1720 | version "1.0.4" 1721 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1722 | 1723 | lcid@^1.0.0: 1724 | version "1.0.0" 1725 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1726 | dependencies: 1727 | invert-kv "^1.0.0" 1728 | 1729 | load-json-file@^1.0.0: 1730 | version "1.1.0" 1731 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1732 | dependencies: 1733 | graceful-fs "^4.1.2" 1734 | parse-json "^2.2.0" 1735 | pify "^2.0.0" 1736 | pinkie-promise "^2.0.0" 1737 | strip-bom "^2.0.0" 1738 | 1739 | loader-runner@^2.3.0: 1740 | version "2.3.1" 1741 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" 1742 | 1743 | loader-utils@^0.2.16: 1744 | version "0.2.17" 1745 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" 1746 | dependencies: 1747 | big.js "^3.1.3" 1748 | emojis-list "^2.0.0" 1749 | json5 "^0.5.0" 1750 | object-assign "^4.0.1" 1751 | 1752 | loader-utils@^1.0.2: 1753 | version "1.1.0" 1754 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" 1755 | dependencies: 1756 | big.js "^3.1.3" 1757 | emojis-list "^2.0.0" 1758 | json5 "^0.5.0" 1759 | 1760 | locate-path@^2.0.0: 1761 | version "2.0.0" 1762 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1763 | dependencies: 1764 | p-locate "^2.0.0" 1765 | path-exists "^3.0.0" 1766 | 1767 | lodash.debounce@^4.0.8: 1768 | version "4.0.8" 1769 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1770 | 1771 | lodash@^4.17.10, lodash@^4.17.4: 1772 | version "4.17.11" 1773 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 1774 | 1775 | longest@^1.0.1: 1776 | version "1.0.1" 1777 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 1778 | 1779 | loose-envify@^1.0.0: 1780 | version "1.4.0" 1781 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1782 | dependencies: 1783 | js-tokens "^3.0.0 || ^4.0.0" 1784 | 1785 | make-dir@^1.0.0: 1786 | version "1.3.0" 1787 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 1788 | dependencies: 1789 | pify "^3.0.0" 1790 | 1791 | map-cache@^0.2.2: 1792 | version "0.2.2" 1793 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1794 | 1795 | map-visit@^1.0.0: 1796 | version "1.0.0" 1797 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1798 | dependencies: 1799 | object-visit "^1.0.0" 1800 | 1801 | math-random@^1.0.1: 1802 | version "1.0.1" 1803 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" 1804 | 1805 | md5.js@^1.3.4: 1806 | version "1.3.4" 1807 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" 1808 | dependencies: 1809 | hash-base "^3.0.0" 1810 | inherits "^2.0.1" 1811 | 1812 | memory-fs@^0.4.0, memory-fs@~0.4.1: 1813 | version "0.4.1" 1814 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 1815 | dependencies: 1816 | errno "^0.1.3" 1817 | readable-stream "^2.0.1" 1818 | 1819 | micromatch@^2.1.5: 1820 | version "2.3.11" 1821 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1822 | dependencies: 1823 | arr-diff "^2.0.0" 1824 | array-unique "^0.2.1" 1825 | braces "^1.8.2" 1826 | expand-brackets "^0.1.4" 1827 | extglob "^0.3.1" 1828 | filename-regex "^2.0.0" 1829 | is-extglob "^1.0.0" 1830 | is-glob "^2.0.1" 1831 | kind-of "^3.0.2" 1832 | normalize-path "^2.0.1" 1833 | object.omit "^2.0.0" 1834 | parse-glob "^3.0.4" 1835 | regex-cache "^0.4.2" 1836 | 1837 | micromatch@^3.1.10, micromatch@^3.1.4: 1838 | version "3.1.10" 1839 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1840 | dependencies: 1841 | arr-diff "^4.0.0" 1842 | array-unique "^0.3.2" 1843 | braces "^2.3.1" 1844 | define-property "^2.0.2" 1845 | extend-shallow "^3.0.2" 1846 | extglob "^2.0.4" 1847 | fragment-cache "^0.2.1" 1848 | kind-of "^6.0.2" 1849 | nanomatch "^1.2.9" 1850 | object.pick "^1.3.0" 1851 | regex-not "^1.0.0" 1852 | snapdragon "^0.8.1" 1853 | to-regex "^3.0.2" 1854 | 1855 | miller-rabin@^4.0.0: 1856 | version "4.0.1" 1857 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 1858 | dependencies: 1859 | bn.js "^4.0.0" 1860 | brorand "^1.0.1" 1861 | 1862 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 1863 | version "1.0.1" 1864 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 1865 | 1866 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 1867 | version "1.0.1" 1868 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 1869 | 1870 | minimatch@^3.0.4: 1871 | version "3.0.4" 1872 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1873 | dependencies: 1874 | brace-expansion "^1.1.7" 1875 | 1876 | minimist@0.0.8: 1877 | version "0.0.8" 1878 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1879 | 1880 | minimist@^1.2.0: 1881 | version "1.2.0" 1882 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1883 | 1884 | minipass@^2.2.1, minipass@^2.3.3: 1885 | version "2.3.4" 1886 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" 1887 | dependencies: 1888 | safe-buffer "^5.1.2" 1889 | yallist "^3.0.0" 1890 | 1891 | minizlib@^1.1.0: 1892 | version "1.1.0" 1893 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" 1894 | dependencies: 1895 | minipass "^2.2.1" 1896 | 1897 | mixin-deep@^1.2.0: 1898 | version "1.3.1" 1899 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 1900 | dependencies: 1901 | for-in "^1.0.2" 1902 | is-extendable "^1.0.1" 1903 | 1904 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: 1905 | version "0.5.1" 1906 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1907 | dependencies: 1908 | minimist "0.0.8" 1909 | 1910 | ms@2.0.0: 1911 | version "2.0.0" 1912 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1913 | 1914 | nan@^2.9.2: 1915 | version "2.11.0" 1916 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099" 1917 | 1918 | nanomatch@^1.2.9: 1919 | version "1.2.13" 1920 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1921 | dependencies: 1922 | arr-diff "^4.0.0" 1923 | array-unique "^0.3.2" 1924 | define-property "^2.0.2" 1925 | extend-shallow "^3.0.2" 1926 | fragment-cache "^0.2.1" 1927 | is-windows "^1.0.2" 1928 | kind-of "^6.0.2" 1929 | object.pick "^1.3.0" 1930 | regex-not "^1.0.0" 1931 | snapdragon "^0.8.1" 1932 | to-regex "^3.0.1" 1933 | 1934 | needle@^2.2.1: 1935 | version "2.2.4" 1936 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" 1937 | dependencies: 1938 | debug "^2.1.2" 1939 | iconv-lite "^0.4.4" 1940 | sax "^1.2.4" 1941 | 1942 | neo-async@^2.5.0: 1943 | version "2.5.2" 1944 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc" 1945 | 1946 | node-libs-browser@^2.0.0: 1947 | version "2.1.0" 1948 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" 1949 | dependencies: 1950 | assert "^1.1.1" 1951 | browserify-zlib "^0.2.0" 1952 | buffer "^4.3.0" 1953 | console-browserify "^1.1.0" 1954 | constants-browserify "^1.0.0" 1955 | crypto-browserify "^3.11.0" 1956 | domain-browser "^1.1.1" 1957 | events "^1.0.0" 1958 | https-browserify "^1.0.0" 1959 | os-browserify "^0.3.0" 1960 | path-browserify "0.0.0" 1961 | process "^0.11.10" 1962 | punycode "^1.2.4" 1963 | querystring-es3 "^0.2.0" 1964 | readable-stream "^2.3.3" 1965 | stream-browserify "^2.0.1" 1966 | stream-http "^2.7.2" 1967 | string_decoder "^1.0.0" 1968 | timers-browserify "^2.0.4" 1969 | tty-browserify "0.0.0" 1970 | url "^0.11.0" 1971 | util "^0.10.3" 1972 | vm-browserify "0.0.4" 1973 | 1974 | node-pre-gyp@^0.10.0: 1975 | version "0.10.3" 1976 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" 1977 | dependencies: 1978 | detect-libc "^1.0.2" 1979 | mkdirp "^0.5.1" 1980 | needle "^2.2.1" 1981 | nopt "^4.0.1" 1982 | npm-packlist "^1.1.6" 1983 | npmlog "^4.0.2" 1984 | rc "^1.2.7" 1985 | rimraf "^2.6.1" 1986 | semver "^5.3.0" 1987 | tar "^4" 1988 | 1989 | nopt@^4.0.1: 1990 | version "4.0.1" 1991 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1992 | dependencies: 1993 | abbrev "1" 1994 | osenv "^0.1.4" 1995 | 1996 | normalize-package-data@^2.3.2: 1997 | version "2.4.0" 1998 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 1999 | dependencies: 2000 | hosted-git-info "^2.1.4" 2001 | is-builtin-module "^1.0.0" 2002 | semver "2 || 3 || 4 || 5" 2003 | validate-npm-package-license "^3.0.1" 2004 | 2005 | normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: 2006 | version "2.1.1" 2007 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2008 | dependencies: 2009 | remove-trailing-separator "^1.0.1" 2010 | 2011 | npm-bundled@^1.0.1: 2012 | version "1.0.5" 2013 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" 2014 | 2015 | npm-packlist@^1.1.6: 2016 | version "1.1.11" 2017 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" 2018 | dependencies: 2019 | ignore-walk "^3.0.1" 2020 | npm-bundled "^1.0.1" 2021 | 2022 | npmlog@^4.0.2: 2023 | version "4.1.2" 2024 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2025 | dependencies: 2026 | are-we-there-yet "~1.1.2" 2027 | console-control-strings "~1.1.0" 2028 | gauge "~2.7.3" 2029 | set-blocking "~2.0.0" 2030 | 2031 | number-is-nan@^1.0.0: 2032 | version "1.0.1" 2033 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2034 | 2035 | object-assign@^4.0.1, object-assign@^4.1.0: 2036 | version "4.1.1" 2037 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2038 | 2039 | object-copy@^0.1.0: 2040 | version "0.1.0" 2041 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2042 | dependencies: 2043 | copy-descriptor "^0.1.0" 2044 | define-property "^0.2.5" 2045 | kind-of "^3.0.3" 2046 | 2047 | object-visit@^1.0.0: 2048 | version "1.0.1" 2049 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2050 | dependencies: 2051 | isobject "^3.0.0" 2052 | 2053 | object.omit@^2.0.0: 2054 | version "2.0.1" 2055 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2056 | dependencies: 2057 | for-own "^0.1.4" 2058 | is-extendable "^0.1.1" 2059 | 2060 | object.pick@^1.3.0: 2061 | version "1.3.0" 2062 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2063 | dependencies: 2064 | isobject "^3.0.1" 2065 | 2066 | once@^1.3.0: 2067 | version "1.4.0" 2068 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2069 | dependencies: 2070 | wrappy "1" 2071 | 2072 | os-browserify@^0.3.0: 2073 | version "0.3.0" 2074 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 2075 | 2076 | os-homedir@^1.0.0: 2077 | version "1.0.2" 2078 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2079 | 2080 | os-locale@^1.4.0: 2081 | version "1.4.0" 2082 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 2083 | dependencies: 2084 | lcid "^1.0.0" 2085 | 2086 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 2087 | version "1.0.2" 2088 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2089 | 2090 | osenv@^0.1.4: 2091 | version "0.1.5" 2092 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2093 | dependencies: 2094 | os-homedir "^1.0.0" 2095 | os-tmpdir "^1.0.0" 2096 | 2097 | output-file-sync@^1.1.2: 2098 | version "1.1.2" 2099 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 2100 | dependencies: 2101 | graceful-fs "^4.1.4" 2102 | mkdirp "^0.5.1" 2103 | object-assign "^4.1.0" 2104 | 2105 | p-limit@^1.1.0: 2106 | version "1.3.0" 2107 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 2108 | dependencies: 2109 | p-try "^1.0.0" 2110 | 2111 | p-locate@^2.0.0: 2112 | version "2.0.0" 2113 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2114 | dependencies: 2115 | p-limit "^1.1.0" 2116 | 2117 | p-try@^1.0.0: 2118 | version "1.0.0" 2119 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2120 | 2121 | pako@~1.0.5: 2122 | version "1.0.6" 2123 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" 2124 | 2125 | parse-asn1@^5.0.0: 2126 | version "5.1.1" 2127 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" 2128 | dependencies: 2129 | asn1.js "^4.0.0" 2130 | browserify-aes "^1.0.0" 2131 | create-hash "^1.1.0" 2132 | evp_bytestokey "^1.0.0" 2133 | pbkdf2 "^3.0.3" 2134 | 2135 | parse-glob@^3.0.4: 2136 | version "3.0.4" 2137 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2138 | dependencies: 2139 | glob-base "^0.3.0" 2140 | is-dotfile "^1.0.0" 2141 | is-extglob "^1.0.0" 2142 | is-glob "^2.0.0" 2143 | 2144 | parse-json@^2.2.0: 2145 | version "2.2.0" 2146 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2147 | dependencies: 2148 | error-ex "^1.2.0" 2149 | 2150 | pascalcase@^0.1.1: 2151 | version "0.1.1" 2152 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2153 | 2154 | path-browserify@0.0.0: 2155 | version "0.0.0" 2156 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 2157 | 2158 | path-dirname@^1.0.0: 2159 | version "1.0.2" 2160 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2161 | 2162 | path-exists@^2.0.0: 2163 | version "2.1.0" 2164 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2165 | dependencies: 2166 | pinkie-promise "^2.0.0" 2167 | 2168 | path-exists@^3.0.0: 2169 | version "3.0.0" 2170 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2171 | 2172 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 2173 | version "1.0.1" 2174 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2175 | 2176 | path-type@^1.0.0: 2177 | version "1.1.0" 2178 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2179 | dependencies: 2180 | graceful-fs "^4.1.2" 2181 | pify "^2.0.0" 2182 | pinkie-promise "^2.0.0" 2183 | 2184 | pbkdf2@^3.0.3: 2185 | version "3.0.17" 2186 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" 2187 | dependencies: 2188 | create-hash "^1.1.2" 2189 | create-hmac "^1.1.4" 2190 | ripemd160 "^2.0.1" 2191 | safe-buffer "^5.0.1" 2192 | sha.js "^2.4.8" 2193 | 2194 | pify@^2.0.0: 2195 | version "2.3.0" 2196 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2197 | 2198 | pify@^3.0.0: 2199 | version "3.0.0" 2200 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2201 | 2202 | pinkie-promise@^2.0.0: 2203 | version "2.0.1" 2204 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2205 | dependencies: 2206 | pinkie "^2.0.0" 2207 | 2208 | pinkie@^2.0.0: 2209 | version "2.0.4" 2210 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2211 | 2212 | pkg-dir@^2.0.0: 2213 | version "2.0.0" 2214 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2215 | dependencies: 2216 | find-up "^2.1.0" 2217 | 2218 | posix-character-classes@^0.1.0: 2219 | version "0.1.1" 2220 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2221 | 2222 | preserve@^0.2.0: 2223 | version "0.2.0" 2224 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2225 | 2226 | private@^0.1.6, private@^0.1.8: 2227 | version "0.1.8" 2228 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 2229 | 2230 | process-nextick-args@~2.0.0: 2231 | version "2.0.0" 2232 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2233 | 2234 | process@^0.11.10: 2235 | version "0.11.10" 2236 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 2237 | 2238 | prr@~1.0.1: 2239 | version "1.0.1" 2240 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 2241 | 2242 | public-encrypt@^4.0.0: 2243 | version "4.0.2" 2244 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" 2245 | dependencies: 2246 | bn.js "^4.1.0" 2247 | browserify-rsa "^4.0.0" 2248 | create-hash "^1.1.0" 2249 | parse-asn1 "^5.0.0" 2250 | randombytes "^2.0.1" 2251 | 2252 | punycode@1.3.2: 2253 | version "1.3.2" 2254 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2255 | 2256 | punycode@^1.2.4: 2257 | version "1.4.1" 2258 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2259 | 2260 | querystring-es3@^0.2.0: 2261 | version "0.2.1" 2262 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2263 | 2264 | querystring@0.2.0: 2265 | version "0.2.0" 2266 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2267 | 2268 | randomatic@^3.0.0: 2269 | version "3.1.0" 2270 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" 2271 | dependencies: 2272 | is-number "^4.0.0" 2273 | kind-of "^6.0.0" 2274 | math-random "^1.0.1" 2275 | 2276 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 2277 | version "2.0.6" 2278 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" 2279 | dependencies: 2280 | safe-buffer "^5.1.0" 2281 | 2282 | randomfill@^1.0.3: 2283 | version "1.0.4" 2284 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 2285 | dependencies: 2286 | randombytes "^2.0.5" 2287 | safe-buffer "^5.1.0" 2288 | 2289 | rc@^1.2.7: 2290 | version "1.2.8" 2291 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2292 | dependencies: 2293 | deep-extend "^0.6.0" 2294 | ini "~1.3.0" 2295 | minimist "^1.2.0" 2296 | strip-json-comments "~2.0.1" 2297 | 2298 | read-pkg-up@^1.0.1: 2299 | version "1.0.1" 2300 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2301 | dependencies: 2302 | find-up "^1.0.0" 2303 | read-pkg "^1.0.0" 2304 | 2305 | read-pkg@^1.0.0: 2306 | version "1.1.0" 2307 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2308 | dependencies: 2309 | load-json-file "^1.0.0" 2310 | normalize-package-data "^2.3.2" 2311 | path-type "^1.0.0" 2312 | 2313 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.3, readable-stream@^2.3.6: 2314 | version "2.3.6" 2315 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2316 | dependencies: 2317 | core-util-is "~1.0.0" 2318 | inherits "~2.0.3" 2319 | isarray "~1.0.0" 2320 | process-nextick-args "~2.0.0" 2321 | safe-buffer "~5.1.1" 2322 | string_decoder "~1.1.1" 2323 | util-deprecate "~1.0.1" 2324 | 2325 | readdirp@^2.0.0: 2326 | version "2.2.1" 2327 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2328 | dependencies: 2329 | graceful-fs "^4.1.11" 2330 | micromatch "^3.1.10" 2331 | readable-stream "^2.0.2" 2332 | 2333 | regenerate@^1.2.1: 2334 | version "1.4.0" 2335 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 2336 | 2337 | regenerator-runtime@^0.10.5: 2338 | version "0.10.5" 2339 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 2340 | 2341 | regenerator-runtime@^0.11.0: 2342 | version "0.11.1" 2343 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 2344 | 2345 | regenerator-transform@^0.10.0: 2346 | version "0.10.1" 2347 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" 2348 | dependencies: 2349 | babel-runtime "^6.18.0" 2350 | babel-types "^6.19.0" 2351 | private "^0.1.6" 2352 | 2353 | regex-cache@^0.4.2: 2354 | version "0.4.4" 2355 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 2356 | dependencies: 2357 | is-equal-shallow "^0.1.3" 2358 | 2359 | regex-not@^1.0.0, regex-not@^1.0.2: 2360 | version "1.0.2" 2361 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2362 | dependencies: 2363 | extend-shallow "^3.0.2" 2364 | safe-regex "^1.1.0" 2365 | 2366 | regexpu-core@^2.0.0: 2367 | version "2.0.0" 2368 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 2369 | dependencies: 2370 | regenerate "^1.2.1" 2371 | regjsgen "^0.2.0" 2372 | regjsparser "^0.1.4" 2373 | 2374 | regjsgen@^0.2.0: 2375 | version "0.2.0" 2376 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 2377 | 2378 | regjsparser@^0.1.4: 2379 | version "0.1.5" 2380 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 2381 | dependencies: 2382 | jsesc "~0.5.0" 2383 | 2384 | remove-trailing-separator@^1.0.1: 2385 | version "1.1.0" 2386 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2387 | 2388 | repeat-element@^1.1.2: 2389 | version "1.1.3" 2390 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 2391 | 2392 | repeat-string@^1.5.2, repeat-string@^1.6.1: 2393 | version "1.6.1" 2394 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2395 | 2396 | repeating@^2.0.0: 2397 | version "2.0.1" 2398 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2399 | dependencies: 2400 | is-finite "^1.0.0" 2401 | 2402 | require-directory@^2.1.1: 2403 | version "2.1.1" 2404 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2405 | 2406 | require-main-filename@^1.0.1: 2407 | version "1.0.1" 2408 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2409 | 2410 | resolve-url@^0.2.1: 2411 | version "0.2.1" 2412 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2413 | 2414 | ret@~0.1.10: 2415 | version "0.1.15" 2416 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2417 | 2418 | right-align@^0.1.1: 2419 | version "0.1.3" 2420 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 2421 | dependencies: 2422 | align-text "^0.1.1" 2423 | 2424 | rimraf@^2.6.1: 2425 | version "2.6.2" 2426 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 2427 | dependencies: 2428 | glob "^7.0.5" 2429 | 2430 | ripemd160@^2.0.0, ripemd160@^2.0.1: 2431 | version "2.0.2" 2432 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 2433 | dependencies: 2434 | hash-base "^3.0.0" 2435 | inherits "^2.0.1" 2436 | 2437 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2438 | version "5.1.2" 2439 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2440 | 2441 | safe-regex@^1.1.0: 2442 | version "1.1.0" 2443 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2444 | dependencies: 2445 | ret "~0.1.10" 2446 | 2447 | "safer-buffer@>= 2.1.2 < 3": 2448 | version "2.1.2" 2449 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2450 | 2451 | sax@^1.2.4: 2452 | version "1.2.4" 2453 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2454 | 2455 | "semver@2 || 3 || 4 || 5", semver@^5.3.0: 2456 | version "5.5.1" 2457 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" 2458 | 2459 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2460 | version "2.0.0" 2461 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2462 | 2463 | set-value@^0.4.3: 2464 | version "0.4.3" 2465 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2466 | dependencies: 2467 | extend-shallow "^2.0.1" 2468 | is-extendable "^0.1.1" 2469 | is-plain-object "^2.0.1" 2470 | to-object-path "^0.3.0" 2471 | 2472 | set-value@^2.0.0: 2473 | version "2.0.0" 2474 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2475 | dependencies: 2476 | extend-shallow "^2.0.1" 2477 | is-extendable "^0.1.1" 2478 | is-plain-object "^2.0.3" 2479 | split-string "^3.0.1" 2480 | 2481 | setimmediate@^1.0.4: 2482 | version "1.0.5" 2483 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2484 | 2485 | sha.js@^2.4.0, sha.js@^2.4.8: 2486 | version "2.4.11" 2487 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 2488 | dependencies: 2489 | inherits "^2.0.1" 2490 | safe-buffer "^5.0.1" 2491 | 2492 | signal-exit@^3.0.0: 2493 | version "3.0.2" 2494 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2495 | 2496 | slash@^1.0.0: 2497 | version "1.0.0" 2498 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 2499 | 2500 | snapdragon-node@^2.0.1: 2501 | version "2.1.1" 2502 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2503 | dependencies: 2504 | define-property "^1.0.0" 2505 | isobject "^3.0.0" 2506 | snapdragon-util "^3.0.1" 2507 | 2508 | snapdragon-util@^3.0.1: 2509 | version "3.0.1" 2510 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2511 | dependencies: 2512 | kind-of "^3.2.0" 2513 | 2514 | snapdragon@^0.8.1: 2515 | version "0.8.2" 2516 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2517 | dependencies: 2518 | base "^0.11.1" 2519 | debug "^2.2.0" 2520 | define-property "^0.2.5" 2521 | extend-shallow "^2.0.1" 2522 | map-cache "^0.2.2" 2523 | source-map "^0.5.6" 2524 | source-map-resolve "^0.5.0" 2525 | use "^3.1.0" 2526 | 2527 | source-list-map@^2.0.0: 2528 | version "2.0.0" 2529 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" 2530 | 2531 | source-map-resolve@^0.5.0: 2532 | version "0.5.2" 2533 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2534 | dependencies: 2535 | atob "^2.1.1" 2536 | decode-uri-component "^0.2.0" 2537 | resolve-url "^0.2.1" 2538 | source-map-url "^0.4.0" 2539 | urix "^0.1.0" 2540 | 2541 | source-map-support@^0.4.15: 2542 | version "0.4.18" 2543 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 2544 | dependencies: 2545 | source-map "^0.5.6" 2546 | 2547 | source-map-url@^0.4.0: 2548 | version "0.4.0" 2549 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2550 | 2551 | source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: 2552 | version "0.5.7" 2553 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2554 | 2555 | source-map@~0.6.1: 2556 | version "0.6.1" 2557 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2558 | 2559 | spdx-correct@^3.0.0: 2560 | version "3.0.0" 2561 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 2562 | dependencies: 2563 | spdx-expression-parse "^3.0.0" 2564 | spdx-license-ids "^3.0.0" 2565 | 2566 | spdx-exceptions@^2.1.0: 2567 | version "2.1.0" 2568 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 2569 | 2570 | spdx-expression-parse@^3.0.0: 2571 | version "3.0.0" 2572 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 2573 | dependencies: 2574 | spdx-exceptions "^2.1.0" 2575 | spdx-license-ids "^3.0.0" 2576 | 2577 | spdx-license-ids@^3.0.0: 2578 | version "3.0.1" 2579 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz#e2a303236cac54b04031fa7a5a79c7e701df852f" 2580 | 2581 | split-string@^3.0.1, split-string@^3.0.2: 2582 | version "3.1.0" 2583 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2584 | dependencies: 2585 | extend-shallow "^3.0.0" 2586 | 2587 | static-extend@^0.1.1: 2588 | version "0.1.2" 2589 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2590 | dependencies: 2591 | define-property "^0.2.5" 2592 | object-copy "^0.1.0" 2593 | 2594 | store@^2.0.12: 2595 | version "2.0.12" 2596 | resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" 2597 | 2598 | stream-browserify@^2.0.1: 2599 | version "2.0.1" 2600 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" 2601 | dependencies: 2602 | inherits "~2.0.1" 2603 | readable-stream "^2.0.2" 2604 | 2605 | stream-http@^2.7.2: 2606 | version "2.8.3" 2607 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 2608 | dependencies: 2609 | builtin-status-codes "^3.0.0" 2610 | inherits "^2.0.1" 2611 | readable-stream "^2.3.6" 2612 | to-arraybuffer "^1.0.0" 2613 | xtend "^4.0.0" 2614 | 2615 | string-width@^1.0.1, string-width@^1.0.2: 2616 | version "1.0.2" 2617 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2618 | dependencies: 2619 | code-point-at "^1.0.0" 2620 | is-fullwidth-code-point "^1.0.0" 2621 | strip-ansi "^3.0.0" 2622 | 2623 | "string-width@^1.0.2 || 2": 2624 | version "2.1.1" 2625 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2626 | dependencies: 2627 | is-fullwidth-code-point "^2.0.0" 2628 | strip-ansi "^4.0.0" 2629 | 2630 | string_decoder@^1.0.0, string_decoder@~1.1.1: 2631 | version "1.1.1" 2632 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2633 | dependencies: 2634 | safe-buffer "~5.1.0" 2635 | 2636 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2637 | version "3.0.1" 2638 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2639 | dependencies: 2640 | ansi-regex "^2.0.0" 2641 | 2642 | strip-ansi@^4.0.0: 2643 | version "4.0.0" 2644 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2645 | dependencies: 2646 | ansi-regex "^3.0.0" 2647 | 2648 | strip-bom@^2.0.0: 2649 | version "2.0.0" 2650 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 2651 | dependencies: 2652 | is-utf8 "^0.2.0" 2653 | 2654 | strip-json-comments@~2.0.1: 2655 | version "2.0.1" 2656 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2657 | 2658 | supports-color@^2.0.0: 2659 | version "2.0.0" 2660 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 2661 | 2662 | supports-color@^3.1.0: 2663 | version "3.2.3" 2664 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 2665 | dependencies: 2666 | has-flag "^1.0.0" 2667 | 2668 | tapable@^0.2.7, tapable@~0.2.5: 2669 | version "0.2.8" 2670 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" 2671 | 2672 | tar@^4: 2673 | version "4.4.6" 2674 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" 2675 | dependencies: 2676 | chownr "^1.0.1" 2677 | fs-minipass "^1.2.5" 2678 | minipass "^2.3.3" 2679 | minizlib "^1.1.0" 2680 | mkdirp "^0.5.0" 2681 | safe-buffer "^5.1.2" 2682 | yallist "^3.0.2" 2683 | 2684 | timers-browserify@^2.0.4: 2685 | version "2.0.10" 2686 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" 2687 | dependencies: 2688 | setimmediate "^1.0.4" 2689 | 2690 | to-arraybuffer@^1.0.0: 2691 | version "1.0.1" 2692 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 2693 | 2694 | to-fast-properties@^1.0.3: 2695 | version "1.0.3" 2696 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 2697 | 2698 | to-object-path@^0.3.0: 2699 | version "0.3.0" 2700 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 2701 | dependencies: 2702 | kind-of "^3.0.2" 2703 | 2704 | to-regex-range@^2.1.0: 2705 | version "2.1.1" 2706 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 2707 | dependencies: 2708 | is-number "^3.0.0" 2709 | repeat-string "^1.6.1" 2710 | 2711 | to-regex@^3.0.1, to-regex@^3.0.2: 2712 | version "3.0.2" 2713 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 2714 | dependencies: 2715 | define-property "^2.0.2" 2716 | extend-shallow "^3.0.2" 2717 | regex-not "^1.0.2" 2718 | safe-regex "^1.1.0" 2719 | 2720 | trim-right@^1.0.1: 2721 | version "1.0.1" 2722 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 2723 | 2724 | tty-browserify@0.0.0: 2725 | version "0.0.0" 2726 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 2727 | 2728 | uglify-js@^2.8.27: 2729 | version "2.8.29" 2730 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 2731 | dependencies: 2732 | source-map "~0.5.1" 2733 | yargs "~3.10.0" 2734 | optionalDependencies: 2735 | uglify-to-browserify "~1.0.0" 2736 | 2737 | uglify-to-browserify@~1.0.0: 2738 | version "1.0.2" 2739 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 2740 | 2741 | union-value@^1.0.0: 2742 | version "1.0.0" 2743 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 2744 | dependencies: 2745 | arr-union "^3.1.0" 2746 | get-value "^2.0.6" 2747 | is-extendable "^0.1.1" 2748 | set-value "^0.4.3" 2749 | 2750 | unset-value@^1.0.0: 2751 | version "1.0.0" 2752 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 2753 | dependencies: 2754 | has-value "^0.3.1" 2755 | isobject "^3.0.0" 2756 | 2757 | upath@^1.0.5: 2758 | version "1.1.0" 2759 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" 2760 | 2761 | urix@^0.1.0: 2762 | version "0.1.0" 2763 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 2764 | 2765 | url@^0.11.0: 2766 | version "0.11.0" 2767 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 2768 | dependencies: 2769 | punycode "1.3.2" 2770 | querystring "0.2.0" 2771 | 2772 | use@^3.1.0: 2773 | version "3.1.1" 2774 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 2775 | 2776 | user-home@^1.1.1: 2777 | version "1.1.1" 2778 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 2779 | 2780 | util-deprecate@~1.0.1: 2781 | version "1.0.2" 2782 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2783 | 2784 | util@0.10.3: 2785 | version "0.10.3" 2786 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 2787 | dependencies: 2788 | inherits "2.0.1" 2789 | 2790 | util@^0.10.3: 2791 | version "0.10.4" 2792 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" 2793 | dependencies: 2794 | inherits "2.0.3" 2795 | 2796 | v8flags@^2.1.1: 2797 | version "2.1.1" 2798 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 2799 | dependencies: 2800 | user-home "^1.1.1" 2801 | 2802 | validate-npm-package-license@^3.0.1: 2803 | version "3.0.4" 2804 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 2805 | dependencies: 2806 | spdx-correct "^3.0.0" 2807 | spdx-expression-parse "^3.0.0" 2808 | 2809 | vm-browserify@0.0.4: 2810 | version "0.0.4" 2811 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" 2812 | dependencies: 2813 | indexof "0.0.1" 2814 | 2815 | watchpack@^1.3.1: 2816 | version "1.6.0" 2817 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" 2818 | dependencies: 2819 | chokidar "^2.0.2" 2820 | graceful-fs "^4.1.2" 2821 | neo-async "^2.5.0" 2822 | 2823 | webpack-sources@^1.0.1: 2824 | version "1.3.0" 2825 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" 2826 | dependencies: 2827 | source-list-map "^2.0.0" 2828 | source-map "~0.6.1" 2829 | 2830 | webpack@^2.6.1: 2831 | version "2.7.0" 2832 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.7.0.tgz#b2a1226804373ffd3d03ea9c6bd525067034f6b1" 2833 | dependencies: 2834 | acorn "^5.0.0" 2835 | acorn-dynamic-import "^2.0.0" 2836 | ajv "^4.7.0" 2837 | ajv-keywords "^1.1.1" 2838 | async "^2.1.2" 2839 | enhanced-resolve "^3.3.0" 2840 | interpret "^1.0.0" 2841 | json-loader "^0.5.4" 2842 | json5 "^0.5.1" 2843 | loader-runner "^2.3.0" 2844 | loader-utils "^0.2.16" 2845 | memory-fs "~0.4.1" 2846 | mkdirp "~0.5.0" 2847 | node-libs-browser "^2.0.0" 2848 | source-map "^0.5.3" 2849 | supports-color "^3.1.0" 2850 | tapable "~0.2.5" 2851 | uglify-js "^2.8.27" 2852 | watchpack "^1.3.1" 2853 | webpack-sources "^1.0.1" 2854 | yargs "^6.0.0" 2855 | 2856 | which-module@^1.0.0: 2857 | version "1.0.0" 2858 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 2859 | 2860 | wide-align@^1.1.0: 2861 | version "1.1.3" 2862 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 2863 | dependencies: 2864 | string-width "^1.0.2 || 2" 2865 | 2866 | window-size@0.1.0: 2867 | version "0.1.0" 2868 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 2869 | 2870 | wordwrap@0.0.2: 2871 | version "0.0.2" 2872 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 2873 | 2874 | wrap-ansi@^2.0.0: 2875 | version "2.1.0" 2876 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 2877 | dependencies: 2878 | string-width "^1.0.1" 2879 | strip-ansi "^3.0.1" 2880 | 2881 | wrappy@1: 2882 | version "1.0.2" 2883 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2884 | 2885 | xtend@^4.0.0: 2886 | version "4.0.1" 2887 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 2888 | 2889 | y18n@^3.2.1: 2890 | version "3.2.1" 2891 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 2892 | 2893 | yallist@^3.0.0, yallist@^3.0.2: 2894 | version "3.0.2" 2895 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 2896 | 2897 | yargs-parser@^4.2.0: 2898 | version "4.2.1" 2899 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" 2900 | dependencies: 2901 | camelcase "^3.0.0" 2902 | 2903 | yargs@^6.0.0: 2904 | version "6.6.0" 2905 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" 2906 | dependencies: 2907 | camelcase "^3.0.0" 2908 | cliui "^3.2.0" 2909 | decamelize "^1.1.1" 2910 | get-caller-file "^1.0.1" 2911 | os-locale "^1.4.0" 2912 | read-pkg-up "^1.0.1" 2913 | require-directory "^2.1.1" 2914 | require-main-filename "^1.0.1" 2915 | set-blocking "^2.0.0" 2916 | string-width "^1.0.2" 2917 | which-module "^1.0.0" 2918 | y18n "^3.2.1" 2919 | yargs-parser "^4.2.0" 2920 | 2921 | yargs@~3.10.0: 2922 | version "3.10.0" 2923 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 2924 | dependencies: 2925 | camelcase "^1.0.2" 2926 | cliui "^2.1.0" 2927 | decamelize "^1.0.0" 2928 | window-size "0.1.0" 2929 | --------------------------------------------------------------------------------