├── .babelrc
├── .gitignore
├── README.md
├── build
├── really-smooth-scroll.js
└── really-smooth-scroll.map
├── demo
└── index.html
├── package.json
├── src
├── SmoothScroll.js
├── mapToZero.js
├── presets.js
├── really-smooth-scroll.js
├── shouldStopAnimation.js
├── spring.js
├── stepper.js
└── stripStyle.js
├── webpack.prod.config.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "stage-0"]
3 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # really-smooth-scroll
2 |
3 | [Demo](http://chuson1996.github.io/really-smooth-scroll)
4 | [Live Demo](https://youtu.be/aiG4rMLHjUc?t=2m54s)
5 |
6 | This is it. I have been looking for libraries, shims and tricks for smooth scrolling for way too long on the Internet. And none actually provides the smoothness that I want. THIS ENDS NOW. **(However, this shim only takes effect in desktop browsers, not yet supported for mobile browsers. But soon it will. )**
7 |
8 | This shim overrides browser's `window.scrollTo` function. Instead of jumping immediately, it smoothly scrolls to the scroll position (Check demo). If you want the use the old behavior, use `window.oldScrollTo`.
9 |
10 | The magic algorithm is based on the spring animation in react-motion. [Wanna see why it's awesome?](https://youtu.be/1tavDv5hXpo?t=12m25s)
11 |
12 | ### Install
13 |
14 | ```bash
15 | npm install --save really-smooth-scroll
16 | # or if you use yarn
17 | yarn add really-smooth-scroll
18 | ```
19 |
20 | ### Usage
21 | ```js
22 | const ReallySmoothScroll = require('really-smooth-scroll');
23 | // or
24 | // import ReallySmoothScroll from 'really-smooth-scroll';
25 |
26 | ReallySmoothScroll.shim();
27 | // Done. Coundn't be easier.
28 |
29 | // If you want to adjust the scrolling sensitivity (Optional)
30 | ReallySmoothScroll.config({
31 | mousewheelSensitivity: 6, // Default
32 | keydownSensitivity: 6 // Default (When you press arrow down/up key)
33 | });
34 | ```
35 |
36 | If you don't use webpack or babel, embed one of these 2 scripts to your html
37 |
38 | ```html
39 |
40 |
41 |
42 |
43 |
44 | ```
45 |
--------------------------------------------------------------------------------
/build/really-smooth-scroll.js:
--------------------------------------------------------------------------------
1 | (function webpackUniversalModuleDefinition(root, factory) {
2 | if(typeof exports === 'object' && typeof module === 'object')
3 | module.exports = factory();
4 | else if(typeof define === 'function' && define.amd)
5 | define("ReallySmoothScroll", [], factory);
6 | else if(typeof exports === 'object')
7 | exports["ReallySmoothScroll"] = factory();
8 | else
9 | root["ReallySmoothScroll"] = factory();
10 | })(this, function() {
11 | return /******/ (function(modules) { // webpackBootstrap
12 | /******/ // The module cache
13 | /******/ var installedModules = {};
14 | /******/
15 | /******/ // The require function
16 | /******/ function __webpack_require__(moduleId) {
17 | /******/
18 | /******/ // Check if module is in cache
19 | /******/ if(installedModules[moduleId])
20 | /******/ return installedModules[moduleId].exports;
21 | /******/
22 | /******/ // Create a new module (and put it into the cache)
23 | /******/ var module = installedModules[moduleId] = {
24 | /******/ exports: {},
25 | /******/ id: moduleId,
26 | /******/ loaded: false
27 | /******/ };
28 | /******/
29 | /******/ // Execute the module function
30 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31 | /******/
32 | /******/ // Flag the module as loaded
33 | /******/ module.loaded = true;
34 | /******/
35 | /******/ // Return the exports of the module
36 | /******/ return module.exports;
37 | /******/ }
38 | /******/
39 | /******/
40 | /******/ // expose the modules object (__webpack_modules__)
41 | /******/ __webpack_require__.m = modules;
42 | /******/
43 | /******/ // expose the module cache
44 | /******/ __webpack_require__.c = installedModules;
45 | /******/
46 | /******/ // __webpack_public_path__
47 | /******/ __webpack_require__.p = "build/";
48 | /******/
49 | /******/ // Load entry module and return exports
50 | /******/ return __webpack_require__(0);
51 | /******/ })
52 | /************************************************************************/
53 | /******/ ([
54 | /* 0 */
55 | /***/ (function(module, exports, __webpack_require__) {
56 |
57 | 'use strict';
58 |
59 | var SmoothScroll = __webpack_require__(1);
60 | var spring = __webpack_require__(9);
61 |
62 | var mousewheelSensitivity = 6;
63 | var keydownSensitivity = 6;
64 | var forceStop = false;
65 |
66 | function getSpringVal(val) {
67 | if (typeof val === 'number') return val;
68 | return val.val;
69 | }
70 |
71 | function stayInRange(min, max, value) {
72 | return Math.min(max, Math.max(min, value));
73 | }
74 |
75 | function difference(a, b) {
76 | return Math.abs(a - b);
77 | }
78 |
79 | var moving = false;
80 | var scrollY = spring(0);
81 |
82 | var smoothScroll = new SmoothScroll({
83 | style: { scrollY: 0 },
84 | defaultStyle: { scrollY: 0 },
85 | onRest: function onRest() {
86 | moving = false;
87 | }
88 | });
89 |
90 | function move(deltaY) {
91 | if (!moving) {
92 | if (difference(getSpringVal(scrollY), Math.round(window.scrollY)) > 4) {
93 | scrollY = window.scrollY;
94 | smoothScroll.componentWillReceiveProps({
95 | style: { scrollY: scrollY }
96 | });
97 | }
98 | moving = true;
99 | }
100 |
101 | if (document.querySelector('html').style.overflowY === 'hidden') {
102 | return;
103 | }
104 |
105 | scrollY = stayInRange(0, document.querySelector('html').offsetHeight - window.innerHeight,
106 | // getSpringVal(scrollY) + deltaY
107 | window.scrollY + deltaY * mousewheelSensitivity);
108 | window.scrollTo(window.scrollX, scrollY);
109 | }
110 |
111 | function onkeydown(e) {
112 | if (e.target === document.body && e.key === 'ArrowDown') {
113 | e.preventDefault();
114 | move(keydownSensitivity * 3);
115 | } else if (e.target === document.body && e.key === 'ArrowUp') {
116 | e.preventDefault();
117 | move(-keydownSensitivity * 3);
118 | }
119 | }
120 |
121 | var mousewheelTimeout = void 0;
122 | var maxDeltaY = 0;
123 | function onmousewheel(e) {
124 | var deltaY = stayInRange(-50, 50, e.deltaY);
125 |
126 | if (maxDeltaY === 0 || !forceStop) {
127 | maxDeltaY = deltaY;
128 | // console.log('Set maxDeltaY');
129 | }
130 | if (document.body.contains(e.target) || e.target === document.body) {
131 | e.preventDefault();
132 | if (forceStop) {
133 | // console.log(Math.abs(maxDeltaY), Math.abs(deltaY));
134 | if (Math.abs(maxDeltaY) < Math.abs(deltaY) || maxDeltaY * deltaY < 0) {
135 | // console.log('Should disable forceStop now 2');
136 | forceStop = false;
137 | } else {
138 | maxDeltaY = deltaY;
139 | }
140 |
141 | if (mousewheelTimeout) clearTimeout(mousewheelTimeout);
142 | mousewheelTimeout = setTimeout(function () {
143 | // console.log('Should disable forceStop now');
144 | forceStop = false;
145 | maxDeltaY = 0;
146 | }, 100);
147 | return;
148 | }
149 | // console.log('Wheeling', forceStop);
150 | move(deltaY);
151 | }
152 | }
153 |
154 | window._scrollTo = window.scrollTo.bind(window);
155 | exports.shim = function shim() {
156 | window.addEventListener('wheel', onmousewheel);
157 | window.addEventListener('keydown', onkeydown);
158 |
159 | if (!window.oldScrollTo) {
160 | window.oldScrollTo = function () {
161 | if (moving) {
162 | window.stopScrolling();
163 | }
164 |
165 | smoothScroll.componentWillReceiveProps({
166 | style: { scrollY: arguments.length <= 1 ? undefined : arguments[1] }
167 | });
168 | };
169 |
170 | window.scrollTo = function (x, y) {
171 | window._scrollTo(x, window.scrollY);
172 | smoothScroll.componentWillReceiveProps({
173 | style: { scrollY: spring(y) }
174 | });
175 | };
176 | }
177 | window.stopScrolling = function () {
178 | forceStop = true;
179 | smoothScroll.componentWillReceiveProps({
180 | style: { scrollY: window.scrollY }
181 | });
182 | };
183 | };
184 |
185 | exports.config = function config(options) {
186 | if (options.mousewheelSensitivity) {
187 | mousewheelSensitivity = options.mousewheelSensitivity;
188 | }
189 | if (options.keydownSensitivity) {
190 | keydownSensitivity = options.keydownSensitivity;
191 | }
192 | };
193 |
194 | /***/ }),
195 | /* 1 */
196 | /***/ (function(module, exports, __webpack_require__) {
197 |
198 | 'use strict';
199 |
200 | var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
201 |
202 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
203 |
204 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
205 |
206 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
207 |
208 | var mapToZero = __webpack_require__(2);
209 | var stripStyle = __webpack_require__(3);
210 | var stepper = __webpack_require__(4);
211 | var defaultNow = __webpack_require__(5);
212 | var defaultRaf = __webpack_require__(7);
213 | var shouldStopAnimation = __webpack_require__(8);
214 |
215 | var msPerFrame = 1000 / 60;
216 |
217 | module.exports = function () {
218 | function SmoothScroll(props) {
219 | var _this = this;
220 |
221 | _classCallCheck(this, SmoothScroll);
222 |
223 | this.clearUnreadPropStyle = function (destStyle) {
224 | var dirty = false;
225 | var _state = _this.state,
226 | currentStyle = _state.currentStyle,
227 | currentVelocity = _state.currentVelocity,
228 | lastIdealStyle = _state.lastIdealStyle,
229 | lastIdealVelocity = _state.lastIdealVelocity;
230 |
231 |
232 | for (var key in destStyle) {
233 | if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {
234 | continue;
235 | }
236 |
237 | var styleValue = destStyle[key];
238 | if (typeof styleValue === 'number') {
239 | if (!dirty) {
240 | dirty = true;
241 | currentStyle = _extends({}, currentStyle);
242 | currentVelocity = _extends({}, currentVelocity);
243 | lastIdealStyle = _extends({}, lastIdealStyle);
244 | lastIdealVelocity = _extends({}, lastIdealVelocity);
245 | }
246 |
247 | currentStyle[key] = styleValue;
248 | currentVelocity[key] = 0;
249 | lastIdealStyle[key] = styleValue;
250 | lastIdealVelocity[key] = 0;
251 | }
252 | }
253 |
254 | if (dirty) {
255 | _this.setState({ currentStyle: currentStyle, currentVelocity: currentVelocity, lastIdealStyle: lastIdealStyle, lastIdealVelocity: lastIdealVelocity });
256 | }
257 | };
258 |
259 | this.startAnimationIfNecessary = function () {
260 | // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and
261 | // call cb? No, otherwise accidental parent rerender causes cb trigger
262 | _this.animationID = defaultRaf(function (timestamp) {
263 | // check if we need to animate in the first place
264 | var propsStyle = _this.props.style;
265 | if (shouldStopAnimation(_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {
266 | if (_this.wasAnimating && _this.props.onRest) {
267 | _this.props.onRest();
268 | }
269 |
270 | // no need to cancel animationID here; shouldn't have any in flight
271 | _this.animationID = null;
272 | _this.wasAnimating = false;
273 | _this.accumulatedTime = 0;
274 | return;
275 | }
276 |
277 | _this.wasAnimating = true;
278 |
279 | var currentTime = timestamp || defaultNow();
280 | var timeDelta = currentTime - _this.prevTime;
281 | _this.prevTime = currentTime;
282 | _this.accumulatedTime = _this.accumulatedTime + timeDelta;
283 | // more than 10 frames? prolly switched browser tab. Restart
284 | if (_this.accumulatedTime > msPerFrame * 10) {
285 | _this.accumulatedTime = 0;
286 | }
287 |
288 | if (_this.accumulatedTime === 0) {
289 | // no need to cancel animationID here; shouldn't have any in flight
290 | _this.animationID = null;
291 | _this.startAnimationIfNecessary();
292 | return;
293 | }
294 |
295 | var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;
296 | var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);
297 |
298 | var newLastIdealStyle = {};
299 | var newLastIdealVelocity = {};
300 | var newCurrentStyle = {};
301 | var newCurrentVelocity = {};
302 |
303 | for (var key in propsStyle) {
304 | if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {
305 | continue;
306 | }
307 |
308 | var styleValue = propsStyle[key];
309 | if (typeof styleValue === 'number') {
310 | newCurrentStyle[key] = styleValue;
311 | newCurrentVelocity[key] = 0;
312 | newLastIdealStyle[key] = styleValue;
313 | newLastIdealVelocity[key] = 0;
314 | } else {
315 | var newLastIdealStyleValue = _this.state.lastIdealStyle[key];
316 | var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];
317 | for (var i = 0; i < framesToCatchUp; i++) {
318 | var _stepper = stepper(msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);
319 |
320 | var _stepper2 = _slicedToArray(_stepper, 2);
321 |
322 | newLastIdealStyleValue = _stepper2[0];
323 | newLastIdealVelocityValue = _stepper2[1];
324 | }
325 |
326 | var _stepper3 = stepper(msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision),
327 | _stepper4 = _slicedToArray(_stepper3, 2),
328 | nextIdealX = _stepper4[0],
329 | nextIdealV = _stepper4[1];
330 |
331 | newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;
332 | newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;
333 | newLastIdealStyle[key] = newLastIdealStyleValue;
334 | newLastIdealVelocity[key] = newLastIdealVelocityValue;
335 | }
336 | }
337 |
338 | _this.animationID = null;
339 | // the amount we're looped over above
340 | _this.accumulatedTime -= framesToCatchUp * msPerFrame;
341 |
342 | _this.setState({
343 | currentStyle: newCurrentStyle,
344 | currentVelocity: newCurrentVelocity,
345 | lastIdealStyle: newLastIdealStyle,
346 | lastIdealVelocity: newLastIdealVelocity
347 | });
348 |
349 | _this.unreadPropStyle = null;
350 |
351 | _this.startAnimationIfNecessary();
352 | });
353 | };
354 |
355 | this.wasAnimating = false;
356 | this.animationID = null;
357 | this.prevTime = 0;
358 | this.accumulatedTime = 0;
359 | // it's possible that currentStyle's value is stale: if props is immediately
360 | // changed from 0 to 400 to spring(0) again, the async currentStyle is still
361 | // at 0 (didn't have time to tick and interpolate even once). If we naively
362 | // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).
363 | // In reality currentStyle should be 400
364 | this.unreadPropStyle = null;
365 | // after checking for unreadPropStyle != null, we manually go set the
366 | // non-interpolating values (those that are a number, without a spring
367 | // config)
368 |
369 |
370 | this.props = props;
371 | this.state = this.defaultState();
372 |
373 | this.prevTime = defaultNow();
374 | this.startAnimationIfNecessary();
375 | }
376 |
377 | _createClass(SmoothScroll, [{
378 | key: 'defaultState',
379 | value: function defaultState() {
380 | var _props = this.props,
381 | defaultStyle = _props.defaultStyle,
382 | style = _props.style;
383 |
384 | var currentStyle = defaultStyle || stripStyle(style);
385 | var currentVelocity = mapToZero(currentStyle);
386 | return {
387 | currentStyle: currentStyle,
388 | currentVelocity: currentVelocity,
389 | lastIdealStyle: currentStyle,
390 | lastIdealVelocity: currentVelocity
391 | };
392 | }
393 | }, {
394 | key: 'componentWillReceiveProps',
395 | value: function componentWillReceiveProps(nextProps) {
396 | if (this.unreadPropStyle != null) {
397 | // previous props haven't had the chance to be set yet; set them here
398 | this.clearUnreadPropStyle(this.unreadPropStyle);
399 | }
400 |
401 | this.unreadPropStyle = nextProps.style;
402 | if (this.animationID == null) {
403 | this.prevTime = defaultNow();
404 | this.startAnimationIfNecessary();
405 | }
406 |
407 | this.props = _extends({}, this.props, nextProps);
408 | }
409 | }, {
410 | key: 'setState',
411 | value: function setState(newState) {
412 | this.state = _extends({}, this.state, newState);
413 |
414 | window._scrollTo(window.scrollX, this.state.currentStyle.scrollY);
415 | }
416 | }]);
417 |
418 | return SmoothScroll;
419 | }();
420 |
421 | /***/ }),
422 | /* 2 */
423 | /***/ (function(module, exports) {
424 |
425 | "use strict";
426 |
427 | // currently used to initiate the velocity style object to 0
428 | module.exports = function mapToZero(obj) {
429 | var ret = {};
430 | for (var key in obj) {
431 | if (Object.prototype.hasOwnProperty.call(obj, key)) {
432 | ret[key] = 0;
433 | }
434 | }
435 | return ret;
436 | };
437 |
438 | /***/ }),
439 | /* 3 */
440 | /***/ (function(module, exports) {
441 |
442 | 'use strict';
443 |
444 | /* @flow */
445 | // turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by
446 | // `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}
447 |
448 | module.exports = function stripStyle(style) {
449 | var ret = {};
450 | for (var key in style) {
451 | if (!Object.prototype.hasOwnProperty.call(style, key)) {
452 | continue;
453 | }
454 | ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;
455 | }
456 | return ret;
457 | };
458 |
459 | /***/ }),
460 | /* 4 */
461 | /***/ (function(module, exports) {
462 |
463 | "use strict";
464 |
465 | /* @flow */
466 |
467 | // stepper is used a lot. Saves allocation to return the same array wrapper.
468 | // This is fine and danger-free against mutations because the callsite
469 | // immediately destructures it and gets the numbers inside without passing the
470 | // array reference around.
471 | var reusedTuple = [0, 0];
472 | module.exports = function stepper(secondPerFrame, x, v, destX, k, b, precision) {
473 | // Spring stiffness, in kg / s^2
474 |
475 | // for animations, destX is really spring length (spring at rest). initial
476 | // position is considered as the stretched/compressed position of a spring
477 | var Fspring = -k * (x - destX);
478 |
479 | // Damping, in kg / s
480 | var Fdamper = -b * v;
481 |
482 | // usually we put mass here, but for animation purposes, specifying mass is a
483 | // bit redundant. you could simply adjust k and b accordingly
484 | // let a = (Fspring + Fdamper) / mass;
485 | var a = Fspring + Fdamper;
486 |
487 | var newV = v + a * secondPerFrame;
488 | var newX = x + newV * secondPerFrame;
489 |
490 | if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {
491 | reusedTuple[0] = destX;
492 | reusedTuple[1] = 0;
493 | return reusedTuple;
494 | }
495 |
496 | reusedTuple[0] = newX;
497 | reusedTuple[1] = newV;
498 | return reusedTuple;
499 | };
500 |
501 | /***/ }),
502 | /* 5 */
503 | /***/ (function(module, exports, __webpack_require__) {
504 |
505 | /* WEBPACK VAR INJECTION */(function(process) {"use strict";
506 |
507 | // Generated by CoffeeScript 1.12.2
508 | (function () {
509 | var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;
510 |
511 | if (typeof performance !== "undefined" && performance !== null && performance.now) {
512 | module.exports = function () {
513 | return performance.now();
514 | };
515 | } else if (typeof process !== "undefined" && process !== null && process.hrtime) {
516 | module.exports = function () {
517 | return (getNanoSeconds() - nodeLoadTime) / 1e6;
518 | };
519 | hrtime = process.hrtime;
520 | getNanoSeconds = function getNanoSeconds() {
521 | var hr;
522 | hr = hrtime();
523 | return hr[0] * 1e9 + hr[1];
524 | };
525 | moduleLoadTime = getNanoSeconds();
526 | upTime = process.uptime() * 1e9;
527 | nodeLoadTime = moduleLoadTime - upTime;
528 | } else if (Date.now) {
529 | module.exports = function () {
530 | return Date.now() - loadTime;
531 | };
532 | loadTime = Date.now();
533 | } else {
534 | module.exports = function () {
535 | return new Date().getTime() - loadTime;
536 | };
537 | loadTime = new Date().getTime();
538 | }
539 | }).call(undefined);
540 |
541 | //# sourceMappingURL=performance-now.js.map
542 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))
543 |
544 | /***/ }),
545 | /* 6 */
546 | /***/ (function(module, exports) {
547 |
548 | 'use strict';
549 |
550 | // shim for using process in browser
551 | var process = module.exports = {};
552 |
553 | // cached from whatever global is present so that test runners that stub it
554 | // don't break things. But we need to wrap it in a try catch in case it is
555 | // wrapped in strict mode code which doesn't define any globals. It's inside a
556 | // function because try/catches deoptimize in certain engines.
557 |
558 | var cachedSetTimeout;
559 | var cachedClearTimeout;
560 |
561 | function defaultSetTimout() {
562 | throw new Error('setTimeout has not been defined');
563 | }
564 | function defaultClearTimeout() {
565 | throw new Error('clearTimeout has not been defined');
566 | }
567 | (function () {
568 | try {
569 | if (typeof setTimeout === 'function') {
570 | cachedSetTimeout = setTimeout;
571 | } else {
572 | cachedSetTimeout = defaultSetTimout;
573 | }
574 | } catch (e) {
575 | cachedSetTimeout = defaultSetTimout;
576 | }
577 | try {
578 | if (typeof clearTimeout === 'function') {
579 | cachedClearTimeout = clearTimeout;
580 | } else {
581 | cachedClearTimeout = defaultClearTimeout;
582 | }
583 | } catch (e) {
584 | cachedClearTimeout = defaultClearTimeout;
585 | }
586 | })();
587 | function runTimeout(fun) {
588 | if (cachedSetTimeout === setTimeout) {
589 | //normal enviroments in sane situations
590 | return setTimeout(fun, 0);
591 | }
592 | // if setTimeout wasn't available but was latter defined
593 | if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
594 | cachedSetTimeout = setTimeout;
595 | return setTimeout(fun, 0);
596 | }
597 | try {
598 | // when when somebody has screwed with setTimeout but no I.E. maddness
599 | return cachedSetTimeout(fun, 0);
600 | } catch (e) {
601 | try {
602 | // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
603 | return cachedSetTimeout.call(null, fun, 0);
604 | } catch (e) {
605 | // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
606 | return cachedSetTimeout.call(this, fun, 0);
607 | }
608 | }
609 | }
610 | function runClearTimeout(marker) {
611 | if (cachedClearTimeout === clearTimeout) {
612 | //normal enviroments in sane situations
613 | return clearTimeout(marker);
614 | }
615 | // if clearTimeout wasn't available but was latter defined
616 | if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
617 | cachedClearTimeout = clearTimeout;
618 | return clearTimeout(marker);
619 | }
620 | try {
621 | // when when somebody has screwed with setTimeout but no I.E. maddness
622 | return cachedClearTimeout(marker);
623 | } catch (e) {
624 | try {
625 | // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
626 | return cachedClearTimeout.call(null, marker);
627 | } catch (e) {
628 | // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
629 | // Some versions of I.E. have different rules for clearTimeout vs setTimeout
630 | return cachedClearTimeout.call(this, marker);
631 | }
632 | }
633 | }
634 | var queue = [];
635 | var draining = false;
636 | var currentQueue;
637 | var queueIndex = -1;
638 |
639 | function cleanUpNextTick() {
640 | if (!draining || !currentQueue) {
641 | return;
642 | }
643 | draining = false;
644 | if (currentQueue.length) {
645 | queue = currentQueue.concat(queue);
646 | } else {
647 | queueIndex = -1;
648 | }
649 | if (queue.length) {
650 | drainQueue();
651 | }
652 | }
653 |
654 | function drainQueue() {
655 | if (draining) {
656 | return;
657 | }
658 | var timeout = runTimeout(cleanUpNextTick);
659 | draining = true;
660 |
661 | var len = queue.length;
662 | while (len) {
663 | currentQueue = queue;
664 | queue = [];
665 | while (++queueIndex < len) {
666 | if (currentQueue) {
667 | currentQueue[queueIndex].run();
668 | }
669 | }
670 | queueIndex = -1;
671 | len = queue.length;
672 | }
673 | currentQueue = null;
674 | draining = false;
675 | runClearTimeout(timeout);
676 | }
677 |
678 | process.nextTick = function (fun) {
679 | var args = new Array(arguments.length - 1);
680 | if (arguments.length > 1) {
681 | for (var i = 1; i < arguments.length; i++) {
682 | args[i - 1] = arguments[i];
683 | }
684 | }
685 | queue.push(new Item(fun, args));
686 | if (queue.length === 1 && !draining) {
687 | runTimeout(drainQueue);
688 | }
689 | };
690 |
691 | // v8 likes predictible objects
692 | function Item(fun, array) {
693 | this.fun = fun;
694 | this.array = array;
695 | }
696 | Item.prototype.run = function () {
697 | this.fun.apply(null, this.array);
698 | };
699 | process.title = 'browser';
700 | process.browser = true;
701 | process.env = {};
702 | process.argv = [];
703 | process.version = ''; // empty string to avoid regexp issues
704 | process.versions = {};
705 |
706 | function noop() {}
707 |
708 | process.on = noop;
709 | process.addListener = noop;
710 | process.once = noop;
711 | process.off = noop;
712 | process.removeListener = noop;
713 | process.removeAllListeners = noop;
714 | process.emit = noop;
715 | process.prependListener = noop;
716 | process.prependOnceListener = noop;
717 |
718 | process.listeners = function (name) {
719 | return [];
720 | };
721 |
722 | process.binding = function (name) {
723 | throw new Error('process.binding is not supported');
724 | };
725 |
726 | process.cwd = function () {
727 | return '/';
728 | };
729 | process.chdir = function (dir) {
730 | throw new Error('process.chdir is not supported');
731 | };
732 | process.umask = function () {
733 | return 0;
734 | };
735 |
736 | /***/ }),
737 | /* 7 */
738 | /***/ (function(module, exports, __webpack_require__) {
739 |
740 | /* WEBPACK VAR INJECTION */(function(global) {'use strict';
741 |
742 | var now = __webpack_require__(5),
743 | root = typeof window === 'undefined' ? global : window,
744 | vendors = ['moz', 'webkit'],
745 | suffix = 'AnimationFrame',
746 | raf = root['request' + suffix],
747 | caf = root['cancel' + suffix] || root['cancelRequest' + suffix];
748 |
749 | for (var i = 0; !raf && i < vendors.length; i++) {
750 | raf = root[vendors[i] + 'Request' + suffix];
751 | caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];
752 | }
753 |
754 | // Some versions of FF have rAF but not cAF
755 | if (!raf || !caf) {
756 | var last = 0,
757 | id = 0,
758 | queue = [],
759 | frameDuration = 1000 / 60;
760 |
761 | raf = function raf(callback) {
762 | if (queue.length === 0) {
763 | var _now = now(),
764 | next = Math.max(0, frameDuration - (_now - last));
765 | last = next + _now;
766 | setTimeout(function () {
767 | var cp = queue.slice(0);
768 | // Clear queue here to prevent
769 | // callbacks from appending listeners
770 | // to the current frame's queue
771 | queue.length = 0;
772 | for (var i = 0; i < cp.length; i++) {
773 | if (!cp[i].cancelled) {
774 | try {
775 | cp[i].callback(last);
776 | } catch (e) {
777 | setTimeout(function () {
778 | throw e;
779 | }, 0);
780 | }
781 | }
782 | }
783 | }, Math.round(next));
784 | }
785 | queue.push({
786 | handle: ++id,
787 | callback: callback,
788 | cancelled: false
789 | });
790 | return id;
791 | };
792 |
793 | caf = function caf(handle) {
794 | for (var i = 0; i < queue.length; i++) {
795 | if (queue[i].handle === handle) {
796 | queue[i].cancelled = true;
797 | }
798 | }
799 | };
800 | }
801 |
802 | module.exports = function (fn) {
803 | // Wrap in a new function to prevent
804 | // `cancel` potentially being assigned
805 | // to the native rAF function
806 | return raf.call(root, fn);
807 | };
808 | module.exports.cancel = function () {
809 | caf.apply(root, arguments);
810 | };
811 | module.exports.polyfill = function () {
812 | root.requestAnimationFrame = raf;
813 | root.cancelAnimationFrame = caf;
814 | };
815 | /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
816 |
817 | /***/ }),
818 | /* 8 */
819 | /***/ (function(module, exports) {
820 |
821 | 'use strict';
822 |
823 | // usage assumption: currentStyle values have already been rendered but it says
824 | // nothing of whether currentStyle is stale (see unreadPropStyle)
825 | module.exports = function shouldStopAnimation(currentStyle, style, currentVelocity) {
826 | for (var key in style) {
827 | if (!Object.prototype.hasOwnProperty.call(style, key)) {
828 | continue;
829 | }
830 |
831 | if (currentVelocity[key] !== 0) {
832 | return false;
833 | }
834 |
835 | var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val;
836 | // stepper will have already taken care of rounding precision errors, so
837 | // won't have such thing as 0.9999 !=== 1
838 | if (currentStyle[key] !== styleValue) {
839 | return false;
840 | }
841 | }
842 |
843 | return true;
844 | };
845 |
846 | /***/ }),
847 | /* 9 */
848 | /***/ (function(module, exports, __webpack_require__) {
849 |
850 | 'use strict';
851 |
852 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
853 |
854 | var presets = __webpack_require__(10);
855 |
856 | var defaultConfig = _extends({}, presets.noWobble, {
857 | precision: 0.01
858 | });
859 |
860 | module.exports = function spring(val, config) {
861 | return _extends({}, defaultConfig, config, { val: val });
862 | };
863 |
864 | /***/ }),
865 | /* 10 */
866 | /***/ (function(module, exports) {
867 |
868 | "use strict";
869 |
870 | module.exports = {
871 | noWobble: { stiffness: 170, damping: 26 }, // the default, if nothing provided
872 | gentle: { stiffness: 120, damping: 14 },
873 | wobbly: { stiffness: 180, damping: 12 },
874 | stiff: { stiffness: 210, damping: 20 }
875 | };
876 |
877 | /***/ })
878 | /******/ ])
879 | });
880 | ;
881 | //# sourceMappingURL=really-smooth-scroll.map
--------------------------------------------------------------------------------
/build/really-smooth-scroll.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 76fc08977fb34a29c587","webpack:///./src/really-smooth-scroll.js","webpack:///./src/SmoothScroll.js","webpack:///./src/mapToZero.js","webpack:///./src/stripStyle.js","webpack:///./src/stepper.js","webpack:///./~/performance-now/lib/performance-now.js","webpack:///./~/process/browser.js","webpack:///./~/raf/index.js","webpack:///./src/shouldStopAnimation.js","webpack:///./src/spring.js","webpack:///./src/presets.js"],"names":["SmoothScroll","require","spring","mousewheelSensitivity","keydownSensitivity","forceStop","getSpringVal","val","stayInRange","min","max","value","Math","difference","a","b","abs","moving","scrollY","smoothScroll","style","defaultStyle","onRest","move","deltaY","round","window","componentWillReceiveProps","document","querySelector","overflowY","offsetHeight","innerHeight","scrollTo","scrollX","onkeydown","e","target","body","key","preventDefault","mousewheelTimeout","maxDeltaY","onmousewheel","contains","clearTimeout","setTimeout","_scrollTo","bind","exports","shim","addEventListener","oldScrollTo","stopScrolling","x","y","config","options","mapToZero","stripStyle","stepper","defaultNow","defaultRaf","shouldStopAnimation","msPerFrame","module","props","clearUnreadPropStyle","destStyle","dirty","state","currentStyle","currentVelocity","lastIdealStyle","lastIdealVelocity","Object","prototype","hasOwnProperty","call","styleValue","setState","startAnimationIfNecessary","animationID","timestamp","propsStyle","wasAnimating","accumulatedTime","currentTime","timeDelta","prevTime","currentFrameCompletion","floor","framesToCatchUp","newLastIdealStyle","newLastIdealVelocity","newCurrentStyle","newCurrentVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","i","stiffness","damping","precision","nextIdealX","nextIdealV","unreadPropStyle","defaultState","nextProps","newState","obj","ret","reusedTuple","secondPerFrame","v","destX","k","Fspring","Fdamper","newV","newX","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","process","hr","uptime","Date","getTime","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","push","Item","array","apply","title","browser","env","argv","version","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","root","global","vendors","suffix","raf","caf","last","id","frameDuration","callback","_now","next","cp","slice","cancelled","handle","fn","cancel","polyfill","requestAnimationFrame","cancelAnimationFrame","presets","defaultConfig","noWobble","gentle","wobbly","stiff"],"mappings":"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","file":"really-smooth-scroll.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ReallySmoothScroll\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReallySmoothScroll\"] = factory();\n\telse\n\t\troot[\"ReallySmoothScroll\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"build/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 76fc08977fb34a29c587","const SmoothScroll = require('./SmoothScroll');\nconst spring = require('./spring');\n\nlet mousewheelSensitivity = 6;\nlet keydownSensitivity = 6;\nlet forceStop = false;\n\nfunction getSpringVal(val) {\n if (typeof val === 'number') return val;\n return val.val;\n}\n\nfunction stayInRange(min, max, value) {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction difference(a, b) {\n return Math.abs(a - b);\n}\n\nlet moving = false;\nlet scrollY = spring(0);\n\nconst smoothScroll = new SmoothScroll({\n style: { scrollY: 0 },\n defaultStyle: { scrollY: 0 },\n onRest: function onRest() {\n moving = false;\n },\n});\n\nfunction move(deltaY) {\n if (!moving) {\n if (difference(getSpringVal(scrollY), Math.round(window.scrollY)) > 4) {\n scrollY = window.scrollY;\n smoothScroll.componentWillReceiveProps({\n style: {scrollY},\n });\n }\n moving = true;\n }\n\n if (document.querySelector('html').style.overflowY === 'hidden') {\n return;\n }\n\n scrollY = stayInRange(\n 0,\n document.querySelector('html').offsetHeight - window.innerHeight,\n // getSpringVal(scrollY) + deltaY\n window.scrollY + deltaY * mousewheelSensitivity\n );\n window.scrollTo(window.scrollX, scrollY);\n}\n\nfunction onkeydown(e) {\n if (e.target === document.body && e.key === 'ArrowDown') {\n e.preventDefault();\n move(keydownSensitivity * 3);\n } else if (e.target === document.body && e.key === 'ArrowUp') {\n e.preventDefault();\n move(-keydownSensitivity * 3);\n }\n}\n\nlet mousewheelTimeout;\nlet maxDeltaY = 0;\nfunction onmousewheel(e) {\n const deltaY = stayInRange(-50, 50, e.deltaY);\n\n if (maxDeltaY === 0 || !forceStop) {\n maxDeltaY = deltaY;\n // console.log('Set maxDeltaY');\n }\n if (document.body.contains(e.target) || e.target === document.body) {\n e.preventDefault();\n if (forceStop) {\n // console.log(Math.abs(maxDeltaY), Math.abs(deltaY));\n if (Math.abs(maxDeltaY) < Math.abs(deltaY) || maxDeltaY * deltaY < 0) {\n // console.log('Should disable forceStop now 2');\n forceStop = false;\n } else {\n maxDeltaY = deltaY;\n }\n\n if (mousewheelTimeout) clearTimeout(mousewheelTimeout);\n mousewheelTimeout = setTimeout(function() {\n // console.log('Should disable forceStop now');\n forceStop = false;\n maxDeltaY = 0;\n }, 100);\n return;\n }\n // console.log('Wheeling', forceStop);\n move(deltaY);\n }\n}\n\n\nwindow._scrollTo = window.scrollTo.bind(window);\nexports.shim = function shim() {\n window.addEventListener('wheel', onmousewheel);\n window.addEventListener('keydown', onkeydown);\n\n if (!window.oldScrollTo) {\n window.oldScrollTo = (...args) => {\n if (moving) {\n window.stopScrolling();\n }\n\n smoothScroll.componentWillReceiveProps({\n style: { scrollY: args[1] },\n });\n };\n\n window.scrollTo = (x, y) => {\n window._scrollTo(x, window.scrollY);\n smoothScroll.componentWillReceiveProps({\n style: { scrollY: spring(y) },\n });\n };\n\n }\n window.stopScrolling = () => {\n forceStop = true;\n smoothScroll.componentWillReceiveProps({\n style: { scrollY: window.scrollY },\n });\n }\n}\n\nexports.config = function config(options) {\n if (options.mousewheelSensitivity) {\n mousewheelSensitivity = options.mousewheelSensitivity;\n }\n if (options.keydownSensitivity) {\n keydownSensitivity = options.keydownSensitivity;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/really-smooth-scroll.js","const mapToZero = require('./mapToZero');\nconst stripStyle = require('./stripStyle');\nconst stepper = require('./stepper');\nconst defaultNow = require('performance-now');\nconst defaultRaf = require('raf');\nconst shouldStopAnimation = require('./shouldStopAnimation');\n\nconst msPerFrame = 1000 / 60;\n\nmodule.exports = class SmoothScroll {\n constructor(props) {\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n this.unreadPropStyle = null;\n // after checking for unreadPropStyle != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n this.props = props;\n this.state = this.defaultState();\n\n this.prevTime = defaultNow();\n this.startAnimationIfNecessary();\n }\n\n\n defaultState() {\n const {defaultStyle, style} = this.props;\n const currentStyle = defaultStyle || stripStyle(style);\n const currentVelocity = mapToZero(currentStyle);\n return {\n currentStyle,\n currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity,\n };\n }\n\n clearUnreadPropStyle = (destStyle) => {\n let dirty = false;\n let {currentStyle, currentVelocity, lastIdealStyle, lastIdealVelocity} = this.state;\n\n for (let key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n const styleValue = destStyle[key];\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = {...currentStyle};\n currentVelocity = {...currentVelocity};\n lastIdealStyle = {...lastIdealStyle};\n lastIdealVelocity = {...lastIdealVelocity};\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n this.setState({currentStyle, currentVelocity, lastIdealStyle, lastIdealVelocity});\n }\n };\n\n startAnimationIfNecessary = () => {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n this.animationID = defaultRaf((timestamp) => {\n // check if we need to animate in the first place\n const propsStyle = this.props.style;\n if (shouldStopAnimation(\n this.state.currentStyle,\n propsStyle,\n this.state.currentVelocity,\n )) {\n if (this.wasAnimating && this.props.onRest) {\n this.props.onRest();\n }\n\n // no need to cancel animationID here; shouldn't have any in flight\n this.animationID = null;\n this.wasAnimating = false;\n this.accumulatedTime = 0;\n return;\n }\n\n this.wasAnimating = true;\n\n const currentTime = timestamp || defaultNow();\n const timeDelta = currentTime - this.prevTime;\n this.prevTime = currentTime;\n this.accumulatedTime = this.accumulatedTime + timeDelta;\n // more than 10 frames? prolly switched browser tab. Restart\n if (this.accumulatedTime > msPerFrame * 10) {\n this.accumulatedTime = 0;\n }\n\n if (this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n this.animationID = null;\n this.startAnimationIfNecessary();\n return;\n }\n\n let currentFrameCompletion =\n (this.accumulatedTime - Math.floor(this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n const framesToCatchUp = Math.floor(this.accumulatedTime / msPerFrame);\n\n let newLastIdealStyle = {};\n let newLastIdealVelocity = {};\n let newCurrentStyle = {};\n let newCurrentVelocity = {};\n\n for (let key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n const styleValue = propsStyle[key];\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n let newLastIdealStyleValue = this.state.lastIdealStyle[key];\n let newLastIdealVelocityValue = this.state.lastIdealVelocity[key];\n for (let i = 0; i < framesToCatchUp; i++) {\n [newLastIdealStyleValue, newLastIdealVelocityValue] = stepper(\n msPerFrame / 1000,\n newLastIdealStyleValue,\n newLastIdealVelocityValue,\n styleValue.val,\n styleValue.stiffness,\n styleValue.damping,\n styleValue.precision,\n );\n }\n const [nextIdealX, nextIdealV] = stepper(\n msPerFrame / 1000,\n newLastIdealStyleValue,\n newLastIdealVelocityValue,\n styleValue.val,\n styleValue.stiffness,\n styleValue.damping,\n styleValue.precision,\n );\n\n newCurrentStyle[key] =\n newLastIdealStyleValue +\n (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] =\n newLastIdealVelocityValue +\n (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n this.animationID = null;\n // the amount we're looped over above\n this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity,\n });\n\n this.unreadPropStyle = null;\n\n this.startAnimationIfNecessary();\n });\n };\n\n componentWillReceiveProps(nextProps) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = nextProps.style;\n if (this.animationID == null) {\n this.prevTime = defaultNow();\n this.startAnimationIfNecessary();\n }\n\n this.props = {\n ...this.props,\n ...nextProps,\n };\n }\n\n setState(newState) {\n this.state = {\n ...this.state,\n ...newState,\n };\n\n window._scrollTo(window.scrollX, this.state.currentStyle.scrollY);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/SmoothScroll.js","// currently used to initiate the velocity style object to 0\nmodule.exports = function mapToZero(obj){\n let ret = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n return ret;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/mapToZero.js","/* @flow */\n// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n\nmodule.exports = function stripStyle(style) {\n let ret = {};\n for (const key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n return ret;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/stripStyle.js","/* @flow */\n\n// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n// array reference around.\nlet reusedTuple = [0, 0];\nmodule.exports = function stepper(\n secondPerFrame,\n x,\n v,\n destX,\n k,\n b,\n precision) {\n // Spring stiffness, in kg / s^2\n\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n const Fspring = -k * (x - destX);\n\n // Damping, in kg / s\n const Fdamper = -b * v;\n\n // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n const a = Fspring + Fdamper;\n\n const newV = v + a * secondPerFrame;\n const newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/stepper.js","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./~/performance-now/lib/performance-now.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n// WEBPACK FOOTER //\n// ./~/process/browser.js","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function() {\n root.requestAnimationFrame = raf\n root.cancelAnimationFrame = caf\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/raf/index.js","// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\nmodule.exports = function shouldStopAnimation(\n currentStyle,\n style,\n currentVelocity,\n) {\n for (let key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n const styleValue = typeof style[key] === 'number'\n ? style[key]\n : style[key].val;\n // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shouldStopAnimation.js","const presets = require('./presets');\n\nconst defaultConfig = {\n ...presets.noWobble,\n precision: 0.01,\n};\n\nmodule.exports = function spring(val, config) {\n return {...defaultConfig, ...config, val};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/spring.js","module.exports = {\n noWobble: {stiffness: 170, damping: 26}, // the default, if nothing provided\n gentle: {stiffness: 120, damping: 14},\n wobbly: {stiffness: 180, damping: 12},\n stiff: {stiffness: 210, damping: 20},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/presets.js"],"sourceRoot":""}
--------------------------------------------------------------------------------
/demo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 | 2
5 | 3
6 | 4
7 | 5
8 | 6
9 |
14 | 1
15 | 2
16 | 3
17 | 4
18 | 5
19 | 6
20 | 1
21 | 2
22 | 3
23 | 4
24 | 5
25 | 6
26 | 1
27 | 2
28 | 3
29 | 4
30 | 5
31 | 6
32 | 1
33 | 2
34 | 3
35 | 4
36 | 5
37 | 6
38 | 1
39 | 2
40 | 3
41 | 4
42 | 5
43 | 6
44 | 1
45 | 2
46 | 3
47 | 4
48 | 5
49 | 6
50 | 1
51 | 2
52 | 3
53 | 4
54 | 5
55 | 6
56 | 1
57 | 2
58 | 3
59 | 4
60 | 5
61 | 6
62 |
63 |
64 |
65 |
68 |
69 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "really-smooth-scroll",
3 | "main": "build/really-smooth-scroll.js",
4 | "homepage": "http://chuson1996.github.io/really-smooth-scroll",
5 | "version": "2.1.0",
6 | "license": "MIT",
7 | "dependencies": {
8 | "performance-now": "^2.1.0",
9 | "raf": "^3.3.2",
10 | "webpack": "1.*"
11 | },
12 | "scripts": {
13 | "deploy": "gh-pages -d demo",
14 | "build": "webpack --config webpack.prod.config.js"
15 | },
16 | "devDependencies": {
17 | "babel": "^6.23.0",
18 | "babel-core": "^6.24.1",
19 | "babel-loader": "^7.0.0",
20 | "babel-preset-es2015": "^6.24.1",
21 | "babel-preset-es2017": "^6.24.1",
22 | "babel-preset-stage-0": "^6.24.1",
23 | "gh-pages": "^1.0.0"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/SmoothScroll.js:
--------------------------------------------------------------------------------
1 | const mapToZero = require('./mapToZero');
2 | const stripStyle = require('./stripStyle');
3 | const stepper = require('./stepper');
4 | const defaultNow = require('performance-now');
5 | const defaultRaf = require('raf');
6 | const shouldStopAnimation = require('./shouldStopAnimation');
7 |
8 | const msPerFrame = 1000 / 60;
9 |
10 | module.exports = class SmoothScroll {
11 | constructor(props) {
12 | this.wasAnimating = false;
13 | this.animationID = null;
14 | this.prevTime = 0;
15 | this.accumulatedTime = 0;
16 | // it's possible that currentStyle's value is stale: if props is immediately
17 | // changed from 0 to 400 to spring(0) again, the async currentStyle is still
18 | // at 0 (didn't have time to tick and interpolate even once). If we naively
19 | // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).
20 | // In reality currentStyle should be 400
21 | this.unreadPropStyle = null;
22 | // after checking for unreadPropStyle != null, we manually go set the
23 | // non-interpolating values (those that are a number, without a spring
24 | // config)
25 |
26 |
27 | this.props = props;
28 | this.state = this.defaultState();
29 |
30 | this.prevTime = defaultNow();
31 | this.startAnimationIfNecessary();
32 | }
33 |
34 |
35 | defaultState() {
36 | const {defaultStyle, style} = this.props;
37 | const currentStyle = defaultStyle || stripStyle(style);
38 | const currentVelocity = mapToZero(currentStyle);
39 | return {
40 | currentStyle,
41 | currentVelocity,
42 | lastIdealStyle: currentStyle,
43 | lastIdealVelocity: currentVelocity,
44 | };
45 | }
46 |
47 | clearUnreadPropStyle = (destStyle) => {
48 | let dirty = false;
49 | let {currentStyle, currentVelocity, lastIdealStyle, lastIdealVelocity} = this.state;
50 |
51 | for (let key in destStyle) {
52 | if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {
53 | continue;
54 | }
55 |
56 | const styleValue = destStyle[key];
57 | if (typeof styleValue === 'number') {
58 | if (!dirty) {
59 | dirty = true;
60 | currentStyle = {...currentStyle};
61 | currentVelocity = {...currentVelocity};
62 | lastIdealStyle = {...lastIdealStyle};
63 | lastIdealVelocity = {...lastIdealVelocity};
64 | }
65 |
66 | currentStyle[key] = styleValue;
67 | currentVelocity[key] = 0;
68 | lastIdealStyle[key] = styleValue;
69 | lastIdealVelocity[key] = 0;
70 | }
71 | }
72 |
73 | if (dirty) {
74 | this.setState({currentStyle, currentVelocity, lastIdealStyle, lastIdealVelocity});
75 | }
76 | };
77 |
78 | startAnimationIfNecessary = () => {
79 | // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and
80 | // call cb? No, otherwise accidental parent rerender causes cb trigger
81 | this.animationID = defaultRaf((timestamp) => {
82 | // check if we need to animate in the first place
83 | const propsStyle = this.props.style;
84 | if (shouldStopAnimation(
85 | this.state.currentStyle,
86 | propsStyle,
87 | this.state.currentVelocity,
88 | )) {
89 | if (this.wasAnimating && this.props.onRest) {
90 | this.props.onRest();
91 | }
92 |
93 | // no need to cancel animationID here; shouldn't have any in flight
94 | this.animationID = null;
95 | this.wasAnimating = false;
96 | this.accumulatedTime = 0;
97 | return;
98 | }
99 |
100 | this.wasAnimating = true;
101 |
102 | const currentTime = timestamp || defaultNow();
103 | const timeDelta = currentTime - this.prevTime;
104 | this.prevTime = currentTime;
105 | this.accumulatedTime = this.accumulatedTime + timeDelta;
106 | // more than 10 frames? prolly switched browser tab. Restart
107 | if (this.accumulatedTime > msPerFrame * 10) {
108 | this.accumulatedTime = 0;
109 | }
110 |
111 | if (this.accumulatedTime === 0) {
112 | // no need to cancel animationID here; shouldn't have any in flight
113 | this.animationID = null;
114 | this.startAnimationIfNecessary();
115 | return;
116 | }
117 |
118 | let currentFrameCompletion =
119 | (this.accumulatedTime - Math.floor(this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;
120 | const framesToCatchUp = Math.floor(this.accumulatedTime / msPerFrame);
121 |
122 | let newLastIdealStyle = {};
123 | let newLastIdealVelocity = {};
124 | let newCurrentStyle = {};
125 | let newCurrentVelocity = {};
126 |
127 | for (let key in propsStyle) {
128 | if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {
129 | continue;
130 | }
131 |
132 | const styleValue = propsStyle[key];
133 | if (typeof styleValue === 'number') {
134 | newCurrentStyle[key] = styleValue;
135 | newCurrentVelocity[key] = 0;
136 | newLastIdealStyle[key] = styleValue;
137 | newLastIdealVelocity[key] = 0;
138 | } else {
139 | let newLastIdealStyleValue = this.state.lastIdealStyle[key];
140 | let newLastIdealVelocityValue = this.state.lastIdealVelocity[key];
141 | for (let i = 0; i < framesToCatchUp; i++) {
142 | [newLastIdealStyleValue, newLastIdealVelocityValue] = stepper(
143 | msPerFrame / 1000,
144 | newLastIdealStyleValue,
145 | newLastIdealVelocityValue,
146 | styleValue.val,
147 | styleValue.stiffness,
148 | styleValue.damping,
149 | styleValue.precision,
150 | );
151 | }
152 | const [nextIdealX, nextIdealV] = stepper(
153 | msPerFrame / 1000,
154 | newLastIdealStyleValue,
155 | newLastIdealVelocityValue,
156 | styleValue.val,
157 | styleValue.stiffness,
158 | styleValue.damping,
159 | styleValue.precision,
160 | );
161 |
162 | newCurrentStyle[key] =
163 | newLastIdealStyleValue +
164 | (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;
165 | newCurrentVelocity[key] =
166 | newLastIdealVelocityValue +
167 | (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;
168 | newLastIdealStyle[key] = newLastIdealStyleValue;
169 | newLastIdealVelocity[key] = newLastIdealVelocityValue;
170 | }
171 | }
172 |
173 | this.animationID = null;
174 | // the amount we're looped over above
175 | this.accumulatedTime -= framesToCatchUp * msPerFrame;
176 |
177 | this.setState({
178 | currentStyle: newCurrentStyle,
179 | currentVelocity: newCurrentVelocity,
180 | lastIdealStyle: newLastIdealStyle,
181 | lastIdealVelocity: newLastIdealVelocity,
182 | });
183 |
184 | this.unreadPropStyle = null;
185 |
186 | this.startAnimationIfNecessary();
187 | });
188 | };
189 |
190 | componentWillReceiveProps(nextProps) {
191 | if (this.unreadPropStyle != null) {
192 | // previous props haven't had the chance to be set yet; set them here
193 | this.clearUnreadPropStyle(this.unreadPropStyle);
194 | }
195 |
196 | this.unreadPropStyle = nextProps.style;
197 | if (this.animationID == null) {
198 | this.prevTime = defaultNow();
199 | this.startAnimationIfNecessary();
200 | }
201 |
202 | this.props = {
203 | ...this.props,
204 | ...nextProps,
205 | };
206 | }
207 |
208 | setState(newState) {
209 | this.state = {
210 | ...this.state,
211 | ...newState,
212 | };
213 |
214 | window._scrollTo(window.scrollX, this.state.currentStyle.scrollY);
215 | }
216 | }
217 |
--------------------------------------------------------------------------------
/src/mapToZero.js:
--------------------------------------------------------------------------------
1 | // currently used to initiate the velocity style object to 0
2 | module.exports = function mapToZero(obj){
3 | let ret = {};
4 | for (const key in obj) {
5 | if (Object.prototype.hasOwnProperty.call(obj, key)) {
6 | ret[key] = 0;
7 | }
8 | }
9 | return ret;
10 | }
11 |
--------------------------------------------------------------------------------
/src/presets.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | noWobble: {stiffness: 170, damping: 26}, // the default, if nothing provided
3 | gentle: {stiffness: 120, damping: 14},
4 | wobbly: {stiffness: 180, damping: 12},
5 | stiff: {stiffness: 210, damping: 20},
6 | };
7 |
--------------------------------------------------------------------------------
/src/really-smooth-scroll.js:
--------------------------------------------------------------------------------
1 | const SmoothScroll = require('./SmoothScroll');
2 | const spring = require('./spring');
3 |
4 | let mousewheelSensitivity = 6;
5 | let keydownSensitivity = 6;
6 | let forceStop = false;
7 |
8 | function getSpringVal(val) {
9 | if (typeof val === 'number') return val;
10 | return val.val;
11 | }
12 |
13 | function stayInRange(min, max, value) {
14 | return Math.min(max, Math.max(min, value));
15 | }
16 |
17 | function difference(a, b) {
18 | return Math.abs(a - b);
19 | }
20 |
21 | let moving = false;
22 | let scrollY = spring(0);
23 |
24 | const smoothScroll = new SmoothScroll({
25 | style: { scrollY: 0 },
26 | defaultStyle: { scrollY: 0 },
27 | onRest: function onRest() {
28 | moving = false;
29 | },
30 | });
31 |
32 | function move(deltaY) {
33 | if (!moving) {
34 | if (difference(getSpringVal(scrollY), Math.round(window.scrollY)) > 4) {
35 | scrollY = window.scrollY;
36 | smoothScroll.componentWillReceiveProps({
37 | style: {scrollY},
38 | });
39 | }
40 | moving = true;
41 | }
42 |
43 | if (document.querySelector('html').style.overflowY === 'hidden') {
44 | return;
45 | }
46 |
47 | scrollY = stayInRange(
48 | 0,
49 | document.querySelector('html').offsetHeight - window.innerHeight,
50 | // getSpringVal(scrollY) + deltaY
51 | window.scrollY + deltaY * mousewheelSensitivity
52 | );
53 | window.scrollTo(window.scrollX, scrollY);
54 | }
55 |
56 | function onkeydown(e) {
57 | if (e.target === document.body && e.key === 'ArrowDown') {
58 | e.preventDefault();
59 | move(keydownSensitivity * 3);
60 | } else if (e.target === document.body && e.key === 'ArrowUp') {
61 | e.preventDefault();
62 | move(-keydownSensitivity * 3);
63 | }
64 | }
65 |
66 | let mousewheelTimeout;
67 | let maxDeltaY = 0;
68 | function onmousewheel(e) {
69 | const deltaY = stayInRange(-50, 50, e.deltaY);
70 |
71 | if (maxDeltaY === 0 || !forceStop) {
72 | maxDeltaY = deltaY;
73 | // console.log('Set maxDeltaY');
74 | }
75 | if (document.body.contains(e.target) || e.target === document.body) {
76 | e.preventDefault();
77 | if (forceStop) {
78 | // console.log(Math.abs(maxDeltaY), Math.abs(deltaY));
79 | if (Math.abs(maxDeltaY) < Math.abs(deltaY) || maxDeltaY * deltaY < 0) {
80 | // console.log('Should disable forceStop now 2');
81 | forceStop = false;
82 | } else {
83 | maxDeltaY = deltaY;
84 | }
85 |
86 | if (mousewheelTimeout) clearTimeout(mousewheelTimeout);
87 | mousewheelTimeout = setTimeout(function() {
88 | // console.log('Should disable forceStop now');
89 | forceStop = false;
90 | maxDeltaY = 0;
91 | }, 100);
92 | return;
93 | }
94 | // console.log('Wheeling', forceStop);
95 | move(deltaY);
96 | }
97 | }
98 |
99 |
100 | window._scrollTo = window.scrollTo.bind(window);
101 | exports.shim = function shim() {
102 | window.addEventListener('wheel', onmousewheel);
103 | window.addEventListener('keydown', onkeydown);
104 |
105 | if (!window.oldScrollTo) {
106 | window.oldScrollTo = (...args) => {
107 | if (moving) {
108 | window.stopScrolling();
109 | }
110 |
111 | smoothScroll.componentWillReceiveProps({
112 | style: { scrollY: args[1] },
113 | });
114 | };
115 |
116 | window.scrollTo = (x, y) => {
117 | window._scrollTo(x, window.scrollY);
118 | smoothScroll.componentWillReceiveProps({
119 | style: { scrollY: spring(y) },
120 | });
121 | };
122 |
123 | }
124 | window.stopScrolling = () => {
125 | forceStop = true;
126 | smoothScroll.componentWillReceiveProps({
127 | style: { scrollY: window.scrollY },
128 | });
129 | }
130 | }
131 |
132 | exports.config = function config(options) {
133 | if (options.mousewheelSensitivity) {
134 | mousewheelSensitivity = options.mousewheelSensitivity;
135 | }
136 | if (options.keydownSensitivity) {
137 | keydownSensitivity = options.keydownSensitivity;
138 | }
139 | }
140 |
--------------------------------------------------------------------------------
/src/shouldStopAnimation.js:
--------------------------------------------------------------------------------
1 | // usage assumption: currentStyle values have already been rendered but it says
2 | // nothing of whether currentStyle is stale (see unreadPropStyle)
3 | module.exports = function shouldStopAnimation(
4 | currentStyle,
5 | style,
6 | currentVelocity,
7 | ) {
8 | for (let key in style) {
9 | if (!Object.prototype.hasOwnProperty.call(style, key)) {
10 | continue;
11 | }
12 |
13 | if (currentVelocity[key] !== 0) {
14 | return false;
15 | }
16 |
17 | const styleValue = typeof style[key] === 'number'
18 | ? style[key]
19 | : style[key].val;
20 | // stepper will have already taken care of rounding precision errors, so
21 | // won't have such thing as 0.9999 !=== 1
22 | if (currentStyle[key] !== styleValue) {
23 | return false;
24 | }
25 | }
26 |
27 | return true;
28 | }
29 |
--------------------------------------------------------------------------------
/src/spring.js:
--------------------------------------------------------------------------------
1 | const presets = require('./presets');
2 |
3 | const defaultConfig = {
4 | ...presets.noWobble,
5 | precision: 0.01,
6 | };
7 |
8 | module.exports = function spring(val, config) {
9 | return {...defaultConfig, ...config, val};
10 | }
11 |
--------------------------------------------------------------------------------
/src/stepper.js:
--------------------------------------------------------------------------------
1 | /* @flow */
2 |
3 | // stepper is used a lot. Saves allocation to return the same array wrapper.
4 | // This is fine and danger-free against mutations because the callsite
5 | // immediately destructures it and gets the numbers inside without passing the
6 | // array reference around.
7 | let reusedTuple = [0, 0];
8 | module.exports = function stepper(
9 | secondPerFrame,
10 | x,
11 | v,
12 | destX,
13 | k,
14 | b,
15 | precision) {
16 | // Spring stiffness, in kg / s^2
17 |
18 | // for animations, destX is really spring length (spring at rest). initial
19 | // position is considered as the stretched/compressed position of a spring
20 | const Fspring = -k * (x - destX);
21 |
22 | // Damping, in kg / s
23 | const Fdamper = -b * v;
24 |
25 | // usually we put mass here, but for animation purposes, specifying mass is a
26 | // bit redundant. you could simply adjust k and b accordingly
27 | // let a = (Fspring + Fdamper) / mass;
28 | const a = Fspring + Fdamper;
29 |
30 | const newV = v + a * secondPerFrame;
31 | const newX = x + newV * secondPerFrame;
32 |
33 | if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {
34 | reusedTuple[0] = destX;
35 | reusedTuple[1] = 0;
36 | return reusedTuple;
37 | }
38 |
39 | reusedTuple[0] = newX;
40 | reusedTuple[1] = newV;
41 | return reusedTuple;
42 | }
43 |
--------------------------------------------------------------------------------
/src/stripStyle.js:
--------------------------------------------------------------------------------
1 | /* @flow */
2 | // turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by
3 | // `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}
4 |
5 | module.exports = function stripStyle(style) {
6 | let ret = {};
7 | for (const key in style) {
8 | if (!Object.prototype.hasOwnProperty.call(style, key)) {
9 | continue;
10 | }
11 | ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;
12 | }
13 | return ret;
14 | }
15 |
--------------------------------------------------------------------------------
/webpack.prod.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | process.env.NODE_ENV = process.env.NODE_ENV || 'production';
4 |
5 | var webpack = require('webpack');
6 | var path = require('path');
7 |
8 | // currently, this is for bower
9 | var config = {
10 | devtool: 'sourcemap',
11 | entry: {
12 | index: './src/really-smooth-scroll.js'
13 | },
14 | output: {
15 | path: path.join(__dirname, 'build'),
16 | publicPath: 'build/',
17 | filename: 'really-smooth-scroll.js',
18 | sourceMapFilename: 'really-smooth-scroll.map',
19 | library: 'ReallySmoothScroll',
20 | libraryTarget: 'umd',
21 | umdNamedDefine: true
22 | },
23 | module: {
24 | loaders: [{
25 | test: /\.(js|jsx)/,
26 | loader: 'babel'
27 | }]
28 | },
29 | plugins: [],
30 | resolve: {
31 | extensions: ['', '.js']
32 | },
33 | };
34 |
35 | module.exports = config;
36 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 | abbrev@1:
4 | version "1.1.0"
5 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
6 |
7 | acorn@^3.0.0:
8 | version "3.3.0"
9 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
10 |
11 | ajv@^4.9.1:
12 | version "4.11.8"
13 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
14 | dependencies:
15 | co "^4.6.0"
16 | json-stable-stringify "^1.0.1"
17 |
18 | align-text@^0.1.1, align-text@^0.1.3:
19 | version "0.1.4"
20 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
21 | dependencies:
22 | kind-of "^3.0.2"
23 | longest "^1.0.1"
24 | repeat-string "^1.5.2"
25 |
26 | amdefine@>=0.0.4:
27 | version "1.0.1"
28 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
29 |
30 | ansi-regex@^2.0.0:
31 | version "2.1.1"
32 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
33 |
34 | ansi-styles@^2.2.1:
35 | version "2.2.1"
36 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
37 |
38 | anymatch@^1.3.0:
39 | version "1.3.0"
40 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
41 | dependencies:
42 | arrify "^1.0.0"
43 | micromatch "^2.1.5"
44 |
45 | aproba@^1.0.3:
46 | version "1.1.1"
47 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
48 |
49 | are-we-there-yet@~1.1.2:
50 | version "1.1.4"
51 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
52 | dependencies:
53 | delegates "^1.0.0"
54 | readable-stream "^2.0.6"
55 |
56 | arr-diff@^2.0.0:
57 | version "2.0.0"
58 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
59 | dependencies:
60 | arr-flatten "^1.0.1"
61 |
62 | arr-flatten@^1.0.1:
63 | version "1.0.3"
64 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
65 |
66 | array-union@^1.0.1:
67 | version "1.0.2"
68 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
69 | dependencies:
70 | array-uniq "^1.0.1"
71 |
72 | array-uniq@^1.0.1:
73 | version "1.0.3"
74 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
75 |
76 | array-unique@^0.2.1:
77 | version "0.2.1"
78 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
79 |
80 | arrify@^1.0.0:
81 | version "1.0.1"
82 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
83 |
84 | asn1@~0.2.3:
85 | version "0.2.3"
86 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
87 |
88 | assert-plus@^0.2.0:
89 | version "0.2.0"
90 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
91 |
92 | assert-plus@^1.0.0, assert-plus@1.0.0:
93 | version "1.0.0"
94 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
95 |
96 | assert@^1.1.1:
97 | version "1.4.1"
98 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
99 | dependencies:
100 | util "0.10.3"
101 |
102 | async-each@^1.0.0:
103 | version "1.0.1"
104 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
105 |
106 | async@^0.9.0:
107 | version "0.9.2"
108 | resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
109 |
110 | async@^1.3.0:
111 | version "1.5.2"
112 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
113 |
114 | async@~0.2.6:
115 | version "0.2.10"
116 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
117 |
118 | async@2.1.4:
119 | version "2.1.4"
120 | resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
121 | dependencies:
122 | lodash "^4.14.0"
123 |
124 | asynckit@^0.4.0:
125 | version "0.4.0"
126 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
127 |
128 | aws-sign2@~0.6.0:
129 | version "0.6.0"
130 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
131 |
132 | aws4@^1.2.1:
133 | version "1.6.0"
134 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
135 |
136 | babel:
137 | version "6.23.0"
138 | resolved "https://registry.yarnpkg.com/babel/-/babel-6.23.0.tgz#d0d1e7d803e974765beea3232d4e153c0efb90f4"
139 |
140 | babel-code-frame@^6.22.0:
141 | version "6.22.0"
142 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
143 | dependencies:
144 | chalk "^1.1.0"
145 | esutils "^2.0.2"
146 | js-tokens "^3.0.0"
147 |
148 | babel-core, babel-core@^6.24.1:
149 | version "6.24.1"
150 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83"
151 | dependencies:
152 | babel-code-frame "^6.22.0"
153 | babel-generator "^6.24.1"
154 | babel-helpers "^6.24.1"
155 | babel-messages "^6.23.0"
156 | babel-register "^6.24.1"
157 | babel-runtime "^6.22.0"
158 | babel-template "^6.24.1"
159 | babel-traverse "^6.24.1"
160 | babel-types "^6.24.1"
161 | babylon "^6.11.0"
162 | convert-source-map "^1.1.0"
163 | debug "^2.1.1"
164 | json5 "^0.5.0"
165 | lodash "^4.2.0"
166 | minimatch "^3.0.2"
167 | path-is-absolute "^1.0.0"
168 | private "^0.1.6"
169 | slash "^1.0.0"
170 | source-map "^0.5.0"
171 |
172 | babel-generator@^6.24.1:
173 | version "6.24.1"
174 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497"
175 | dependencies:
176 | babel-messages "^6.23.0"
177 | babel-runtime "^6.22.0"
178 | babel-types "^6.24.1"
179 | detect-indent "^4.0.0"
180 | jsesc "^1.3.0"
181 | lodash "^4.2.0"
182 | source-map "^0.5.0"
183 | trim-right "^1.0.1"
184 |
185 | babel-helper-bindify-decorators@^6.24.1:
186 | version "6.24.1"
187 | resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330"
188 | dependencies:
189 | babel-runtime "^6.22.0"
190 | babel-traverse "^6.24.1"
191 | babel-types "^6.24.1"
192 |
193 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
194 | version "6.24.1"
195 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
196 | dependencies:
197 | babel-helper-explode-assignable-expression "^6.24.1"
198 | babel-runtime "^6.22.0"
199 | babel-types "^6.24.1"
200 |
201 | babel-helper-call-delegate@^6.24.1:
202 | version "6.24.1"
203 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
204 | dependencies:
205 | babel-helper-hoist-variables "^6.24.1"
206 | babel-runtime "^6.22.0"
207 | babel-traverse "^6.24.1"
208 | babel-types "^6.24.1"
209 |
210 | babel-helper-define-map@^6.24.1:
211 | version "6.24.1"
212 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080"
213 | dependencies:
214 | babel-helper-function-name "^6.24.1"
215 | babel-runtime "^6.22.0"
216 | babel-types "^6.24.1"
217 | lodash "^4.2.0"
218 |
219 | babel-helper-explode-assignable-expression@^6.24.1:
220 | version "6.24.1"
221 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
222 | dependencies:
223 | babel-runtime "^6.22.0"
224 | babel-traverse "^6.24.1"
225 | babel-types "^6.24.1"
226 |
227 | babel-helper-explode-class@^6.24.1:
228 | version "6.24.1"
229 | resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb"
230 | dependencies:
231 | babel-helper-bindify-decorators "^6.24.1"
232 | babel-runtime "^6.22.0"
233 | babel-traverse "^6.24.1"
234 | babel-types "^6.24.1"
235 |
236 | babel-helper-function-name@^6.24.1:
237 | version "6.24.1"
238 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
239 | dependencies:
240 | babel-helper-get-function-arity "^6.24.1"
241 | babel-runtime "^6.22.0"
242 | babel-template "^6.24.1"
243 | babel-traverse "^6.24.1"
244 | babel-types "^6.24.1"
245 |
246 | babel-helper-get-function-arity@^6.24.1:
247 | version "6.24.1"
248 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
249 | dependencies:
250 | babel-runtime "^6.22.0"
251 | babel-types "^6.24.1"
252 |
253 | babel-helper-hoist-variables@^6.24.1:
254 | version "6.24.1"
255 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
256 | dependencies:
257 | babel-runtime "^6.22.0"
258 | babel-types "^6.24.1"
259 |
260 | babel-helper-optimise-call-expression@^6.24.1:
261 | version "6.24.1"
262 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
263 | dependencies:
264 | babel-runtime "^6.22.0"
265 | babel-types "^6.24.1"
266 |
267 | babel-helper-regex@^6.24.1:
268 | version "6.24.1"
269 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8"
270 | dependencies:
271 | babel-runtime "^6.22.0"
272 | babel-types "^6.24.1"
273 | lodash "^4.2.0"
274 |
275 | babel-helper-remap-async-to-generator@^6.24.1:
276 | version "6.24.1"
277 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
278 | dependencies:
279 | babel-helper-function-name "^6.24.1"
280 | babel-runtime "^6.22.0"
281 | babel-template "^6.24.1"
282 | babel-traverse "^6.24.1"
283 | babel-types "^6.24.1"
284 |
285 | babel-helper-replace-supers@^6.24.1:
286 | version "6.24.1"
287 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
288 | dependencies:
289 | babel-helper-optimise-call-expression "^6.24.1"
290 | babel-messages "^6.23.0"
291 | babel-runtime "^6.22.0"
292 | babel-template "^6.24.1"
293 | babel-traverse "^6.24.1"
294 | babel-types "^6.24.1"
295 |
296 | babel-helpers@^6.24.1:
297 | version "6.24.1"
298 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
299 | dependencies:
300 | babel-runtime "^6.22.0"
301 | babel-template "^6.24.1"
302 |
303 | babel-loader:
304 | version "7.0.0"
305 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7"
306 | dependencies:
307 | find-cache-dir "^0.1.1"
308 | loader-utils "^1.0.2"
309 | mkdirp "^0.5.1"
310 |
311 | babel-messages@^6.23.0:
312 | version "6.23.0"
313 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
314 | dependencies:
315 | babel-runtime "^6.22.0"
316 |
317 | babel-plugin-check-es2015-constants@^6.22.0:
318 | version "6.22.0"
319 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
320 | dependencies:
321 | babel-runtime "^6.22.0"
322 |
323 | babel-plugin-syntax-async-functions@^6.8.0:
324 | version "6.13.0"
325 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
326 |
327 | babel-plugin-syntax-async-generators@^6.5.0:
328 | version "6.13.0"
329 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
330 |
331 | babel-plugin-syntax-class-constructor-call@^6.18.0:
332 | version "6.18.0"
333 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
334 |
335 | babel-plugin-syntax-class-properties@^6.8.0:
336 | version "6.13.0"
337 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
338 |
339 | babel-plugin-syntax-decorators@^6.13.0:
340 | version "6.13.0"
341 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
342 |
343 | babel-plugin-syntax-do-expressions@^6.8.0:
344 | version "6.13.0"
345 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d"
346 |
347 | babel-plugin-syntax-dynamic-import@^6.18.0:
348 | version "6.18.0"
349 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
350 |
351 | babel-plugin-syntax-exponentiation-operator@^6.8.0:
352 | version "6.13.0"
353 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
354 |
355 | babel-plugin-syntax-export-extensions@^6.8.0:
356 | version "6.13.0"
357 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
358 |
359 | babel-plugin-syntax-function-bind@^6.8.0:
360 | version "6.13.0"
361 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
362 |
363 | babel-plugin-syntax-object-rest-spread@^6.8.0:
364 | version "6.13.0"
365 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
366 |
367 | babel-plugin-syntax-trailing-function-commas@^6.22.0:
368 | version "6.22.0"
369 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
370 |
371 | babel-plugin-transform-async-generator-functions@^6.24.1:
372 | version "6.24.1"
373 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
374 | dependencies:
375 | babel-helper-remap-async-to-generator "^6.24.1"
376 | babel-plugin-syntax-async-generators "^6.5.0"
377 | babel-runtime "^6.22.0"
378 |
379 | babel-plugin-transform-async-to-generator@^6.24.1:
380 | version "6.24.1"
381 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
382 | dependencies:
383 | babel-helper-remap-async-to-generator "^6.24.1"
384 | babel-plugin-syntax-async-functions "^6.8.0"
385 | babel-runtime "^6.22.0"
386 |
387 | babel-plugin-transform-class-constructor-call@^6.24.1:
388 | version "6.24.1"
389 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9"
390 | dependencies:
391 | babel-plugin-syntax-class-constructor-call "^6.18.0"
392 | babel-runtime "^6.22.0"
393 | babel-template "^6.24.1"
394 |
395 | babel-plugin-transform-class-properties@^6.24.1:
396 | version "6.24.1"
397 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
398 | dependencies:
399 | babel-helper-function-name "^6.24.1"
400 | babel-plugin-syntax-class-properties "^6.8.0"
401 | babel-runtime "^6.22.0"
402 | babel-template "^6.24.1"
403 |
404 | babel-plugin-transform-decorators@^6.24.1:
405 | version "6.24.1"
406 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d"
407 | dependencies:
408 | babel-helper-explode-class "^6.24.1"
409 | babel-plugin-syntax-decorators "^6.13.0"
410 | babel-runtime "^6.22.0"
411 | babel-template "^6.24.1"
412 | babel-types "^6.24.1"
413 |
414 | babel-plugin-transform-do-expressions@^6.22.0:
415 | version "6.22.0"
416 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb"
417 | dependencies:
418 | babel-plugin-syntax-do-expressions "^6.8.0"
419 | babel-runtime "^6.22.0"
420 |
421 | babel-plugin-transform-es2015-arrow-functions@^6.22.0:
422 | version "6.22.0"
423 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
424 | dependencies:
425 | babel-runtime "^6.22.0"
426 |
427 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
428 | version "6.22.0"
429 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
430 | dependencies:
431 | babel-runtime "^6.22.0"
432 |
433 | babel-plugin-transform-es2015-block-scoping@^6.24.1:
434 | version "6.24.1"
435 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576"
436 | dependencies:
437 | babel-runtime "^6.22.0"
438 | babel-template "^6.24.1"
439 | babel-traverse "^6.24.1"
440 | babel-types "^6.24.1"
441 | lodash "^4.2.0"
442 |
443 | babel-plugin-transform-es2015-classes@^6.24.1:
444 | version "6.24.1"
445 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
446 | dependencies:
447 | babel-helper-define-map "^6.24.1"
448 | babel-helper-function-name "^6.24.1"
449 | babel-helper-optimise-call-expression "^6.24.1"
450 | babel-helper-replace-supers "^6.24.1"
451 | babel-messages "^6.23.0"
452 | babel-runtime "^6.22.0"
453 | babel-template "^6.24.1"
454 | babel-traverse "^6.24.1"
455 | babel-types "^6.24.1"
456 |
457 | babel-plugin-transform-es2015-computed-properties@^6.24.1:
458 | version "6.24.1"
459 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
460 | dependencies:
461 | babel-runtime "^6.22.0"
462 | babel-template "^6.24.1"
463 |
464 | babel-plugin-transform-es2015-destructuring@^6.22.0:
465 | version "6.23.0"
466 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
467 | dependencies:
468 | babel-runtime "^6.22.0"
469 |
470 | babel-plugin-transform-es2015-duplicate-keys@^6.24.1:
471 | version "6.24.1"
472 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
473 | dependencies:
474 | babel-runtime "^6.22.0"
475 | babel-types "^6.24.1"
476 |
477 | babel-plugin-transform-es2015-for-of@^6.22.0:
478 | version "6.23.0"
479 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
480 | dependencies:
481 | babel-runtime "^6.22.0"
482 |
483 | babel-plugin-transform-es2015-function-name@^6.24.1:
484 | version "6.24.1"
485 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
486 | dependencies:
487 | babel-helper-function-name "^6.24.1"
488 | babel-runtime "^6.22.0"
489 | babel-types "^6.24.1"
490 |
491 | babel-plugin-transform-es2015-literals@^6.22.0:
492 | version "6.22.0"
493 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
494 | dependencies:
495 | babel-runtime "^6.22.0"
496 |
497 | babel-plugin-transform-es2015-modules-amd@^6.24.1:
498 | version "6.24.1"
499 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
500 | dependencies:
501 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
502 | babel-runtime "^6.22.0"
503 | babel-template "^6.24.1"
504 |
505 | babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
506 | version "6.24.1"
507 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe"
508 | dependencies:
509 | babel-plugin-transform-strict-mode "^6.24.1"
510 | babel-runtime "^6.22.0"
511 | babel-template "^6.24.1"
512 | babel-types "^6.24.1"
513 |
514 | babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
515 | version "6.24.1"
516 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
517 | dependencies:
518 | babel-helper-hoist-variables "^6.24.1"
519 | babel-runtime "^6.22.0"
520 | babel-template "^6.24.1"
521 |
522 | babel-plugin-transform-es2015-modules-umd@^6.24.1:
523 | version "6.24.1"
524 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
525 | dependencies:
526 | babel-plugin-transform-es2015-modules-amd "^6.24.1"
527 | babel-runtime "^6.22.0"
528 | babel-template "^6.24.1"
529 |
530 | babel-plugin-transform-es2015-object-super@^6.24.1:
531 | version "6.24.1"
532 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
533 | dependencies:
534 | babel-helper-replace-supers "^6.24.1"
535 | babel-runtime "^6.22.0"
536 |
537 | babel-plugin-transform-es2015-parameters@^6.24.1:
538 | version "6.24.1"
539 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
540 | dependencies:
541 | babel-helper-call-delegate "^6.24.1"
542 | babel-helper-get-function-arity "^6.24.1"
543 | babel-runtime "^6.22.0"
544 | babel-template "^6.24.1"
545 | babel-traverse "^6.24.1"
546 | babel-types "^6.24.1"
547 |
548 | babel-plugin-transform-es2015-shorthand-properties@^6.24.1:
549 | version "6.24.1"
550 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
551 | dependencies:
552 | babel-runtime "^6.22.0"
553 | babel-types "^6.24.1"
554 |
555 | babel-plugin-transform-es2015-spread@^6.22.0:
556 | version "6.22.0"
557 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
558 | dependencies:
559 | babel-runtime "^6.22.0"
560 |
561 | babel-plugin-transform-es2015-sticky-regex@^6.24.1:
562 | version "6.24.1"
563 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
564 | dependencies:
565 | babel-helper-regex "^6.24.1"
566 | babel-runtime "^6.22.0"
567 | babel-types "^6.24.1"
568 |
569 | babel-plugin-transform-es2015-template-literals@^6.22.0:
570 | version "6.22.0"
571 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
572 | dependencies:
573 | babel-runtime "^6.22.0"
574 |
575 | babel-plugin-transform-es2015-typeof-symbol@^6.22.0:
576 | version "6.23.0"
577 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
578 | dependencies:
579 | babel-runtime "^6.22.0"
580 |
581 | babel-plugin-transform-es2015-unicode-regex@^6.24.1:
582 | version "6.24.1"
583 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
584 | dependencies:
585 | babel-helper-regex "^6.24.1"
586 | babel-runtime "^6.22.0"
587 | regexpu-core "^2.0.0"
588 |
589 | babel-plugin-transform-exponentiation-operator@^6.24.1:
590 | version "6.24.1"
591 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
592 | dependencies:
593 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
594 | babel-plugin-syntax-exponentiation-operator "^6.8.0"
595 | babel-runtime "^6.22.0"
596 |
597 | babel-plugin-transform-export-extensions@^6.22.0:
598 | version "6.22.0"
599 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653"
600 | dependencies:
601 | babel-plugin-syntax-export-extensions "^6.8.0"
602 | babel-runtime "^6.22.0"
603 |
604 | babel-plugin-transform-function-bind@^6.22.0:
605 | version "6.22.0"
606 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97"
607 | dependencies:
608 | babel-plugin-syntax-function-bind "^6.8.0"
609 | babel-runtime "^6.22.0"
610 |
611 | babel-plugin-transform-object-rest-spread@^6.22.0:
612 | version "6.23.0"
613 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921"
614 | dependencies:
615 | babel-plugin-syntax-object-rest-spread "^6.8.0"
616 | babel-runtime "^6.22.0"
617 |
618 | babel-plugin-transform-regenerator@^6.24.1:
619 | version "6.24.1"
620 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418"
621 | dependencies:
622 | regenerator-transform "0.9.11"
623 |
624 | babel-plugin-transform-strict-mode@^6.24.1:
625 | version "6.24.1"
626 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
627 | dependencies:
628 | babel-runtime "^6.22.0"
629 | babel-types "^6.24.1"
630 |
631 | babel-preset-es2015:
632 | version "6.24.1"
633 | resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
634 | dependencies:
635 | babel-plugin-check-es2015-constants "^6.22.0"
636 | babel-plugin-transform-es2015-arrow-functions "^6.22.0"
637 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
638 | babel-plugin-transform-es2015-block-scoping "^6.24.1"
639 | babel-plugin-transform-es2015-classes "^6.24.1"
640 | babel-plugin-transform-es2015-computed-properties "^6.24.1"
641 | babel-plugin-transform-es2015-destructuring "^6.22.0"
642 | babel-plugin-transform-es2015-duplicate-keys "^6.24.1"
643 | babel-plugin-transform-es2015-for-of "^6.22.0"
644 | babel-plugin-transform-es2015-function-name "^6.24.1"
645 | babel-plugin-transform-es2015-literals "^6.22.0"
646 | babel-plugin-transform-es2015-modules-amd "^6.24.1"
647 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
648 | babel-plugin-transform-es2015-modules-systemjs "^6.24.1"
649 | babel-plugin-transform-es2015-modules-umd "^6.24.1"
650 | babel-plugin-transform-es2015-object-super "^6.24.1"
651 | babel-plugin-transform-es2015-parameters "^6.24.1"
652 | babel-plugin-transform-es2015-shorthand-properties "^6.24.1"
653 | babel-plugin-transform-es2015-spread "^6.22.0"
654 | babel-plugin-transform-es2015-sticky-regex "^6.24.1"
655 | babel-plugin-transform-es2015-template-literals "^6.22.0"
656 | babel-plugin-transform-es2015-typeof-symbol "^6.22.0"
657 | babel-plugin-transform-es2015-unicode-regex "^6.24.1"
658 | babel-plugin-transform-regenerator "^6.24.1"
659 |
660 | babel-preset-es2017:
661 | version "6.24.1"
662 | resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1"
663 | dependencies:
664 | babel-plugin-syntax-trailing-function-commas "^6.22.0"
665 | babel-plugin-transform-async-to-generator "^6.24.1"
666 |
667 | babel-preset-stage-0:
668 | version "6.24.1"
669 | resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a"
670 | dependencies:
671 | babel-plugin-transform-do-expressions "^6.22.0"
672 | babel-plugin-transform-function-bind "^6.22.0"
673 | babel-preset-stage-1 "^6.24.1"
674 |
675 | babel-preset-stage-1@^6.24.1:
676 | version "6.24.1"
677 | resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
678 | dependencies:
679 | babel-plugin-transform-class-constructor-call "^6.24.1"
680 | babel-plugin-transform-export-extensions "^6.22.0"
681 | babel-preset-stage-2 "^6.24.1"
682 |
683 | babel-preset-stage-2@^6.24.1:
684 | version "6.24.1"
685 | resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1"
686 | dependencies:
687 | babel-plugin-syntax-dynamic-import "^6.18.0"
688 | babel-plugin-transform-class-properties "^6.24.1"
689 | babel-plugin-transform-decorators "^6.24.1"
690 | babel-preset-stage-3 "^6.24.1"
691 |
692 | babel-preset-stage-3@^6.24.1:
693 | version "6.24.1"
694 | resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395"
695 | dependencies:
696 | babel-plugin-syntax-trailing-function-commas "^6.22.0"
697 | babel-plugin-transform-async-generator-functions "^6.24.1"
698 | babel-plugin-transform-async-to-generator "^6.24.1"
699 | babel-plugin-transform-exponentiation-operator "^6.24.1"
700 | babel-plugin-transform-object-rest-spread "^6.22.0"
701 |
702 | babel-register@^6.24.1:
703 | version "6.24.1"
704 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
705 | dependencies:
706 | babel-core "^6.24.1"
707 | babel-runtime "^6.22.0"
708 | core-js "^2.4.0"
709 | home-or-tmp "^2.0.0"
710 | lodash "^4.2.0"
711 | mkdirp "^0.5.1"
712 | source-map-support "^0.4.2"
713 |
714 | babel-runtime@^6.18.0, babel-runtime@^6.22.0:
715 | version "6.23.0"
716 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
717 | dependencies:
718 | core-js "^2.4.0"
719 | regenerator-runtime "^0.10.0"
720 |
721 | babel-template@^6.24.1:
722 | version "6.24.1"
723 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333"
724 | dependencies:
725 | babel-runtime "^6.22.0"
726 | babel-traverse "^6.24.1"
727 | babel-types "^6.24.1"
728 | babylon "^6.11.0"
729 | lodash "^4.2.0"
730 |
731 | babel-traverse@^6.24.1:
732 | version "6.24.1"
733 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695"
734 | dependencies:
735 | babel-code-frame "^6.22.0"
736 | babel-messages "^6.23.0"
737 | babel-runtime "^6.22.0"
738 | babel-types "^6.24.1"
739 | babylon "^6.15.0"
740 | debug "^2.2.0"
741 | globals "^9.0.0"
742 | invariant "^2.2.0"
743 | lodash "^4.2.0"
744 |
745 | babel-types@^6.19.0, babel-types@^6.24.1:
746 | version "6.24.1"
747 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975"
748 | dependencies:
749 | babel-runtime "^6.22.0"
750 | esutils "^2.0.2"
751 | lodash "^4.2.0"
752 | to-fast-properties "^1.0.1"
753 |
754 | babylon@^6.11.0, babylon@^6.15.0:
755 | version "6.17.1"
756 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f"
757 |
758 | balanced-match@^0.4.1:
759 | version "0.4.2"
760 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
761 |
762 | base64-js@^1.0.2:
763 | version "1.2.0"
764 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
765 |
766 | base64url@^2.0.0:
767 | version "2.0.0"
768 | resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb"
769 |
770 | bcrypt-pbkdf@^1.0.0:
771 | version "1.0.1"
772 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
773 | dependencies:
774 | tweetnacl "^0.14.3"
775 |
776 | big.js@^3.1.3:
777 | version "3.1.3"
778 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
779 |
780 | binary-extensions@^1.0.0:
781 | version "1.8.0"
782 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
783 |
784 | block-stream@*:
785 | version "0.0.9"
786 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
787 | dependencies:
788 | inherits "~2.0.0"
789 |
790 | boom@2.x.x:
791 | version "2.10.1"
792 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
793 | dependencies:
794 | hoek "2.x.x"
795 |
796 | brace-expansion@^1.1.7:
797 | version "1.1.7"
798 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
799 | dependencies:
800 | balanced-match "^0.4.1"
801 | concat-map "0.0.1"
802 |
803 | braces@^1.8.2:
804 | version "1.8.5"
805 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
806 | dependencies:
807 | expand-range "^1.8.1"
808 | preserve "^0.2.0"
809 | repeat-element "^1.1.2"
810 |
811 | browserify-aes@0.4.0:
812 | version "0.4.0"
813 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c"
814 | dependencies:
815 | inherits "^2.0.1"
816 |
817 | browserify-zlib@^0.1.4:
818 | version "0.1.4"
819 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
820 | dependencies:
821 | pako "~0.2.0"
822 |
823 | buffer-shims@~1.0.0:
824 | version "1.0.0"
825 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
826 |
827 | buffer@^4.9.0:
828 | version "4.9.1"
829 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
830 | dependencies:
831 | base64-js "^1.0.2"
832 | ieee754 "^1.1.4"
833 | isarray "^1.0.0"
834 |
835 | builtin-status-codes@^3.0.0:
836 | version "3.0.0"
837 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
838 |
839 | camelcase@^1.0.2:
840 | version "1.2.1"
841 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
842 |
843 | caseless@~0.12.0:
844 | version "0.12.0"
845 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
846 |
847 | center-align@^0.1.1:
848 | version "0.1.3"
849 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
850 | dependencies:
851 | align-text "^0.1.3"
852 | lazy-cache "^1.0.3"
853 |
854 | chalk@^1.1.0:
855 | version "1.1.3"
856 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
857 | dependencies:
858 | ansi-styles "^2.2.1"
859 | escape-string-regexp "^1.0.2"
860 | has-ansi "^2.0.0"
861 | strip-ansi "^3.0.0"
862 | supports-color "^2.0.0"
863 |
864 | chokidar@^1.0.0:
865 | version "1.7.0"
866 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
867 | dependencies:
868 | anymatch "^1.3.0"
869 | async-each "^1.0.0"
870 | glob-parent "^2.0.0"
871 | inherits "^2.0.1"
872 | is-binary-path "^1.0.0"
873 | is-glob "^2.0.0"
874 | path-is-absolute "^1.0.0"
875 | readdirp "^2.0.0"
876 | optionalDependencies:
877 | fsevents "^1.0.0"
878 |
879 | cliui@^2.1.0:
880 | version "2.1.0"
881 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
882 | dependencies:
883 | center-align "^0.1.1"
884 | right-align "^0.1.1"
885 | wordwrap "0.0.2"
886 |
887 | clone@^1.0.2:
888 | version "1.0.2"
889 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
890 |
891 | co@^4.6.0:
892 | version "4.6.0"
893 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
894 |
895 | code-point-at@^1.0.0:
896 | version "1.1.0"
897 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
898 |
899 | combined-stream@^1.0.5, combined-stream@~1.0.5:
900 | version "1.0.5"
901 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
902 | dependencies:
903 | delayed-stream "~1.0.0"
904 |
905 | commander@2.9.0:
906 | version "2.9.0"
907 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
908 | dependencies:
909 | graceful-readlink ">= 1.0.0"
910 |
911 | commondir@^1.0.1:
912 | version "1.0.1"
913 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
914 |
915 | concat-map@0.0.1:
916 | version "0.0.1"
917 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
918 |
919 | console-browserify@^1.1.0:
920 | version "1.1.0"
921 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
922 | dependencies:
923 | date-now "^0.1.4"
924 |
925 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
926 | version "1.1.0"
927 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
928 |
929 | constants-browserify@^1.0.0:
930 | version "1.0.0"
931 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
932 |
933 | convert-source-map@^1.1.0:
934 | version "1.5.0"
935 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
936 |
937 | core-js@^2.4.0:
938 | version "2.4.1"
939 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
940 |
941 | core-util-is@~1.0.0:
942 | version "1.0.2"
943 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
944 |
945 | cryptiles@2.x.x:
946 | version "2.0.5"
947 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
948 | dependencies:
949 | boom "2.x.x"
950 |
951 | crypto-browserify@3.3.0:
952 | version "3.3.0"
953 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c"
954 | dependencies:
955 | browserify-aes "0.4.0"
956 | pbkdf2-compat "2.0.1"
957 | ripemd160 "0.2.0"
958 | sha.js "2.2.6"
959 |
960 | dashdash@^1.12.0:
961 | version "1.14.1"
962 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
963 | dependencies:
964 | assert-plus "^1.0.0"
965 |
966 | date-now@^0.1.4:
967 | version "0.1.4"
968 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
969 |
970 | debug@^2.1.1, debug@^2.2.0:
971 | version "2.6.6"
972 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a"
973 | dependencies:
974 | ms "0.7.3"
975 |
976 | decamelize@^1.0.0:
977 | version "1.2.0"
978 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
979 |
980 | deep-extend@~0.4.0:
981 | version "0.4.2"
982 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
983 |
984 | delayed-stream@~1.0.0:
985 | version "1.0.0"
986 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
987 |
988 | delegates@^1.0.0:
989 | version "1.0.0"
990 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
991 |
992 | detect-indent@^4.0.0:
993 | version "4.0.0"
994 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
995 | dependencies:
996 | repeating "^2.0.0"
997 |
998 | domain-browser@^1.1.1:
999 | version "1.1.7"
1000 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
1001 |
1002 | ecc-jsbn@~0.1.1:
1003 | version "0.1.1"
1004 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
1005 | dependencies:
1006 | jsbn "~0.1.0"
1007 |
1008 | emojis-list@^2.0.0:
1009 | version "2.1.0"
1010 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
1011 |
1012 | enhanced-resolve@~0.9.0:
1013 | version "0.9.1"
1014 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e"
1015 | dependencies:
1016 | graceful-fs "^4.1.2"
1017 | memory-fs "^0.2.0"
1018 | tapable "^0.1.8"
1019 |
1020 | errno@^0.1.3:
1021 | version "0.1.4"
1022 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
1023 | dependencies:
1024 | prr "~0.0.0"
1025 |
1026 | escape-string-regexp@^1.0.2:
1027 | version "1.0.5"
1028 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1029 |
1030 | esutils@^2.0.2:
1031 | version "2.0.2"
1032 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
1033 |
1034 | events@^1.0.0:
1035 | version "1.1.1"
1036 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
1037 |
1038 | expand-brackets@^0.1.4:
1039 | version "0.1.5"
1040 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
1041 | dependencies:
1042 | is-posix-bracket "^0.1.0"
1043 |
1044 | expand-range@^1.8.1:
1045 | version "1.8.2"
1046 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
1047 | dependencies:
1048 | fill-range "^2.1.0"
1049 |
1050 | extend@~3.0.0:
1051 | version "3.0.1"
1052 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
1053 |
1054 | extglob@^0.3.1:
1055 | version "0.3.2"
1056 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
1057 | dependencies:
1058 | is-extglob "^1.0.0"
1059 |
1060 | extsprintf@1.0.2:
1061 | version "1.0.2"
1062 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
1063 |
1064 | filename-regex@^2.0.0:
1065 | version "2.0.1"
1066 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
1067 |
1068 | fill-range@^2.1.0:
1069 | version "2.2.3"
1070 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
1071 | dependencies:
1072 | is-number "^2.1.0"
1073 | isobject "^2.0.0"
1074 | randomatic "^1.1.3"
1075 | repeat-element "^1.1.2"
1076 | repeat-string "^1.5.2"
1077 |
1078 | find-cache-dir@^0.1.1:
1079 | version "0.1.1"
1080 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
1081 | dependencies:
1082 | commondir "^1.0.1"
1083 | mkdirp "^0.5.1"
1084 | pkg-dir "^1.0.0"
1085 |
1086 | find-up@^1.0.0:
1087 | version "1.1.2"
1088 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
1089 | dependencies:
1090 | path-exists "^2.0.0"
1091 | pinkie-promise "^2.0.0"
1092 |
1093 | for-in@^1.0.1:
1094 | version "1.0.2"
1095 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
1096 |
1097 | for-own@^0.1.4:
1098 | version "0.1.5"
1099 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
1100 | dependencies:
1101 | for-in "^1.0.1"
1102 |
1103 | forever-agent@~0.6.1:
1104 | version "0.6.1"
1105 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
1106 |
1107 | form-data@~2.1.1:
1108 | version "2.1.4"
1109 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
1110 | dependencies:
1111 | asynckit "^0.4.0"
1112 | combined-stream "^1.0.5"
1113 | mime-types "^2.1.12"
1114 |
1115 | fs-extra@^3.0.1:
1116 | version "3.0.1"
1117 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
1118 | dependencies:
1119 | graceful-fs "^4.1.2"
1120 | jsonfile "^3.0.0"
1121 | universalify "^0.1.0"
1122 |
1123 | fs.realpath@^1.0.0:
1124 | version "1.0.0"
1125 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1126 |
1127 | fsevents@^1.0.0:
1128 | version "1.1.1"
1129 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff"
1130 | dependencies:
1131 | nan "^2.3.0"
1132 | node-pre-gyp "^0.6.29"
1133 |
1134 | fstream-ignore@^1.0.5:
1135 | version "1.0.5"
1136 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
1137 | dependencies:
1138 | fstream "^1.0.0"
1139 | inherits "2"
1140 | minimatch "^3.0.0"
1141 |
1142 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
1143 | version "1.0.11"
1144 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
1145 | dependencies:
1146 | graceful-fs "^4.1.2"
1147 | inherits "~2.0.0"
1148 | mkdirp ">=0.5 0"
1149 | rimraf "2"
1150 |
1151 | gauge@~2.7.3:
1152 | version "2.7.4"
1153 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
1154 | dependencies:
1155 | aproba "^1.0.3"
1156 | console-control-strings "^1.0.0"
1157 | has-unicode "^2.0.0"
1158 | object-assign "^4.1.0"
1159 | signal-exit "^3.0.0"
1160 | string-width "^1.0.1"
1161 | strip-ansi "^3.0.1"
1162 | wide-align "^1.1.0"
1163 |
1164 | getpass@^0.1.1:
1165 | version "0.1.7"
1166 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
1167 | dependencies:
1168 | assert-plus "^1.0.0"
1169 |
1170 | gh-pages:
1171 | version "1.0.0"
1172 | resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.0.0.tgz#4a46f4c25439f7a2b7e6835504d4a49e949f04ca"
1173 | dependencies:
1174 | async "2.1.4"
1175 | base64url "^2.0.0"
1176 | commander "2.9.0"
1177 | fs-extra "^3.0.1"
1178 | globby "^6.1.0"
1179 | graceful-fs "4.1.11"
1180 | rimraf "^2.5.4"
1181 |
1182 | glob-base@^0.3.0:
1183 | version "0.3.0"
1184 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
1185 | dependencies:
1186 | glob-parent "^2.0.0"
1187 | is-glob "^2.0.0"
1188 |
1189 | glob-parent@^2.0.0:
1190 | version "2.0.0"
1191 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
1192 | dependencies:
1193 | is-glob "^2.0.0"
1194 |
1195 | glob@^7.0.3, glob@^7.0.5:
1196 | version "7.1.1"
1197 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
1198 | dependencies:
1199 | fs.realpath "^1.0.0"
1200 | inflight "^1.0.4"
1201 | inherits "2"
1202 | minimatch "^3.0.2"
1203 | once "^1.3.0"
1204 | path-is-absolute "^1.0.0"
1205 |
1206 | globals@^9.0.0:
1207 | version "9.17.0"
1208 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286"
1209 |
1210 | globby@^6.1.0:
1211 | version "6.1.0"
1212 | resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
1213 | dependencies:
1214 | array-union "^1.0.1"
1215 | glob "^7.0.3"
1216 | object-assign "^4.0.1"
1217 | pify "^2.0.0"
1218 | pinkie-promise "^2.0.0"
1219 |
1220 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@4.1.11:
1221 | version "4.1.11"
1222 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
1223 |
1224 | "graceful-readlink@>= 1.0.0":
1225 | version "1.0.1"
1226 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
1227 |
1228 | har-schema@^1.0.5:
1229 | version "1.0.5"
1230 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
1231 |
1232 | har-validator@~4.2.1:
1233 | version "4.2.1"
1234 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
1235 | dependencies:
1236 | ajv "^4.9.1"
1237 | har-schema "^1.0.5"
1238 |
1239 | has-ansi@^2.0.0:
1240 | version "2.0.0"
1241 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1242 | dependencies:
1243 | ansi-regex "^2.0.0"
1244 |
1245 | has-flag@^1.0.0:
1246 | version "1.0.0"
1247 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
1248 |
1249 | has-unicode@^2.0.0:
1250 | version "2.0.1"
1251 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
1252 |
1253 | hawk@~3.1.3:
1254 | version "3.1.3"
1255 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
1256 | dependencies:
1257 | boom "2.x.x"
1258 | cryptiles "2.x.x"
1259 | hoek "2.x.x"
1260 | sntp "1.x.x"
1261 |
1262 | hoek@2.x.x:
1263 | version "2.16.3"
1264 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
1265 |
1266 | home-or-tmp@^2.0.0:
1267 | version "2.0.0"
1268 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
1269 | dependencies:
1270 | os-homedir "^1.0.0"
1271 | os-tmpdir "^1.0.1"
1272 |
1273 | http-signature@~1.1.0:
1274 | version "1.1.1"
1275 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
1276 | dependencies:
1277 | assert-plus "^0.2.0"
1278 | jsprim "^1.2.2"
1279 | sshpk "^1.7.0"
1280 |
1281 | https-browserify@0.0.1:
1282 | version "0.0.1"
1283 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
1284 |
1285 | ieee754@^1.1.4:
1286 | version "1.1.8"
1287 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
1288 |
1289 | indexof@0.0.1:
1290 | version "0.0.1"
1291 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
1292 |
1293 | inflight@^1.0.4:
1294 | version "1.0.6"
1295 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1296 | dependencies:
1297 | once "^1.3.0"
1298 | wrappy "1"
1299 |
1300 | inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2:
1301 | version "2.0.3"
1302 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1303 |
1304 | inherits@2.0.1:
1305 | version "2.0.1"
1306 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
1307 |
1308 | ini@~1.3.0:
1309 | version "1.3.4"
1310 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
1311 |
1312 | interpret@^0.6.4:
1313 | version "0.6.6"
1314 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b"
1315 |
1316 | invariant@^2.2.0:
1317 | version "2.2.2"
1318 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
1319 | dependencies:
1320 | loose-envify "^1.0.0"
1321 |
1322 | is-binary-path@^1.0.0:
1323 | version "1.0.1"
1324 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
1325 | dependencies:
1326 | binary-extensions "^1.0.0"
1327 |
1328 | is-buffer@^1.1.5:
1329 | version "1.1.5"
1330 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
1331 |
1332 | is-dotfile@^1.0.0:
1333 | version "1.0.2"
1334 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
1335 |
1336 | is-equal-shallow@^0.1.3:
1337 | version "0.1.3"
1338 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
1339 | dependencies:
1340 | is-primitive "^2.0.0"
1341 |
1342 | is-extendable@^0.1.1:
1343 | version "0.1.1"
1344 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1345 |
1346 | is-extglob@^1.0.0:
1347 | version "1.0.0"
1348 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
1349 |
1350 | is-finite@^1.0.0:
1351 | version "1.0.2"
1352 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
1353 | dependencies:
1354 | number-is-nan "^1.0.0"
1355 |
1356 | is-fullwidth-code-point@^1.0.0:
1357 | version "1.0.0"
1358 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1359 | dependencies:
1360 | number-is-nan "^1.0.0"
1361 |
1362 | is-glob@^2.0.0, is-glob@^2.0.1:
1363 | version "2.0.1"
1364 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
1365 | dependencies:
1366 | is-extglob "^1.0.0"
1367 |
1368 | is-number@^2.0.2, is-number@^2.1.0:
1369 | version "2.1.0"
1370 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
1371 | dependencies:
1372 | kind-of "^3.0.2"
1373 |
1374 | is-posix-bracket@^0.1.0:
1375 | version "0.1.1"
1376 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
1377 |
1378 | is-primitive@^2.0.0:
1379 | version "2.0.0"
1380 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
1381 |
1382 | is-typedarray@~1.0.0:
1383 | version "1.0.0"
1384 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1385 |
1386 | isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0:
1387 | version "1.0.0"
1388 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1389 |
1390 | isobject@^2.0.0:
1391 | version "2.1.0"
1392 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1393 | dependencies:
1394 | isarray "1.0.0"
1395 |
1396 | isstream@~0.1.2:
1397 | version "0.1.2"
1398 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1399 |
1400 | jodid25519@^1.0.0:
1401 | version "1.0.2"
1402 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
1403 | dependencies:
1404 | jsbn "~0.1.0"
1405 |
1406 | js-tokens@^3.0.0:
1407 | version "3.0.1"
1408 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
1409 |
1410 | jsbn@~0.1.0:
1411 | version "0.1.1"
1412 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
1413 |
1414 | jsesc@^1.3.0:
1415 | version "1.3.0"
1416 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
1417 |
1418 | jsesc@~0.5.0:
1419 | version "0.5.0"
1420 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
1421 |
1422 | json-schema@0.2.3:
1423 | version "0.2.3"
1424 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1425 |
1426 | json-stable-stringify@^1.0.1:
1427 | version "1.0.1"
1428 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1429 | dependencies:
1430 | jsonify "~0.0.0"
1431 |
1432 | json-stringify-safe@~5.0.1:
1433 | version "5.0.1"
1434 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1435 |
1436 | json5@^0.5.0:
1437 | version "0.5.1"
1438 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
1439 |
1440 | jsonfile@^3.0.0:
1441 | version "3.0.0"
1442 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.0.tgz#92e7c7444e5ffd5fa32e6a9ae8b85034df8347d0"
1443 | optionalDependencies:
1444 | graceful-fs "^4.1.6"
1445 |
1446 | jsonify@~0.0.0:
1447 | version "0.0.0"
1448 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1449 |
1450 | jsprim@^1.2.2:
1451 | version "1.4.0"
1452 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
1453 | dependencies:
1454 | assert-plus "1.0.0"
1455 | extsprintf "1.0.2"
1456 | json-schema "0.2.3"
1457 | verror "1.3.6"
1458 |
1459 | kind-of@^3.0.2:
1460 | version "3.2.0"
1461 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
1462 | dependencies:
1463 | is-buffer "^1.1.5"
1464 |
1465 | lazy-cache@^1.0.3:
1466 | version "1.0.4"
1467 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
1468 |
1469 | loader-utils@^0.2.11:
1470 | version "0.2.17"
1471 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
1472 | dependencies:
1473 | big.js "^3.1.3"
1474 | emojis-list "^2.0.0"
1475 | json5 "^0.5.0"
1476 | object-assign "^4.0.1"
1477 |
1478 | loader-utils@^1.0.2:
1479 | version "1.1.0"
1480 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
1481 | dependencies:
1482 | big.js "^3.1.3"
1483 | emojis-list "^2.0.0"
1484 | json5 "^0.5.0"
1485 |
1486 | lodash@^4.14.0, lodash@^4.2.0:
1487 | version "4.17.4"
1488 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1489 |
1490 | longest@^1.0.1:
1491 | version "1.0.1"
1492 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
1493 |
1494 | loose-envify@^1.0.0:
1495 | version "1.3.1"
1496 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
1497 | dependencies:
1498 | js-tokens "^3.0.0"
1499 |
1500 | memory-fs@^0.2.0:
1501 | version "0.2.0"
1502 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
1503 |
1504 | memory-fs@~0.3.0:
1505 | version "0.3.0"
1506 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20"
1507 | dependencies:
1508 | errno "^0.1.3"
1509 | readable-stream "^2.0.1"
1510 |
1511 | micromatch@^2.1.5:
1512 | version "2.3.11"
1513 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
1514 | dependencies:
1515 | arr-diff "^2.0.0"
1516 | array-unique "^0.2.1"
1517 | braces "^1.8.2"
1518 | expand-brackets "^0.1.4"
1519 | extglob "^0.3.1"
1520 | filename-regex "^2.0.0"
1521 | is-extglob "^1.0.0"
1522 | is-glob "^2.0.1"
1523 | kind-of "^3.0.2"
1524 | normalize-path "^2.0.1"
1525 | object.omit "^2.0.0"
1526 | parse-glob "^3.0.4"
1527 | regex-cache "^0.4.2"
1528 |
1529 | mime-db@~1.27.0:
1530 | version "1.27.0"
1531 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
1532 |
1533 | mime-types@^2.1.12, mime-types@~2.1.7:
1534 | version "2.1.15"
1535 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
1536 | dependencies:
1537 | mime-db "~1.27.0"
1538 |
1539 | minimatch@^3.0.0, minimatch@^3.0.2:
1540 | version "3.0.4"
1541 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1542 | dependencies:
1543 | brace-expansion "^1.1.7"
1544 |
1545 | minimist@^1.2.0:
1546 | version "1.2.0"
1547 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1548 |
1549 | minimist@~0.0.1:
1550 | version "0.0.10"
1551 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
1552 |
1553 | minimist@0.0.8:
1554 | version "0.0.8"
1555 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1556 |
1557 | mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0:
1558 | version "0.5.1"
1559 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1560 | dependencies:
1561 | minimist "0.0.8"
1562 |
1563 | ms@0.7.3:
1564 | version "0.7.3"
1565 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
1566 |
1567 | nan@^2.3.0:
1568 | version "2.6.2"
1569 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
1570 |
1571 | node-libs-browser@^0.7.0:
1572 | version "0.7.0"
1573 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b"
1574 | dependencies:
1575 | assert "^1.1.1"
1576 | browserify-zlib "^0.1.4"
1577 | buffer "^4.9.0"
1578 | console-browserify "^1.1.0"
1579 | constants-browserify "^1.0.0"
1580 | crypto-browserify "3.3.0"
1581 | domain-browser "^1.1.1"
1582 | events "^1.0.0"
1583 | https-browserify "0.0.1"
1584 | os-browserify "^0.2.0"
1585 | path-browserify "0.0.0"
1586 | process "^0.11.0"
1587 | punycode "^1.2.4"
1588 | querystring-es3 "^0.2.0"
1589 | readable-stream "^2.0.5"
1590 | stream-browserify "^2.0.1"
1591 | stream-http "^2.3.1"
1592 | string_decoder "^0.10.25"
1593 | timers-browserify "^2.0.2"
1594 | tty-browserify "0.0.0"
1595 | url "^0.11.0"
1596 | util "^0.10.3"
1597 | vm-browserify "0.0.4"
1598 |
1599 | node-pre-gyp@^0.6.29:
1600 | version "0.6.34"
1601 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7"
1602 | dependencies:
1603 | mkdirp "^0.5.1"
1604 | nopt "^4.0.1"
1605 | npmlog "^4.0.2"
1606 | rc "^1.1.7"
1607 | request "^2.81.0"
1608 | rimraf "^2.6.1"
1609 | semver "^5.3.0"
1610 | tar "^2.2.1"
1611 | tar-pack "^3.4.0"
1612 |
1613 | nopt@^4.0.1:
1614 | version "4.0.1"
1615 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
1616 | dependencies:
1617 | abbrev "1"
1618 | osenv "^0.1.4"
1619 |
1620 | normalize-path@^2.0.1:
1621 | version "2.1.1"
1622 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
1623 | dependencies:
1624 | remove-trailing-separator "^1.0.1"
1625 |
1626 | npmlog@^4.0.2:
1627 | version "4.1.0"
1628 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5"
1629 | dependencies:
1630 | are-we-there-yet "~1.1.2"
1631 | console-control-strings "~1.1.0"
1632 | gauge "~2.7.3"
1633 | set-blocking "~2.0.0"
1634 |
1635 | number-is-nan@^1.0.0:
1636 | version "1.0.1"
1637 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1638 |
1639 | oauth-sign@~0.8.1:
1640 | version "0.8.2"
1641 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
1642 |
1643 | object-assign@^4.0.1, object-assign@^4.1.0:
1644 | version "4.1.1"
1645 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1646 |
1647 | object.omit@^2.0.0:
1648 | version "2.0.1"
1649 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
1650 | dependencies:
1651 | for-own "^0.1.4"
1652 | is-extendable "^0.1.1"
1653 |
1654 | once@^1.3.0, once@^1.3.3:
1655 | version "1.4.0"
1656 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1657 | dependencies:
1658 | wrappy "1"
1659 |
1660 | optimist@~0.6.0:
1661 | version "0.6.1"
1662 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
1663 | dependencies:
1664 | minimist "~0.0.1"
1665 | wordwrap "~0.0.2"
1666 |
1667 | os-browserify@^0.2.0:
1668 | version "0.2.1"
1669 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f"
1670 |
1671 | os-homedir@^1.0.0:
1672 | version "1.0.2"
1673 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
1674 |
1675 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
1676 | version "1.0.2"
1677 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1678 |
1679 | osenv@^0.1.4:
1680 | version "0.1.4"
1681 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
1682 | dependencies:
1683 | os-homedir "^1.0.0"
1684 | os-tmpdir "^1.0.0"
1685 |
1686 | pako@~0.2.0:
1687 | version "0.2.9"
1688 | resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
1689 |
1690 | parse-glob@^3.0.4:
1691 | version "3.0.4"
1692 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
1693 | dependencies:
1694 | glob-base "^0.3.0"
1695 | is-dotfile "^1.0.0"
1696 | is-extglob "^1.0.0"
1697 | is-glob "^2.0.0"
1698 |
1699 | path-browserify@0.0.0:
1700 | version "0.0.0"
1701 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
1702 |
1703 | path-exists@^2.0.0:
1704 | version "2.1.0"
1705 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
1706 | dependencies:
1707 | pinkie-promise "^2.0.0"
1708 |
1709 | path-is-absolute@^1.0.0:
1710 | version "1.0.1"
1711 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1712 |
1713 | pbkdf2-compat@2.0.1:
1714 | version "2.0.1"
1715 | resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288"
1716 |
1717 | performance-now, performance-now@^2.1.0:
1718 | version "2.1.0"
1719 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
1720 |
1721 | performance-now@^0.2.0:
1722 | version "0.2.0"
1723 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
1724 |
1725 | pify@^2.0.0:
1726 | version "2.3.0"
1727 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1728 |
1729 | pinkie-promise@^2.0.0:
1730 | version "2.0.1"
1731 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
1732 | dependencies:
1733 | pinkie "^2.0.0"
1734 |
1735 | pinkie@^2.0.0:
1736 | version "2.0.4"
1737 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
1738 |
1739 | pkg-dir@^1.0.0:
1740 | version "1.0.0"
1741 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
1742 | dependencies:
1743 | find-up "^1.0.0"
1744 |
1745 | preserve@^0.2.0:
1746 | version "0.2.0"
1747 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
1748 |
1749 | private@^0.1.6:
1750 | version "0.1.7"
1751 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
1752 |
1753 | process-nextick-args@~1.0.6:
1754 | version "1.0.7"
1755 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
1756 |
1757 | process@^0.11.0:
1758 | version "0.11.10"
1759 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1760 |
1761 | prr@~0.0.0:
1762 | version "0.0.0"
1763 | resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
1764 |
1765 | punycode@^1.2.4, punycode@^1.4.1:
1766 | version "1.4.1"
1767 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1768 |
1769 | punycode@1.3.2:
1770 | version "1.3.2"
1771 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
1772 |
1773 | qs@~6.4.0:
1774 | version "6.4.0"
1775 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
1776 |
1777 | querystring-es3@^0.2.0:
1778 | version "0.2.1"
1779 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
1780 |
1781 | querystring@0.2.0:
1782 | version "0.2.0"
1783 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
1784 |
1785 | raf:
1786 | version "3.3.2"
1787 | resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
1788 | dependencies:
1789 | performance-now "^2.1.0"
1790 |
1791 | randomatic@^1.1.3:
1792 | version "1.1.6"
1793 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
1794 | dependencies:
1795 | is-number "^2.0.2"
1796 | kind-of "^3.0.2"
1797 |
1798 | rc@^1.1.7:
1799 | version "1.2.1"
1800 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
1801 | dependencies:
1802 | deep-extend "~0.4.0"
1803 | ini "~1.3.0"
1804 | minimist "^1.2.0"
1805 | strip-json-comments "~2.0.1"
1806 |
1807 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6:
1808 | version "2.2.9"
1809 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
1810 | dependencies:
1811 | buffer-shims "~1.0.0"
1812 | core-util-is "~1.0.0"
1813 | inherits "~2.0.1"
1814 | isarray "~1.0.0"
1815 | process-nextick-args "~1.0.6"
1816 | string_decoder "~1.0.0"
1817 | util-deprecate "~1.0.1"
1818 |
1819 | readdirp@^2.0.0:
1820 | version "2.1.0"
1821 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
1822 | dependencies:
1823 | graceful-fs "^4.1.2"
1824 | minimatch "^3.0.2"
1825 | readable-stream "^2.0.2"
1826 | set-immediate-shim "^1.0.1"
1827 |
1828 | regenerate@^1.2.1:
1829 | version "1.3.2"
1830 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
1831 |
1832 | regenerator-runtime@^0.10.0:
1833 | version "0.10.5"
1834 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
1835 |
1836 | regenerator-transform@0.9.11:
1837 | version "0.9.11"
1838 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283"
1839 | dependencies:
1840 | babel-runtime "^6.18.0"
1841 | babel-types "^6.19.0"
1842 | private "^0.1.6"
1843 |
1844 | regex-cache@^0.4.2:
1845 | version "0.4.3"
1846 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
1847 | dependencies:
1848 | is-equal-shallow "^0.1.3"
1849 | is-primitive "^2.0.0"
1850 |
1851 | regexpu-core@^2.0.0:
1852 | version "2.0.0"
1853 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
1854 | dependencies:
1855 | regenerate "^1.2.1"
1856 | regjsgen "^0.2.0"
1857 | regjsparser "^0.1.4"
1858 |
1859 | regjsgen@^0.2.0:
1860 | version "0.2.0"
1861 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
1862 |
1863 | regjsparser@^0.1.4:
1864 | version "0.1.5"
1865 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
1866 | dependencies:
1867 | jsesc "~0.5.0"
1868 |
1869 | remove-trailing-separator@^1.0.1:
1870 | version "1.0.1"
1871 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4"
1872 |
1873 | repeat-element@^1.1.2:
1874 | version "1.1.2"
1875 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
1876 |
1877 | repeat-string@^1.5.2:
1878 | version "1.6.1"
1879 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1880 |
1881 | repeating@^2.0.0:
1882 | version "2.0.1"
1883 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
1884 | dependencies:
1885 | is-finite "^1.0.0"
1886 |
1887 | request@^2.81.0:
1888 | version "2.81.0"
1889 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
1890 | dependencies:
1891 | aws-sign2 "~0.6.0"
1892 | aws4 "^1.2.1"
1893 | caseless "~0.12.0"
1894 | combined-stream "~1.0.5"
1895 | extend "~3.0.0"
1896 | forever-agent "~0.6.1"
1897 | form-data "~2.1.1"
1898 | har-validator "~4.2.1"
1899 | hawk "~3.1.3"
1900 | http-signature "~1.1.0"
1901 | is-typedarray "~1.0.0"
1902 | isstream "~0.1.2"
1903 | json-stringify-safe "~5.0.1"
1904 | mime-types "~2.1.7"
1905 | oauth-sign "~0.8.1"
1906 | performance-now "^0.2.0"
1907 | qs "~6.4.0"
1908 | safe-buffer "^5.0.1"
1909 | stringstream "~0.0.4"
1910 | tough-cookie "~2.3.0"
1911 | tunnel-agent "^0.6.0"
1912 | uuid "^3.0.0"
1913 |
1914 | right-align@^0.1.1:
1915 | version "0.1.3"
1916 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
1917 | dependencies:
1918 | align-text "^0.1.1"
1919 |
1920 | rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@2:
1921 | version "2.6.1"
1922 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
1923 | dependencies:
1924 | glob "^7.0.5"
1925 |
1926 | ripemd160@0.2.0:
1927 | version "0.2.0"
1928 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce"
1929 |
1930 | safe-buffer@^5.0.1:
1931 | version "5.0.1"
1932 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
1933 |
1934 | semver@^5.3.0:
1935 | version "5.3.0"
1936 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
1937 |
1938 | set-blocking@~2.0.0:
1939 | version "2.0.0"
1940 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1941 |
1942 | set-immediate-shim@^1.0.1:
1943 | version "1.0.1"
1944 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
1945 |
1946 | setimmediate@^1.0.4:
1947 | version "1.0.5"
1948 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
1949 |
1950 | sha.js@2.2.6:
1951 | version "2.2.6"
1952 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba"
1953 |
1954 | signal-exit@^3.0.0:
1955 | version "3.0.2"
1956 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1957 |
1958 | slash@^1.0.0:
1959 | version "1.0.0"
1960 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
1961 |
1962 | sntp@1.x.x:
1963 | version "1.0.9"
1964 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
1965 | dependencies:
1966 | hoek "2.x.x"
1967 |
1968 | source-list-map@~0.1.7:
1969 | version "0.1.8"
1970 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
1971 |
1972 | source-map-support@^0.4.2:
1973 | version "0.4.15"
1974 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
1975 | dependencies:
1976 | source-map "^0.5.6"
1977 |
1978 | source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1:
1979 | version "0.5.6"
1980 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
1981 |
1982 | source-map@~0.4.1:
1983 | version "0.4.4"
1984 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
1985 | dependencies:
1986 | amdefine ">=0.0.4"
1987 |
1988 | sshpk@^1.7.0:
1989 | version "1.13.0"
1990 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c"
1991 | dependencies:
1992 | asn1 "~0.2.3"
1993 | assert-plus "^1.0.0"
1994 | dashdash "^1.12.0"
1995 | getpass "^0.1.1"
1996 | optionalDependencies:
1997 | bcrypt-pbkdf "^1.0.0"
1998 | ecc-jsbn "~0.1.1"
1999 | jodid25519 "^1.0.0"
2000 | jsbn "~0.1.0"
2001 | tweetnacl "~0.14.0"
2002 |
2003 | stream-browserify@^2.0.1:
2004 | version "2.0.1"
2005 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
2006 | dependencies:
2007 | inherits "~2.0.1"
2008 | readable-stream "^2.0.2"
2009 |
2010 | stream-http@^2.3.1:
2011 | version "2.7.1"
2012 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a"
2013 | dependencies:
2014 | builtin-status-codes "^3.0.0"
2015 | inherits "^2.0.1"
2016 | readable-stream "^2.2.6"
2017 | to-arraybuffer "^1.0.0"
2018 | xtend "^4.0.0"
2019 |
2020 | string_decoder@^0.10.25:
2021 | version "0.10.31"
2022 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
2023 |
2024 | string_decoder@~1.0.0:
2025 | version "1.0.0"
2026 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667"
2027 | dependencies:
2028 | buffer-shims "~1.0.0"
2029 |
2030 | string-width@^1.0.1, string-width@^1.0.2:
2031 | version "1.0.2"
2032 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2033 | dependencies:
2034 | code-point-at "^1.0.0"
2035 | is-fullwidth-code-point "^1.0.0"
2036 | strip-ansi "^3.0.0"
2037 |
2038 | stringstream@~0.0.4:
2039 | version "0.0.5"
2040 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2041 |
2042 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2043 | version "3.0.1"
2044 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2045 | dependencies:
2046 | ansi-regex "^2.0.0"
2047 |
2048 | strip-json-comments@~2.0.1:
2049 | version "2.0.1"
2050 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
2051 |
2052 | supports-color@^2.0.0:
2053 | version "2.0.0"
2054 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2055 |
2056 | supports-color@^3.1.0:
2057 | version "3.2.3"
2058 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
2059 | dependencies:
2060 | has-flag "^1.0.0"
2061 |
2062 | tapable@^0.1.8, tapable@~0.1.8:
2063 | version "0.1.10"
2064 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4"
2065 |
2066 | tar-pack@^3.4.0:
2067 | version "3.4.0"
2068 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
2069 | dependencies:
2070 | debug "^2.2.0"
2071 | fstream "^1.0.10"
2072 | fstream-ignore "^1.0.5"
2073 | once "^1.3.3"
2074 | readable-stream "^2.1.4"
2075 | rimraf "^2.5.1"
2076 | tar "^2.2.1"
2077 | uid-number "^0.0.6"
2078 |
2079 | tar@^2.2.1:
2080 | version "2.2.1"
2081 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
2082 | dependencies:
2083 | block-stream "*"
2084 | fstream "^1.0.2"
2085 | inherits "2"
2086 |
2087 | timers-browserify@^2.0.2:
2088 | version "2.0.2"
2089 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86"
2090 | dependencies:
2091 | setimmediate "^1.0.4"
2092 |
2093 | to-arraybuffer@^1.0.0:
2094 | version "1.0.1"
2095 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
2096 |
2097 | to-fast-properties@^1.0.1:
2098 | version "1.0.3"
2099 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
2100 |
2101 | tough-cookie@~2.3.0:
2102 | version "2.3.2"
2103 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
2104 | dependencies:
2105 | punycode "^1.4.1"
2106 |
2107 | trim-right@^1.0.1:
2108 | version "1.0.1"
2109 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
2110 |
2111 | tty-browserify@0.0.0:
2112 | version "0.0.0"
2113 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
2114 |
2115 | tunnel-agent@^0.6.0:
2116 | version "0.6.0"
2117 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
2118 | dependencies:
2119 | safe-buffer "^5.0.1"
2120 |
2121 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
2122 | version "0.14.5"
2123 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
2124 |
2125 | uglify-js@~2.7.3:
2126 | version "2.7.5"
2127 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
2128 | dependencies:
2129 | async "~0.2.6"
2130 | source-map "~0.5.1"
2131 | uglify-to-browserify "~1.0.0"
2132 | yargs "~3.10.0"
2133 |
2134 | uglify-to-browserify@~1.0.0:
2135 | version "1.0.2"
2136 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
2137 |
2138 | uid-number@^0.0.6:
2139 | version "0.0.6"
2140 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
2141 |
2142 | universalify@^0.1.0:
2143 | version "0.1.0"
2144 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778"
2145 |
2146 | url@^0.11.0:
2147 | version "0.11.0"
2148 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
2149 | dependencies:
2150 | punycode "1.3.2"
2151 | querystring "0.2.0"
2152 |
2153 | util-deprecate@~1.0.1:
2154 | version "1.0.2"
2155 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2156 |
2157 | util@^0.10.3, util@0.10.3:
2158 | version "0.10.3"
2159 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
2160 | dependencies:
2161 | inherits "2.0.1"
2162 |
2163 | uuid@^3.0.0:
2164 | version "3.0.1"
2165 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
2166 |
2167 | verror@1.3.6:
2168 | version "1.3.6"
2169 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
2170 | dependencies:
2171 | extsprintf "1.0.2"
2172 |
2173 | vm-browserify@0.0.4:
2174 | version "0.0.4"
2175 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
2176 | dependencies:
2177 | indexof "0.0.1"
2178 |
2179 | watchpack@^0.2.1:
2180 | version "0.2.9"
2181 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b"
2182 | dependencies:
2183 | async "^0.9.0"
2184 | chokidar "^1.0.0"
2185 | graceful-fs "^4.1.2"
2186 |
2187 | webpack-core@~0.6.9:
2188 | version "0.6.9"
2189 | resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2"
2190 | dependencies:
2191 | source-list-map "~0.1.7"
2192 | source-map "~0.4.1"
2193 |
2194 | webpack@1.*:
2195 | version "1.15.0"
2196 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98"
2197 | dependencies:
2198 | acorn "^3.0.0"
2199 | async "^1.3.0"
2200 | clone "^1.0.2"
2201 | enhanced-resolve "~0.9.0"
2202 | interpret "^0.6.4"
2203 | loader-utils "^0.2.11"
2204 | memory-fs "~0.3.0"
2205 | mkdirp "~0.5.0"
2206 | node-libs-browser "^0.7.0"
2207 | optimist "~0.6.0"
2208 | supports-color "^3.1.0"
2209 | tapable "~0.1.8"
2210 | uglify-js "~2.7.3"
2211 | watchpack "^0.2.1"
2212 | webpack-core "~0.6.9"
2213 |
2214 | wide-align@^1.1.0:
2215 | version "1.1.2"
2216 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
2217 | dependencies:
2218 | string-width "^1.0.2"
2219 |
2220 | window-size@0.1.0:
2221 | version "0.1.0"
2222 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
2223 |
2224 | wordwrap@~0.0.2:
2225 | version "0.0.3"
2226 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
2227 |
2228 | wordwrap@0.0.2:
2229 | version "0.0.2"
2230 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
2231 |
2232 | wrappy@1:
2233 | version "1.0.2"
2234 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2235 |
2236 | xtend@^4.0.0:
2237 | version "4.0.1"
2238 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
2239 |
2240 | yargs@~3.10.0:
2241 | version "3.10.0"
2242 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
2243 | dependencies:
2244 | camelcase "^1.0.2"
2245 | cliui "^2.1.0"
2246 | decamelize "^1.0.0"
2247 | window-size "0.1.0"
2248 |
2249 |
--------------------------------------------------------------------------------