From 191415f018479f3ca158a6defb1a8e68db7e7135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Thu, 16 May 2019 14:04:08 +0200 Subject: [PATCH 01/13] Support React 18.6.8 --- package.json | 13 +-- src/CanvasComponent.js | 3 +- src/CanvasRenderer.js | 158 +++++++++++++++++-------------- src/ReactDOMComponentTree.js | 6 +- src/ReactDOMFrameScheduling.js | 168 --------------------------------- src/index.js | 4 +- src/layoutNode.js | 2 +- src/utils.js | 1 + yarn.lock | 77 +++++++++++---- 9 files changed, 162 insertions(+), 270 deletions(-) delete mode 100644 src/ReactDOMFrameScheduling.js create mode 100644 src/utils.js diff --git a/package.json b/package.json index 795847b..506b240 100644 --- a/package.json +++ b/package.json @@ -42,21 +42,22 @@ "eslint-plugin-react": "^7.8.2", "lodash.range": "^3.2.0", "prettier": "^1.12.1", - "react": "^16.3.2", - "react-dom": "^16.3.2", + "react": "^16.8.6", + "react-dom": "^16.8.6", "rimraf": "^2.6.2" }, "peerDependencies": { - "react": "^16.3.2", - "react-dom": "^16.3.2" + "react": "^16.8.6", + "react-dom": "^16.8.6" }, "dependencies": { "@craigmorton/linebreak": "^0.4.5", "css-layout": "^1.1.1", - "fbjs": "^0.8.16", + "invariant": "^2.2.4", "multi-key-cache": "^1.0.2", "prop-types": "^15.6.1", - "react-reconciler": "^0.10.0", + "react-reconciler": "^0.20.4", + "scheduler": "^0.14.0", "scroller": "https://github.com/mjohnston/scroller" } } diff --git a/src/CanvasComponent.js b/src/CanvasComponent.js index e12361a..cde3017 100644 --- a/src/CanvasComponent.js +++ b/src/CanvasComponent.js @@ -1,7 +1,7 @@ import RenderLayer from "./RenderLayer"; import { make } from "./FrameUtils"; import * as EventTypes from "./EventTypes"; -import emptyObject from "fbjs/lib/emptyObject"; +import { emptyObject } from "./utils"; let LAYER_GUID = 1; @@ -126,6 +126,7 @@ export default class CanvasComponent { // Register events for (const type in EventTypes) { if (prevProps[type] !== props[type]) { + console.log(props[type], type) this.putEventListener(EventTypes[type], props[type]); } } diff --git a/src/CanvasRenderer.js b/src/CanvasRenderer.js index 26eaceb..d6d74a9 100644 --- a/src/CanvasRenderer.js +++ b/src/CanvasRenderer.js @@ -1,14 +1,19 @@ import React from "react"; -import invariant from "fbjs/lib/invariant"; -import emptyObject from "fbjs/lib/emptyObject"; +import invariant from "invariant"; +import { emptyObject } from "./utils"; import Gradient from "./Gradient"; import Text from "./Text"; import Group from "./Group"; import { RawImage } from "./Image"; -import ReactDOMFrameScheduling from "./ReactDOMFrameScheduling"; import ReactFiberReconciler from "react-reconciler"; import CanvasComponent from "./CanvasComponent"; import { getClosestInstanceFromNode } from "./ReactDOMComponentTree"; +import { + unstable_now as now, + unstable_shouldYield as shouldYield, + unstable_scheduleCallback as scheduleDeferredCallback, + unstable_cancelCallback as cancelDeferredCallback +} from 'scheduler'; const UPDATE_SIGNAL = {}; const MAX_POOLED_COMPONENTS_PER_TYPE = 1024; @@ -120,7 +125,11 @@ const CanvasHostConfig = { return emptyObject; }, - scheduleDeferredCallback: ReactDOMFrameScheduling.rIC, + scheduleDeferredCallback, + + cancelDeferredCallback, + + shouldYield, shouldSetTextContent(type, props) { return ( @@ -128,78 +137,78 @@ const CanvasHostConfig = { ); }, - now: ReactDOMFrameScheduling.now, + now, isPrimaryRenderer: false, useSyncScheduling: true, - mutation: { - appendChild(parentInstance, child) { - const childLayer = child.getLayer(); - const parentLayer = parentInstance.getLayer(); - - if (childLayer.parentLayer === parentLayer) { - childLayer.moveToTop(); - } else { - childLayer.inject(parentLayer); - } - - parentLayer.invalidateLayout(); - }, - - appendChildToContainer(parentInstance, child) { - const childLayer = child.getLayer(); - const parentLayer = parentInstance.getLayer(); - - if (childLayer.parentLayer === parentLayer) { - childLayer.moveToTop(); - } else { - childLayer.inject(parentLayer); - } - - parentLayer.invalidateLayout(); - }, - - insertBefore(parentInstance, child, beforeChild) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()); - parentLayer.invalidateLayout(); - }, - - insertInContainerBefore(parentInstance, child, beforeChild) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()); - parentLayer.invalidateLayout(); - }, - - removeChild(parentInstance, child) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().remove(); - freeComponentAndChildren(child); - parentLayer.invalidateLayout(); - }, - - removeChildFromContainer(parentInstance, child) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().remove(); - freeComponentAndChildren(child); - parentLayer.invalidateLayout(); - }, - - commitTextUpdate(/*textInstance, oldText, newText*/) { - // Noop - }, - - commitMount(/*instance, type, newProps*/) { - // Noop - }, - - commitUpdate(instance, updatePayload, type, oldProps, newProps) { - if (typeof instance.applyLayerProps !== "undefined") { - instance.applyLayerProps(oldProps, newProps); - instance.getLayer().invalidateLayout(); - } + supportsMutation: true, + + appendChild(parentInstance, child) { + const childLayer = child.getLayer(); + const parentLayer = parentInstance.getLayer(); + + if (childLayer.parentLayer === parentLayer) { + childLayer.moveToTop(); + } else { + childLayer.inject(parentLayer); + } + + parentLayer.invalidateLayout(); + }, + + appendChildToContainer(parentInstance, child) { + const childLayer = child.getLayer(); + const parentLayer = parentInstance.getLayer(); + + if (childLayer.parentLayer === parentLayer) { + childLayer.moveToTop(); + } else { + childLayer.inject(parentLayer); + } + + parentLayer.invalidateLayout(); + }, + + insertBefore(parentInstance, child, beforeChild) { + const parentLayer = parentInstance.getLayer(); + child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()); + parentLayer.invalidateLayout(); + }, + + insertInContainerBefore(parentInstance, child, beforeChild) { + const parentLayer = parentInstance.getLayer(); + child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()); + parentLayer.invalidateLayout(); + }, + + removeChild(parentInstance, child) { + const parentLayer = parentInstance.getLayer(); + child.getLayer().remove(); + freeComponentAndChildren(child); + parentLayer.invalidateLayout(); + }, + + removeChildFromContainer(parentInstance, child) { + const parentLayer = parentInstance.getLayer(); + child.getLayer().remove(); + freeComponentAndChildren(child); + parentLayer.invalidateLayout(); + }, + + commitTextUpdate(/*textInstance, oldText, newText*/) { + // Noop + }, + + commitMount(/*instance, type, newProps*/) { + // Noop + }, + + commitUpdate(instance, updatePayload, type, oldProps, newProps) { + if (typeof instance.applyLayerProps !== "undefined") { + instance.applyLayerProps(oldProps, newProps); + instance.getLayer().invalidateLayout(); } } }; @@ -216,8 +225,11 @@ CanvasRenderer.injectIntoDevTools({ } }); -CanvasRenderer.registerComponentConstructor = (name, ctor) => { +const registerComponentConstructor = (name, ctor) => { componentConstructors[name] = ctor; }; -export default CanvasRenderer; +export { + CanvasRenderer, + registerComponentConstructor +}; diff --git a/src/ReactDOMComponentTree.js b/src/ReactDOMComponentTree.js index 467c83f..858b164 100644 --- a/src/ReactDOMComponentTree.js +++ b/src/ReactDOMComponentTree.js @@ -7,7 +7,7 @@ const HostText = 6; const randomKey = Math.random() .toString(36) .slice(2); -const internalInstanceKey = "__reactInternalInstance$" + randomKey; +const internalInstanceKey = '__reactInternalInstance$' + randomKey; /** * Given a DOM node, return the closest ReactDOMComponent or @@ -28,11 +28,11 @@ export function getClosestInstanceFromNode(node) { } } - const inst = node[internalInstanceKey]; + let inst = node[internalInstanceKey]; if (inst.tag === HostComponent || inst.tag === HostText) { // In Fiber, this will always be the deepest root. return inst; } return null; -} +} \ No newline at end of file diff --git a/src/ReactDOMFrameScheduling.js b/src/ReactDOMFrameScheduling.js deleted file mode 100644 index 721b7fa..0000000 --- a/src/ReactDOMFrameScheduling.js +++ /dev/null @@ -1,168 +0,0 @@ -// adapted FROM: https://github.com/facebook/react/blob/3019210df2b486416ed94d7b9becffaf254e81c4/src/renderers/shared/ReactDOMFrameScheduling.js - -"use strict"; - -// This is a built-in polyfill for requestIdleCallback. It works by scheduling -// a requestAnimationFrame, storing the time for the start of the frame, then -// scheduling a postMessage which gets scheduled after paint. Within the -// postMessage handler do as much work as possible until time + frame rate. -// By separating the idle call into a separate event tick we ensure that -// layout, paint and other browser work is counted against the available time. -// The frame rate is dynamically adjusted. - -const _typeof = - typeof Symbol === "function" && typeof Symbol.iterator === "symbol" - ? function(obj) { - return typeof obj; - } - : function(obj) { - return obj && - typeof Symbol === "function" && - obj.constructor === Symbol && - obj !== Symbol.prototype - ? "symbol" - : typeof obj; - }; - -const ExecutionEnvironment = require("fbjs/lib/ExecutionEnvironment"); - -const hasNativePerformanceNow = - (typeof performance === "undefined" ? "undefined" : _typeof(performance)) === - "object" && typeof performance.now === "function"; - -let now = void 0; -if (hasNativePerformanceNow) { - now = function now() { - return performance.now(); - }; -} else { - now = function now() { - return Date.now(); - }; -} - -// TODO: There's no way to cancel, because Fiber doesn't atm. -let rIC = void 0; - -if (!ExecutionEnvironment.canUseDOM) { - rIC = function rIC(frameCallback) { - setTimeout(function() { - frameCallback({ - timeRemaining: function timeRemaining() { - return Infinity; - } - }); - }); - return 0; - }; -} else if (typeof requestIdleCallback !== "function") { - // Polyfill requestIdleCallback. - - let scheduledRAFCallback = null; - let scheduledRICCallback = null; - - let isIdleScheduled = false; - let isAnimationFrameScheduled = false; - - let frameDeadline = 0; - // We start out assuming that we run at 30fps but then the heuristic tracking - // will adjust this value to a faster fps if we get more frequent animation - // frames. - let previousFrameTime = 33; - let activeFrameTime = 33; - - let frameDeadlineObject; - if (hasNativePerformanceNow) { - frameDeadlineObject = { - timeRemaining: function timeRemaining() { - // We assume that if we have a performance timer that the rAF callback - // gets a performance timer value. Not sure if this is always true. - return frameDeadline - performance.now(); - } - }; - } else { - frameDeadlineObject = { - timeRemaining: function timeRemaining() { - // Fallback to Date.now() - return frameDeadline - Date.now(); - } - }; - } - - // We use the postMessage trick to defer idle work until after the repaint. - const messageKey = - "__reactIdleCallback$" + - Math.random() - .toString(36) - .slice(2); - const idleTick = function idleTick(event) { - if (event.source !== window || event.data !== messageKey) { - return; - } - isIdleScheduled = false; - const callback = scheduledRICCallback; - scheduledRICCallback = null; - if (callback !== null) { - callback(frameDeadlineObject); - } - }; - // Assumes that we have addEventListener in this environment. Might need - // something better for old IE. - window.addEventListener("message", idleTick, false); - - const animationTick = function animationTick(rafTime) { - isAnimationFrameScheduled = false; - let nextFrameTime = rafTime - frameDeadline + activeFrameTime; - if ( - nextFrameTime < activeFrameTime && - previousFrameTime < activeFrameTime - ) { - if (nextFrameTime < 8) { - // Defensive coding. We don't support higher frame rates than 120hz. - // If we get lower than that, it is probably a bug. - nextFrameTime = 8; - } - // If one frame goes long, then the next one can be short to catch up. - // If two frames are short in a row, then that's an indication that we - // actually have a higher frame rate than what we're currently optimizing. - // We adjust our heuristic dynamically accordingly. For example, if we're - // running on 120hz display or 90hz VR display. - // Take the max of the two in case one of them was an anomaly due to - // missed frame deadlines. - activeFrameTime = - nextFrameTime < previousFrameTime ? previousFrameTime : nextFrameTime; - } else { - previousFrameTime = nextFrameTime; - } - frameDeadline = rafTime + activeFrameTime; - if (!isIdleScheduled) { - isIdleScheduled = true; - window.postMessage(messageKey, "*"); - } - const callback = scheduledRAFCallback; - scheduledRAFCallback = null; - if (callback !== null) { - callback(rafTime); - } - }; - - rIC = function rIC(callback) { - // This assumes that we only schedule one callback at a time because that's - // how Fiber uses it. - scheduledRICCallback = callback; - if (!isAnimationFrameScheduled) { - // If rAF didn't already schedule one, we need to schedule a frame. - // TODO: If this rAF doesn't materialize because the browser throttles, we - // might want to still have setTimeout trigger rIC as a backup to ensure - // that we keep performing work. - isAnimationFrameScheduled = true; - requestAnimationFrame(animationTick); - } - return 0; - }; -} else { - rIC = requestIdleCallback; -} - -exports.now = now; -exports.rIC = rIC; diff --git a/src/index.js b/src/index.js index d209d57..5c53c82 100644 --- a/src/index.js +++ b/src/index.js @@ -6,7 +6,7 @@ import FontFace from "./FontFace"; import FrameUtils from "./FrameUtils"; import measureText from "./measureText"; import CanvasComponent from "./CanvasComponent"; -import CanvasRenderer from "./CanvasRenderer"; +import { CanvasRenderer, registerComponentConstructor } from "./CanvasRenderer"; import { registerLayerType } from "./DrawingUtils"; Surface.canvasRenderer = CanvasRenderer; @@ -28,7 +28,7 @@ const registerCustomComponent = function(name, applyProps, drawFunction) { }; }; - CanvasRenderer.registerComponentConstructor(name, klass); + registerComponentConstructor(name, klass); return name; }; diff --git a/src/layoutNode.js b/src/layoutNode.js index 1aa4340..3aeeb86 100644 --- a/src/layoutNode.js +++ b/src/layoutNode.js @@ -1,5 +1,5 @@ import computeLayout from "css-layout"; -import emptyObject from "fbjs/lib/emptyObject"; +import { emptyObject } from "./utils"; function createNode(layer) { return { diff --git a/src/utils.js b/src/utils.js new file mode 100644 index 0000000..07274de --- /dev/null +++ b/src/utils.js @@ -0,0 +1 @@ +export const emptyObject = {}; diff --git a/yarn.lock b/yarn.lock index e46129e..a5f5571 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3630,7 +3630,7 @@ interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.2.0, invariant@^2.2.2: +invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -3927,6 +3927,11 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@^3.4.3, js-yaml@^3.9.0, js-yaml@^3.9.1: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" @@ -4151,6 +4156,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: dependencies: js-tokens "^3.0.0" +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" @@ -5247,6 +5259,15 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.5.9, loose-envify "^1.3.1" object-assign "^4.1.1" +prop-types@^15.6.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + proxy-addr@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" @@ -5417,14 +5438,15 @@ react-docgen@^3.0.0-beta11: node-dir "^0.1.10" recast "^0.12.6" -react-dom@^16.3.2: - version "16.3.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.3.2.tgz#cb90f107e09536d683d84ed5d4888e9640e0e4df" +react-dom@^16.8.6: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" + integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + scheduler "^0.13.6" react-error-overlay@^4.0.0: version "4.0.0" @@ -5462,6 +5484,11 @@ react-inspector@^2.2.2: babel-runtime "^6.26.0" is-dom "^1.0.9" +react-is@^16.8.1: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== + react-lifecycles-compat@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" @@ -5475,14 +5502,15 @@ react-modal@^3.3.2: react-lifecycles-compat "^3.0.0" warning "^3.0.0" -react-reconciler@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.10.0.tgz#5dc75e73348de97b992deaba75ec72019918f71b" +react-reconciler@^0.20.4: + version "0.20.4" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.20.4.tgz#3da6a95841592f849cb4edd3d38676c86fd920b2" + integrity sha512-kxERc4H32zV2lXMg/iMiwQHOtyqf15qojvkcZ5Ja2CPkjVohHw9k70pdDBwrnQhLVetUJBSYyqU3yqrlVTOajA== dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + scheduler "^0.13.6" react-split-pane@^0.1.77: version "0.1.77" @@ -5517,14 +5545,15 @@ react-treebeard@^2.1.0: shallowequal "^0.2.2" velocity-react "^1.3.1" -react@^16.3.2: - version "16.3.2" - resolved "https://registry.yarnpkg.com/react/-/react-16.3.2.tgz#fdc8420398533a1e58872f59091b272ce2f91ea9" +react@^16.8.6: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" + integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + scheduler "^0.13.6" read-pkg-up@^2.0.0: version "2.0.0" @@ -5842,6 +5871,22 @@ sax@^1.2.4, sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" +scheduler@^0.13.6: + version "0.13.6" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" + integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +scheduler@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.14.0.tgz#b392c23c9c14bfa2933d4740ad5603cc0d59ea5b" + integrity sha512-9CgbS06Kki2f4R9FjLSITjZo5BZxPsryiRNyL3LpvrM9WxcVmhlqAOc9E+KQbeI2nqej4JIIbOsfdL51cNb4Iw== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + schema-utils@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" From c809b72e344b82ea1116e2b1167f0655cd36936c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Thu, 16 May 2019 14:47:45 +0200 Subject: [PATCH 02/13] Upgrade eslint & prettier --- .eslintrc.js | 15 +- .prettierrc.js | 6 + package.json | 14 +- src/Canvas.js | 28 +- src/CanvasComponent.js | 129 +++---- src/CanvasRenderer.js | 179 +++++---- src/CanvasUtils.js | 152 ++++---- src/Core.js | 12 +- src/DrawingUtils.js | 266 +++++++------- src/Easing.js | 18 +- src/EventTypes.js | 28 +- src/FontFace.js | 44 +-- src/FontUtils.js | 116 +++--- src/FrameUtils.js | 65 ++-- src/Gradient.js | 18 +- src/Group.js | 16 +- src/Image.js | 109 +++--- src/ImageCache.js | 96 ++--- src/ListView.js | 195 +++++----- src/ReactDOMComponentTree.js | 22 +- src/RenderLayer.js | 107 +++--- src/Surface.js | 222 +++++------ src/Text.js | 44 +-- src/clamp.js | 2 +- src/hitTest.js | 66 ++-- src/index.js | 68 ++-- src/layoutNode.js | 32 +- src/measureText.js | 96 ++--- src/utils.js | 2 +- stories/CSS.js | 76 ++-- stories/CustomDraw.js | 92 ++--- stories/Gradient.js | 34 +- stories/Heatmap.js | 106 +++--- stories/Image.js | 16 +- stories/Listview.js | 125 +++---- stories/Text.js | 22 +- stories/Timeline.js | 56 +-- stories/components/Page.js | 110 +++--- stories/data.js | 56 +-- stories/index.js | 16 +- yarn.lock | 694 +++++++++++++++++++++++------------ 41 files changed, 1907 insertions(+), 1663 deletions(-) create mode 100644 .prettierrc.js diff --git a/.eslintrc.js b/.eslintrc.js index 2dec016..5c596f9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,10 +1,15 @@ module.exports = { - parser: "babel-eslint", + parser: 'babel-eslint', env: { browser: true, es6: true, - node: true + node: true, }, - plugins: ["prettier", "react"], - extends: ["prettier", "plugin:react/recommended", "eslint:recommended"] -}; + plugins: ['prettier', 'react'], + extends: ['prettier', 'plugin:react/recommended', 'eslint:recommended'], + settings: { + react: { + version: 'detect' + } + } +} diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..ddb6fec --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,6 @@ +module.exports = { + trailingComma: "es5", + tabWidth: 2, + semi: false, + singleQuote: true +} \ No newline at end of file diff --git a/package.json b/package.json index 506b240..a75050e 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "storybook": "start-storybook -p 6006 -c .storybook", "build-storybook": "build-storybook -c .storybook", "prepare": "yarn build", - "prettier": "prettier src/**/* --write", - "lint": "eslint src/**/*" + "prettier": "prettier {src,stories}/**/* --write", + "lint": "eslint 'src/**/*' 'stories/**/*'" }, "keywords": [ "react", @@ -36,12 +36,12 @@ "babel-preset-stage-2": "^6.24.1", "babel-runtime": "^6.26.0", "d3-scale": "^1.0.6", - "eslint": "^4.1.1", - "eslint-config-prettier": "^2.9.0", - "eslint-plugin-prettier": "^2.6.0", - "eslint-plugin-react": "^7.8.2", + "eslint": "^5.16.0", + "eslint-config-prettier": "^4.3.0", + "eslint-plugin-prettier": "^3.1.0", + "eslint-plugin-react": "^7.13.0", "lodash.range": "^3.2.0", - "prettier": "^1.12.1", + "prettier": "^1.17.1", "react": "^16.8.6", "react-dom": "^16.8.6", "rimraf": "^2.6.2" diff --git a/src/Canvas.js b/src/Canvas.js index 25b9753..e8e5bf7 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict' // Note that this class intentionally does not use PooledClass. // DrawingUtils manages pooling for more fine-grained control. @@ -6,32 +6,32 @@ function Canvas(width, height, scale) { // Re-purposing an existing canvas element. if (!this._canvas) { - this._canvas = document.createElement("canvas"); + this._canvas = document.createElement('canvas') } - this.width = width; - this.height = height; - this.scale = scale || window.devicePixelRatio; + this.width = width + this.height = height + this.scale = scale || window.devicePixelRatio - this._canvas.width = this.width * this.scale; - this._canvas.height = this.height * this.scale; - this._canvas.getContext("2d").scale(this.scale, this.scale); + this._canvas.width = this.width * this.scale + this._canvas.height = this.height * this.scale + this._canvas.getContext('2d').scale(this.scale, this.scale) } Object.assign(Canvas.prototype, { getRawCanvas: function() { - return this._canvas; + return this._canvas }, getContext: function() { - return this._canvas.getContext("2d"); - } -}); + return this._canvas.getContext('2d') + }, +}) // PooledClass: // Be fairly conserative - we are potentially drawing a large number of medium // to large size images. -Canvas.poolSize = 30; +Canvas.poolSize = 30 -export default Canvas; +export default Canvas diff --git a/src/CanvasComponent.js b/src/CanvasComponent.js index cde3017..e073a1a 100644 --- a/src/CanvasComponent.js +++ b/src/CanvasComponent.js @@ -1,140 +1,141 @@ -import RenderLayer from "./RenderLayer"; -import { make } from "./FrameUtils"; -import * as EventTypes from "./EventTypes"; -import { emptyObject } from "./utils"; +import RenderLayer from './RenderLayer' +import { make } from './FrameUtils' +import * as EventTypes from './EventTypes' +import { emptyObject } from './utils' -let LAYER_GUID = 1; +let LAYER_GUID = 1 export default class CanvasComponent { constructor(type) { - this.type = type; - this.subscriptions = new Map(); - this.listeners = new Map(); - this.node = new RenderLayer(this); - this._layerId = LAYER_GUID++; + this.type = type + this.subscriptions = new Map() + this.listeners = new Map() + this.node = new RenderLayer(this) + this._layerId = LAYER_GUID++ } putEventListener = (type, listener) => { - const subscriptions = this.subscriptions; - const listeners = this.listeners; + const subscriptions = this.subscriptions + const listeners = this.listeners - let isListenerDifferent = false; + let isListenerDifferent = false if (listeners.get(type) !== listener) { - listeners.set(type, listener); - isListenerDifferent = true; + listeners.set(type, listener) + isListenerDifferent = true } if (listener) { // Add subscription if this is the first listener of the given type // or the new listener is different from the current listener. if (!subscriptions.has(type) || isListenerDifferent) { - subscriptions.set(type, this.node.subscribe(type, listener, this)); + subscriptions.set(type, this.node.subscribe(type, listener, this)) } } else { - const subscription = subscriptions.get(type); + const subscription = subscriptions.get(type) if (subscription) { - subscription(); - subscriptions.delete(type); + subscription() + subscriptions.delete(type) } } - }; + } destroyEventListeners = () => { - this.listeners.clear(); - this.subscriptions.clear(); - this.node.destroyEventListeners(); - }; + this.listeners.clear() + this.subscriptions.clear() + this.node.destroyEventListeners() + } setStyleFromProps = (layer, props) => { - let style = emptyObject; + let style = emptyObject if (props.style) { - style = props.style; - layer._originalStyle = style; + style = props.style + layer._originalStyle = style } else { - layer._originalStyle = null; + layer._originalStyle = null } if (!layer.frame) { - layer.frame = make(0, 0, 0, 0); + layer.frame = make(0, 0, 0, 0) } - const frame = layer.frame; - const l = style.left || 0; - const t = style.top || 0; - const w = style.width || 0; - const h = style.height || 0; + const frame = layer.frame + const l = style.left || 0 + const t = style.top || 0 + const w = style.width || 0 + const h = style.height || 0 - if (frame.x !== l) frame.x = l; - if (frame.y !== t) frame.y = t; - if (frame.width !== w) frame.width = w; - if (frame.height !== h) frame.height = h; + if (frame.x !== l) frame.x = l + if (frame.y !== t) frame.y = t + if (frame.width !== w) frame.width = w + if (frame.height !== h) frame.height = h // Common layer properties - if (layer.alpha !== style.alpha) layer.alpha = style.alpha; + if (layer.alpha !== style.alpha) layer.alpha = style.alpha if (layer.backgroundColor !== style.backgroundColor) - layer.backgroundColor = style.backgroundColor; + layer.backgroundColor = style.backgroundColor if (layer.borderColor !== style.borderColor) - layer.borderColor = style.borderColor; + layer.borderColor = style.borderColor if (layer.borderWidth !== style.borderWidth) - layer.borderWidth = style.borderWidth; + layer.borderWidth = style.borderWidth if (layer.borderRadius !== style.borderRadius) - layer.borderRadius = style.borderRadius; + layer.borderRadius = style.borderRadius - if (layer.clipRect !== style.clipRect) layer.clipRect = style.clipRect; + if (layer.clipRect !== style.clipRect) layer.clipRect = style.clipRect - if (layer.scale !== style.scale) layer.scale = style.scale; + if (layer.scale !== style.scale) layer.scale = style.scale if ( layer.translateX !== style.translateX || layer.translateY !== style.translateY ) { - layer.translateX = style.translateX; - layer.translateY = style.translateY; + layer.translateX = style.translateX + layer.translateY = style.translateY } - if (layer.zIndex !== style.zIndex) layer.zIndex = style.zIndex; + if (layer.zIndex !== style.zIndex) layer.zIndex = style.zIndex // Shadow if (layer.shadowColor !== style.shadowColor) - layer.shadowColor = style.shadowColor; + layer.shadowColor = style.shadowColor if (layer.shadowBlur !== style.shadowBlur) - layer.shadowBlur = style.shadowBlur; + layer.shadowBlur = style.shadowBlur if (layer.shadowOffsetX !== style.shadowOffsetX) - layer.shadowOffsetX = style.shadowOffsetX; + layer.shadowOffsetX = style.shadowOffsetX if (layer.shadowOffsetY !== style.shadowOffsetY) - layer.shadowOffsetY = style.shadowOffsetY; - }; + layer.shadowOffsetY = style.shadowOffsetY + } applyCommonLayerProps = (prevProps, props) => { - const layer = this.node; + const layer = this.node // Generate backing store ID as needed. if (props.useBackingStore && layer.backingStoreId !== this._layerId) { - layer.backingStoreId = this._layerId; + layer.backingStoreId = this._layerId } else if (!props.useBackingStore && layer.backingStoreId) { - layer.backingStoreId = null; + layer.backingStoreId = null } // Register events for (const type in EventTypes) { if (prevProps[type] !== props[type]) { + // eslint-disable-next-line no-console console.log(props[type], type) - this.putEventListener(EventTypes[type], props[type]); + this.putEventListener(EventTypes[type], props[type]) } } - this.setStyleFromProps(layer, props); - }; + this.setStyleFromProps(layer, props) + } - getLayer = () => this.node; + getLayer = () => this.node /** * Resets all the state on this CanvasComponent so it can be added to a pool for re-use. @@ -142,8 +143,8 @@ export default class CanvasComponent { * @return {RenderLayer} */ reset = () => { - this.destroyEventListeners(); - this._originalStyle = null; - this.node.reset(this); - }; + this.destroyEventListeners() + this._originalStyle = null + this.node.reset(this) + } } diff --git a/src/CanvasRenderer.js b/src/CanvasRenderer.js index d6d74a9..99241d8 100644 --- a/src/CanvasRenderer.js +++ b/src/CanvasRenderer.js @@ -1,100 +1,100 @@ -import React from "react"; -import invariant from "invariant"; -import { emptyObject } from "./utils"; -import Gradient from "./Gradient"; -import Text from "./Text"; -import Group from "./Group"; -import { RawImage } from "./Image"; -import ReactFiberReconciler from "react-reconciler"; -import CanvasComponent from "./CanvasComponent"; -import { getClosestInstanceFromNode } from "./ReactDOMComponentTree"; +import React from 'react' +import invariant from 'invariant' +import { emptyObject } from './utils' +import Gradient from './Gradient' +import Text from './Text' +import Group from './Group' +import { RawImage } from './Image' +import ReactFiberReconciler from 'react-reconciler' +import CanvasComponent from './CanvasComponent' +import { getClosestInstanceFromNode } from './ReactDOMComponentTree' import { unstable_now as now, unstable_shouldYield as shouldYield, unstable_scheduleCallback as scheduleDeferredCallback, - unstable_cancelCallback as cancelDeferredCallback -} from 'scheduler'; + unstable_cancelCallback as cancelDeferredCallback, +} from 'scheduler' -const UPDATE_SIGNAL = {}; -const MAX_POOLED_COMPONENTS_PER_TYPE = 1024; +const UPDATE_SIGNAL = {} +const MAX_POOLED_COMPONENTS_PER_TYPE = 1024 const componentConstructors = { Gradient: Gradient, Text: Text, Group: Group, - RawImage: RawImage -}; + RawImage: RawImage, +} -const componentPool = {}; +const componentPool = {} const freeComponentToPool = component => { - const type = component.type; + const type = component.type if (!(component.type in componentPool)) { - componentPool[type] = []; + componentPool[type] = [] } - const pool = componentPool[type]; + const pool = componentPool[type] if (pool.length < MAX_POOLED_COMPONENTS_PER_TYPE) { - pool.push(component); + pool.push(component) } -}; +} const freeComponentAndChildren = c => { - if (!(c instanceof CanvasComponent)) return; + if (!(c instanceof CanvasComponent)) return - const children = c.getLayer().children; + const children = c.getLayer().children for (let i = 0; i < children.length; i++) { - const childLayer = children[i]; - freeComponentAndChildren(childLayer.component); + const childLayer = children[i] + freeComponentAndChildren(childLayer.component) } - c.reset(); - freeComponentToPool(c); -}; + c.reset() + freeComponentToPool(c) +} const CanvasHostConfig = { appendInitialChild(parentInstance, child) { - if (typeof child === "string") { + if (typeof child === 'string') { // Noop for string children of Text (eg {'foo'}{'bar'}) - invariant(false, "Text children should already be flattened."); - return; + invariant(false, 'Text children should already be flattened.') + return } - child.getLayer().inject(parentInstance.getLayer()); + child.getLayer().inject(parentInstance.getLayer()) }, createInstance(type, props /*, internalInstanceHandle*/) { - let instance; + let instance - const pool = componentPool[type]; + const pool = componentPool[type] if (pool && pool.length > 0) { - instance = componentPool[type].pop(); + instance = componentPool[type].pop() } else { - instance = new componentConstructors[type](type); + instance = new componentConstructors[type](type) } - if (typeof instance.applyLayerProps !== "undefined") { - instance.applyLayerProps({}, props); - instance.getLayer().invalidateLayout(); + if (typeof instance.applyLayerProps !== 'undefined') { + instance.applyLayerProps({}, props) + instance.getLayer().invalidateLayout() } - return instance; + return instance }, createTextInstance(text /*, rootContainerInstance, internalInstanceHandle*/) { - return text; + return text }, finalizeInitialChildren(/*domElement, type, props*/) { - return false; + return false }, getPublicInstance(instance) { - return instance; + return instance }, prepareForCommit() { @@ -102,7 +102,7 @@ const CanvasHostConfig = { }, prepareUpdate(/*domElement, type, oldProps, newProps*/) { - return UPDATE_SIGNAL; + return UPDATE_SIGNAL }, resetAfterCommit() { @@ -114,15 +114,15 @@ const CanvasHostConfig = { }, shouldDeprioritizeSubtree(/*type, props*/) { - return false; + return false }, getRootHostContext() { - return emptyObject; + return emptyObject }, getChildHostContext() { - return emptyObject; + return emptyObject }, scheduleDeferredCallback, @@ -133,8 +133,8 @@ const CanvasHostConfig = { shouldSetTextContent(type, props) { return ( - typeof props.children === "string" || typeof props.children === "number" - ); + typeof props.children === 'string' || typeof props.children === 'number' + ) }, now, @@ -146,55 +146,55 @@ const CanvasHostConfig = { supportsMutation: true, appendChild(parentInstance, child) { - const childLayer = child.getLayer(); - const parentLayer = parentInstance.getLayer(); + const childLayer = child.getLayer() + const parentLayer = parentInstance.getLayer() if (childLayer.parentLayer === parentLayer) { - childLayer.moveToTop(); + childLayer.moveToTop() } else { - childLayer.inject(parentLayer); + childLayer.inject(parentLayer) } - parentLayer.invalidateLayout(); + parentLayer.invalidateLayout() }, appendChildToContainer(parentInstance, child) { - const childLayer = child.getLayer(); - const parentLayer = parentInstance.getLayer(); + const childLayer = child.getLayer() + const parentLayer = parentInstance.getLayer() if (childLayer.parentLayer === parentLayer) { - childLayer.moveToTop(); + childLayer.moveToTop() } else { - childLayer.inject(parentLayer); + childLayer.inject(parentLayer) } - parentLayer.invalidateLayout(); + parentLayer.invalidateLayout() }, insertBefore(parentInstance, child, beforeChild) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()); - parentLayer.invalidateLayout(); + const parentLayer = parentInstance.getLayer() + child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()) + parentLayer.invalidateLayout() }, insertInContainerBefore(parentInstance, child, beforeChild) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()); - parentLayer.invalidateLayout(); + const parentLayer = parentInstance.getLayer() + child.getLayer().injectBefore(parentLayer, beforeChild.getLayer()) + parentLayer.invalidateLayout() }, removeChild(parentInstance, child) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().remove(); - freeComponentAndChildren(child); - parentLayer.invalidateLayout(); + const parentLayer = parentInstance.getLayer() + child.getLayer().remove() + freeComponentAndChildren(child) + parentLayer.invalidateLayout() }, removeChildFromContainer(parentInstance, child) { - const parentLayer = parentInstance.getLayer(); - child.getLayer().remove(); - freeComponentAndChildren(child); - parentLayer.invalidateLayout(); + const parentLayer = parentInstance.getLayer() + child.getLayer().remove() + freeComponentAndChildren(child) + parentLayer.invalidateLayout() }, commitTextUpdate(/*textInstance, oldText, newText*/) { @@ -206,30 +206,27 @@ const CanvasHostConfig = { }, commitUpdate(instance, updatePayload, type, oldProps, newProps) { - if (typeof instance.applyLayerProps !== "undefined") { - instance.applyLayerProps(oldProps, newProps); - instance.getLayer().invalidateLayout(); + if (typeof instance.applyLayerProps !== 'undefined') { + instance.applyLayerProps(oldProps, newProps) + instance.getLayer().invalidateLayout() } - } -}; + }, +} -const CanvasRenderer = ReactFiberReconciler(CanvasHostConfig); +const CanvasRenderer = ReactFiberReconciler(CanvasHostConfig) CanvasRenderer.injectIntoDevTools({ findFiberByHostInstance: getClosestInstanceFromNode, - bundleType: process.env.NODE_ENV !== "production" ? 1 : 0, + bundleType: process.env.NODE_ENV !== 'production' ? 1 : 0, version: React.version || 16, - rendererPackageName: "react-canvas", + rendererPackageName: 'react-canvas', getInspectorDataForViewTag: (...args) => { - console.log(args); // eslint-disable-line no-console - } -}); + console.log(args) // eslint-disable-line no-console + }, +}) const registerComponentConstructor = (name, ctor) => { - componentConstructors[name] = ctor; -}; + componentConstructors[name] = ctor +} -export { - CanvasRenderer, - registerComponentConstructor -}; +export { CanvasRenderer, registerComponentConstructor } diff --git a/src/CanvasUtils.js b/src/CanvasUtils.js index 62e88c5..baaf619 100644 --- a/src/CanvasUtils.js +++ b/src/CanvasUtils.js @@ -1,5 +1,5 @@ -import clamp from "./clamp"; -import measureText from "./measureText"; +import clamp from './clamp' +import measureText from './measureText' /** * Draw an image into a . This operation requires that the image @@ -18,52 +18,52 @@ import measureText from "./measureText"; * {String} backgroundColor */ function drawImage(ctx, image, x, y, width, height, options) { - options = options || {}; + options = options || {} if (options.backgroundColor) { - ctx.save(); - ctx.fillStyle = options.backgroundColor; - ctx.fillRect(x, y, width, height); - ctx.restore(); + ctx.save() + ctx.fillStyle = options.backgroundColor + ctx.fillRect(x, y, width, height) + ctx.restore() } - let dx = 0; - let dy = 0; - let dw = 0; - let dh = 0; - let sx = 0; - let sy = 0; - let sw = 0; - let sh = 0; - let scale; - let focusPoint = options.focusPoint; + let dx = 0 + let dy = 0 + let dw = 0 + let dh = 0 + let sx = 0 + let sy = 0 + let sw = 0 + let sh = 0 + let scale + let focusPoint = options.focusPoint const actualSize = { width: image.getWidth(), - height: image.getHeight() - }; + height: image.getHeight(), + } - scale = Math.max(width / actualSize.width, height / actualSize.height) || 1; - scale = parseFloat(scale.toFixed(4), 10); + scale = Math.max(width / actualSize.width, height / actualSize.height) || 1 + scale = parseFloat(scale.toFixed(4), 10) const scaledSize = { width: actualSize.width * scale, - height: actualSize.height * scale - }; + height: actualSize.height * scale, + } if (focusPoint) { // Since image hints are relative to image "original" dimensions (original != actual), // use the original size for focal point cropping. if (options.originalHeight) { - focusPoint.x *= actualSize.height / options.originalHeight; - focusPoint.y *= actualSize.height / options.originalHeight; + focusPoint.x *= actualSize.height / options.originalHeight + focusPoint.y *= actualSize.height / options.originalHeight } } else { // Default focal point to [0.5, 0.5] focusPoint = { x: actualSize.width * 0.5, - y: actualSize.height * 0.5 - }; + y: actualSize.height * 0.5, + } } // Clip the image to rectangle (sx, sy, sw, sh). @@ -71,24 +71,24 @@ function drawImage(ctx, image, x, y, width, height, options) { Math.round( clamp(width * 0.5 - focusPoint.x * scale, width - scaledSize.width, 0) ) * - (-1 / scale); + (-1 / scale) sy = Math.round( clamp(height * 0.5 - focusPoint.y * scale, height - scaledSize.height, 0) ) * - (-1 / scale); - sw = Math.round(actualSize.width - sx * 2); - sh = Math.round(actualSize.height - sy * 2); + (-1 / scale) + sw = Math.round(actualSize.width - sx * 2) + sh = Math.round(actualSize.height - sy * 2) // Scale the image to dimensions (dw, dh). - dw = Math.round(width); - dh = Math.round(height); + dw = Math.round(width) + dh = Math.round(height) // Draw the image on the canvas at coordinates (dx, dy). - dx = Math.round(x); - dy = Math.round(y); + dx = Math.round(x) + dy = Math.round(y) - ctx.drawImage(image.getRawImage(), sx, sy, sw, sh, dx, dy, dw, dh); + ctx.drawImage(image.getRawImage(), sx, sy, sw, sh, dx, dy, dw, dh) } /** @@ -107,16 +107,16 @@ function drawImage(ctx, image, x, y, width, height, options) { * {String} backgroundColor */ function drawText(ctx, text, x, y, width, height, fontFace, _options) { - let currX = x; - let currY = y; - let currText; - const options = _options || {}; + let currX = x + let currY = y + let currText + const options = _options || {} - options.fontSize = options.fontSize || 16; - options.lineHeight = options.lineHeight || 18; - options.textAlign = options.textAlign || "left"; - options.backgroundColor = options.backgroundColor || "transparent"; - options.color = options.color || "#000"; + options.fontSize = options.fontSize || 16 + options.lineHeight = options.lineHeight || 18 + options.textAlign = options.textAlign || 'left' + options.backgroundColor = options.backgroundColor || 'transparent' + options.color = options.color || '#000' const textMetrics = measureText( text, @@ -124,58 +124,58 @@ function drawText(ctx, text, x, y, width, height, fontFace, _options) { fontFace, options.fontSize, options.lineHeight - ); + ) - ctx.save(); + ctx.save() // Draw the background - if (options.backgroundColor !== "transparent") { - ctx.fillStyle = options.backgroundColor; - ctx.fillRect(0, 0, width, height); + if (options.backgroundColor !== 'transparent') { + ctx.fillStyle = options.backgroundColor + ctx.fillRect(0, 0, width, height) } - ctx.fillStyle = options.color; + ctx.fillStyle = options.color ctx.font = fontFace.attributes.style + - " normal " + + ' normal ' + fontFace.attributes.weight + - " " + + ' ' + options.fontSize + - "px " + - fontFace.family; + 'px ' + + fontFace.family textMetrics.lines.forEach(function(line, index) { - currText = line.text; + currText = line.text currY = index === 0 ? y + options.fontSize - : y + options.fontSize + options.lineHeight * index; + : y + options.fontSize + options.lineHeight * index // Account for text-align: left|right|center switch (options.textAlign) { - case "center": - currX = x + width / 2 - line.width / 2; - break; - case "right": - currX = x + width - line.width; - break; + case 'center': + currX = x + width / 2 - line.width / 2 + break + case 'right': + currX = x + width - line.width + break default: - currX = x; + currX = x } if ( index < textMetrics.lines.length - 1 && options.fontSize + options.lineHeight * (index + 1) > height ) { - currText = currText.replace(/,?\s?\w+$/, "…"); + currText = currText.replace(/,?\s?\w+$/, '…') } if (currY <= height + y) { - ctx.fillText(currText, currX, currY); + ctx.fillText(currText, currX, currY) } - }); + }) - ctx.restore(); + ctx.restore() } /** @@ -193,16 +193,16 @@ function drawText(ctx, text, x, y, width, height, fontFace, _options) { * @param {Number} height how tall to fill */ function drawGradient(ctx, x1, y1, x2, y2, colorStops, x, y, width, height) { - ctx.save(); - const grad = ctx.createLinearGradient(x1, y1, x2, y2); + ctx.save() + const grad = ctx.createLinearGradient(x1, y1, x2, y2) colorStops.forEach(function(colorStop) { - grad.addColorStop(colorStop.position, colorStop.color); - }); + grad.addColorStop(colorStop.position, colorStop.color) + }) - ctx.fillStyle = grad; - ctx.fillRect(x, y, width, height); - ctx.restore(); + ctx.fillStyle = grad + ctx.fillRect(x, y, width, height) + ctx.restore() } -export { drawImage, drawText, drawGradient }; +export { drawImage, drawText, drawGradient } diff --git a/src/Core.js b/src/Core.js index 1df9eb8..e44a38f 100644 --- a/src/Core.js +++ b/src/Core.js @@ -1,8 +1,8 @@ const Core = { - Layer: "Layer", - Group: "Group", - Text: "Text", - Gradient: "Gradient" -}; + Layer: 'Layer', + Group: 'Group', + Text: 'Text', + Gradient: 'Gradient', +} -export default Core; +export default Core diff --git a/src/DrawingUtils.js b/src/DrawingUtils.js index d56a021..a8901cf 100644 --- a/src/DrawingUtils.js +++ b/src/DrawingUtils.js @@ -1,11 +1,11 @@ -import ImageCache from "./ImageCache"; -import { isFontLoaded } from "./FontUtils"; -import FontFace from "./FontFace"; -import { drawGradient, drawText, drawImage } from "./CanvasUtils"; -import Canvas from "./Canvas"; +import ImageCache from './ImageCache' +import { isFontLoaded } from './FontUtils' +import FontFace from './FontFace' +import { drawGradient, drawText, drawImage } from './CanvasUtils' +import Canvas from './Canvas' // Global backing store cache -let _backingStores = []; +let _backingStores = [] /** * Maintain a cache of backing for RenderLayer's which are accessible @@ -17,10 +17,10 @@ let _backingStores = []; function getBackingStore(id) { for (let i = 0, len = _backingStores.length; i < len; i++) { if (_backingStores[i].id === id) { - return _backingStores[i].canvas; + return _backingStores[i].canvas } } - return null; + return null } /** @@ -31,8 +31,8 @@ function getBackingStore(id) { function invalidateBackingStore(id) { for (let i = 0, len = _backingStores.length; i < len; i++) { if (_backingStores[i].id === id) { - _backingStores.splice(i, 1); - break; + _backingStores.splice(i, 1) + break } } } @@ -41,7 +41,7 @@ function invalidateBackingStore(id) { * Purge the entire backing store cache. */ function invalidateAllBackingStores() { - _backingStores = []; + _backingStores = [] } /** @@ -53,20 +53,20 @@ function invalidateAllBackingStores() { */ function layerContainsImage(layer, imageUrl) { // Check the layer itself. - if (layer.type === "image" && layer.imageUrl === imageUrl) { - return layer; + if (layer.type === 'image' && layer.imageUrl === imageUrl) { + return layer } // Check the layer's children. if (layer.children) { for (let i = 0, len = layer.children.length; i < len; i++) { if (layerContainsImage(layer.children[i], imageUrl)) { - return layer.children[i]; + return layer.children[i] } } } - return false; + return false } /** @@ -79,23 +79,23 @@ function layerContainsImage(layer, imageUrl) { function layerContainsFontFace(layer, fontFace) { // Check the layer itself. if ( - layer.type === "text" && + layer.type === 'text' && layer.fontFace && layer.fontFace.id === fontFace.id ) { - return layer; + return layer } // Check the layer's children. if (layer.children) { for (let i = 0, len = layer.children.length; i < len; i++) { if (layerContainsFontFace(layer.children[i], fontFace)) { - return layer.children[i]; + return layer.children[i] } } } - return false; + return false } /** @@ -107,9 +107,9 @@ function layerContainsFontFace(layer, fontFace) { function handleImageLoad(imageUrl) { _backingStores.forEach(function(backingStore) { if (layerContainsImage(backingStore.layer, imageUrl)) { - invalidateBackingStore(backingStore.id); + invalidateBackingStore(backingStore.id) } - }); + }) } /** @@ -121,9 +121,9 @@ function handleImageLoad(imageUrl) { function handleFontLoad(fontFace) { _backingStores.forEach(function(backingStore) { if (layerContainsFontFace(backingStore.layer, fontFace)) { - invalidateBackingStore(backingStore.id); + invalidateBackingStore(backingStore.id) } - }); + }) } /** @@ -134,76 +134,76 @@ function handleFontLoad(fontFace) { * @param {RenderLayer} layer */ function drawBaseRenderLayer(ctx, layer) { - const frame = layer.frame; + const frame = layer.frame // Border radius: if (layer.borderRadius) { - ctx.beginPath(); - ctx.moveTo(frame.x + layer.borderRadius, frame.y); + ctx.beginPath() + ctx.moveTo(frame.x + layer.borderRadius, frame.y) ctx.arcTo( frame.x + frame.width, frame.y, frame.x + frame.width, frame.y + frame.height, layer.borderRadius - ); + ) ctx.arcTo( frame.x + frame.width, frame.y + frame.height, frame.x, frame.y + frame.height, layer.borderRadius - ); + ) ctx.arcTo( frame.x, frame.y + frame.height, frame.x, frame.y, layer.borderRadius - ); + ) ctx.arcTo( frame.x, frame.y, frame.x + frame.width, frame.y, layer.borderRadius - ); - ctx.closePath(); + ) + ctx.closePath() // Create a clipping path when drawing an image or using border radius. - if (layer.type === "image") { - ctx.clip(); + if (layer.type === 'image') { + ctx.clip() } // Border with border radius: if (layer.borderColor) { - ctx.lineWidth = layer.borderWidth || 1; - ctx.strokeStyle = layer.borderColor; - ctx.stroke(); + ctx.lineWidth = layer.borderWidth || 1 + ctx.strokeStyle = layer.borderColor + ctx.stroke() } } // Border color (no border radius): if (layer.borderColor && !layer.borderRadius) { - ctx.lineWidth = layer.borderWidth || 1; - ctx.strokeStyle = layer.borderColor; - ctx.strokeRect(frame.x, frame.y, frame.width, frame.height); + ctx.lineWidth = layer.borderWidth || 1 + ctx.strokeStyle = layer.borderColor + ctx.strokeRect(frame.x, frame.y, frame.width, frame.height) } // Shadow: - ctx.shadowBlur = layer.shadowBlur; - ctx.shadowColor = layer.shadowColor; - ctx.shadowOffsetX = layer.shadowOffsetX; - ctx.shadowOffsetY = layer.shadowOffsetY; + ctx.shadowBlur = layer.shadowBlur + ctx.shadowColor = layer.shadowColor + ctx.shadowOffsetX = layer.shadowOffsetX + ctx.shadowOffsetY = layer.shadowOffsetY // Background color: if (layer.backgroundColor) { - ctx.fillStyle = layer.backgroundColor; + ctx.fillStyle = layer.backgroundColor if (layer.borderRadius) { // Fill the current path when there is a borderRadius set. - ctx.fill(); + ctx.fill() } else { - ctx.fillRect(frame.x, frame.y, frame.width, frame.height); + ctx.fillRect(frame.x, frame.y, frame.width, frame.height) } } } @@ -212,16 +212,16 @@ function drawBaseRenderLayer(ctx, layer) { * @private */ function drawImageRenderLayer(ctx, layer) { - drawBaseRenderLayer(ctx, layer); + drawBaseRenderLayer(ctx, layer) if (!layer.imageUrl) { - return; + return } // Don't draw until loaded - const image = ImageCache.get(layer.imageUrl); + const image = ImageCache.get(layer.imageUrl) if (!image.isLoaded()) { - return; + return } drawImage( @@ -231,21 +231,21 @@ function drawImageRenderLayer(ctx, layer) { layer.frame.y, layer.frame.width, layer.frame.height - ); + ) } /** * @private */ function drawTextRenderLayer(ctx, layer) { - drawBaseRenderLayer(ctx, layer); + drawBaseRenderLayer(ctx, layer) // Fallback to standard font. - const fontFace = layer.fontFace || FontFace.Default(); + const fontFace = layer.fontFace || FontFace.Default() // Don't draw text until loaded if (!isFontLoaded(fontFace)) { - return; + return } drawText( @@ -260,22 +260,22 @@ function drawTextRenderLayer(ctx, layer) { fontSize: layer.fontSize, lineHeight: layer.lineHeight, textAlign: layer.textAlign, - color: layer.color + color: layer.color, } - ); + ) } /** * @private */ function drawGradientRenderLayer(ctx, layer) { - drawBaseRenderLayer(ctx, layer); + drawBaseRenderLayer(ctx, layer) // Default to linear gradient from top to bottom. - const x1 = layer.x1 || layer.frame.x; - const y1 = layer.y1 || layer.frame.y; - const x2 = layer.x2 || layer.frame.x; - const y2 = layer.y2 || layer.frame.y + layer.frame.height; + const x1 = layer.x1 || layer.frame.x + const y1 = layer.y1 || layer.frame.y + const x2 = layer.x2 || layer.frame.x + const y2 = layer.y2 || layer.frame.y + layer.frame.height drawGradient( ctx, x1, @@ -287,65 +287,65 @@ function drawGradientRenderLayer(ctx, layer) { layer.frame.y, layer.frame.width, layer.frame.height - ); + ) } const layerTypesToDrawFunction = { image: drawImageRenderLayer, text: drawTextRenderLayer, gradient: drawGradientRenderLayer, - group: drawBaseRenderLayer -}; + group: drawBaseRenderLayer, +} function getDrawFunction(type) { return layerTypesToDrawFunction.hasOwnProperty(type) ? layerTypesToDrawFunction[type] - : drawBaseRenderLayer; + : drawBaseRenderLayer } function registerLayerType(type, drawFunction) { if (layerTypesToDrawFunction.hasOwnProperty(type)) { - throw new Error(`type ${type} already registered`); + throw new Error(`type ${type} already registered`) } - layerTypesToDrawFunction[type] = drawFunction; + layerTypesToDrawFunction[type] = drawFunction } /** * @private */ function sortByZIndexAscending(layerA, layerB) { - return (layerA.zIndex || 0) - (layerB.zIndex || 0); + return (layerA.zIndex || 0) - (layerB.zIndex || 0) } -let drawCacheableRenderLayer = null; -let drawRenderLayer = null; +let drawCacheableRenderLayer = null +let drawRenderLayer = null function drawChildren(layer, ctx) { - const children = layer.children; - if (children.length === 0) return; + const children = layer.children + if (children.length === 0) return // Opimization if (children.length === 1) { - drawRenderLayer(ctx, children[0]); + drawRenderLayer(ctx, children[0]) } else if (children.length === 2) { - const c0 = children[0]; - const c1 = children[1]; + const c0 = children[0] + const c1 = children[1] if (c0.zIndex < c1.zIndex) { - drawRenderLayer(ctx, c0); - drawRenderLayer(ctx, c1); + drawRenderLayer(ctx, c0) + drawRenderLayer(ctx, c1) } else { - drawRenderLayer(ctx, c1); - drawRenderLayer(ctx, c0); + drawRenderLayer(ctx, c1) + drawRenderLayer(ctx, c0) } } else { children .slice() .sort(sortByZIndexAscending) .forEach(function(childLayer) { - drawRenderLayer(ctx, childLayer); - }); + drawRenderLayer(ctx, childLayer) + }) } } @@ -356,11 +356,11 @@ function drawChildren(layer, ctx) { * @param {RenderLayer} layer */ drawRenderLayer = (ctx, layer) => { - const drawFunction = getDrawFunction(layer.type); + const drawFunction = getDrawFunction(layer.type) // Performance: avoid drawing hidden layers. - if (typeof layer.alpha === "number" && layer.alpha <= 0) { - return; + if (typeof layer.alpha === 'number' && layer.alpha <= 0) { + return } // Establish drawing context for certain properties: @@ -368,44 +368,44 @@ drawRenderLayer = (ctx, layer) => { // - translate const saveContext = (layer.alpha !== null && layer.alpha < 1) || - (layer.translateX || layer.translateY); + (layer.translateX || layer.translateY) if (saveContext) { - ctx.save(); + ctx.save() // Alpha: if (layer.alpha !== null && layer.alpha < 1) { - ctx.globalAlpha = layer.alpha; + ctx.globalAlpha = layer.alpha } // Translation: if (layer.translateX || layer.translateY) { - ctx.translate(layer.translateX || 0, layer.translateY || 0); + ctx.translate(layer.translateX || 0, layer.translateY || 0) } } // If the layer is bitmap-cacheable, draw in a pooled off-screen canvas. // We disable backing stores on pad since we flip there. if (layer.backingStoreId) { - drawCacheableRenderLayer(ctx, layer, drawFunction); + drawCacheableRenderLayer(ctx, layer, drawFunction) } else { - ctx.save(); + ctx.save() // Draw - drawFunction && drawFunction(ctx, layer); - ctx.restore(); + drawFunction && drawFunction(ctx, layer) + ctx.restore() // Draw child layers, sorted by their z-index. if (layer.children) { - drawChildren(layer, ctx); + drawChildren(layer, ctx) } } // Pop the context state if we established a new drawing context. if (saveContext) { - ctx.restore(); + ctx.restore() } -}; +} /** * Draw a bitmap-cacheable layer into a pooled . The result will be @@ -419,87 +419,77 @@ drawRenderLayer = (ctx, layer) => { */ drawCacheableRenderLayer = (ctx, layer, drawFunction) => { // See if there is a pre-drawn canvas in the pool. - let backingStore = getBackingStore(layer.backingStoreId); - const backingStoreScale = layer.scale || window.devicePixelRatio; - const frameOffsetY = layer.frame.y; - const frameOffsetX = layer.frame.x; - let backingContext; + let backingStore = getBackingStore(layer.backingStoreId) + const backingStoreScale = layer.scale || window.devicePixelRatio + const frameOffsetY = layer.frame.y + const frameOffsetX = layer.frame.x + let backingContext if (!backingStore) { if (_backingStores.length >= Canvas.poolSize) { // Re-use the oldest backing store once we reach the pooling limit. - backingStore = _backingStores[0].canvas; + backingStore = _backingStores[0].canvas Canvas.call( backingStore, layer.frame.width, layer.frame.height, backingStoreScale - ); + ) // Move the re-use canvas to the front of the queue. - _backingStores[0].id = layer.backingStoreId; - _backingStores[0].canvas = backingStore; - _backingStores.push(_backingStores.shift()); + _backingStores[0].id = layer.backingStoreId + _backingStores[0].canvas = backingStore + _backingStores.push(_backingStores.shift()) } else { // Create a new backing store, we haven't yet reached the pooling limit backingStore = new Canvas( layer.frame.width, layer.frame.height, backingStoreScale - ); + ) _backingStores.push({ id: layer.backingStoreId, layer: layer, - canvas: backingStore - }); + canvas: backingStore, + }) } // Draw into the backing at (0, 0) - we will later use the // to draw the layer as an image at the proper coordinates. - backingContext = backingStore.getContext("2d"); - layer.translate(-frameOffsetX, -frameOffsetY); + backingContext = backingStore.getContext('2d') + layer.translate(-frameOffsetX, -frameOffsetY) // Draw default properties, such as background color. - backingContext.save(); + backingContext.save() // Custom drawing operations - drawFunction && drawFunction(backingContext, layer); - backingContext.restore(); + drawFunction && drawFunction(backingContext, layer) + backingContext.restore() // Draw child layers, sorted by their z-index. if (layer.children) { - drawChildren(layer, backingContext); + drawChildren(layer, backingContext) } // Restore layer's original frame. - layer.translate(frameOffsetX, frameOffsetY); + layer.translate(frameOffsetX, frameOffsetY) } // We have the pre-rendered canvas ready, draw it into the destination canvas. if (layer.clipRect) { // Fill the clipping rect in the destination canvas. - const sx = (layer.clipRect.x - layer.frame.x) * backingStoreScale; - const sy = (layer.clipRect.y - layer.frame.y) * backingStoreScale; - const sw = layer.clipRect.width * backingStoreScale; - const sh = layer.clipRect.height * backingStoreScale; - const dx = layer.clipRect.x; - const dy = layer.clipRect.y; - const dw = layer.clipRect.width; - const dh = layer.clipRect.height; + const sx = (layer.clipRect.x - layer.frame.x) * backingStoreScale + const sy = (layer.clipRect.y - layer.frame.y) * backingStoreScale + const sw = layer.clipRect.width * backingStoreScale + const sh = layer.clipRect.height * backingStoreScale + const dx = layer.clipRect.x + const dy = layer.clipRect.y + const dw = layer.clipRect.width + const dh = layer.clipRect.height // No-op for zero size rects. iOS / Safari will throw an exception. if (sw > 0 && sh > 0) { - ctx.drawImage( - backingStore.getRawCanvas(), - sx, - sy, - sw, - sh, - dx, - dy, - dw, - dh - ); + ctx.drawImage(backingStore.getRawCanvas(), sx, sy, sw, sh, dx, dy, dw, dh) } } else { // Fill the entire canvas @@ -509,9 +499,9 @@ drawCacheableRenderLayer = (ctx, layer, drawFunction) => { layer.frame.y, layer.frame.width, layer.frame.height - ); + ) } -}; +} export { drawBaseRenderLayer, @@ -522,5 +512,5 @@ export { handleFontLoad, layerContainsImage, layerContainsFontFace, - registerLayerType -}; + registerLayerType, +} diff --git a/src/Easing.js b/src/Easing.js index 63ca108..bffa43b 100644 --- a/src/Easing.js +++ b/src/Easing.js @@ -2,31 +2,31 @@ // https://gist.github.com/gre/1650294 function linear(t) { - return t; + return t } function easeInQuad(t) { - return Math.pow(t, 2); + return Math.pow(t, 2) } function easeOutQuad(t) { - return t * (2 - t); + return t * (2 - t) } function easeInOutQuad(t) { - return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; + return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t } function easeInCubic(t) { - return t * t * t; + return t * t * t } function easeOutCubic(t) { - return --t * t * t + 1; + return --t * t * t + 1 } function easeInOutCubic(t) { - return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; + return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1 } export { @@ -36,5 +36,5 @@ export { easeInOutQuad, easeInCubic, easeOutCubic, - easeInOutCubic -}; + easeInOutCubic, +} diff --git a/src/EventTypes.js b/src/EventTypes.js index 5168c3f..95c3550 100755 --- a/src/EventTypes.js +++ b/src/EventTypes.js @@ -1,17 +1,17 @@ // Supported events that RenderLayer's can subscribe to. -const onTouchStart = "touchstart"; -const onTouchMove = "touchmove"; -const onTouchEnd = "touchend"; -const onTouchCancel = "touchcancel"; -const onMouseDown = "mousedown"; -const onMouseUp = "mouseup"; -const onMouseMove = "mousemove"; -const onMouseOver = "mouseover"; -const onMouseOut = "mouseout"; -const onClick = "click"; -const onContextMenu = "contextmenu"; -const onDoubleClick = "dblclick"; +const onTouchStart = 'touchstart' +const onTouchMove = 'touchmove' +const onTouchEnd = 'touchend' +const onTouchCancel = 'touchcancel' +const onMouseDown = 'mousedown' +const onMouseUp = 'mouseup' +const onMouseMove = 'mousemove' +const onMouseOver = 'mouseover' +const onMouseOut = 'mouseout' +const onClick = 'click' +const onContextMenu = 'contextmenu' +const onDoubleClick = 'dblclick' export { onTouchStart, @@ -25,5 +25,5 @@ export { onMouseOut, onClick, onContextMenu, - onDoubleClick -}; + onDoubleClick, +} diff --git a/src/FontFace.js b/src/FontFace.js index 62b26cc..cff1e9c 100644 --- a/src/FontFace.js +++ b/src/FontFace.js @@ -1,18 +1,18 @@ -import MultiKeyCache from "multi-key-cache"; -const _fontFaces = new MultiKeyCache(); +import MultiKeyCache from 'multi-key-cache' +const _fontFaces = new MultiKeyCache() /** * @internal */ function getCacheKey(family, url, attributes) { - const cacheKey = [family, url]; + const cacheKey = [family, url] for (const entry of Object.entries(attributes)) { - cacheKey.push(entry[0]); - cacheKey.push(entry[1]); + cacheKey.push(entry[0]) + cacheKey.push(entry[1]) } - return cacheKey; + return cacheKey } /** @@ -22,25 +22,25 @@ function getCacheKey(family, url, attributes) { * @return {Object} */ function FontFace(family, url, attributes) { - let fontFace; + let fontFace - attributes = attributes || {}; - attributes.style = attributes.style || "normal"; - attributes.weight = attributes.weight || 400; + attributes = attributes || {} + attributes.style = attributes.style || 'normal' + attributes.weight = attributes.weight || 400 - const cacheKey = getCacheKey(family, url, attributes); - fontFace = _fontFaces.get(cacheKey); + const cacheKey = getCacheKey(family, url, attributes) + fontFace = _fontFaces.get(cacheKey) if (!fontFace) { - fontFace = {}; - fontFace.id = JSON.stringify(cacheKey); - fontFace.family = family; - fontFace.url = url; - fontFace.attributes = attributes; - _fontFaces.set(cacheKey, fontFace); + fontFace = {} + fontFace.id = JSON.stringify(cacheKey) + fontFace.family = family + fontFace.url = url + fontFace.attributes = attributes + _fontFaces.set(cacheKey, fontFace) } - return fontFace; + return fontFace } /** @@ -50,7 +50,7 @@ function FontFace(family, url, attributes) { * @return {FontFace} */ FontFace.Default = function(fontWeight) { - return FontFace("sans-serif", null, { weight: fontWeight }); -}; + return FontFace('sans-serif', null, { weight: fontWeight }) +} -export default FontFace; +export default FontFace diff --git a/src/FontUtils.js b/src/FontUtils.js index 819dc6f..fc0dd92 100644 --- a/src/FontUtils.js +++ b/src/FontUtils.js @@ -1,9 +1,9 @@ -const _useNativeImpl = typeof window.FontFace !== "undefined"; -const _pendingFonts = {}; -const _loadedFonts = {}; -const _failedFonts = {}; +const _useNativeImpl = typeof window.FontFace !== 'undefined' +const _pendingFonts = {} +const _loadedFonts = {} +const _failedFonts = {} -const kFontLoadTimeout = 3000; +const kFontLoadTimeout = 3000 /** * Helper method for created a hidden with a given font. @@ -12,20 +12,20 @@ const kFontLoadTimeout = 3000; * @internal */ function createTestNode(family, attributes) { - const span = document.createElement("span"); - span.setAttribute("data-fontfamily", family); + const span = document.createElement('span') + span.setAttribute('data-fontfamily', family) span.style.cssText = - "position:absolute; left:-5000px; top:-5000px; visibility:hidden;" + + 'position:absolute; left:-5000px; top:-5000px; visibility:hidden;' + 'font-size:100px; font-family:"' + family + '", Helvetica;font-weight: ' + attributes.weight + - ";" + - "font-style:" + + ';' + + 'font-style:' + attributes.style + - ";"; - span.innerHTML = "BESs"; - return span; + ';' + span.innerHTML = 'BESs' + return span } /** @@ -33,30 +33,30 @@ function createTestNode(family, attributes) { */ function handleFontLoad(fontFace, timeout) { const error = timeout - ? "Exceeded load timeout of " + kFontLoadTimeout + "ms" - : null; + ? 'Exceeded load timeout of ' + kFontLoadTimeout + 'ms' + : null if (!error) { - _loadedFonts[fontFace.id] = true; + _loadedFonts[fontFace.id] = true } else { - _failedFonts[fontFace.id] = error; + _failedFonts[fontFace.id] = error } // Execute pending callbacks. _pendingFonts[fontFace.id].callbacks.forEach(function(callback) { - callback(error); - }); + callback(error) + }) // Clean up DOM if (_pendingFonts[fontFace.id].defaultNode) { - document.body.removeChild(_pendingFonts[fontFace.id].defaultNode); + document.body.removeChild(_pendingFonts[fontFace.id].defaultNode) } if (_pendingFonts[fontFace.id].testNode) { - document.body.removeChild(_pendingFonts[fontFace.id].testNode); + document.body.removeChild(_pendingFonts[fontFace.id].testNode) } // Clean up waiting queue - delete _pendingFonts[fontFace.id]; + delete _pendingFonts[fontFace.id] } /** @@ -66,7 +66,7 @@ function handleFontLoad(fontFace, timeout) { */ function isFontLoaded(fontFace) { // For remote URLs, check the cache. System fonts (sans url) assume loaded. - return _loadedFonts[fontFace.id] !== undefined || !fontFace.url; + return _loadedFonts[fontFace.id] !== undefined || !fontFace.url } /** @@ -77,61 +77,61 @@ function isFontLoaded(fontFace) { function loadFontNormal(fontFace, callback) { // See if we've previously loaded it. if (_loadedFonts[fontFace.id]) { - return callback(null); + return callback(null) } // See if we've previously failed to load it. if (_failedFonts[fontFace.id]) { - return callback(_failedFonts[fontFace.id]); + return callback(_failedFonts[fontFace.id]) } // System font: assume already loaded. if (!fontFace.url) { - return callback(null); + return callback(null) } // Font load is already in progress: if (_pendingFonts[fontFace.id]) { - _pendingFonts[fontFace.id].callbacks.push(callback); - return; + _pendingFonts[fontFace.id].callbacks.push(callback) + return } // Create the test 's for measuring. - const defaultNode = createTestNode("Helvetica", fontFace.attributes); - const testNode = createTestNode(fontFace.family, fontFace.attributes); - document.body.appendChild(testNode); - document.body.appendChild(defaultNode); + const defaultNode = createTestNode('Helvetica', fontFace.attributes) + const testNode = createTestNode(fontFace.family, fontFace.attributes) + document.body.appendChild(testNode) + document.body.appendChild(defaultNode) _pendingFonts[fontFace.id] = { startTime: Date.now(), defaultNode: defaultNode, testNode: testNode, - callbacks: [callback] - }; + callbacks: [callback], + } // Font watcher const checkFont = function() { - const currWidth = testNode.getBoundingClientRect().width; - const defaultWidth = defaultNode.getBoundingClientRect().width; - const loaded = currWidth !== defaultWidth; + const currWidth = testNode.getBoundingClientRect().width + const defaultWidth = defaultNode.getBoundingClientRect().width + const loaded = currWidth !== defaultWidth if (loaded) { - handleFontLoad(fontFace, null); + handleFontLoad(fontFace, null) } else { // Timeout? if ( Date.now() - _pendingFonts[fontFace.id].startTime >= kFontLoadTimeout ) { - handleFontLoad(fontFace, true); + handleFontLoad(fontFace, true) } else { - requestAnimationFrame(checkFont); + requestAnimationFrame(checkFont) } } - }; + } // Start watching - checkFont(); + checkFont() } // Internal @@ -144,49 +144,49 @@ function loadFontNormal(fontFace, callback) { function loadFontNative(fontFace, callback) { // See if we've previously loaded it. if (_loadedFonts[fontFace.id]) { - return callback(null); + return callback(null) } // See if we've previously failed to load it. if (_failedFonts[fontFace.id]) { - return callback(_failedFonts[fontFace.id]); + return callback(_failedFonts[fontFace.id]) } // System font: assume it's installed. if (!fontFace.url) { - return callback(null); + return callback(null) } // Font load is already in progress: if (_pendingFonts[fontFace.id]) { - _pendingFonts[fontFace.id].callbacks.push(callback); - return; + _pendingFonts[fontFace.id].callbacks.push(callback) + return } _pendingFonts[fontFace.id] = { startTime: Date.now(), - callbacks: [callback] - }; + callbacks: [callback], + } // Use font loader API const theFontFace = new window.FontFace( fontFace.family, - "url(" + fontFace.url + ")", + 'url(' + fontFace.url + ')', fontFace.attributes - ); + ) theFontFace.load().then( function() { - _loadedFonts[fontFace.id] = true; - callback(null); + _loadedFonts[fontFace.id] = true + callback(null) }, function(err) { - _failedFonts[fontFace.id] = err; - callback(err); + _failedFonts[fontFace.id] = err + callback(err) } - ); + ) } -const loadFont = _useNativeImpl ? loadFontNative : loadFontNormal; +const loadFont = _useNativeImpl ? loadFontNative : loadFontNormal -export { isFontLoaded, loadFont }; +export { isFontLoaded, loadFont } diff --git a/src/FrameUtils.js b/src/FrameUtils.js index 2ec07f6..d0516f8 100644 --- a/src/FrameUtils.js +++ b/src/FrameUtils.js @@ -1,8 +1,8 @@ function Frame(x, y, width, height) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; + this.x = x + this.y = y + this.width = width + this.height = height } /** @@ -15,7 +15,7 @@ function Frame(x, y, width, height) { * @return {Frame} */ function make(x, y, width, height) { - return new Frame(x, y, width, height); + return new Frame(x, y, width, height) } /** @@ -24,7 +24,7 @@ function make(x, y, width, height) { * @return {Frame} */ function zero() { - return make(0, 0, 0, 0); + return make(0, 0, 0, 0) } /** @@ -34,7 +34,7 @@ function zero() { * @return {Frame} */ function clone(frame) { - return make(frame.x, frame.y, frame.width, frame.height); + return make(frame.x, frame.y, frame.width, frame.height) } /** @@ -49,25 +49,25 @@ function clone(frame) { * @return {Frame} */ function inset(frame, top, right, bottom, left) { - const frameCopy = clone(frame); + const frameCopy = clone(frame) // inset(myFrame, 10, 0) => inset(myFrame, 10, 0, 10, 0) - if (typeof bottom === "undefined") { - bottom = top; - left = right; + if (typeof bottom === 'undefined') { + bottom = top + left = right } // inset(myFrame, 10) => inset(myFrame, 10, 10, 10, 10) - if (typeof right === "undefined") { - right = bottom = left = top; + if (typeof right === 'undefined') { + right = bottom = left = top } - frameCopy.x += left; - frameCopy.y += top; - frameCopy.height -= top + bottom; - frameCopy.width -= left + right; + frameCopy.x += left + frameCopy.y += top + frameCopy.height -= top + bottom + frameCopy.width -= left + right - return frameCopy; + return frameCopy } /** @@ -78,20 +78,17 @@ function inset(frame, top, right, bottom, left) { * @return {Frame} */ function intersection(frame, otherFrame) { - const x = Math.max(frame.x, otherFrame.x); - const width = Math.min( - frame.x + frame.width, - otherFrame.x + otherFrame.width - ); - const y = Math.max(frame.y, otherFrame.y); + const x = Math.max(frame.x, otherFrame.x) + const width = Math.min(frame.x + frame.width, otherFrame.x + otherFrame.width) + const y = Math.max(frame.y, otherFrame.y) const height = Math.min( frame.y + frame.height, otherFrame.y + otherFrame.height - ); + ) if (width >= x && height >= y) { - return make(x, y, width - x, height - y); + return make(x, y, width - x, height - y) } - return null; + return null } /** @@ -102,11 +99,11 @@ function intersection(frame, otherFrame) { * @return {Frame} */ function union(frame, otherFrame) { - const x1 = Math.min(frame.x, otherFrame.x); - const x2 = Math.max(frame.x + frame.width, otherFrame.x + otherFrame.width); - const y1 = Math.min(frame.y, otherFrame.y); - const y2 = Math.max(frame.y + frame.height, otherFrame.y + otherFrame.height); - return make(x1, y1, x2 - x1, y2 - y1); + const x1 = Math.min(frame.x, otherFrame.x) + const x2 = Math.max(frame.x + frame.width, otherFrame.x + otherFrame.width) + const y1 = Math.min(frame.y, otherFrame.y) + const y2 = Math.max(frame.y + frame.height, otherFrame.y + otherFrame.height) + return make(x1, y1, x2 - x1, y2 - y1) } /** @@ -122,7 +119,7 @@ function intersects(frame, otherFrame) { otherFrame.x + otherFrame.width < frame.x || otherFrame.y > frame.y + frame.height || otherFrame.y + otherFrame.height < frame.y - ); + ) } -export { make, zero, clone, inset, intersection, intersects, union }; +export { make, zero, clone, inset, intersection, intersects, union } diff --git a/src/Gradient.js b/src/Gradient.js index c7100f2..96566de 100644 --- a/src/Gradient.js +++ b/src/Gradient.js @@ -1,23 +1,23 @@ -import CanvasComponent from "./CanvasComponent"; +import CanvasComponent from './CanvasComponent' -const LAYER_TYPE = "gradient"; +const LAYER_TYPE = 'gradient' class Gradient extends CanvasComponent { - displayName = "Gradient"; + displayName = 'Gradient' applyLayerProps = (prevProps, props) => { - const layer = this.node; + const layer = this.node if (layer.type !== LAYER_TYPE) { - layer.type = LAYER_TYPE; + layer.type = LAYER_TYPE } if (layer.colorStops !== props.colorStops) { - layer.colorStops = props.colorStops || []; + layer.colorStops = props.colorStops || [] } - this.applyCommonLayerProps(prevProps, props); - }; + this.applyCommonLayerProps(prevProps, props) + } } -export default Gradient; +export default Gradient diff --git a/src/Group.js b/src/Group.js index 9bb91e0..0d473b4 100644 --- a/src/Group.js +++ b/src/Group.js @@ -1,21 +1,21 @@ -import CanvasComponent from "./CanvasComponent"; +import CanvasComponent from './CanvasComponent' -const LAYER_TYPE = "group"; +const LAYER_TYPE = 'group' class Group extends CanvasComponent { applyLayerProps = (prevProps, props) => { - const layer = this.node; + const layer = this.node if (layer.type !== LAYER_TYPE) { - layer.type = LAYER_TYPE; + layer.type = LAYER_TYPE } - this.applyCommonLayerProps(prevProps, props); - }; + this.applyCommonLayerProps(prevProps, props) + } render() { - return []; + return [] } } -export default Group; +export default Group diff --git a/src/Image.js b/src/Image.js index bdf8be5..2b574d4 100644 --- a/src/Image.js +++ b/src/Image.js @@ -1,32 +1,32 @@ -import React from "react"; -import PropTypes from "prop-types"; -import CanvasComponent from "./CanvasComponent"; -import Core from "./Core"; -import ImageCache from "./ImageCache"; -import { easeInCubic } from "./Easing"; -import clamp from "./clamp"; +import React from 'react' +import PropTypes from 'prop-types' +import CanvasComponent from './CanvasComponent' +import Core from './Core' +import ImageCache from './ImageCache' +import { easeInCubic } from './Easing' +import clamp from './clamp' -const RawImageName = "RawImage"; -const { Group } = Core; +const RawImageName = 'RawImage' +const { Group } = Core -const FADE_DURATION = 200; +const FADE_DURATION = 200 -const LAYER_TYPE = "image"; +const LAYER_TYPE = 'image' export class RawImage extends CanvasComponent { applyLayerProps = (prevProps, props) => { - const layer = this.node; + const layer = this.node if (layer.type !== LAYER_TYPE) { - layer.type = LAYER_TYPE; + layer.type = LAYER_TYPE } if (layer.imageUrl !== props.src) { - layer.imageUrl = props.src; + layer.imageUrl = props.src } - this.applyCommonLayerProps(prevProps, props); - }; + this.applyCommonLayerProps(prevProps, props) + } } export default class Image extends React.Component { @@ -35,65 +35,62 @@ export default class Image extends React.Component { style: PropTypes.object, useBackingStore: PropTypes.bool, fadeIn: PropTypes.bool, - fadeInDuration: PropTypes.number - }; + fadeInDuration: PropTypes.number, + } constructor(props) { - super(props); - const loaded = ImageCache.get(props.src).isLoaded(); + super(props) + const loaded = ImageCache.get(props.src).isLoaded() this.state = { loaded: loaded, - imageAlpha: loaded ? 1 : 0 - }; + imageAlpha: loaded ? 1 : 0, + } } componentDidMount() { - ImageCache.get(this.props.src).on("load", this.handleImageLoad); + ImageCache.get(this.props.src).on('load', this.handleImageLoad) } componentWillUnmount() { if (this._pendingAnimationFrame) { - cancelAnimationFrame(this._pendingAnimationFrame); - this._pendingAnimationFrame = null; + cancelAnimationFrame(this._pendingAnimationFrame) + this._pendingAnimationFrame = null } - ImageCache.get(this.props.src).removeListener("load", this.handleImageLoad); + ImageCache.get(this.props.src).removeListener('load', this.handleImageLoad) } componentDidUpdate(prevProps) { if (this.props.src !== prevProps.src) { - ImageCache.get(prevProps.src).removeListener( - "load", - this.handleImageLoad - ); - ImageCache.get(this.props.src).on("load", this.handleImageLoad); - const loaded = ImageCache.get(this.props.src).isLoaded(); - this.setState({ loaded: loaded }); + ImageCache.get(prevProps.src).removeListener('load', this.handleImageLoad) + ImageCache.get(this.props.src).on('load', this.handleImageLoad) + const loaded = ImageCache.get(this.props.src).isLoaded() + this.setState({ loaded: loaded }) } if (this.rawImageRef) { - this.rawImageRef.getLayer().invalidateLayout(); + this.rawImageRef.getLayer().invalidateLayout() } } - setRawImageRef = ref => (this.rawImageRef = ref); - setGroupRef = ref => (this.groupRef = ref); + setRawImageRef = ref => (this.rawImageRef = ref) + setGroupRef = ref => (this.groupRef = ref) render() { - const imageStyle = Object.assign({}, this.props.style); - const style = Object.assign({}, this.props.style); - const backgroundStyle = Object.assign({}, this.props.style); + const imageStyle = Object.assign({}, this.props.style) + const style = Object.assign({}, this.props.style) + const backgroundStyle = Object.assign({}, this.props.style) const useBackingStore = this.state.loaded ? this.props.useBackingStore - : false; + : false // Hide the image until loaded. - imageStyle.alpha = this.state.imageAlpha; + imageStyle.alpha = this.state.imageAlpha // Hide opaque background if image loaded so that images with transparent // do not render on top of solid color. - style.backgroundColor = imageStyle.backgroundColor = null; - backgroundStyle.alpha = clamp(1 - this.state.imageAlpha, 0, 1); + style.backgroundColor = imageStyle.backgroundColor = null + backgroundStyle.alpha = clamp(1 - this.state.imageAlpha, 0, 1) return ( @@ -106,32 +103,32 @@ export default class Image extends React.Component { useBackingStore={useBackingStore} /> - ); + ) } handleImageLoad = () => { - let imageAlpha = 1; + let imageAlpha = 1 if (this.props.fadeIn) { - imageAlpha = 0; - this._animationStartTime = Date.now(); + imageAlpha = 0 + this._animationStartTime = Date.now() this._pendingAnimationFrame = requestAnimationFrame( this.stepThroughAnimation - ); + ) } - this.setState({ loaded: true, imageAlpha: imageAlpha }); - }; + this.setState({ loaded: true, imageAlpha: imageAlpha }) + } stepThroughAnimation = () => { - const fadeInDuration = this.props.fadeInDuration || FADE_DURATION; + const fadeInDuration = this.props.fadeInDuration || FADE_DURATION let alpha = easeInCubic( (Date.now() - this._animationStartTime) / fadeInDuration - ); - alpha = clamp(alpha, 0, 1); - this.setState({ imageAlpha: alpha }); + ) + alpha = clamp(alpha, 0, 1) + this.setState({ imageAlpha: alpha }) if (alpha < 1) { this._pendingAnimationFrame = requestAnimationFrame( this.stepThroughAnimation - ); + ) } - }; + } } diff --git a/src/ImageCache.js b/src/ImageCache.js index bebb945..910d317 100644 --- a/src/ImageCache.js +++ b/src/ImageCache.js @@ -1,22 +1,22 @@ -import EventEmitter from "events"; +import EventEmitter from 'events' -const NOOP = function() {}; +const NOOP = function() {} function Img(src) { - this._originalSrc = src; - this._img = new Image(); - this._img.onload = this.emit.bind(this, "load"); - this._img.onerror = this.emit.bind(this, "error"); - this._img.crossOrigin = true; - this._img.src = src; + this._originalSrc = src + this._img = new Image() + this._img.onload = this.emit.bind(this, 'load') + this._img.onerror = this.emit.bind(this, 'error') + this._img.crossOrigin = true + this._img.src = src // The default impl of events emitter will throw on any 'error' event unless // there is at least 1 handler. Logging anything in this case is unnecessary // since the browser console will log it too. - this.on("error", NOOP); + this.on('error', NOOP) // Default is just 10. - this.setMaxListeners(100); + this.setMaxListeners(100) } Object.assign(Img.prototype, EventEmitter.prototype, { @@ -25,7 +25,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { */ destructor: function() { // Make sure we aren't leaking callbacks. - this.removeAllListeners(); + this.removeAllListeners() }, /** @@ -34,7 +34,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * @return {String} */ getOriginalSrc: function() { - return this._originalSrc; + return this._originalSrc }, /** @@ -43,7 +43,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * @return {HTMLImageElement} */ getRawImage: function() { - return this._img; + return this._img }, /** @@ -52,7 +52,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * @return {Number} */ getWidth: function() { - return this._img.naturalWidth; + return this._img.naturalWidth }, /** @@ -61,18 +61,18 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * @return {Number} */ getHeight: function() { - return this._img.naturalHeight; + return this._img.naturalHeight }, /** * @return {Bool} */ isLoaded: function() { - return this._img.naturalHeight > 0; - } -}); + return this._img.naturalHeight > 0 + }, +}) -const kInstancePoolLength = 300; +const kInstancePoolLength = 300 const _instancePool = { length: 0, @@ -81,57 +81,57 @@ const _instancePool = { // Push with 0 frequency push: function(hash, data) { - this.length++; + this.length++ this.elements[hash] = { hash: hash, // Helps identifying freq: 0, - data: data - }; + data: data, + } }, get: function(path) { - const element = this.elements[path]; + const element = this.elements[path] if (element) { - element.freq++; - return element.data; + element.freq++ + return element.data } - return null; + return null }, // used to explicitely remove the path removeElement: function(path) { // Now almighty GC can claim this soul - const element = this.elements[path]; - delete this.elements[path]; - this.length--; - return element; + const element = this.elements[path] + delete this.elements[path] + this.length-- + return element }, _reduceLeastUsed: function(least, currentHash) { - const current = _instancePool.elements[currentHash]; + const current = _instancePool.elements[currentHash] if (least.freq > current.freq) { - return current; + return current } - return least; + return least }, popLeastUsed: function() { - const reducer = _instancePool._reduceLeastUsed; + const reducer = _instancePool._reduceLeastUsed const minUsed = Object.keys(this.elements).reduce(reducer, { - freq: Infinity - }); + freq: Infinity, + }) if (minUsed.hash) { - return this.removeElement(minUsed.hash); + return this.removeElement(minUsed.hash) } - return null; - } -}; + return null + }, +} const ImageCache = { /** @@ -140,17 +140,17 @@ const ImageCache = { * @return {Img} */ get: function(src) { - let image = _instancePool.get(src); + let image = _instancePool.get(src) if (!image) { // Awesome LRU - image = new Img(src); + image = new Img(src) if (_instancePool.length >= kInstancePoolLength) { - _instancePool.popLeastUsed().destructor(); + _instancePool.popLeastUsed().destructor() } - _instancePool.push(image.getOriginalSrc(), image); + _instancePool.push(image.getOriginalSrc(), image) } - return image; - } -}; + return image + }, +} -export default ImageCache; +export default ImageCache diff --git a/src/ListView.js b/src/ListView.js index c9a417b..5cc669b 100644 --- a/src/ListView.js +++ b/src/ListView.js @@ -1,11 +1,11 @@ -"use strict"; +'use strict' -import React, { Component } from "react"; -import PropTypes from "prop-types"; -import Scroller from "scroller"; -import Core from "./Core"; -const { Group } = Core; -const MAX_CACHED_ITEMS = 100; +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import Scroller from 'scroller' +import Core from './Core' +const { Group } = Core +const MAX_CACHED_ITEMS = 100 class ListView extends Component { static propTypes = { @@ -16,39 +16,39 @@ class ListView extends Component { snapping: PropTypes.bool, scrollingDeceleration: PropTypes.number, scrollingPenetrationAcceleration: PropTypes.number, - onScroll: PropTypes.func - }; + onScroll: PropTypes.func, + } static defaultProps = { style: { left: 0, top: 0, width: 0, height: 0 }, snapping: false, scrollingDeceleration: 0.95, - scrollingPenetrationAcceleration: 0.08 - }; + scrollingPenetrationAcceleration: 0.08, + } state = { - scrollTop: 0 - }; + scrollTop: 0, + } constructor(props) { - super(props); + super(props) - this._itemCache = new Map(); - this._groupCache = new Map(); + this._itemCache = new Map() + this._groupCache = new Map() } componentDidMount() { - this.createScroller(); - this.updateScrollingDimensions(); + this.createScroller() + this.updateScrollingDimensions() } render() { if (this._itemCache.size > MAX_CACHED_ITEMS) { - this._itemCache.clear(); - this._groupCache.clear(); + this._itemCache.clear() + this._groupCache.clear() } - const items = this.getVisibleItemIndexes().map(this.renderItem); + const items = this.getVisibleItemIndexes().map(this.renderItem) return React.createElement( Group, { @@ -60,113 +60,112 @@ class ListView extends Component { onMouseUp: this.handleMouseUp, onMouseOut: this.handleMouseOut, onMouseMove: this.handleMouseMove, - onTouchCancel: this.handleTouchEnd + onTouchCancel: this.handleTouchEnd, }, items - ); + ) } renderItem = itemIndex => { - const item = this.props.itemGetter(itemIndex, this.state.scrollTop); - const priorItem = this._itemCache.get(itemIndex); - const itemHeight = this.props.itemHeightGetter(); + const item = this.props.itemGetter(itemIndex, this.state.scrollTop) + const priorItem = this._itemCache.get(itemIndex) + const itemHeight = this.props.itemHeightGetter() - let group; + let group if (item === priorItem) { // Item hasn't changed, we can re-use the previous Group element after adjusting style. - group = this._groupCache.get(itemIndex); + group = this._groupCache.get(itemIndex) } else { group = React.createElement( Group, { style: { top: 0, left: 0, zIndex: itemIndex }, useBackingStore: true, - key: itemIndex + key: itemIndex, }, item - ); + ) - this._itemCache.set(itemIndex, item); - this._groupCache.set(itemIndex, group); + this._itemCache.set(itemIndex, item) + this._groupCache.set(itemIndex, group) } if (group.props.style.width !== this.props.style.width) { - group.props.style.width = this.props.style.width; + group.props.style.width = this.props.style.width } if (group.props.style.height !== itemHeight) { - group.props.style.height = itemHeight; + group.props.style.height = itemHeight } - group.props.style.translateY = - itemIndex * itemHeight - this.state.scrollTop; + group.props.style.translateY = itemIndex * itemHeight - this.state.scrollTop - return group; - }; + return group + } // Events // ====== handleTouchStart = e => { if (this.scroller) { - this.scroller.doTouchStart(e.touches, e.timeStamp); + this.scroller.doTouchStart(e.touches, e.timeStamp) } - }; + } handleTouchMove = e => { if (this.scroller) { - e.preventDefault(); - this.scroller.doTouchMove(e.touches, e.timeStamp, e.scale); + e.preventDefault() + this.scroller.doTouchMove(e.touches, e.timeStamp, e.scale) } - }; + } handleTouchEnd = e => { - this.handleScrollRelease(e); - }; + this.handleScrollRelease(e) + } handleMouseDown = e => { //if (e.button !== 2) return; if (this.scroller) { - this.scroller.doTouchStart([e], e.timeStamp); + this.scroller.doTouchStart([e], e.timeStamp) } - }; + } handleMouseMove = e => { if (this.scroller) { - e.preventDefault(); - this.scroller.doTouchMove([e], e.timeStamp); + e.preventDefault() + this.scroller.doTouchMove([e], e.timeStamp) } - }; + } handleMouseUp = e => { //if (e.button !== 2) return; - this.handleScrollRelease(e); - }; + this.handleScrollRelease(e) + } handleMouseOut = e => { //if (e.button !== 2) return; - this.handleScrollRelease(e); - }; + this.handleScrollRelease(e) + } handleScrollRelease = e => { if (this.scroller) { - this.scroller.doTouchEnd(e.timeStamp); + this.scroller.doTouchEnd(e.timeStamp) if (this.props.snapping) { - this.updateScrollingDeceleration(); + this.updateScrollingDeceleration() } } - }; + } handleScroll = (left, top) => { - this.setState({ scrollTop: top }); + this.setState({ scrollTop: top }) if (this.props.onScroll) { - this.props.onScroll(top); + this.props.onScroll(top) } - }; + } // Scrolling // ========= @@ -176,75 +175,75 @@ class ListView extends Component { scrollingX: false, scrollingY: true, decelerationRate: this.props.scrollingDeceleration, - penetrationAcceleration: this.props.scrollingPenetrationAcceleration - }; - this.scroller = new Scroller(this.handleScroll, options); - }; + penetrationAcceleration: this.props.scrollingPenetrationAcceleration, + } + this.scroller = new Scroller(this.handleScroll, options) + } updateScrollingDimensions = () => { - const width = this.props.style.width; - const height = this.props.style.height; - const scrollWidth = width; + const width = this.props.style.width + const height = this.props.style.height + const scrollWidth = width const scrollHeight = - this.props.numberOfItemsGetter() * this.props.itemHeightGetter(); - this.scroller.setDimensions(width, height, scrollWidth, scrollHeight); - }; + this.props.numberOfItemsGetter() * this.props.itemHeightGetter() + this.scroller.setDimensions(width, height, scrollWidth, scrollHeight) + } getVisibleItemIndexes = () => { - const itemIndexes = []; - const itemHeight = this.props.itemHeightGetter(); - const itemCount = this.props.numberOfItemsGetter(); - const scrollTop = this.state.scrollTop; - let itemScrollTop = 0; + const itemIndexes = [] + const itemHeight = this.props.itemHeightGetter() + const itemCount = this.props.numberOfItemsGetter() + const scrollTop = this.state.scrollTop + let itemScrollTop = 0 for (let index = 0; index < itemCount; index++) { - itemScrollTop = index * itemHeight - scrollTop; + itemScrollTop = index * itemHeight - scrollTop // Item is completely off-screen bottom if (itemScrollTop >= this.props.style.height) { - continue; + continue } // Item is completely off-screen top if (itemScrollTop <= -this.props.style.height) { - continue; + continue } // Part of item is on-screen. - itemIndexes.push(index); + itemIndexes.push(index) } - return itemIndexes; - }; + return itemIndexes + } updateScrollingDeceleration = () => { - let currVelocity = this.scroller.__decelerationVelocityY; - const currScrollTop = this.state.scrollTop; - let targetScrollTop = 0; - let estimatedEndScrollTop = currScrollTop; + let currVelocity = this.scroller.__decelerationVelocityY + const currScrollTop = this.state.scrollTop + let targetScrollTop = 0 + let estimatedEndScrollTop = currScrollTop while (Math.abs(currVelocity).toFixed(6) > 0) { - estimatedEndScrollTop += currVelocity; - currVelocity *= this.props.scrollingDeceleration; + estimatedEndScrollTop += currVelocity + currVelocity *= this.props.scrollingDeceleration } // Find the page whose estimated end scrollTop is closest to 0. - let closestZeroDelta = Infinity; - const pageHeight = this.props.itemHeightGetter(); - const pageCount = this.props.numberOfItemsGetter(); - let pageScrollTop; + let closestZeroDelta = Infinity + const pageHeight = this.props.itemHeightGetter() + const pageCount = this.props.numberOfItemsGetter() + let pageScrollTop for (let pageIndex = 0, len = pageCount; pageIndex < len; pageIndex++) { - pageScrollTop = pageHeight * pageIndex - estimatedEndScrollTop; + pageScrollTop = pageHeight * pageIndex - estimatedEndScrollTop if (Math.abs(pageScrollTop) < closestZeroDelta) { - closestZeroDelta = Math.abs(pageScrollTop); - targetScrollTop = pageHeight * pageIndex; + closestZeroDelta = Math.abs(pageScrollTop) + targetScrollTop = pageHeight * pageIndex } } - this.scroller.__minDecelerationScrollTop = targetScrollTop; - this.scroller.__maxDecelerationScrollTop = targetScrollTop; - }; + this.scroller.__minDecelerationScrollTop = targetScrollTop + this.scroller.__maxDecelerationScrollTop = targetScrollTop + } } -export default ListView; +export default ListView diff --git a/src/ReactDOMComponentTree.js b/src/ReactDOMComponentTree.js index 858b164..a27fb00 100644 --- a/src/ReactDOMComponentTree.js +++ b/src/ReactDOMComponentTree.js @@ -1,13 +1,13 @@ // from https://github.com/facebook/react/blob/87ae211ccd8d61796cfdef138d1e12fb7a74f85d/packages/shared/ReactTypeOfWork.js -const HostComponent = 5; -const HostText = 6; +const HostComponent = 5 +const HostText = 6 // adapted FROM: https://github.com/facebook/react/blob/master/packages/react-dom/src/client/ReactDOMComponentTree.js const randomKey = Math.random() .toString(36) - .slice(2); -const internalInstanceKey = '__reactInternalInstance$' + randomKey; + .slice(2) +const internalInstanceKey = '__reactInternalInstance$' + randomKey /** * Given a DOM node, return the closest ReactDOMComponent or @@ -15,24 +15,24 @@ const internalInstanceKey = '__reactInternalInstance$' + randomKey; */ export function getClosestInstanceFromNode(node) { if (node[internalInstanceKey]) { - return node[internalInstanceKey]; + return node[internalInstanceKey] } while (!node[internalInstanceKey]) { if (node.parentNode) { - node = node.parentNode; + node = node.parentNode } else { // Top of the tree. This node must not be part of a React tree (or is // unmounted, potentially). - return null; + return null } } - let inst = node[internalInstanceKey]; + let inst = node[internalInstanceKey] if (inst.tag === HostComponent || inst.tag === HostText) { // In Fiber, this will always be the deepest root. - return inst; + return inst } - return null; -} \ No newline at end of file + return null +} diff --git a/src/RenderLayer.js b/src/RenderLayer.js index 4d47b04..6bc15bd 100644 --- a/src/RenderLayer.js +++ b/src/RenderLayer.js @@ -1,9 +1,9 @@ -import { zero } from "./FrameUtils"; -import { invalidateBackingStore } from "./DrawingUtils"; -import * as EventTypes from "./EventTypes"; +import { zero } from './FrameUtils' +import { invalidateBackingStore } from './DrawingUtils' +import * as EventTypes from './EventTypes' function RenderLayer(component) { - this.reset(component); + this.reset(component) } RenderLayer.prototype = { @@ -14,34 +14,33 @@ RenderLayer.prototype = { */ reset: function(component) { if (this.backingStoreId) { - invalidateBackingStore(this.backingStoreId); + invalidateBackingStore(this.backingStoreId) } for (const key in this) { - if (key === "children" || key === "frame" || key === "component") - continue; - const value = this[key]; + if (key === 'children' || key === 'frame' || key === 'component') continue + const value = this[key] - if (typeof value === "function") continue; - this[key] = null; + if (typeof value === 'function') continue + this[key] = null } if (this.children) { - this.children.length = 0; + this.children.length = 0 } else { - this.children = []; + this.children = [] } if (this.frame) { - this.frame.x = null; - this.frame.y = null; - this.frame.width = null; - this.frame.height = null; + this.frame.x = null + this.frame.y = null + this.frame.width = null + this.frame.height = null } else { - this.frame = zero(); + this.frame = zero() } - this.component = component; + this.component = component }, /** @@ -50,11 +49,11 @@ RenderLayer.prototype = { * @return {RenderLayer} */ getRootLayer: function() { - let root = this; + let root = this while (root.parentLayer) { - root = root.parentLayer; + root = root.parentLayer } - return root; + return root }, /** @@ -65,10 +64,10 @@ RenderLayer.prototype = { */ inject: function(parentLayer) { if (this.parentLayer && this.parentLayer !== parentLayer) { - this.remove(); + this.remove() } if (!this.parentLayer) { - parentLayer.addChild(this); + parentLayer.addChild(this) } }, @@ -79,11 +78,11 @@ RenderLayer.prototype = { * @param {RenderLayer} referenceLayer */ injectBefore: function(parentLayer, beforeLayer) { - this.remove(); - const beforeIndex = parentLayer.children.indexOf(beforeLayer); - parentLayer.children.splice(beforeIndex, 0, this); - this.parentLayer = parentLayer; - this.zIndex = this.zIndex || beforeLayer.zIndex || 0; + this.remove() + const beforeIndex = parentLayer.children.indexOf(beforeLayer) + parentLayer.children.splice(beforeIndex, 0, this) + this.parentLayer = parentLayer + this.zIndex = this.zIndex || beforeLayer.zIndex || 0 }, /** @@ -92,8 +91,8 @@ RenderLayer.prototype = { * @param {RenderLayer} child */ addChild: function(child) { - child.parentLayer = this; - this.children.push(child); + child.parentLayer = this + this.children.push(child) }, /** @@ -104,9 +103,9 @@ RenderLayer.prototype = { this.parentLayer.children.splice( this.parentLayer.children.indexOf(this), 1 - ); + ) - this.parentLayer = null; + this.parentLayer = null } }, @@ -122,9 +121,9 @@ RenderLayer.prototype = { this.parentLayer.children.splice( this.parentLayer.children.indexOf(this), 1 - ); + ) - this.parentLayer.children.unshift(this); + this.parentLayer.children.unshift(this) } }, @@ -142,12 +141,12 @@ RenderLayer.prototype = { // Enforce that only a single callbcak can be assigned per event type. for (const eventType in EventTypes) { if (EventTypes[eventType] === type) { - this[eventType] = callback; + this[eventType] = callback } } // Return a function that can be called to unsubscribe from the event. - return this.removeEventListener.bind(this, type, callback, callbackScope); + return this.removeEventListener.bind(this, type, callback, callbackScope) }, /** @@ -156,7 +155,7 @@ RenderLayer.prototype = { destroyEventListeners: function() { for (const eventType in EventTypes) { if (this[eventType]) { - delete this[eventType]; + delete this[eventType] } } }, @@ -167,17 +166,17 @@ RenderLayer.prototype = { * @param {?Object} callbackScope */ removeEventListener: function(type, callback, callbackScope) { - const listeners = this.eventListeners[type]; - let listener; + const listeners = this.eventListeners[type] + let listener if (listeners) { for (let index = 0, len = listeners.length; index < len; index++) { - listener = listeners[index]; + listener = listeners[index] if ( listener.callback === callback && listener.callbackScope === callbackScope ) { - listeners.splice(index, 1); - break; + listeners.splice(index, 1) + break } } } @@ -191,19 +190,19 @@ RenderLayer.prototype = { */ translate: function(x, y) { if (this.frame) { - this.frame.x += x; - this.frame.y += y; + this.frame.x += x + this.frame.y += y } if (this.clipRect) { - this.clipRect.x += x; - this.clipRect.y += y; + this.clipRect.x += x + this.clipRect.y += y } if (this.children) { this.children.forEach(function(child) { - child.translate(x, y); - }); + child.translate(x, y) + }) } }, @@ -220,7 +219,7 @@ RenderLayer.prototype = { */ invalidateLayout: function() { // Bubble all the way to the root layer. - this.getRootLayer().draw(); + this.getRootLayer().draw() }, /** @@ -230,9 +229,9 @@ RenderLayer.prototype = { */ invalidateBackingStore: function() { if (this.backingStoreId) { - invalidateBackingStore(this.backingStoreId); + invalidateBackingStore(this.backingStoreId) } - this.invalidateLayout(); + this.invalidateLayout() }, /** @@ -240,7 +239,7 @@ RenderLayer.prototype = { */ draw: function() { // Placeholer - } -}; + }, +} -export default RenderLayer; +export default RenderLayer diff --git a/src/Surface.js b/src/Surface.js index d2b3712..b74d301 100755 --- a/src/Surface.js +++ b/src/Surface.js @@ -1,21 +1,21 @@ -"use strict"; +'use strict' -import React from "react"; -import PropTypes from "prop-types"; -import RenderLayer from "./RenderLayer"; -import { make } from "./FrameUtils"; -import { drawRenderLayer } from "./DrawingUtils"; -import hitTest from "./hitTest"; -import layoutNode from "./layoutNode"; +import React from 'react' +import PropTypes from 'prop-types' +import RenderLayer from './RenderLayer' +import { make } from './FrameUtils' +import { drawRenderLayer } from './DrawingUtils' +import hitTest from './hitTest' +import layoutNode from './layoutNode' -const MOUSE_CLICK_DURATION_MS = 300; +const MOUSE_CLICK_DURATION_MS = 300 /** * Surface is a standard React component and acts as the main drawing canvas. * ReactCanvas components cannot be rendered outside a Surface. */ class Surface extends React.Component { - displayName = "Surface"; + displayName = 'Surface' static propTypes = { className: PropTypes.string, @@ -28,57 +28,57 @@ class Surface extends React.Component { enableCSSLayout: PropTypes.bool, children: PropTypes.node, style: PropTypes.object, - canvas: PropTypes.object - }; + canvas: PropTypes.object, + } static defaultProps = { - scale: window.devicePixelRatio || 1 - }; + scale: window.devicePixelRatio || 1, + } - static canvasRenderer = null; + static canvasRenderer = null setCanvasRef = canvas => { - this.canvas = canvas; - }; + this.canvas = canvas + } constructor(props) { - super(props); + super(props) if (props.canvas) { - this.setCanvasRef(props.canvas); + this.setCanvasRef(props.canvas) } } componentDidMount = () => { // Prepare the for drawing. - this.scale(); + this.scale() // ContainerMixin expects `this.node` to be set prior to mounting children. // `this.node` is injected into child components and represents the current // render tree. - this.node = new RenderLayer(); + this.node = new RenderLayer() this.node.frame = make( this.props.left, this.props.top, this.props.width, this.props.height - ); - this.node.draw = this.batchedTick; + ) + this.node.draw = this.batchedTick - this.mountNode = Surface.canvasRenderer.createContainer(this); + this.mountNode = Surface.canvasRenderer.createContainer(this) Surface.canvasRenderer.updateContainer( this.props.children, this.mountNode, this - ); + ) // Execute initial draw on mount. - this.node.draw(); - }; + this.node.draw() + } componentWillUnmount = () => { - Surface.canvasRenderer.updateContainer(null, this.mountNode, this); - }; + Surface.canvasRenderer.updateContainer(null, this.mountNode, this) + } componentDidUpdate = prevProps => { // Re-scale the when changing size. @@ -86,44 +86,44 @@ class Surface extends React.Component { prevProps.width !== this.props.width || prevProps.height !== this.props.height ) { - this.scale(); + this.scale() } Surface.canvasRenderer.updateContainer( this.props.children, this.mountNode, this - ); + ) // Redraw updated render tree to . if (this.node) { - this.node.draw(); + this.node.draw() } - }; + } render() { if (this.props.canvas) { - return null; + return null } // Scale the drawing area to match DPI. - const width = this.props.width * this.props.scale; - const height = this.props.height * this.props.scale; - let style = {}; + const width = this.props.width * this.props.scale + const height = this.props.height * this.props.scale + let style = {} if (this.props.style) { - style = Object.assign({}, this.props.style); + style = Object.assign({}, this.props.style) } - if (typeof this.props.width !== "undefined") { - style.width = this.props.width; + if (typeof this.props.width !== 'undefined') { + style.width = this.props.width } - if (typeof this.props.height !== "undefined") { - style.height = this.props.height; + if (typeof this.props.height !== 'undefined') { + style.height = this.props.height } - return React.createElement("canvas", { + return React.createElement('canvas', { ref: this.setCanvasRef, className: this.props.className, id: this.props.id, @@ -141,167 +141,167 @@ class Surface extends React.Component { onMouseOut: this.handleMouseEvent, onContextMenu: this.handleContextMenu, onClick: this.handleMouseEvent, - onDoubleClick: this.handleMouseEvent - }); + onDoubleClick: this.handleMouseEvent, + }) } // Drawing // ======= - getLayer = () => this.node; + getLayer = () => this.node getContext = () => { - return this.canvas.getContext("2d"); - }; + return this.canvas.getContext('2d') + } scale = () => { - this.getContext().scale(this.props.scale, this.props.scale); - }; + this.getContext().scale(this.props.scale, this.props.scale) + } batchedTick = () => { if (this._frameReady === false) { - this._pendingTick = true; - return; + this._pendingTick = true + return } - this.tick(); - }; + this.tick() + } tick = () => { // Block updates until next animation frame. - this._frameReady = false; - this.clear(); - this.draw(); - requestAnimationFrame(this.afterTick); - }; + this._frameReady = false + this.clear() + this.draw() + requestAnimationFrame(this.afterTick) + } afterTick = () => { // Execute pending draw that may have been scheduled during previous frame - this._frameReady = true; + this._frameReady = true // canvas might be already removed from DOM if (this._pendingTick && this.canvas) { - this._pendingTick = false; - this.batchedTick(); + this._pendingTick = false + this.batchedTick() } - }; + } clear = () => { - this.getContext().clearRect(0, 0, this.props.width, this.props.height); - }; + this.getContext().clearRect(0, 0, this.props.width, this.props.height) + } draw = () => { if (this.node) { if (this.props.enableCSSLayout) { - layoutNode(this.node); + layoutNode(this.node) } - drawRenderLayer(this.getContext(), this.node); + drawRenderLayer(this.getContext(), this.node) } - }; + } // Events // ====== hitTest = e => { - const hitTarget = hitTest(e, this.node, this.canvas); + const hitTarget = hitTest(e, this.node, this.canvas) if (hitTarget) { - hitTarget[hitTest.getHitHandle(e.type)](e); + hitTarget[hitTest.getHitHandle(e.type)](e) } - }; + } handleTouchStart = e => { - const hitTarget = hitTest(e, this.node, this.canvas); + const hitTarget = hitTest(e, this.node, this.canvas) - let touch; + let touch if (hitTarget) { // On touchstart: capture the current hit target for the given touch. - this._touches = this._touches || {}; + this._touches = this._touches || {} for (let i = 0, len = e.touches.length; i < len; i++) { - touch = e.touches[i]; - this._touches[touch.identifier] = hitTarget; + touch = e.touches[i] + this._touches[touch.identifier] = hitTarget } - hitTarget[hitTest.getHitHandle(e.type)](e); + hitTarget[hitTest.getHitHandle(e.type)](e) } - }; + } handleTouchMove = e => { - this.hitTest(e); - }; + this.hitTest(e) + } handleTouchEnd = e => { // touchend events do not generate a pageX/pageY so we rely // on the currently captured touch targets. if (!this._touches) { - return; + return } - let hitTarget; - const hitHandle = hitTest.getHitHandle(e.type); + let hitTarget + const hitHandle = hitTest.getHitHandle(e.type) for (let i = 0, len = e.changedTouches.length; i < len; i++) { - hitTarget = this._touches[e.changedTouches[i].identifier]; + hitTarget = this._touches[e.changedTouches[i].identifier] if (hitTarget && hitTarget[hitHandle]) { - hitTarget[hitHandle](e); + hitTarget[hitHandle](e) } - delete this._touches[e.changedTouches[i].identifier]; + delete this._touches[e.changedTouches[i].identifier] } - }; + } handleMouseEvent = e => { - if (e.type === "mousedown") { + if (e.type === 'mousedown') { // Keep track of initial mouse down info to detect a proper click. - this._lastMouseDownTimestamp = e.timeStamp; - this._lastMouseDownPosition = [e.pageX, e.pageY]; - this._draggedSinceMouseDown = false; + this._lastMouseDownTimestamp = e.timeStamp + this._lastMouseDownPosition = [e.pageX, e.pageY] + this._draggedSinceMouseDown = false } else if ( - e.type === "click" || - e.type === "dblclick" || - e.type === "mouseout" + e.type === 'click' || + e.type === 'dblclick' || + e.type === 'mouseout' ) { - if (e.type === "click" || e.type === "dblclick") { + if (e.type === 'click' || e.type === 'dblclick') { // Forward the click if the mouse did not travel and it was a short enough duration. if ( this._draggedSinceMouseDown || !this._lastMouseDownTimestamp || e.timeStamp - this._lastMouseDownTimestamp > MOUSE_CLICK_DURATION_MS ) { - return; + return } } - this._lastMouseDownTimestamp = null; - this._lastMouseDownPosition = null; - this._draggedSinceMouseDown = false; + this._lastMouseDownTimestamp = null + this._lastMouseDownPosition = null + this._draggedSinceMouseDown = false } else if ( - e.type === "mousemove" && + e.type === 'mousemove' && !this._draggedSinceMouseDown && this._lastMouseDownPosition ) { // Detect dragging this._draggedSinceMouseDown = e.pageX !== this._lastMouseDownPosition[0] || - e.pageY !== this._lastMouseDownPosition[1]; + e.pageY !== this._lastMouseDownPosition[1] } - let hitTarget = hitTest(e, this.node, this.canvas); + let hitTarget = hitTest(e, this.node, this.canvas) // For mouseout events, we need to save the last target so we fire it again to that target // since we won't have a hit (since the mouse has left the canvas.) - if (e.type === "mouseout") { - hitTarget = this._lastHitTarget; + if (e.type === 'mouseout') { + hitTarget = this._lastHitTarget } else { - this._lastHitTarget = hitTarget; + this._lastHitTarget = hitTarget } if (hitTarget) { - const handler = hitTarget[hitTest.getHitHandle(e.type)]; + const handler = hitTarget[hitTest.getHitHandle(e.type)] if (handler) { - handler(e); + handler(e) } } - }; + } handleContextMenu = e => { - this.hitTest(e); - }; + this.hitTest(e) + } } -export default Surface; +export default Surface diff --git a/src/Text.js b/src/Text.js index 91e5ead..3903d69 100644 --- a/src/Text.js +++ b/src/Text.js @@ -1,59 +1,59 @@ -import CanvasComponent from "./CanvasComponent"; +import CanvasComponent from './CanvasComponent' function childrenAsString(children) { if (!children) { - return ""; + return '' } - if (typeof children === "string") { - return children; + if (typeof children === 'string') { + return children } if (children.length) { - return children.join("\n"); + return children.join('\n') } - return ""; + return '' } function textArraysEqual(a, b) { - if (typeof a !== typeof b || a.length !== b.length) return false; + if (typeof a !== typeof b || a.length !== b.length) return false for (let i = 0; i < a.length; i++) { - if (a[i] !== b[i]) return false; + if (a[i] !== b[i]) return false } - return true; + return true } -const LAYER_TYPE = "text"; +const LAYER_TYPE = 'text' class Text extends CanvasComponent { applyLayerProps = (prevProps, props) => { - const style = props && props.style ? props.style : {}; - const layer = this.node; + const style = props && props.style ? props.style : {} + const layer = this.node if (layer.type !== LAYER_TYPE) { - layer.type = LAYER_TYPE; + layer.type = LAYER_TYPE } if ( layer.text === null || !textArraysEqual(prevProps.children, props.children) ) { - layer.text = childrenAsString(props.children); + layer.text = childrenAsString(props.children) } - if (layer.color !== style.color) layer.color = style.color; + if (layer.color !== style.color) layer.color = style.color - if (layer.fontFace !== style.fontFace) layer.fontFace = style.fontFace; + if (layer.fontFace !== style.fontFace) layer.fontFace = style.fontFace - if (layer.fontSize !== style.fontSize) layer.fontSize = style.fontSize; + if (layer.fontSize !== style.fontSize) layer.fontSize = style.fontSize if (layer.lineHeight !== style.lineHeight) - layer.lineHeight = style.lineHeight; + layer.lineHeight = style.lineHeight - if (layer.textAlign !== style.textAlign) layer.textAlign = style.textAlign; + if (layer.textAlign !== style.textAlign) layer.textAlign = style.textAlign - this.applyCommonLayerProps(prevProps, props); - }; + this.applyCommonLayerProps(prevProps, props) + } } -export default Text; +export default Text diff --git a/src/clamp.js b/src/clamp.js index 75a778c..e068960 100644 --- a/src/clamp.js +++ b/src/clamp.js @@ -6,5 +6,5 @@ * @return {Number} */ export default function(number, min, max) { - return Math.min(Math.max(number, min), max); + return Math.min(Math.max(number, min), max) } diff --git a/src/hitTest.js b/src/hitTest.js index 6e43a16..20da07d 100755 --- a/src/hitTest.js +++ b/src/hitTest.js @@ -1,39 +1,39 @@ -import { make, clone, inset, intersects } from "./FrameUtils"; -import * as EventTypes from "./EventTypes"; +import { make, clone, inset, intersects } from './FrameUtils' +import * as EventTypes from './EventTypes' /** * @private */ function sortByZIndexDescending(layer, otherLayer) { - return (otherLayer.zIndex || 0) - (layer.zIndex || 0); + return (otherLayer.zIndex || 0) - (layer.zIndex || 0) } /** * @private */ function getHitHandle(type) { - let hitHandle; + let hitHandle for (const tryHandle in EventTypes) { if (EventTypes[tryHandle] === type) { - hitHandle = tryHandle; - break; + hitHandle = tryHandle + break } } - return hitHandle; + return hitHandle } /** * @private */ function getLayerAtPoint(root, type, point, tx, ty) { - let layer = null; - const hitHandle = getHitHandle(type); - let sortedChildren; - let hitFrame = clone(root.frame); + let layer = null + const hitHandle = getHitHandle(type) + let sortedChildren + let hitFrame = clone(root.frame) // Early bail for non-visible layers - if (typeof root.alpha === "number" && root.alpha < 0.01) { - return null; + if (typeof root.alpha === 'number' && root.alpha < 0.01) { + return null } // Child-first search @@ -41,7 +41,7 @@ function getLayerAtPoint(root, type, point, tx, ty) { sortedChildren = root.children .slice() .reverse() - .sort(sortByZIndexDescending); + .sort(sortByZIndexDescending) for (let i = 0, len = sortedChildren.length; i < len; i++) { layer = getLayerAtPoint( sortedChildren[i], @@ -49,9 +49,9 @@ function getLayerAtPoint(root, type, point, tx, ty) { point, tx + (root.translateX || 0), ty + (root.translateY || 0) - ); + ) if (layer) { - break; + break } } } @@ -64,24 +64,24 @@ function getLayerAtPoint(root, type, point, tx, ty) { -root.hitOutsets[1], -root.hitOutsets[2], -root.hitOutsets[3] - ); + ) } // Check for x/y translation if (tx) { - hitFrame.x += tx; + hitFrame.x += tx } if (ty) { - hitFrame.y += ty; + hitFrame.y += ty } // No child layer at the given point. Try the parent layer. if (!layer && root[hitHandle] && intersects(hitFrame, point)) { - layer = root; + layer = root } - return layer; + return layer } /** @@ -93,18 +93,18 @@ function getLayerAtPoint(root, type, point, tx, ty) { * @return {RenderLayer} */ function hitTest(e, rootLayer, rootNode) { - const touch = e.touches ? e.touches[0] : e; - let touchX = touch.pageX; - let touchY = touch.pageY; - let rootNodeBox; + const touch = e.touches ? e.touches[0] : e + let touchX = touch.pageX + let touchY = touch.pageY + let rootNodeBox if (rootNode) { - rootNodeBox = rootNode.getBoundingClientRect(); - touchX -= rootNodeBox.left; - touchY -= rootNodeBox.top; + rootNodeBox = rootNode.getBoundingClientRect() + touchX -= rootNodeBox.left + touchY -= rootNodeBox.top } - touchY = touchY - window.pageYOffset; - touchX = touchX - window.pageXOffset; + touchY = touchY - window.pageYOffset + touchX = touchX - window.pageXOffset return getLayerAtPoint( rootLayer, @@ -112,8 +112,8 @@ function hitTest(e, rootLayer, rootNode) { make(touchX, touchY, 1, 1), rootLayer.translateX || 0, rootLayer.translateY || 0 - ); + ) } -hitTest.getHitHandle = getHitHandle; -export default hitTest; +hitTest.getHitHandle = getHitHandle +export default hitTest diff --git a/src/index.js b/src/index.js index 5c53c82..d75aa90 100644 --- a/src/index.js +++ b/src/index.js @@ -1,37 +1,37 @@ -import Surface from "./Surface"; -import Core from "./Core"; -import Image from "./Image"; -import ListView from "./ListView"; -import FontFace from "./FontFace"; -import FrameUtils from "./FrameUtils"; -import measureText from "./measureText"; -import CanvasComponent from "./CanvasComponent"; -import { CanvasRenderer, registerComponentConstructor } from "./CanvasRenderer"; -import { registerLayerType } from "./DrawingUtils"; - -Surface.canvasRenderer = CanvasRenderer; +import Surface from './Surface' +import Core from './Core' +import Image from './Image' +import ListView from './ListView' +import FontFace from './FontFace' +import FrameUtils from './FrameUtils' +import measureText from './measureText' +import CanvasComponent from './CanvasComponent' +import { CanvasRenderer, registerComponentConstructor } from './CanvasRenderer' +import { registerLayerType } from './DrawingUtils' + +Surface.canvasRenderer = CanvasRenderer const registerCustomComponent = function(name, applyProps, drawFunction) { - const layerType = name.toLowerCase(); + const layerType = name.toLowerCase() - registerLayerType(layerType, drawFunction); + registerLayerType(layerType, drawFunction) const klass = class extends CanvasComponent { - displayName = name; + displayName = name applyLayerProps = (prevProps, props) => { - const style = props && props.style ? props.style : {}; - const layer = this.node; - layer.type = layerType; - applyProps(layer, style, prevProps, props); - this.applyCommonLayerProps(prevProps, props); - }; - }; + const style = props && props.style ? props.style : {} + const layer = this.node + layer.type = layerType + applyProps(layer, style, prevProps, props) + this.applyCommonLayerProps(prevProps, props) + } + } - registerComponentConstructor(name, klass); + registerComponentConstructor(name, klass) - return name; -}; + return name +} const ReactCanvas = { ...Core, @@ -41,13 +41,13 @@ const ReactCanvas = { FontFace, FrameUtils, measureText, - registerCustomComponent -}; + registerCustomComponent, +} -export const Text = ReactCanvas.Text; -export const Group = ReactCanvas.Group; -export const Gradient = ReactCanvas.Gradient; -export const Layer = ReactCanvas.Layer; +export const Text = ReactCanvas.Text +export const Group = ReactCanvas.Group +export const Gradient = ReactCanvas.Gradient +export const Layer = ReactCanvas.Layer export { Surface, @@ -56,7 +56,7 @@ export { FontFace, FrameUtils, measureText, - registerCustomComponent -}; + registerCustomComponent, +} -export default ReactCanvas; +export default ReactCanvas diff --git a/src/layoutNode.js b/src/layoutNode.js index 3aeeb86..a2a3186 100644 --- a/src/layoutNode.js +++ b/src/layoutNode.js @@ -1,5 +1,5 @@ -import computeLayout from "css-layout"; -import { emptyObject } from "./utils"; +import computeLayout from 'css-layout' +import { emptyObject } from './utils' function createNode(layer) { return { @@ -8,23 +8,23 @@ function createNode(layer) { width: undefined, // computeLayout will mutate height: undefined, // computeLayout will mutate top: 0, - left: 0 + left: 0, }, style: layer._originalStyle || emptyObject, // TODO no need to layout children that have non-dirty backing store - children: (layer.children || []).map(createNode) - }; + children: (layer.children || []).map(createNode), + } } function walkNode(node, parentLeft, parentTop) { - node.layer.frame.x = node.layout.left + (parentLeft || 0); - node.layer.frame.y = node.layout.top + (parentTop || 0); - node.layer.frame.width = node.layout.width; - node.layer.frame.height = node.layout.height; + node.layer.frame.x = node.layout.left + (parentLeft || 0) + node.layer.frame.y = node.layout.top + (parentTop || 0) + node.layer.frame.width = node.layout.width + node.layer.frame.height = node.layout.height if (node.children && node.children.length > 0) { node.children.forEach(function(child) { - walkNode(child, node.layer.frame.x, node.layer.frame.y); - }); + walkNode(child, node.layer.frame.x, node.layer.frame.y) + }) } } @@ -36,10 +36,10 @@ function walkNode(node, parentLeft, parentTop) { * @return {Object} */ function layoutNode(root) { - const rootNode = createNode(root); - computeLayout(rootNode); - walkNode(rootNode); - return rootNode; + const rootNode = createNode(root) + computeLayout(rootNode) + walkNode(rootNode) + return rootNode } -export default layoutNode; +export default layoutNode diff --git a/src/measureText.js b/src/measureText.js index 33711e0..03cbf4f 100644 --- a/src/measureText.js +++ b/src/measureText.js @@ -1,16 +1,16 @@ -import { isFontLoaded } from "./FontUtils"; -import LineBreaker from "@craigmorton/linebreak"; -import MultiKeyCache from "multi-key-cache"; +import { isFontLoaded } from './FontUtils' +import LineBreaker from '@craigmorton/linebreak' +import MultiKeyCache from 'multi-key-cache' -const canvas = document.createElement("canvas"); -const ctx = canvas.getContext("2d"); +const canvas = document.createElement('canvas') +const ctx = canvas.getContext('2d') -const _cache = new MultiKeyCache(); +const _cache = new MultiKeyCache() const _zeroMetrics = { width: 0, height: 0, - lines: [] -}; + lines: [], +} /** * Given a string of text, available width, and font return the measured width @@ -29,78 +29,78 @@ export default function measureText( fontSize, lineHeight ) { - const cacheKey = [text, width, fontFace.id, fontSize, lineHeight]; - const cached = _cache.get(cacheKey); + const cacheKey = [text, width, fontFace.id, fontSize, lineHeight] + const cached = _cache.get(cacheKey) if (cached) { - return cached; + return cached } // Bail and return zero unless we're sure the font is ready. if (!isFontLoaded(fontFace)) { - return _zeroMetrics; + return _zeroMetrics } - const measuredSize = {}; - let textMetrics; - let lastMeasuredWidth; - let tryLine; - let currentLine; - let breaker; - let bk; - let lastBreak; + const measuredSize = {} + let textMetrics + let lastMeasuredWidth + let tryLine + let currentLine + let breaker + let bk + let lastBreak ctx.font = fontFace.attributes.style + - " normal " + + ' normal ' + fontFace.attributes.weight + - " " + + ' ' + fontSize + - "px " + - fontFace.family; - textMetrics = ctx.measureText(text); + 'px ' + + fontFace.family + textMetrics = ctx.measureText(text) - measuredSize.width = textMetrics.width; - measuredSize.height = lineHeight; - measuredSize.lines = []; + measuredSize.width = textMetrics.width + measuredSize.height = lineHeight + measuredSize.lines = [] if (measuredSize.width <= width) { // The entire text string fits. - measuredSize.lines.push({ width: measuredSize.width, text: text }); + measuredSize.lines.push({ width: measuredSize.width, text: text }) } else { // Break into multiple lines. - measuredSize.width = width; - currentLine = ""; - breaker = new LineBreaker(text); + measuredSize.width = width + currentLine = '' + breaker = new LineBreaker(text) while ((bk = breaker.nextBreak())) { - const word = text.slice(lastBreak ? lastBreak.position : 0, bk.position); + const word = text.slice(lastBreak ? lastBreak.position : 0, bk.position) - tryLine = currentLine + word; - textMetrics = ctx.measureText(tryLine); + tryLine = currentLine + word + textMetrics = ctx.measureText(tryLine) if (textMetrics.width > width || (lastBreak && lastBreak.required)) { - measuredSize.height += lineHeight; + measuredSize.height += lineHeight measuredSize.lines.push({ width: lastMeasuredWidth, - text: currentLine.trim() - }); - currentLine = word; - lastMeasuredWidth = ctx.measureText(currentLine.trim()).width; + text: currentLine.trim(), + }) + currentLine = word + lastMeasuredWidth = ctx.measureText(currentLine.trim()).width } else { - currentLine = tryLine; - lastMeasuredWidth = textMetrics.width; + currentLine = tryLine + lastMeasuredWidth = textMetrics.width } - lastBreak = bk; + lastBreak = bk } - currentLine = currentLine.trim(); + currentLine = currentLine.trim() if (currentLine.length > 0) { - textMetrics = ctx.measureText(currentLine); - measuredSize.lines.push({ width: textMetrics, text: currentLine }); + textMetrics = ctx.measureText(currentLine) + measuredSize.lines.push({ width: textMetrics, text: currentLine }) } } - _cache.set(cacheKey, measuredSize); + _cache.set(cacheKey, measuredSize) - return measuredSize; + return measuredSize } diff --git a/src/utils.js b/src/utils.js index 07274de..57f1b94 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1 +1 @@ -export const emptyObject = {}; +export const emptyObject = {} diff --git a/stories/CSS.js b/stories/CSS.js index cbfada3..6e0f695 100644 --- a/stories/CSS.js +++ b/stories/CSS.js @@ -1,19 +1,19 @@ -import React from "react"; -import { storiesOf } from "@storybook/react"; -import ReactCanvas from "../src/index"; -const { FontFace, Text, Group, Image, Surface } = ReactCanvas; +import React from 'react' +import { storiesOf } from '@storybook/react' +import ReactCanvas from '../src/index' +const { FontFace, Text, Group, Image, Surface } = ReactCanvas class App extends React.Component { componentDidMount() { - window.addEventListener("resize", this.handleResize, true); + window.addEventListener('resize', this.handleResize, true) } componentWillUnmount() { - this._unmounted = true; + this._unmounted = true } render() { - const size = this.getSize(); + const size = this.getSize() return ( - ); + ) } // Styles // ====== getSize = () => { - return { width: window.innerWidth - 30, height: window.innerHeight - 30 }; - }; + return { width: window.innerWidth - 30, height: window.innerHeight - 30 } + } getPageStyle = () => { - const size = this.getSize(); + const size = this.getSize() return { - position: "relative", + position: 'relative', padding: 14, width: size.width, height: size.height, - backgroundColor: "#f7f7f7", - flexDirection: "column" - }; - }; + backgroundColor: '#f7f7f7', + flexDirection: 'column', + } + } getImageGroupStyle = () => { return { - position: "relative", + position: 'relative', flex: 1, - backgroundColor: "#eee" - }; - }; + backgroundColor: '#eee', + } + } getImageStyle = () => { return { - position: "absolute", + position: 'absolute', left: 0, top: 0, right: 0, - bottom: 0 - }; - }; + bottom: 0, + } + } getTitleStyle = () => { return { - fontFace: FontFace("Georgia"), + fontFace: FontFace('Georgia'), fontSize: 22, lineHeight: 28, height: 28, marginBottom: 10, - color: "#333", - textAlign: "center" - }; - }; + color: '#333', + textAlign: 'center', + } + } getExcerptStyle = () => { return { - fontFace: FontFace("Georgia"), + fontFace: FontFace('Georgia'), fontSize: 17, lineHeight: 25, marginTop: 15, flex: 1, - color: "#333" - }; - }; + color: '#333', + } + } // Events // ====== handleResize = () => { if (!this._unmounted) { - this.forceUpdate(); + this.forceUpdate() } - }; + } } -storiesOf("CSS", module).add("test-css", () => { +storiesOf('CSS', module).add('test-css', () => { return (
- ); -}); + ) +}) diff --git a/stories/CustomDraw.js b/stories/CustomDraw.js index 507fdca..da0996b 100644 --- a/stories/CustomDraw.js +++ b/stories/CustomDraw.js @@ -1,89 +1,89 @@ -import React from "react"; -import { storiesOf } from "@storybook/react"; +import React from 'react' +import { storiesOf } from '@storybook/react' -import ReactCanvas from "../src/index"; +import ReactCanvas from '../src/index' -const { Surface } = ReactCanvas; +const { Surface } = ReactCanvas const circleDraw = function(ctx, layer) { - const x = layer.frame.x; - const y = layer.frame.y; - const width = layer.frame.width; - const height = layer.frame.height; - const centerX = x + width / 2; - const centerY = y + height / 2; + const x = layer.frame.x + const y = layer.frame.y + const width = layer.frame.width + const height = layer.frame.height + const centerX = x + width / 2 + const centerY = y + height / 2 - const fillColor = layer.backgroundColor || "#FFF"; - const strokeColor = layer.borderColor || "#FFF"; - const strokeWidth = layer.borderWidth || 0; + const fillColor = layer.backgroundColor || '#FFF' + const strokeColor = layer.borderColor || '#FFF' + const strokeWidth = layer.borderWidth || 0 - const shadowColor = layer.shadowColor || 0; - const shadowOffsetX = layer.shadowOffsetX || 0; - const shadowOffsetY = layer.shadowOffsetY || 0; - const shadowBlur = layer.shadowBlur || 0; + const shadowColor = layer.shadowColor || 0 + const shadowOffsetX = layer.shadowOffsetX || 0 + const shadowOffsetY = layer.shadowOffsetY || 0 + const shadowBlur = layer.shadowBlur || 0 - const radius = Math.min(width / 2, height / 2) - Math.ceil(strokeWidth / 2); + const radius = Math.min(width / 2, height / 2) - Math.ceil(strokeWidth / 2) - ctx.beginPath(); - ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false); + ctx.beginPath() + ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false) if (shadowOffsetX || shadowOffsetY) { - ctx.shadowColor = shadowColor; - ctx.shadowBlur = shadowBlur; - ctx.shadowOffsetX = shadowOffsetX; - ctx.shadowOffsetY = shadowOffsetY; + ctx.shadowColor = shadowColor + ctx.shadowBlur = shadowBlur + ctx.shadowOffsetX = shadowOffsetX + ctx.shadowOffsetY = shadowOffsetY } - ctx.fillStyle = fillColor; - ctx.fill(); + ctx.fillStyle = fillColor + ctx.fill() if (strokeWidth > 0) { - ctx.lineWidth = strokeWidth; - ctx.strokeStyle = strokeColor; - ctx.stroke(); + ctx.lineWidth = strokeWidth + ctx.strokeStyle = strokeColor + ctx.stroke() } -}; +} const circleApplyProps = (layer, style /*, prevProps, props*/) => { - layer.shadowColor = style.shadowColor || 0; - layer.shadowOffsetX = style.shadowOffsetX || 0; - layer.shadowOffsetY = style.shadowOffsetY || 0; - layer.shadowBlur = style.shadowBlur || 0; -}; + layer.shadowColor = style.shadowColor || 0 + layer.shadowOffsetX = style.shadowOffsetX || 0 + layer.shadowOffsetY = style.shadowOffsetY || 0 + layer.shadowBlur = style.shadowBlur || 0 +} const Circle = ReactCanvas.registerCustomComponent( - "Circle", + 'Circle', circleApplyProps, circleDraw -); +) class App extends React.Component { render() { return ( - ); + ) } } -storiesOf("CustomDraw", module).add("green-circle", () => { +storiesOf('CustomDraw', module).add('green-circle', () => { return (
- ); -}); + ) +}) diff --git a/stories/Gradient.js b/stories/Gradient.js index dab9ddc..db9a6c6 100644 --- a/stories/Gradient.js +++ b/stories/Gradient.js @@ -1,10 +1,10 @@ -import React from "react"; -import { storiesOf } from "@storybook/react"; -import { Gradient, Surface } from "../src/index"; +import React from 'react' +import { storiesOf } from '@storybook/react' +import { Gradient, Surface } from '../src/index' -storiesOf("Gradient", module) - .add("transparent-grey", () => { - const props = { size: { width: 80, height: 80 } }; +storiesOf('Gradient', module) + .add('transparent-grey', () => { + const props = { size: { width: 80, height: 80 } } return (
- ); + ) }) - .add("blue-green", () => { - const props = { size: { width: 80, height: 80 } }; + .add('blue-green', () => { + const props = { size: { width: 80, height: 80 } } return (
- ); - }); + ) + }) diff --git a/stories/Heatmap.js b/stories/Heatmap.js index dae7a32..64872ce 100644 --- a/stories/Heatmap.js +++ b/stories/Heatmap.js @@ -1,74 +1,74 @@ -import React from "react"; -import PropTypes from "prop-types"; +import React from 'react' +import PropTypes from 'prop-types' -import { storiesOf } from "@storybook/react"; +import { storiesOf } from '@storybook/react' -import range from "lodash.range"; -import { scaleBand, interpolateInferno } from "d3-scale"; +import range from 'lodash.range' +import { scaleBand, interpolateInferno } from 'd3-scale' -import ReactCanvas from "../src/index"; +import ReactCanvas from '../src/index' -const { Surface } = ReactCanvas; +const { Surface } = ReactCanvas -import Alea from "alea"; +import Alea from 'alea' -const random = new Alea(0); -random(); -const NUM_ROWS = 16; -const NUM_COLS = 1000; -const rowsRange = range(0, NUM_ROWS); -const colRange = range(0, NUM_COLS); -const rows = rowsRange.map(() => colRange.map(() => random())); +const random = new Alea(0) +random() +const NUM_ROWS = 16 +const NUM_COLS = 1000 +const rowsRange = range(0, NUM_ROWS) +const colRange = range(0, NUM_COLS) +const rows = rowsRange.map(() => colRange.map(() => random())) const heatmapDraw = (ctx, layer) => { - const data = layer.data; - const x = layer.frame.x; - const y = layer.frame.y; - const width = layer.frame.width; - const height = layer.frame.height; + const data = layer.data + const x = layer.frame.x + const y = layer.frame.y + const width = layer.frame.width + const height = layer.frame.height - const fillColor = layer.backgroundColor || "#FFF"; + const fillColor = layer.backgroundColor || '#FFF' const horizontalScale = scaleBand() .domain(rowsRange) - .range([x, x + width]); + .range([x, x + width]) const verticalScale = scaleBand() .domain(colRange) - .range([y, y + height]); + .range([y, y + height]) - ctx.fillStyle = fillColor; + ctx.fillStyle = fillColor data.forEach((row, rowIdx) => { row.forEach((col, colIdx) => { - ctx.fillStyle = interpolateInferno(col); + ctx.fillStyle = interpolateInferno(col) const rectDimensions = { x: horizontalScale(rowIdx), y: verticalScale(colIdx), width: horizontalScale.bandwidth(), - height: verticalScale.bandwidth() - }; + height: verticalScale.bandwidth(), + } ctx.fillRect( rectDimensions.x, rectDimensions.y, rectDimensions.width, rectDimensions.height - ); - }); - }); -}; + ) + }) + }) +} const heatmapApplyProps = (layer, style, prevProps, props) => { - layer.shadowColor = style.shadowColor || 0; - layer.shadowOffsetX = style.shadowOffsetX || 0; - layer.shadowOffsetY = style.shadowOffsetY || 0; - layer.shadowBlur = style.shadowBlur || 0; - layer.data = props.data || []; -}; + layer.shadowColor = style.shadowColor || 0 + layer.shadowOffsetX = style.shadowOffsetX || 0 + layer.shadowOffsetY = style.shadowOffsetY || 0 + layer.shadowBlur = style.shadowBlur || 0 + layer.data = props.data || [] +} const Heatmap = ReactCanvas.registerCustomComponent( - "Heatmap", + 'Heatmap', heatmapApplyProps, heatmapDraw -); +) class App extends React.Component { static propTypes = { @@ -76,47 +76,47 @@ class App extends React.Component { x: PropTypes.number, y: PropTypes.number, width: PropTypes.number, - height: PropTypes.number - }; + height: PropTypes.number, + } render() { - const { data, height, width, x, y } = this.props; + const { data, height, width, x, y } = this.props return ( - ); + ) } } -storiesOf("Heatmap", module).add("heatmap", () => { +storiesOf('Heatmap', module).add('heatmap', () => { const props = { height: 800, width: 800, x: 0, y: 0, - size: { width: 80, height: 80 } - }; + size: { width: 80, height: 80 }, + } return (
- ); -}); + ) +}) diff --git a/stories/Image.js b/stories/Image.js index f855def..f836e80 100644 --- a/stories/Image.js +++ b/stories/Image.js @@ -1,9 +1,9 @@ -import React from "react"; -import { storiesOf } from "@storybook/react"; -import { Image, Surface } from "../src/index"; +import React from 'react' +import { storiesOf } from '@storybook/react' +import { Image, Surface } from '../src/index' -storiesOf("Image", module).add("hello-world", () => { - const props = { size: { width: 400, height: 400 } }; +storiesOf('Image', module).add('hello-world', () => { + const props = { size: { width: 400, height: 400 } } return (
{ top: 50, width: 200, height: 200, - left: 0 + left: 0, }} src="https://i.imgur.com/U1p9DSP.png" />
- ); -}); + ) +}) diff --git a/stories/Listview.js b/stories/Listview.js index 5484cfc..ff7b9bb 100644 --- a/stories/Listview.js +++ b/stories/Listview.js @@ -1,72 +1,72 @@ -import React from "react"; -import PropTypes from "prop-types"; -import { storiesOf } from "@storybook/react"; +import React from 'react' +import PropTypes from 'prop-types' +import { storiesOf } from '@storybook/react' -import ReactCanvas from "../src/index"; -const { ListView, Surface, Group, Image, Text } = ReactCanvas; +import ReactCanvas from '../src/index' +const { ListView, Surface, Group, Image, Text } = ReactCanvas const articles = [ { - title: "10 Unbelievable Secrets That Will Make Your Airline Pilot Nervous", + title: '10 Unbelievable Secrets That Will Make Your Airline Pilot Nervous', excerpt: - "With these words the Witch fell down in a brown, melted, shapeless mass and began to spread over the clean boards of the kitchen floor. Seeing that she had really melted away to nothing, Dorothy drew another bucket of water and threw it over the mess. She then swept it all out the door. After picking out the silver shoe, which was all that was left of the old woman, she cleaned and dried it with a cloth, and put it on her foot again. Then, being at last free to do as she chose, she ran out to the courtyard to tell the Lion that the Wicked Witch of the West had come to an end, and that they were no longer prisoners in a strange land.", - imageUrl: "http://lorempixel.com/360/420/cats/1/" + 'With these words the Witch fell down in a brown, melted, shapeless mass and began to spread over the clean boards of the kitchen floor. Seeing that she had really melted away to nothing, Dorothy drew another bucket of water and threw it over the mess. She then swept it all out the door. After picking out the silver shoe, which was all that was left of the old woman, she cleaned and dried it with a cloth, and put it on her foot again. Then, being at last free to do as she chose, she ran out to the courtyard to tell the Lion that the Wicked Witch of the West had come to an end, and that they were no longer prisoners in a strange land.', + imageUrl: 'http://lorempixel.com/360/420/cats/1/', }, { - title: "Will Batman Save Leaf Blowing?", + title: 'Will Batman Save Leaf Blowing?', excerpt: 'The splendid fellow sprang to his feet, and grasping me by the shoulder raised his sword on high, exclaiming: "And had the choice been left to me I could not have chosen a more fitting mate for the first princess of Barsoom. Here is my hand upon your shoulder, John Carter, and my word that Sab Than shall go out at the point of my sword for the sake of my love for Helium, for Dejah Thoris, and for you. This very night I shall try to reach his quarters in the palace." "How?" I asked. "You are strongly guarded and a quadruple force patrols the sky." He bent his head in thought a moment, then raised it with an air of confidence.', - imageUrl: "http://lorempixel.com/360/420/cats/2/" + imageUrl: 'http://lorempixel.com/360/420/cats/2/', }, { - title: "8 Scary Things Your Professor Is Using Against You", + title: '8 Scary Things Your Professor Is Using Against You', excerpt: - "For a minute he scarcely realised what this meant, and, although the heat was excessive, he clambered down into the pit close to the bulk to see the Thing more clearly. He fancied even then that the cooling of the body might account for this, but what disturbed that idea was the fact that the ash was falling only from the end of the cylinder. And then he perceived that, very slowly, the circular top of the cylinder was rotating on its body. It was such a gradual movement that he discovered it only through noticing that a black mark that had been near him five minutes ago was now at the other side of the circumference.", - imageUrl: "http://lorempixel.com/360/420/cats/3/" + 'For a minute he scarcely realised what this meant, and, although the heat was excessive, he clambered down into the pit close to the bulk to see the Thing more clearly. He fancied even then that the cooling of the body might account for this, but what disturbed that idea was the fact that the ash was falling only from the end of the cylinder. And then he perceived that, very slowly, the circular top of the cylinder was rotating on its body. It was such a gradual movement that he discovered it only through noticing that a black mark that had been near him five minutes ago was now at the other side of the circumference.', + imageUrl: 'http://lorempixel.com/360/420/cats/3/', }, { title: "Kanye West's Top 10 Scandalous Microsoft Excel Secrets", excerpt: - "My wife was curiously silent throughout the drive, and seemed oppressed with forebodings of evil. I talked to her reassuringly, pointing out that the Martians were tied to the Pit by sheer heaviness, and at the utmost could but crawl a little out of it; but she answered only in monosyllables. Had it not been for my promise to the innkeeper, she would, I think, have urged me to stay in Leatherhead that night. Would that I had! Her face, I remember, was very white as we parted. For my own part, I had been feverishly excited all day.", - imageUrl: "http://lorempixel.com/360/420/cats/4/" + 'My wife was curiously silent throughout the drive, and seemed oppressed with forebodings of evil. I talked to her reassuringly, pointing out that the Martians were tied to the Pit by sheer heaviness, and at the utmost could but crawl a little out of it; but she answered only in monosyllables. Had it not been for my promise to the innkeeper, she would, I think, have urged me to stay in Leatherhead that night. Would that I had! Her face, I remember, was very white as we parted. For my own part, I had been feverishly excited all day.', + imageUrl: 'http://lorempixel.com/360/420/cats/4/', }, { - title: "The Embarassing Secrets Of Julia Roberts", + title: 'The Embarassing Secrets Of Julia Roberts', excerpt: 'Passepartout heard the street door shut once; it was his new master going out. He heard it shut again; it was his predecessor, James Forster, departing in his turn. Passepartout remained alone in the house in Saville Row. "Faith," muttered Passepartout, somewhat flurried, "I\'ve seen people at Madame Tussaud\'s as lively as my new master!" Madame Tussaud\'s "people," let it be said, are of wax, and are much visited in London; speech is all that is wanting to make them human. During his brief interview with Mr. Fogg, Passepartout had been carefully observing him.', - imageUrl: "http://lorempixel.com/360/420/cats/5/" + imageUrl: 'http://lorempixel.com/360/420/cats/5/', }, { title: "20 Unbelievable Things Girlfriends Won't Tell Their Friends", excerpt: "On March 3, 1866, Powell and I packed his provisions on two of our burros, and bidding me good-bye he mounted his horse, and started down the mountainside toward the valley, across which led the first stage of his journey. The morning of Powell's departure was, like nearly all Arizona mornings, clear and beautiful; I could see him and his little pack animals picking their way down the mountainside toward the valley, and all during the morning I would catch occasional glimpses of them as they topped a hog back or came out upon a level plateau.", - imageUrl: "http://lorempixel.com/360/420/cats/6/" + imageUrl: 'http://lorempixel.com/360/420/cats/6/', }, { - title: "Can Vladimir Putin Save Beard Care?", + title: 'Can Vladimir Putin Save Beard Care?', excerpt: 'So powerfully did the whole grim aspect of Ahab affect me, and the livid brand which streaked it, that for the first few moments I hardly noted that not a little of this overbearing grimness was owing to the barbaric white leg upon which he partly stood. It had previously come to me that this ivory leg had at sea been fashioned from the polished bone of the sperm whale\'s jaw. "Aye, he was dismasted off Japan," said the old Gay-Head Indian once; "but like his dismasted craft, he shipped another mast without coming home for it.', - imageUrl: "http://lorempixel.com/360/420/cats/7/" + imageUrl: 'http://lorempixel.com/360/420/cats/7/', }, { - title: "15 Truths That Will Make Your Psychiatrist Feel Ashamed", + title: '15 Truths That Will Make Your Psychiatrist Feel Ashamed', excerpt: - "Again was I suddenly recalled to my immediate surroundings by a repetition of the weird moan from the depths of the cave. Naked and unarmed as I was, I had no desire to face the unseen thing which menaced me. My revolvers were strapped to my lifeless body which, for some unfathomable reason, I could not bring myself to touch. My carbine was in its boot, strapped to my saddle, and as my horse had wandered off I was left without means of defense. My only alternative seemed to lie in flight and my decision was crystallized by a recurrence of the rustling sound.", - imageUrl: "http://lorempixel.com/360/420/cats/8/" + 'Again was I suddenly recalled to my immediate surroundings by a repetition of the weird moan from the depths of the cave. Naked and unarmed as I was, I had no desire to face the unseen thing which menaced me. My revolvers were strapped to my lifeless body which, for some unfathomable reason, I could not bring myself to touch. My carbine was in its boot, strapped to my saddle, and as my horse had wandered off I was left without means of defense. My only alternative seemed to lie in flight and my decision was crystallized by a recurrence of the rustling sound.', + imageUrl: 'http://lorempixel.com/360/420/cats/8/', }, { - title: "6 Terrible Facts That Make Boyfriends Stronger", + title: '6 Terrible Facts That Make Boyfriends Stronger', excerpt: 'First they came to a great hall in which were many ladies and gentlemen of the court, all dressed in rich costumes. These people had nothing to do but talk to each other, but they always came to wait outside the Throne Room every morning, although they were never permitted to see Oz. As Dorothy entered they looked at her curiously, and one of them whispered: "Are you really going to look upon the face of Oz the Terrible?" "Of course," answered the girl, "if he will see me." "Oh, he will see you," said the soldier who had taken her message to the Wizard.', - imageUrl: "http://lorempixel.com/360/420/cats/9/" + imageUrl: 'http://lorempixel.com/360/420/cats/9/', }, { - title: "5 Surprising Dental Care Tips From Robert De Niro", + title: '5 Surprising Dental Care Tips From Robert De Niro', excerpt: "At once, with a quick mental leap, he linked the Thing with the flash upon Mars. The thought of the confined creature was so dreadful to him that he forgot the heat and went forward to the cylinder to help turn. But luckily the dull radiation arrested him before he could burn his hands on the still-glowing metal. At that he stood irresolute for a moment, then turned, scrambled out of the pit, and set off running wildly into Woking. The time then must have been somewhere about six o'clock. He met a waggoner and tried to make him understand, but the tale he told and his appearance were so wild--his hat had fallen off in the pit--that the man simply drove on.", - imageUrl: "http://lorempixel.com/360/420/cats/10/" - } -]; + imageUrl: 'http://lorempixel.com/360/420/cats/10/', + }, +] class Item extends React.Component { static propTypes = { @@ -74,32 +74,33 @@ class Item extends React.Component { height: PropTypes.number, imageUrl: PropTypes.string, title: PropTypes.string, - itemIndex: PropTypes.number - }; + itemIndex: PropTypes.number, + } static getItemHeight = () => { - return 80; - }; + return 80 + } render() { return ( console.log("Clicked " + this.props.title)} + // eslint-disable-next-line no-console + onClick={() => console.log('Clicked ' + this.props.title)} > {this.props.title} - ); + ) } getStyle = () => { return { width: this.props.width, height: Item.getItemHeight(), - backgroundColor: this.props.itemIndex % 2 ? "#eee" : "#a5d2ee" - }; - }; + backgroundColor: this.props.itemIndex % 2 ? '#eee' : '#a5d2ee', + } + } getImageStyle = () => { return { @@ -107,11 +108,11 @@ class Item extends React.Component { left: 10, width: 60, height: 60, - backgroundColor: "#ddd", - borderColor: "#999", - borderWidth: 1 - }; - }; + backgroundColor: '#ddd', + borderColor: '#999', + borderWidth: 1, + } + } getTitleStyle = () => { return { @@ -120,14 +121,14 @@ class Item extends React.Component { width: this.props.width - 90, height: 18, fontSize: 14, - lineHeight: 18 - }; - }; + lineHeight: 18, + } + } } class App extends React.Component { render() { - const size = this.getSize(); + const size = this.getSize() return ( - ); + ) } renderItem = itemIndex => { - const article = articles[itemIndex % articles.length]; + const article = articles[itemIndex % articles.length] return ( - ); - }; + ) + } getSize = () => { return { width: 800, - height: 400 - }; - }; + height: 400, + } + } // ListView // ======== @@ -168,19 +169,19 @@ class App extends React.Component { top: 0, left: 0, width: this.getSize().width, - height: this.getSize().height - }; - }; + height: this.getSize().height, + } + } getNumberOfItems = () => { - return 1000; - }; + return 1000 + } } -storiesOf("ListView", module).add("transparent-grey", () => { +storiesOf('ListView', module).add('transparent-grey', () => { return (
- ); -}); + ) +}) diff --git a/stories/Text.js b/stories/Text.js index a42ecb8..42d1be5 100644 --- a/stories/Text.js +++ b/stories/Text.js @@ -1,9 +1,9 @@ -import React from "react"; -import { storiesOf } from "@storybook/react"; -import { Text, Group, Image, Surface } from "../src/index"; +import React from 'react' +import { storiesOf } from '@storybook/react' +import { Text, Group, Image, Surface } from '../src/index' -storiesOf("Text", module).add("hello-world", () => { - const props = { size: { width: 400, height: 400 } }; +storiesOf('Text', module).add('hello-world', () => { + const props = { size: { width: 400, height: 400 } } return (
{ top: 0, left: 0, width: props.size.width, - height: props.size.height + height: props.size.height, }} > Hello World @@ -27,9 +27,9 @@ storiesOf("Text", module).add("hello-world", () => { style={{ top: 30, left: 0, - color: "red", + color: 'red', width: props.size.width, - height: props.size.height + height: props.size.height, }} > Hello World 2 @@ -38,12 +38,12 @@ storiesOf("Text", module).add("hello-world", () => {
- ); -}); + ) +}) diff --git a/stories/Timeline.js b/stories/Timeline.js index aa818d2..00e1d2a 100644 --- a/stories/Timeline.js +++ b/stories/Timeline.js @@ -1,14 +1,14 @@ -import React from "react"; -import ReactCanvas from "../src/index"; -import Page from "./components/Page"; -import articles from "./data"; +import React from 'react' +import ReactCanvas from '../src/index' +import Page from './components/Page' +import articles from './data' -import { storiesOf } from "@storybook/react"; -const { ListView, Surface } = ReactCanvas; +import { storiesOf } from '@storybook/react' +const { ListView, Surface } = ReactCanvas class App extends React.Component { render() { - const size = this.getSize(); + const size = this.getSize() return ( @@ -22,13 +22,13 @@ class App extends React.Component { itemGetter={this.renderPage} /> - ); + ) } renderPage = (pageIndex, scrollTop) => { - const size = this.getSize(); - const article = articles[pageIndex % articles.length]; - const pageScrollTop = pageIndex * this.getPageHeight() - scrollTop; + const size = this.getSize() + const article = articles[pageIndex % articles.length] + const pageScrollTop = pageIndex * this.getPageHeight() - scrollTop return ( - ); - }; + ) + } getSize = () => { - const size = document.getElementById("root").getBoundingClientRect(); - size.height = 800; - return size; - }; + const size = document.getElementById('root').getBoundingClientRect() + size.height = 800 + return size + } getListViewStyle = () => { - const size = this.getSize(); + const size = this.getSize() return { top: 0, left: 0, width: size.width, height: size.height, - backgroundColor: "#320000" - }; - }; + backgroundColor: '#320000', + } + } getNumberOfPages = () => { - return 1000; - }; + return 1000 + } getPageHeight = () => { - return this.getSize().height; - }; + return this.getSize().height + } } -storiesOf("Timeline", module).add("app", () => { - return ; -}); +storiesOf('Timeline', module).add('app', () => { + return +}) diff --git a/stories/components/Page.js b/stories/components/Page.js index a1d1a86..58bc9d1 100644 --- a/stories/components/Page.js +++ b/stories/components/Page.js @@ -1,32 +1,32 @@ -import React from "react"; -import PropTypes from "prop-types"; +import React from 'react' +import PropTypes from 'prop-types' -import ReactCanvas from "../../src/index"; -const { Group, Image, Text, FontFace, measureText } = ReactCanvas; +import ReactCanvas from '../../src/index' +const { Group, Image, Text, FontFace, measureText } = ReactCanvas -const CONTENT_INSET = 14; -const TEXT_SCROLL_SPEED_MULTIPLIER = 0.6; -const TEXT_ALPHA_SPEED_OUT_MULTIPLIER = 1.25; -const TEXT_ALPHA_SPEED_IN_MULTIPLIER = 2.6; -const IMAGE_LAYER_INDEX = 2; -const TEXT_LAYER_INDEX = 1; +const CONTENT_INSET = 14 +const TEXT_SCROLL_SPEED_MULTIPLIER = 0.6 +const TEXT_ALPHA_SPEED_OUT_MULTIPLIER = 1.25 +const TEXT_ALPHA_SPEED_IN_MULTIPLIER = 2.6 +const IMAGE_LAYER_INDEX = 2 +const TEXT_LAYER_INDEX = 1 class Page extends React.Component { static propTypes = { width: PropTypes.number, height: PropTypes.number, article: PropTypes.object, - scrollTop: PropTypes.number - }; + scrollTop: PropTypes.number, + } constructor(props) { - super(); + super() // Pre-compute headline/excerpt text dimensions. - const article = props.article; - const maxWidth = props.width - 2 * CONTENT_INSET; - const titleStyle = this.getTitleStyle(props); - const excerptStyle = this.getExcerptStyle(props); + const article = props.article + const maxWidth = props.width - 2 * CONTENT_INSET + const titleStyle = this.getTitleStyle(props) + const excerptStyle = this.getExcerptStyle(props) this.titleMetrics = measureText( article.title, @@ -34,26 +34,26 @@ class Page extends React.Component { titleStyle.fontFace, titleStyle.fontSize, titleStyle.lineHeight - ); + ) this.excerptMetrics = measureText( article.excerpt, maxWidth, excerptStyle.fontFace, excerptStyle.fontSize, excerptStyle.lineHeight - ); + ) } render() { - const groupStyle = this.getGroupStyle(); - const imageStyle = this.getImageStyle(); - const titleStyle = this.getTitleStyle(this.props); - const excerptStyle = this.getExcerptStyle(this.props); + const groupStyle = this.getGroupStyle() + const imageStyle = this.getImageStyle() + const titleStyle = this.getTitleStyle(this.props) + const excerptStyle = this.getExcerptStyle(this.props) // Layout title and excerpt below image. - titleStyle.height = this.titleMetrics.height; - excerptStyle.top = titleStyle.top + titleStyle.height + CONTENT_INSET; - excerptStyle.height = this.props.height - excerptStyle.top - CONTENT_INSET; + titleStyle.height = this.titleMetrics.height + excerptStyle.top = titleStyle.top + titleStyle.height + CONTENT_INSET + excerptStyle.height = this.props.height - excerptStyle.top - CONTENT_INSET return ( @@ -68,7 +68,7 @@ class Page extends React.Component { {this.props.article.excerpt} - ); + ) } // Styles @@ -79,13 +79,13 @@ class Page extends React.Component { top: 0, left: 0, width: this.props.width, - height: this.props.height - }; - }; + height: this.props.height, + } + } getImageHeight = props => { - return Math.round(props.height * 0.5); - }; + return Math.round(props.height * 0.5) + } getImageStyle = () => { return { @@ -93,10 +93,10 @@ class Page extends React.Component { left: 0, width: this.props.width, height: this.getImageHeight(this.props), - backgroundColor: "#eee", - zIndex: IMAGE_LAYER_INDEX - }; - }; + backgroundColor: '#eee', + zIndex: IMAGE_LAYER_INDEX, + } + } getTitleStyle = props => { return { @@ -105,32 +105,32 @@ class Page extends React.Component { width: props.width - 2 * CONTENT_INSET, fontSize: 22, lineHeight: 30, - fontFace: FontFace("Avenir Next Condensed, Helvetica, sans-serif", null, { - weight: 500 - }) - }; - }; + fontFace: FontFace('Avenir Next Condensed, Helvetica, sans-serif', null, { + weight: 500, + }), + } + } getExcerptStyle = props => { return { left: CONTENT_INSET, width: props.width - 2 * CONTENT_INSET, - fontFace: FontFace("Georgia, serif"), + fontFace: FontFace('Georgia, serif'), fontSize: 15, - lineHeight: 23 - }; - }; + lineHeight: 23, + } + } getTextGroupStyle = () => { - const imageHeight = this.getImageHeight(this.props); - let translateY = 0; + const imageHeight = this.getImageHeight(this.props) + let translateY = 0 const alphaMultiplier = this.props.scrollTop <= 0 ? -TEXT_ALPHA_SPEED_OUT_MULTIPLIER - : TEXT_ALPHA_SPEED_IN_MULTIPLIER; - let alpha = 1 - this.props.scrollTop / this.props.height * alphaMultiplier; - alpha = Math.min(Math.max(alpha, 0), 1); - translateY = -this.props.scrollTop * TEXT_SCROLL_SPEED_MULTIPLIER; + : TEXT_ALPHA_SPEED_IN_MULTIPLIER + let alpha = 1 - (this.props.scrollTop / this.props.height) * alphaMultiplier + alpha = Math.min(Math.max(alpha, 0), 1) + translateY = -this.props.scrollTop * TEXT_SCROLL_SPEED_MULTIPLIER return { width: this.props.width, @@ -139,9 +139,9 @@ class Page extends React.Component { left: 0, alpha: alpha, translateY: translateY, - zIndex: TEXT_LAYER_INDEX - }; - }; + zIndex: TEXT_LAYER_INDEX, + } + } } -export default Page; +export default Page diff --git a/stories/data.js b/stories/data.js index b86730c..51cd6b5 100644 --- a/stories/data.js +++ b/stories/data.js @@ -1,52 +1,62 @@ module.exports = [ { title: '10 Unbelievable Secrets That Will Make Your Airline Pilot Nervous', - excerpt: 'With these words the Witch fell down in a brown, melted, shapeless mass and began to spread over the clean boards of the kitchen floor. Seeing that she had really melted away to nothing, Dorothy drew another bucket of water and threw it over the mess. She then swept it all out the door. After picking out the silver shoe, which was all that was left of the old woman, she cleaned and dried it with a cloth, and put it on her foot again. Then, being at last free to do as she chose, she ran out to the courtyard to tell the Lion that the Wicked Witch of the West had come to an end, and that they were no longer prisoners in a strange land.', - imageUrl: 'http://lorempixel.com/360/420/cats/1/' + excerpt: + 'With these words the Witch fell down in a brown, melted, shapeless mass and began to spread over the clean boards of the kitchen floor. Seeing that she had really melted away to nothing, Dorothy drew another bucket of water and threw it over the mess. She then swept it all out the door. After picking out the silver shoe, which was all that was left of the old woman, she cleaned and dried it with a cloth, and put it on her foot again. Then, being at last free to do as she chose, she ran out to the courtyard to tell the Lion that the Wicked Witch of the West had come to an end, and that they were no longer prisoners in a strange land.', + imageUrl: 'http://lorempixel.com/360/420/cats/1/', }, { title: 'Will Batman Save Leaf Blowing?', - excerpt: 'The splendid fellow sprang to his feet, and grasping me by the shoulder raised his sword on high, exclaiming: "And had the choice been left to me I could not have chosen a more fitting mate for the first princess of Barsoom. Here is my hand upon your shoulder, John Carter, and my word that Sab Than shall go out at the point of my sword for the sake of my love for Helium, for Dejah Thoris, and for you. This very night I shall try to reach his quarters in the palace." "How?" I asked. "You are strongly guarded and a quadruple force patrols the sky." He bent his head in thought a moment, then raised it with an air of confidence.', - imageUrl: 'http://lorempixel.com/360/420/cats/2/' + excerpt: + 'The splendid fellow sprang to his feet, and grasping me by the shoulder raised his sword on high, exclaiming: "And had the choice been left to me I could not have chosen a more fitting mate for the first princess of Barsoom. Here is my hand upon your shoulder, John Carter, and my word that Sab Than shall go out at the point of my sword for the sake of my love for Helium, for Dejah Thoris, and for you. This very night I shall try to reach his quarters in the palace." "How?" I asked. "You are strongly guarded and a quadruple force patrols the sky." He bent his head in thought a moment, then raised it with an air of confidence.', + imageUrl: 'http://lorempixel.com/360/420/cats/2/', }, { title: '8 Scary Things Your Professor Is Using Against You', - excerpt: 'For a minute he scarcely realised what this meant, and, although the heat was excessive, he clambered down into the pit close to the bulk to see the Thing more clearly. He fancied even then that the cooling of the body might account for this, but what disturbed that idea was the fact that the ash was falling only from the end of the cylinder. And then he perceived that, very slowly, the circular top of the cylinder was rotating on its body. It was such a gradual movement that he discovered it only through noticing that a black mark that had been near him five minutes ago was now at the other side of the circumference.', - imageUrl: 'http://lorempixel.com/360/420/cats/3/' + excerpt: + 'For a minute he scarcely realised what this meant, and, although the heat was excessive, he clambered down into the pit close to the bulk to see the Thing more clearly. He fancied even then that the cooling of the body might account for this, but what disturbed that idea was the fact that the ash was falling only from the end of the cylinder. And then he perceived that, very slowly, the circular top of the cylinder was rotating on its body. It was such a gradual movement that he discovered it only through noticing that a black mark that had been near him five minutes ago was now at the other side of the circumference.', + imageUrl: 'http://lorempixel.com/360/420/cats/3/', }, { - title: 'Kanye West\'s Top 10 Scandalous Microsoft Excel Secrets', - excerpt: 'My wife was curiously silent throughout the drive, and seemed oppressed with forebodings of evil. I talked to her reassuringly, pointing out that the Martians were tied to the Pit by sheer heaviness, and at the utmost could but crawl a little out of it; but she answered only in monosyllables. Had it not been for my promise to the innkeeper, she would, I think, have urged me to stay in Leatherhead that night. Would that I had! Her face, I remember, was very white as we parted. For my own part, I had been feverishly excited all day.', - imageUrl: 'http://lorempixel.com/360/420/cats/4/' + title: "Kanye West's Top 10 Scandalous Microsoft Excel Secrets", + excerpt: + 'My wife was curiously silent throughout the drive, and seemed oppressed with forebodings of evil. I talked to her reassuringly, pointing out that the Martians were tied to the Pit by sheer heaviness, and at the utmost could but crawl a little out of it; but she answered only in monosyllables. Had it not been for my promise to the innkeeper, she would, I think, have urged me to stay in Leatherhead that night. Would that I had! Her face, I remember, was very white as we parted. For my own part, I had been feverishly excited all day.', + imageUrl: 'http://lorempixel.com/360/420/cats/4/', }, { title: 'The Embarassing Secrets Of Julia Roberts', - excerpt: 'Passepartout heard the street door shut once; it was his new master going out. He heard it shut again; it was his predecessor, James Forster, departing in his turn. Passepartout remained alone in the house in Saville Row. "Faith," muttered Passepartout, somewhat flurried, "I\'ve seen people at Madame Tussaud\'s as lively as my new master!" Madame Tussaud\'s "people," let it be said, are of wax, and are much visited in London; speech is all that is wanting to make them human. During his brief interview with Mr. Fogg, Passepartout had been carefully observing him.', - imageUrl: 'http://lorempixel.com/360/420/cats/5/' + excerpt: + 'Passepartout heard the street door shut once; it was his new master going out. He heard it shut again; it was his predecessor, James Forster, departing in his turn. Passepartout remained alone in the house in Saville Row. "Faith," muttered Passepartout, somewhat flurried, "I\'ve seen people at Madame Tussaud\'s as lively as my new master!" Madame Tussaud\'s "people," let it be said, are of wax, and are much visited in London; speech is all that is wanting to make them human. During his brief interview with Mr. Fogg, Passepartout had been carefully observing him.', + imageUrl: 'http://lorempixel.com/360/420/cats/5/', }, { - title: '20 Unbelievable Things Girlfriends Won\'t Tell Their Friends', - excerpt: 'On March 3, 1866, Powell and I packed his provisions on two of our burros, and bidding me good-bye he mounted his horse, and started down the mountainside toward the valley, across which led the first stage of his journey. The morning of Powell\'s departure was, like nearly all Arizona mornings, clear and beautiful; I could see him and his little pack animals picking their way down the mountainside toward the valley, and all during the morning I would catch occasional glimpses of them as they topped a hog back or came out upon a level plateau.', - imageUrl: 'http://lorempixel.com/360/420/cats/6/' + title: "20 Unbelievable Things Girlfriends Won't Tell Their Friends", + excerpt: + "On March 3, 1866, Powell and I packed his provisions on two of our burros, and bidding me good-bye he mounted his horse, and started down the mountainside toward the valley, across which led the first stage of his journey. The morning of Powell's departure was, like nearly all Arizona mornings, clear and beautiful; I could see him and his little pack animals picking their way down the mountainside toward the valley, and all during the morning I would catch occasional glimpses of them as they topped a hog back or came out upon a level plateau.", + imageUrl: 'http://lorempixel.com/360/420/cats/6/', }, { title: 'Can Vladimir Putin Save Beard Care?', - excerpt: 'So powerfully did the whole grim aspect of Ahab affect me, and the livid brand which streaked it, that for the first few moments I hardly noted that not a little of this overbearing grimness was owing to the barbaric white leg upon which he partly stood. It had previously come to me that this ivory leg had at sea been fashioned from the polished bone of the sperm whale\'s jaw. "Aye, he was dismasted off Japan," said the old Gay-Head Indian once; "but like his dismasted craft, he shipped another mast without coming home for it.', - imageUrl: 'http://lorempixel.com/360/420/cats/7/' + excerpt: + 'So powerfully did the whole grim aspect of Ahab affect me, and the livid brand which streaked it, that for the first few moments I hardly noted that not a little of this overbearing grimness was owing to the barbaric white leg upon which he partly stood. It had previously come to me that this ivory leg had at sea been fashioned from the polished bone of the sperm whale\'s jaw. "Aye, he was dismasted off Japan," said the old Gay-Head Indian once; "but like his dismasted craft, he shipped another mast without coming home for it.', + imageUrl: 'http://lorempixel.com/360/420/cats/7/', }, { title: '15 Truths That Will Make Your Psychiatrist Feel Ashamed', - excerpt: 'Again was I suddenly recalled to my immediate surroundings by a repetition of the weird moan from the depths of the cave. Naked and unarmed as I was, I had no desire to face the unseen thing which menaced me. My revolvers were strapped to my lifeless body which, for some unfathomable reason, I could not bring myself to touch. My carbine was in its boot, strapped to my saddle, and as my horse had wandered off I was left without means of defense. My only alternative seemed to lie in flight and my decision was crystallized by a recurrence of the rustling sound.', - imageUrl: 'http://lorempixel.com/360/420/cats/8/' + excerpt: + 'Again was I suddenly recalled to my immediate surroundings by a repetition of the weird moan from the depths of the cave. Naked and unarmed as I was, I had no desire to face the unseen thing which menaced me. My revolvers were strapped to my lifeless body which, for some unfathomable reason, I could not bring myself to touch. My carbine was in its boot, strapped to my saddle, and as my horse had wandered off I was left without means of defense. My only alternative seemed to lie in flight and my decision was crystallized by a recurrence of the rustling sound.', + imageUrl: 'http://lorempixel.com/360/420/cats/8/', }, { title: '6 Terrible Facts That Make Boyfriends Stronger', - excerpt: 'First they came to a great hall in which were many ladies and gentlemen of the court, all dressed in rich costumes. These people had nothing to do but talk to each other, but they always came to wait outside the Throne Room every morning, although they were never permitted to see Oz. As Dorothy entered they looked at her curiously, and one of them whispered: "Are you really going to look upon the face of Oz the Terrible?" "Of course," answered the girl, "if he will see me." "Oh, he will see you," said the soldier who had taken her message to the Wizard.', - imageUrl: 'http://lorempixel.com/360/420/cats/9/' + excerpt: + 'First they came to a great hall in which were many ladies and gentlemen of the court, all dressed in rich costumes. These people had nothing to do but talk to each other, but they always came to wait outside the Throne Room every morning, although they were never permitted to see Oz. As Dorothy entered they looked at her curiously, and one of them whispered: "Are you really going to look upon the face of Oz the Terrible?" "Of course," answered the girl, "if he will see me." "Oh, he will see you," said the soldier who had taken her message to the Wizard.', + imageUrl: 'http://lorempixel.com/360/420/cats/9/', }, { title: '5 Surprising Dental Care Tips From Robert De Niro', - excerpt: 'At once, with a quick mental leap, he linked the Thing with the flash upon Mars. The thought of the confined creature was so dreadful to him that he forgot the heat and went forward to the cylinder to help turn. But luckily the dull radiation arrested him before he could burn his hands on the still-glowing metal. At that he stood irresolute for a moment, then turned, scrambled out of the pit, and set off running wildly into Woking. The time then must have been somewhere about six o\'clock. He met a waggoner and tried to make him understand, but the tale he told and his appearance were so wild--his hat had fallen off in the pit--that the man simply drove on.', - imageUrl: 'http://lorempixel.com/360/420/cats/10/' + excerpt: + "At once, with a quick mental leap, he linked the Thing with the flash upon Mars. The thought of the confined creature was so dreadful to him that he forgot the heat and went forward to the cylinder to help turn. But luckily the dull radiation arrested him before he could burn his hands on the still-glowing metal. At that he stood irresolute for a moment, then turned, scrambled out of the pit, and set off running wildly into Woking. The time then must have been somewhere about six o'clock. He met a waggoner and tried to make him understand, but the tale he told and his appearance were so wild--his hat had fallen off in the pit--that the man simply drove on.", + imageUrl: 'http://lorempixel.com/360/420/cats/10/', }, -]; +] diff --git a/stories/index.js b/stories/index.js index d7f3733..67fda0e 100644 --- a/stories/index.js +++ b/stories/index.js @@ -1,8 +1,8 @@ -import "./Image"; -import "./Gradient"; -import "./Text"; -import "./Listview"; -import "./CustomDraw"; -import "./Heatmap"; -import "./Timeline"; -import "./CSS"; +import './Image' +import './Gradient' +import './Text' +import './Listview' +import './CustomDraw' +import './Heatmap' +import './Timeline' +import './CSS' diff --git a/yarn.lock b/yarn.lock index a5f5571..2fb39cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,6 +8,13 @@ dependencies: "@babel/highlight" "7.0.0-beta.44" +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== + dependencies: + "@babel/highlight" "^7.0.0" + "@babel/generator@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" @@ -46,6 +53,15 @@ esutils "^2.0.2" js-tokens "^3.0.0" +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" @@ -302,24 +318,24 @@ acorn-dynamic-import@^2.0.0: dependencies: acorn "^4.0.3" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.5.0: +acorn@^5.0.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" +acorn@^6.0.7: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== + address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" @@ -341,15 +357,11 @@ airbnb-js-shims@^1.4.1: string.prototype.padend "^3.0.0" string.prototype.padstart "^3.0.0" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" -ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.0.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: @@ -367,6 +379,16 @@ ajv@^6.1.0: json-schema-traverse "^0.3.0" uri-js "^4.2.1" +ajv@^6.9.1: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alea@^0.0.9: version "0.0.9" resolved "https://registry.yarnpkg.com/alea/-/alea-0.0.9.tgz#f738cb45f83430069f45cf69ccbf312dd57a9e1a" @@ -387,6 +409,11 @@ ansi-escapes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -399,11 +426,16 @@ ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: @@ -485,16 +517,6 @@ array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -519,10 +541,6 @@ array.prototype.flatten@^1.2.0: es-abstract "^1.10.0" function-bind "^1.1.1" -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -553,6 +571,11 @@ ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -610,7 +633,7 @@ babel-cli@^6.26.0: optionalDependencies: chokidar "^1.6.1" -babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@6.26.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -1749,15 +1772,10 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@3.0.x: version "3.0.0" @@ -1820,10 +1838,24 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + chokidar@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -1868,10 +1900,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -2014,7 +2042,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -2141,7 +2169,7 @@ create-react-class@^15.6.2: loose-envify "^1.3.1" object-assign "^4.1.1" -cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@5.1.0, cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -2149,6 +2177,17 @@ cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2342,6 +2381,13 @@ debug@^3.1.0: dependencies: ms "2.0.0" +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2392,18 +2438,6 @@ defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -2452,12 +2486,19 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -doctrine@^2.0.0, doctrine@^2.0.2, doctrine@^2.1.0: +doctrine@^2.0.0, doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + dom-converter@~0.1: version "0.1.4" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" @@ -2553,6 +2594,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -2608,6 +2654,18 @@ es-abstract@^1.10.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, is-callable "^1.1.3" is-regex "^1.0.4" +es-abstract@^1.11.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + es-to-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" @@ -2616,6 +2674,15 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: version "0.10.42" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" @@ -2701,88 +2768,107 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-config-prettier@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" +eslint-config-prettier@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz#c55c1fcac8ce4518aeb77906984e134d9eb5a4f0" + integrity sha512-sZwhSTHVVz78+kYD3t5pCWSYEdVSBR0PXnwjDRsUs8ytIrK8PLXw+6FKp8r3Z7rx4ZszdetWlXYKOHoUrrwPlA== dependencies: - get-stdin "^5.0.1" + get-stdin "^6.0.0" -eslint-plugin-prettier@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7" +eslint-plugin-prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz#8695188f95daa93b0dc54b249347ca3b79c4686d" + integrity sha512-XWX2yVuwVNLOUhQijAkXz+rMPPoCr7WFiAl8ig6I7Xn+pPVhDhzg4DxHpmbeb0iqjO9UronEA3Tb09ChnFVHHA== dependencies: - fast-diff "^1.1.1" - jest-docblock "^21.0.0" + prettier-linter-helpers "^1.0.0" -eslint-plugin-react@^7.8.2: - version "7.8.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.8.2.tgz#e95c9c47fece55d2303d1a67c9d01b930b88a51d" +eslint-plugin-react@^7.13.0: + version "7.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.13.0.tgz#bc13fd7101de67996ea51b33873cd9dc2b7e5758" + integrity sha512-uA5LrHylu8lW/eAH3bEQe9YdzpPaFd9yAJTwTi/i/BKTD7j6aQMKVAdGM/ML72zD6womuSK7EiGtMKuK06lWjQ== dependencies: - doctrine "^2.0.2" - has "^1.0.1" - jsx-ast-utils "^2.0.1" - prop-types "^15.6.0" + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.1.0" + object.fromentries "^2.0.0" + prop-types "^15.7.2" + resolve "^1.10.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" -eslint-scope@^3.7.1, eslint-scope@~3.7.1: +eslint-scope@~3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== + eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^4.1.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" +eslint@^5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" esutils "^2.0.2" - file-entry-cache "^2.0.0" + file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" + inquirer "^6.2.2" + js-yaml "^3.13.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + lodash "^4.17.11" + minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" - pluralize "^7.0.0" progress "^2.0.0" - regexpp "^1.0.1" - require-uncached "^1.0.3" - semver "^5.3.0" + regexpp "^2.0.1" + semver "^5.5.1" strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" -espree@^3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" esprima@^2.6.0: version "2.7.3" @@ -2796,9 +2882,10 @@ esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" -esquery@^1.0.0: +esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" @@ -2950,6 +3037,15 @@ external-editor@^2.0.4: iconv-lite "^0.4.17" tmp "^0.0.33" +external-editor@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -2977,9 +3073,10 @@ fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" -fast-diff@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-json-stable-stringify@^2.0.0: version "2.0.0" @@ -3021,12 +3118,12 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" + flat-cache "^2.0.1" file-loader@^1.1.11: version "1.1.11" @@ -3088,14 +3185,19 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== flatten@^1.0.2: version "1.0.2" @@ -3210,9 +3312,10 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" -get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^3.0.0: version "3.0.0" @@ -3265,7 +3368,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: +glob@^7.0.0, glob@^7.0.5, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -3276,6 +3379,18 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -3301,25 +3416,19 @@ global@^4.3.2: min-document "^2.19.0" process "~0.5.1" -globals@^11.0.1, globals@^11.1.0: +globals@^11.1.0: version "11.5.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642" +globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3348,6 +3457,11 @@ has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3385,6 +3499,13 @@ has@^1.0.1: dependencies: function-bind "^1.0.2" +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" @@ -3530,6 +3651,13 @@ iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -3554,14 +3682,23 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.3: - version "3.3.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== immutable@^3.8.1: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" +import-fresh@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3607,7 +3744,7 @@ inline-style-prefixer@^3.0.6: bowser "^1.7.3" css-in-js-utils "^2.0.0" -inquirer@3.3.0, inquirer@^3.0.6: +inquirer@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: @@ -3626,6 +3763,25 @@ inquirer@3.3.0, inquirer@^3.0.6: strip-ansi "^4.0.0" through "^2.3.6" +inquirer@^6.2.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" @@ -3684,6 +3840,11 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3812,22 +3973,6 @@ is-odd@^2.0.0: dependencies: is-number "^4.0.0" -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -3856,10 +4001,6 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - is-root@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" @@ -3878,6 +4019,13 @@ is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -3915,10 +4063,6 @@ isomorphic-fetch@^2.1.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -jest-docblock@^21.0.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" - js-base64@^2.1.9: version "2.4.5" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92" @@ -3927,12 +4071,20 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -"js-tokens@^3.0.0 || ^4.0.0": +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.4.3, js-yaml@^3.9.0, js-yaml@^3.9.1: +js-yaml@^3.13.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^3.4.3, js-yaml@^3.9.0: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" dependencies: @@ -3970,6 +4122,11 @@ json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -3990,9 +4147,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" +jsx-ast-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + integrity sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA== dependencies: array-includes "^3.0.3" @@ -4125,6 +4283,7 @@ lodash.pick@^4.4.0: lodash.range@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d" + integrity sha1-9GHliPZmg/fq3q3lE+OKaaVloV0= lodash.some@^4.6.0: version "4.6.0" @@ -4146,6 +4305,11 @@ lodash@^4.14.0, lodash@^4.17.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" +lodash@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -4408,7 +4572,7 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -ms@2.1.1: +ms@2.1.1, ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" @@ -4467,6 +4631,11 @@ next-tick@1: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + no-case@^2.2.0: version "2.3.2" resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" @@ -4616,6 +4785,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" @@ -4635,6 +4809,16 @@ object.entries@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.fromentries@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" + integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== + dependencies: + define-properties "^1.1.2" + es-abstract "^1.11.0" + function-bind "^1.1.1" + has "^1.0.1" + object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" @@ -4782,6 +4966,13 @@ param-case@2.1.x: dependencies: no-case "^2.2.0" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" @@ -4842,11 +5033,11 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -4854,6 +5045,11 @@ path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -4882,26 +5078,12 @@ pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: find-up "^2.1.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -5202,9 +5384,17 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@^1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325" +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^1.17.1: + version "1.17.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.1.tgz#ed64b4e93e370cb8a25b9ef7fef3e4fd1c0995db" + integrity sha512-TzGRNvuUSmPgwivDqkZ9tM/qTGW9hqDKWOE9YHiyQdixlKbv7kvEqsmDPrcHJTKwthU774TQwZXVtaQ/mMsvjg== pretty-error@^2.0.2: version "2.1.1" @@ -5259,7 +5449,7 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.5.9, loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.6.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -5687,9 +5877,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpu-core@^1.0.0: version "1.0.0" @@ -5765,13 +5956,6 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5783,9 +5967,10 @@ resolve-dir@^1.0.0: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-url@^0.2.1: version "0.2.1" @@ -5797,6 +5982,13 @@ resolve@^1.1.6: dependencies: path-parse "^1.0.5" +resolve@^1.10.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" + integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -5814,7 +6006,14 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5849,6 +6048,13 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -5908,6 +6114,11 @@ schema-utils@^0.4.0, schema-utils@^0.4.5: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@^5.5.0, semver@^5.5.1: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -6035,10 +6246,13 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: @@ -6210,13 +6424,22 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.0.0, string-width@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" @@ -6255,6 +6478,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6263,7 +6493,7 @@ strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -6316,16 +6546,15 @@ symbol-observable@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" +table@^5.2.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/table/-/table-5.3.3.tgz#eae560c90437331b74200e011487a33442bd28b4" + integrity sha512-3wUNCgdWX6PNpOe3amTTPWPuF6VGvgzjKCaO1snFj0z7Y3mUPWf5+zDtxUVGispJkDECPmR29wbzh6bVMOHbcw== dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" + ajv "^6.9.1" + lodash "^4.17.11" + slice-ansi "^2.1.0" + string-width "^3.0.0" tapable@^0.2.7: version "0.2.8" @@ -6343,7 +6572,7 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" -text-table@0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6420,6 +6649,11 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -6560,6 +6794,13 @@ uri-js@^4.2.1: dependencies: punycode "^2.1.0" +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" @@ -6793,9 +7034,10 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" From bca8d3c035bfbe64bbdb34e9efc2178311f6fd4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Thu, 16 May 2019 14:48:56 +0200 Subject: [PATCH 03/13] Remove .npmignore --- .npmignore | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .npmignore diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 30a2948..0000000 --- a/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -build -.idea -node_modules From ba51f4b9b29230f120ecdf80d4c3df8183f391fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Thu, 16 May 2019 16:04:56 +0200 Subject: [PATCH 04/13] Use airbnb eslint config --- .eslintrc.js | 29 +- .prettierrc.js | 9 +- README.md | 51 +- package.json | 12 +- src/Canvas.js | 8 +- src/CanvasComponent.js | 9 +- src/CanvasRenderer.js | 48 +- src/CanvasUtils.js | 25 +- src/Core.js | 2 +- src/DrawingUtils.js | 27 +- src/Easing.js | 4 +- src/EventTypes.js | 2 +- src/FontFace.js | 3 +- src/FontUtils.js | 47 +- src/FrameUtils.js | 1 + src/{Image.js => Image.jsx} | 97 ++-- src/ImageCache.js | 38 +- src/ListView.js | 249 --------- src/ReactDOMComponentTree.js | 4 +- src/RenderLayer.js | 34 +- src/Surface.js | 127 +++-- src/hitTest.js | 4 +- src/index.js | 13 +- src/layoutNode.js | 8 +- src/measureText.js | 20 +- stories/{CSS.js => CSS.jsx} | 86 ++- stories/{CustomDraw.js => CustomDraw.jsx} | 23 +- stories/{Gradient.js => Gradient.jsx} | 14 +- stories/{Heatmap.js => Heatmap.jsx} | 37 +- stories/{Image.js => Image.jsx} | 5 +- stories/Listview.js | 187 ------- stories/{Text.js => Text.jsx} | 15 +- stories/Timeline.js | 73 --- stories/components/{Page.js => Page.jsx} | 104 ++-- stories/data.js | 22 +- stories/index.js | 2 - yarn.lock | 644 ++++++++++++---------- 37 files changed, 813 insertions(+), 1270 deletions(-) rename src/{Image.js => Image.jsx} (84%) delete mode 100644 src/ListView.js rename stories/{CSS.js => CSS.jsx} (90%) rename stories/{CustomDraw.js => CustomDraw.jsx} (79%) rename stories/{Gradient.js => Gradient.jsx} (80%) rename stories/{Heatmap.js => Heatmap.jsx} (78%) rename stories/{Image.js => Image.jsx} (89%) delete mode 100644 stories/Listview.js rename stories/{Text.js => Text.jsx} (81%) delete mode 100644 stories/Timeline.js rename stories/components/{Page.js => Page.jsx} (71%) diff --git a/.eslintrc.js b/.eslintrc.js index 5c596f9..d4aa23c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,12 +1,35 @@ +const prettierConfig = require('./.prettierrc.js') + module.exports = { parser: 'babel-eslint', + parserOptions: { + ecmaVersion: 2017, + sourceType: 'module', + ecmaFeatures: { + jsx: true + } + }, env: { browser: true, es6: true, - node: true, + node: true + }, + extends: ['airbnb', 'prettier', 'prettier/react'], + plugins: ['prettier'], + rules: { + 'prettier/prettier': [2, prettierConfig], + 'no-param-reassign': 0, + 'no-underscore-dangle': 0, + 'no-plusplus': 0, + 'no-restricted-syntax': 0, + 'import/prefer-default-export': 0, + 'react/prefer-stateless-function': 0, + 'react/destructuring-assignment': 0, + 'import/no-extraneous-dependencies': [ + 'error', + { devDependencies: ['stories/**/*'] } + ] }, - plugins: ['prettier', 'react'], - extends: ['prettier', 'plugin:react/recommended', 'eslint:recommended'], settings: { react: { version: 'detect' diff --git a/.prettierrc.js b/.prettierrc.js index ddb6fec..d4c0f81 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,6 +1,7 @@ module.exports = { - trailingComma: "es5", - tabWidth: 2, + printWidth: 80, + trailingComma: 'none', semi: false, - singleQuote: true -} \ No newline at end of file + singleQuote: true, + jsxBracketSameLine: true +} diff --git a/README.md b/README.md index 927620e..fe39d4a 100644 --- a/README.md +++ b/README.md @@ -56,13 +56,13 @@ React Canvas provides a set of standard React components that abstract the under ### <Gradient> -**Gradient** can be used to set the background of a group or surface. +**Gradient** can be used to set the background of a group or surface. ```javascript render() { ... return ( - ); @@ -73,11 +73,7 @@ React Canvas provides a set of standard React components that abstract the under { color: "#000", position: 1 } ] } -``` - -### <ListView> - -**ListView** is a touch scrolling container that renders a list of elements in a column. Think of it like UITableView for the web. It leverages many of the same optimizations that make table views on iOS and list views on Android fast. +``` ## Events @@ -142,47 +138,6 @@ var MyComponent = React.createClass({ }); ``` -## ListView - -Many mobile interfaces involve an infinitely long scrolling list of items. React Canvas provides the ListView component to do just that. - -Because ListView virtualizes elements outside of the viewport, passing children to it is different than a normal React component where children are declared in render(). - -The `numberOfItemsGetter`, `itemHeightGetter` and `itemGetter` props are all required. - -```javascript -var ListView = ReactCanvas.ListView; - -var MyScrollingListView = React.createClass({ - - render: function () { - return ( - - ); - }, - - getNumberOfItems: function () { - // Return the total number of items in the list - }, - - getItemHeight: function () { - // Return the height of a single item - }, - - renderItem: function (index) { - // Render the item at the given index, usually a - }, - -}); -``` - -See the [timeline example](examples/timeline/app.js) for a more complete example. - -Currently, ListView requires that each item is of the same height. Future versions will support variable height items. - ## Text sizing React Canvas provides the `measureText` function for computing text metrics. diff --git a/package.json b/package.json index a75050e..7c6c0ea 100644 --- a/package.json +++ b/package.json @@ -30,16 +30,19 @@ "alea": "^0.0.9", "babel-cli": "^6.26.0", "babel-core": "^6.26.3", - "babel-eslint": "^8.2.3", + "babel-eslint": "^10.0.1", "babel-preset-env": "^1.7.0", "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "babel-runtime": "^6.26.0", "d3-scale": "^1.0.6", - "eslint": "^5.16.0", + "eslint": "5.3.0", + "eslint-config-airbnb": "17.1.0", "eslint-config-prettier": "^4.3.0", + "eslint-plugin-import": "^2.14.0", + "eslint-plugin-jsx-a11y": "^6.1.1", "eslint-plugin-prettier": "^3.1.0", - "eslint-plugin-react": "^7.13.0", + "eslint-plugin-react": "^7.11.0", "lodash.range": "^3.2.0", "prettier": "^1.17.1", "react": "^16.8.6", @@ -57,7 +60,6 @@ "multi-key-cache": "^1.0.2", "prop-types": "^15.6.1", "react-reconciler": "^0.20.4", - "scheduler": "^0.14.0", - "scroller": "https://github.com/mjohnston/scroller" + "scheduler": "^0.14.0" } } diff --git a/src/Canvas.js b/src/Canvas.js index e8e5bf7..50f8078 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -1,5 +1,3 @@ -'use strict' - // Note that this class intentionally does not use PooledClass. // DrawingUtils manages pooling for more fine-grained control. @@ -19,13 +17,13 @@ function Canvas(width, height, scale) { } Object.assign(Canvas.prototype, { - getRawCanvas: function() { + getRawCanvas() { return this._canvas }, - getContext: function() { + getContext() { return this._canvas.getContext('2d') - }, + } }) // PooledClass: diff --git a/src/CanvasComponent.js b/src/CanvasComponent.js index e073a1a..1ab7e6e 100644 --- a/src/CanvasComponent.js +++ b/src/CanvasComponent.js @@ -11,12 +11,12 @@ export default class CanvasComponent { this.subscriptions = new Map() this.listeners = new Map() this.node = new RenderLayer(this) - this._layerId = LAYER_GUID++ + this._layerId = LAYER_GUID + LAYER_GUID += 1 } putEventListener = (type, listener) => { - const subscriptions = this.subscriptions - const listeners = this.listeners + const { listeners, subscriptions } = this let isListenerDifferent = false if (listeners.get(type) !== listener) { @@ -49,6 +49,7 @@ export default class CanvasComponent { let style = emptyObject if (props.style) { + // eslint-disable-next-line prefer-destructuring style = props.style layer._originalStyle = style } else { @@ -59,7 +60,7 @@ export default class CanvasComponent { layer.frame = make(0, 0, 0, 0) } - const frame = layer.frame + const { frame } = layer const l = style.left || 0 const t = style.top || 0 const w = style.width || 0 diff --git a/src/CanvasRenderer.js b/src/CanvasRenderer.js index 99241d8..1dddebf 100644 --- a/src/CanvasRenderer.js +++ b/src/CanvasRenderer.js @@ -1,34 +1,34 @@ import React from 'react' import invariant from 'invariant' +import ReactFiberReconciler from 'react-reconciler' +import { + unstable_now as now, + unstable_shouldYield as shouldYield, + unstable_scheduleCallback as scheduleDeferredCallback, + unstable_cancelCallback as cancelDeferredCallback +} from 'scheduler' import { emptyObject } from './utils' import Gradient from './Gradient' import Text from './Text' import Group from './Group' import { RawImage } from './Image' -import ReactFiberReconciler from 'react-reconciler' import CanvasComponent from './CanvasComponent' import { getClosestInstanceFromNode } from './ReactDOMComponentTree' -import { - unstable_now as now, - unstable_shouldYield as shouldYield, - unstable_scheduleCallback as scheduleDeferredCallback, - unstable_cancelCallback as cancelDeferredCallback, -} from 'scheduler' const UPDATE_SIGNAL = {} const MAX_POOLED_COMPONENTS_PER_TYPE = 1024 const componentConstructors = { - Gradient: Gradient, - Text: Text, - Group: Group, - RawImage: RawImage, + Gradient, + Text, + Group, + RawImage } const componentPool = {} const freeComponentToPool = component => { - const type = component.type + const { type } = component if (!(component.type in componentPool)) { componentPool[type] = [] @@ -44,7 +44,7 @@ const freeComponentToPool = component => { const freeComponentAndChildren = c => { if (!(c instanceof CanvasComponent)) return - const children = c.getLayer().children + const { children } = c.getLayer() for (let i = 0; i < children.length; i++) { const childLayer = children[i] @@ -66,7 +66,7 @@ const CanvasHostConfig = { child.getLayer().inject(parentInstance.getLayer()) }, - createInstance(type, props /*, internalInstanceHandle*/) { + createInstance(type, props /* , internalInstanceHandle */) { let instance const pool = componentPool[type] @@ -85,11 +85,13 @@ const CanvasHostConfig = { return instance }, - createTextInstance(text /*, rootContainerInstance, internalInstanceHandle*/) { + createTextInstance( + text /* , rootContainerInstance, internalInstanceHandle */ + ) { return text }, - finalizeInitialChildren(/*domElement, type, props*/) { + finalizeInitialChildren(/* domElement, type, props */) { return false }, @@ -101,7 +103,7 @@ const CanvasHostConfig = { // Noop }, - prepareUpdate(/*domElement, type, oldProps, newProps*/) { + prepareUpdate(/* domElement, type, oldProps, newProps */) { return UPDATE_SIGNAL }, @@ -109,11 +111,11 @@ const CanvasHostConfig = { // Noop }, - resetTextContent(/*domElement*/) { + resetTextContent(/* domElement */) { // Noop }, - shouldDeprioritizeSubtree(/*type, props*/) { + shouldDeprioritizeSubtree(/* type, props */) { return false }, @@ -197,11 +199,11 @@ const CanvasHostConfig = { parentLayer.invalidateLayout() }, - commitTextUpdate(/*textInstance, oldText, newText*/) { + commitTextUpdate(/* textInstance, oldText, newText */) { // Noop }, - commitMount(/*instance, type, newProps*/) { + commitMount(/* instance, type, newProps */) { // Noop }, @@ -210,7 +212,7 @@ const CanvasHostConfig = { instance.applyLayerProps(oldProps, newProps) instance.getLayer().invalidateLayout() } - }, + } } const CanvasRenderer = ReactFiberReconciler(CanvasHostConfig) @@ -222,7 +224,7 @@ CanvasRenderer.injectIntoDevTools({ rendererPackageName: 'react-canvas', getInspectorDataForViewTag: (...args) => { console.log(args) // eslint-disable-line no-console - }, + } }) const registerComponentConstructor = (name, ctor) => { diff --git a/src/CanvasUtils.js b/src/CanvasUtils.js index baaf619..d3c32da 100644 --- a/src/CanvasUtils.js +++ b/src/CanvasUtils.js @@ -36,11 +36,11 @@ function drawImage(ctx, image, x, y, width, height, options) { let sw = 0 let sh = 0 let scale - let focusPoint = options.focusPoint + let { focusPoint } = options const actualSize = { width: image.getWidth(), - height: image.getHeight(), + height: image.getHeight() } scale = Math.max(width / actualSize.width, height / actualSize.height) || 1 @@ -48,7 +48,7 @@ function drawImage(ctx, image, x, y, width, height, options) { const scaledSize = { width: actualSize.width * scale, - height: actualSize.height * scale, + height: actualSize.height * scale } if (focusPoint) { @@ -62,7 +62,7 @@ function drawImage(ctx, image, x, y, width, height, options) { // Default focal point to [0.5, 0.5] focusPoint = { x: actualSize.width * 0.5, - y: actualSize.height * 0.5, + y: actualSize.height * 0.5 } } @@ -135,16 +135,11 @@ function drawText(ctx, text, x, y, width, height, fontFace, _options) { } ctx.fillStyle = options.color - ctx.font = - fontFace.attributes.style + - ' normal ' + - fontFace.attributes.weight + - ' ' + - options.fontSize + - 'px ' + - fontFace.family - - textMetrics.lines.forEach(function(line, index) { + ctx.font = `${fontFace.attributes.style} normal ${ + fontFace.attributes.weight + } ${options.fontSize}px ${fontFace.family}` + + textMetrics.lines.forEach((line, index) => { currText = line.text currY = index === 0 @@ -196,7 +191,7 @@ function drawGradient(ctx, x1, y1, x2, y2, colorStops, x, y, width, height) { ctx.save() const grad = ctx.createLinearGradient(x1, y1, x2, y2) - colorStops.forEach(function(colorStop) { + colorStops.forEach(colorStop => { grad.addColorStop(colorStop.position, colorStop.color) }) diff --git a/src/Core.js b/src/Core.js index e44a38f..f2eeb47 100644 --- a/src/Core.js +++ b/src/Core.js @@ -2,7 +2,7 @@ const Core = { Layer: 'Layer', Group: 'Group', Text: 'Text', - Gradient: 'Gradient', + Gradient: 'Gradient' } export default Core diff --git a/src/DrawingUtils.js b/src/DrawingUtils.js index a8901cf..4229bb2 100644 --- a/src/DrawingUtils.js +++ b/src/DrawingUtils.js @@ -105,7 +105,7 @@ function layerContainsFontFace(layer, fontFace) { * @param {String} imageUrl */ function handleImageLoad(imageUrl) { - _backingStores.forEach(function(backingStore) { + _backingStores.forEach(backingStore => { if (layerContainsImage(backingStore.layer, imageUrl)) { invalidateBackingStore(backingStore.id) } @@ -119,7 +119,7 @@ function handleImageLoad(imageUrl) { * @param {FontFace} fontFace */ function handleFontLoad(fontFace) { - _backingStores.forEach(function(backingStore) { + _backingStores.forEach(backingStore => { if (layerContainsFontFace(backingStore.layer, fontFace)) { invalidateBackingStore(backingStore.id) } @@ -134,7 +134,7 @@ function handleFontLoad(fontFace) { * @param {RenderLayer} layer */ function drawBaseRenderLayer(ctx, layer) { - const frame = layer.frame + const { frame } = layer // Border radius: if (layer.borderRadius) { @@ -260,7 +260,7 @@ function drawTextRenderLayer(ctx, layer) { fontSize: layer.fontSize, lineHeight: layer.lineHeight, textAlign: layer.textAlign, - color: layer.color, + color: layer.color } ) } @@ -294,16 +294,18 @@ const layerTypesToDrawFunction = { image: drawImageRenderLayer, text: drawTextRenderLayer, gradient: drawGradientRenderLayer, - group: drawBaseRenderLayer, + group: drawBaseRenderLayer } function getDrawFunction(type) { + // eslint-disable-next-line no-prototype-builtins return layerTypesToDrawFunction.hasOwnProperty(type) ? layerTypesToDrawFunction[type] : drawBaseRenderLayer } function registerLayerType(type, drawFunction) { + // eslint-disable-next-line no-prototype-builtins if (layerTypesToDrawFunction.hasOwnProperty(type)) { throw new Error(`type ${type} already registered`) } @@ -319,10 +321,11 @@ function sortByZIndexAscending(layerA, layerB) { } let drawCacheableRenderLayer = null +// eslint-disable-next-line import/no-mutable-exports let drawRenderLayer = null function drawChildren(layer, ctx) { - const children = layer.children + const { children } = layer if (children.length === 0) return // Opimization @@ -343,9 +346,7 @@ function drawChildren(layer, ctx) { children .slice() .sort(sortByZIndexAscending) - .forEach(function(childLayer) { - drawRenderLayer(ctx, childLayer) - }) + .forEach(childLayer => drawRenderLayer(ctx, childLayer)) } } @@ -392,6 +393,7 @@ drawRenderLayer = (ctx, layer) => { ctx.save() // Draw + // eslint-disable-next-line no-unused-expressions drawFunction && drawFunction(ctx, layer) ctx.restore() @@ -449,8 +451,8 @@ drawCacheableRenderLayer = (ctx, layer, drawFunction) => { ) _backingStores.push({ id: layer.backingStoreId, - layer: layer, - canvas: backingStore, + layer, + canvas: backingStore }) } @@ -463,6 +465,7 @@ drawCacheableRenderLayer = (ctx, layer, drawFunction) => { backingContext.save() // Custom drawing operations + // eslint-disable-next-line no-unused-expressions drawFunction && drawFunction(backingContext, layer) backingContext.restore() @@ -512,5 +515,5 @@ export { handleFontLoad, layerContainsImage, layerContainsFontFace, - registerLayerType, + registerLayerType } diff --git a/src/Easing.js b/src/Easing.js index bffa43b..bccc617 100644 --- a/src/Easing.js +++ b/src/Easing.js @@ -6,7 +6,7 @@ function linear(t) { } function easeInQuad(t) { - return Math.pow(t, 2) + return t ** 2 } function easeOutQuad(t) { @@ -36,5 +36,5 @@ export { easeInOutQuad, easeInCubic, easeOutCubic, - easeInOutCubic, + easeInOutCubic } diff --git a/src/EventTypes.js b/src/EventTypes.js index 95c3550..fdb1e2b 100755 --- a/src/EventTypes.js +++ b/src/EventTypes.js @@ -25,5 +25,5 @@ export { onMouseOut, onClick, onContextMenu, - onDoubleClick, + onDoubleClick } diff --git a/src/FontFace.js b/src/FontFace.js index cff1e9c..bcca520 100644 --- a/src/FontFace.js +++ b/src/FontFace.js @@ -1,4 +1,5 @@ import MultiKeyCache from 'multi-key-cache' + const _fontFaces = new MultiKeyCache() /** @@ -49,7 +50,7 @@ function FontFace(family, url, attributes) { * @param {Number} fontWeight * @return {FontFace} */ -FontFace.Default = function(fontWeight) { +FontFace.Default = fontWeight => { return FontFace('sans-serif', null, { weight: fontWeight }) } diff --git a/src/FontUtils.js b/src/FontUtils.js index fc0dd92..2f55e49 100644 --- a/src/FontUtils.js +++ b/src/FontUtils.js @@ -14,16 +14,10 @@ const kFontLoadTimeout = 3000 function createTestNode(family, attributes) { const span = document.createElement('span') span.setAttribute('data-fontfamily', family) - span.style.cssText = - 'position:absolute; left:-5000px; top:-5000px; visibility:hidden;' + - 'font-size:100px; font-family:"' + - family + - '", Helvetica;font-weight: ' + - attributes.weight + - ';' + - 'font-style:' + - attributes.style + - ';' + span.style.cssText = `${'position:absolute; left:-5000px; top:-5000px; visibility:hidden;' + + 'font-size:100px; font-family:"'}${family}", Helvetica;font-weight: ${ + attributes.weight + }; font-style:${attributes.style};` span.innerHTML = 'BESs' return span } @@ -33,7 +27,7 @@ function createTestNode(family, attributes) { */ function handleFontLoad(fontFace, timeout) { const error = timeout - ? 'Exceeded load timeout of ' + kFontLoadTimeout + 'ms' + ? `Exceeded load timeout of ${kFontLoadTimeout}ms` : null if (!error) { @@ -43,7 +37,7 @@ function handleFontLoad(fontFace, timeout) { } // Execute pending callbacks. - _pendingFonts[fontFace.id].callbacks.forEach(function(callback) { + _pendingFonts[fontFace.id].callbacks.forEach(callback => { callback(error) }) @@ -93,7 +87,7 @@ function loadFontNormal(fontFace, callback) { // Font load is already in progress: if (_pendingFonts[fontFace.id]) { _pendingFonts[fontFace.id].callbacks.push(callback) - return + return null } // Create the test 's for measuring. @@ -104,13 +98,13 @@ function loadFontNormal(fontFace, callback) { _pendingFonts[fontFace.id] = { startTime: Date.now(), - defaultNode: defaultNode, - testNode: testNode, - callbacks: [callback], + defaultNode, + testNode, + callbacks: [callback] } // Font watcher - const checkFont = function() { + const checkFont = () => { const currWidth = testNode.getBoundingClientRect().width const defaultWidth = defaultNode.getBoundingClientRect().width const loaded = currWidth !== defaultWidth @@ -119,6 +113,7 @@ function loadFontNormal(fontFace, callback) { handleFontLoad(fontFace, null) } else { // Timeout? + // eslint-disable-next-line no-lonely-if if ( Date.now() - _pendingFonts[fontFace.id].startTime >= kFontLoadTimeout @@ -132,6 +127,7 @@ function loadFontNormal(fontFace, callback) { // Start watching checkFont() + return null } // Internal @@ -144,17 +140,20 @@ function loadFontNormal(fontFace, callback) { function loadFontNative(fontFace, callback) { // See if we've previously loaded it. if (_loadedFonts[fontFace.id]) { - return callback(null) + callback(null) + return } // See if we've previously failed to load it. if (_failedFonts[fontFace.id]) { - return callback(_failedFonts[fontFace.id]) + callback(_failedFonts[fontFace.id]) + return } // System font: assume it's installed. if (!fontFace.url) { - return callback(null) + callback(null) + return } // Font load is already in progress: @@ -165,22 +164,22 @@ function loadFontNative(fontFace, callback) { _pendingFonts[fontFace.id] = { startTime: Date.now(), - callbacks: [callback], + callbacks: [callback] } // Use font loader API const theFontFace = new window.FontFace( fontFace.family, - 'url(' + fontFace.url + ')', + `url(${fontFace.url})`, fontFace.attributes ) theFontFace.load().then( - function() { + () => { _loadedFonts[fontFace.id] = true callback(null) }, - function(err) { + err => { _failedFonts[fontFace.id] = err callback(err) } diff --git a/src/FrameUtils.js b/src/FrameUtils.js index d0516f8..5e8fa9e 100644 --- a/src/FrameUtils.js +++ b/src/FrameUtils.js @@ -59,6 +59,7 @@ function inset(frame, top, right, bottom, left) { // inset(myFrame, 10) => inset(myFrame, 10, 10, 10, 10) if (typeof right === 'undefined') { + // eslint-disable-next-line no-multi-assign right = bottom = left = top } diff --git a/src/Image.js b/src/Image.jsx similarity index 84% rename from src/Image.js rename to src/Image.jsx index 2b574d4..4162426 100644 --- a/src/Image.js +++ b/src/Image.jsx @@ -32,10 +32,18 @@ export class RawImage extends CanvasComponent { export default class Image extends React.Component { static propTypes = { src: PropTypes.string.isRequired, + // eslint-disable-next-line react/forbid-prop-types style: PropTypes.object, useBackingStore: PropTypes.bool, fadeIn: PropTypes.bool, - fadeInDuration: PropTypes.number, + fadeInDuration: PropTypes.number + } + + static defaultProps = { + useBackingStore: false, + fadeIn: false, + fadeInDuration: 0, + style: {} } constructor(props) { @@ -43,8 +51,8 @@ export default class Image extends React.Component { const loaded = ImageCache.get(props.src).isLoaded() this.state = { - loaded: loaded, - imageAlpha: loaded ? 1 : 0, + loaded, + imageAlpha: loaded ? 1 : 0 } } @@ -52,20 +60,13 @@ export default class Image extends React.Component { ImageCache.get(this.props.src).on('load', this.handleImageLoad) } - componentWillUnmount() { - if (this._pendingAnimationFrame) { - cancelAnimationFrame(this._pendingAnimationFrame) - this._pendingAnimationFrame = null - } - ImageCache.get(this.props.src).removeListener('load', this.handleImageLoad) - } - componentDidUpdate(prevProps) { if (this.props.src !== prevProps.src) { ImageCache.get(prevProps.src).removeListener('load', this.handleImageLoad) ImageCache.get(this.props.src).on('load', this.handleImageLoad) const loaded = ImageCache.get(this.props.src).isLoaded() - this.setState({ loaded: loaded }) + // eslint-disable-next-line react/no-did-update-set-state + this.setState({ loaded }) } if (this.rawImageRef) { @@ -73,8 +74,47 @@ export default class Image extends React.Component { } } - setRawImageRef = ref => (this.rawImageRef = ref) - setGroupRef = ref => (this.groupRef = ref) + componentWillUnmount() { + if (this._pendingAnimationFrame) { + cancelAnimationFrame(this._pendingAnimationFrame) + this._pendingAnimationFrame = null + } + ImageCache.get(this.props.src).removeListener('load', this.handleImageLoad) + } + + setRawImageRef = ref => { + this.rawImageRef = ref + } + + setGroupRef = ref => { + this.groupRef = ref + } + + handleImageLoad = () => { + let imageAlpha = 1 + if (this.props.fadeIn) { + imageAlpha = 0 + this._animationStartTime = Date.now() + this._pendingAnimationFrame = requestAnimationFrame( + this.stepThroughAnimation + ) + } + this.setState({ loaded: true, imageAlpha }) + } + + stepThroughAnimation = () => { + const fadeInDuration = this.props.fadeInDuration || FADE_DURATION + let alpha = easeInCubic( + (Date.now() - this._animationStartTime) / fadeInDuration + ) + alpha = clamp(alpha, 0, 1) + this.setState({ imageAlpha: alpha }) + if (alpha < 1) { + this._pendingAnimationFrame = requestAnimationFrame( + this.stepThroughAnimation + ) + } + } render() { const imageStyle = Object.assign({}, this.props.style) @@ -89,7 +129,8 @@ export default class Image extends React.Component { // Hide opaque background if image loaded so that images with transparent // do not render on top of solid color. - style.backgroundColor = imageStyle.backgroundColor = null + style.backgroundColor = null + imageStyle.backgroundColor = null backgroundStyle.alpha = clamp(1 - this.state.imageAlpha, 0, 1) return ( @@ -105,30 +146,4 @@ export default class Image extends React.Component { ) } - - handleImageLoad = () => { - let imageAlpha = 1 - if (this.props.fadeIn) { - imageAlpha = 0 - this._animationStartTime = Date.now() - this._pendingAnimationFrame = requestAnimationFrame( - this.stepThroughAnimation - ) - } - this.setState({ loaded: true, imageAlpha: imageAlpha }) - } - - stepThroughAnimation = () => { - const fadeInDuration = this.props.fadeInDuration || FADE_DURATION - let alpha = easeInCubic( - (Date.now() - this._animationStartTime) / fadeInDuration - ) - alpha = clamp(alpha, 0, 1) - this.setState({ imageAlpha: alpha }) - if (alpha < 1) { - this._pendingAnimationFrame = requestAnimationFrame( - this.stepThroughAnimation - ) - } - } } diff --git a/src/ImageCache.js b/src/ImageCache.js index 910d317..662df4e 100644 --- a/src/ImageCache.js +++ b/src/ImageCache.js @@ -1,6 +1,6 @@ import EventEmitter from 'events' -const NOOP = function() {} +const NOOP = () => {} function Img(src) { this._originalSrc = src @@ -23,7 +23,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { /** * Pooling owner looks for this */ - destructor: function() { + destructor() { // Make sure we aren't leaking callbacks. this.removeAllListeners() }, @@ -33,7 +33,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * * @return {String} */ - getOriginalSrc: function() { + getOriginalSrc() { return this._originalSrc }, @@ -42,7 +42,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * * @return {HTMLImageElement} */ - getRawImage: function() { + getRawImage() { return this._img }, @@ -51,7 +51,7 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * * @return {Number} */ - getWidth: function() { + getWidth() { return this._img.naturalWidth }, @@ -60,16 +60,16 @@ Object.assign(Img.prototype, EventEmitter.prototype, { * * @return {Number} */ - getHeight: function() { + getHeight() { return this._img.naturalHeight }, /** * @return {Bool} */ - isLoaded: function() { + isLoaded() { return this._img.naturalHeight > 0 - }, + } }) const kInstancePoolLength = 300 @@ -80,16 +80,16 @@ const _instancePool = { elements: {}, // Push with 0 frequency - push: function(hash, data) { + push(hash, data) { this.length++ this.elements[hash] = { - hash: hash, // Helps identifying + hash, // Helps identifying freq: 0, - data: data, + data } }, - get: function(path) { + get(path) { const element = this.elements[path] if (element) { @@ -101,7 +101,7 @@ const _instancePool = { }, // used to explicitely remove the path - removeElement: function(path) { + removeElement(path) { // Now almighty GC can claim this soul const element = this.elements[path] delete this.elements[path] @@ -109,7 +109,7 @@ const _instancePool = { return element }, - _reduceLeastUsed: function(least, currentHash) { + _reduceLeastUsed(least, currentHash) { const current = _instancePool.elements[currentHash] if (least.freq > current.freq) { @@ -119,10 +119,10 @@ const _instancePool = { return least }, - popLeastUsed: function() { + popLeastUsed() { const reducer = _instancePool._reduceLeastUsed const minUsed = Object.keys(this.elements).reduce(reducer, { - freq: Infinity, + freq: Infinity }) if (minUsed.hash) { @@ -130,7 +130,7 @@ const _instancePool = { } return null - }, + } } const ImageCache = { @@ -139,7 +139,7 @@ const ImageCache = { * * @return {Img} */ - get: function(src) { + get(src) { let image = _instancePool.get(src) if (!image) { // Awesome LRU @@ -150,7 +150,7 @@ const ImageCache = { _instancePool.push(image.getOriginalSrc(), image) } return image - }, + } } export default ImageCache diff --git a/src/ListView.js b/src/ListView.js deleted file mode 100644 index 5cc669b..0000000 --- a/src/ListView.js +++ /dev/null @@ -1,249 +0,0 @@ -'use strict' - -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import Scroller from 'scroller' -import Core from './Core' -const { Group } = Core -const MAX_CACHED_ITEMS = 100 - -class ListView extends Component { - static propTypes = { - style: PropTypes.object, - numberOfItemsGetter: PropTypes.func.isRequired, - itemHeightGetter: PropTypes.func.isRequired, - itemGetter: PropTypes.func.isRequired, - snapping: PropTypes.bool, - scrollingDeceleration: PropTypes.number, - scrollingPenetrationAcceleration: PropTypes.number, - onScroll: PropTypes.func, - } - - static defaultProps = { - style: { left: 0, top: 0, width: 0, height: 0 }, - snapping: false, - scrollingDeceleration: 0.95, - scrollingPenetrationAcceleration: 0.08, - } - - state = { - scrollTop: 0, - } - - constructor(props) { - super(props) - - this._itemCache = new Map() - this._groupCache = new Map() - } - - componentDidMount() { - this.createScroller() - this.updateScrollingDimensions() - } - - render() { - if (this._itemCache.size > MAX_CACHED_ITEMS) { - this._itemCache.clear() - this._groupCache.clear() - } - - const items = this.getVisibleItemIndexes().map(this.renderItem) - return React.createElement( - Group, - { - style: this.props.style, - onTouchStart: this.handleTouchStart, - onTouchMove: this.handleTouchMove, - onTouchEnd: this.handleTouchEnd, - onMouseDown: this.handleMouseDown, - onMouseUp: this.handleMouseUp, - onMouseOut: this.handleMouseOut, - onMouseMove: this.handleMouseMove, - onTouchCancel: this.handleTouchEnd, - }, - items - ) - } - - renderItem = itemIndex => { - const item = this.props.itemGetter(itemIndex, this.state.scrollTop) - const priorItem = this._itemCache.get(itemIndex) - const itemHeight = this.props.itemHeightGetter() - - let group - - if (item === priorItem) { - // Item hasn't changed, we can re-use the previous Group element after adjusting style. - group = this._groupCache.get(itemIndex) - } else { - group = React.createElement( - Group, - { - style: { top: 0, left: 0, zIndex: itemIndex }, - useBackingStore: true, - key: itemIndex, - }, - item - ) - - this._itemCache.set(itemIndex, item) - this._groupCache.set(itemIndex, group) - } - - if (group.props.style.width !== this.props.style.width) { - group.props.style.width = this.props.style.width - } - - if (group.props.style.height !== itemHeight) { - group.props.style.height = itemHeight - } - - group.props.style.translateY = itemIndex * itemHeight - this.state.scrollTop - - return group - } - - // Events - // ====== - - handleTouchStart = e => { - if (this.scroller) { - this.scroller.doTouchStart(e.touches, e.timeStamp) - } - } - - handleTouchMove = e => { - if (this.scroller) { - e.preventDefault() - this.scroller.doTouchMove(e.touches, e.timeStamp, e.scale) - } - } - - handleTouchEnd = e => { - this.handleScrollRelease(e) - } - - handleMouseDown = e => { - //if (e.button !== 2) return; - - if (this.scroller) { - this.scroller.doTouchStart([e], e.timeStamp) - } - } - - handleMouseMove = e => { - if (this.scroller) { - e.preventDefault() - this.scroller.doTouchMove([e], e.timeStamp) - } - } - - handleMouseUp = e => { - //if (e.button !== 2) return; - - this.handleScrollRelease(e) - } - - handleMouseOut = e => { - //if (e.button !== 2) return; - - this.handleScrollRelease(e) - } - - handleScrollRelease = e => { - if (this.scroller) { - this.scroller.doTouchEnd(e.timeStamp) - if (this.props.snapping) { - this.updateScrollingDeceleration() - } - } - } - - handleScroll = (left, top) => { - this.setState({ scrollTop: top }) - if (this.props.onScroll) { - this.props.onScroll(top) - } - } - - // Scrolling - // ========= - - createScroller = () => { - const options = { - scrollingX: false, - scrollingY: true, - decelerationRate: this.props.scrollingDeceleration, - penetrationAcceleration: this.props.scrollingPenetrationAcceleration, - } - this.scroller = new Scroller(this.handleScroll, options) - } - - updateScrollingDimensions = () => { - const width = this.props.style.width - const height = this.props.style.height - const scrollWidth = width - const scrollHeight = - this.props.numberOfItemsGetter() * this.props.itemHeightGetter() - this.scroller.setDimensions(width, height, scrollWidth, scrollHeight) - } - - getVisibleItemIndexes = () => { - const itemIndexes = [] - const itemHeight = this.props.itemHeightGetter() - const itemCount = this.props.numberOfItemsGetter() - const scrollTop = this.state.scrollTop - let itemScrollTop = 0 - - for (let index = 0; index < itemCount; index++) { - itemScrollTop = index * itemHeight - scrollTop - - // Item is completely off-screen bottom - if (itemScrollTop >= this.props.style.height) { - continue - } - - // Item is completely off-screen top - if (itemScrollTop <= -this.props.style.height) { - continue - } - - // Part of item is on-screen. - itemIndexes.push(index) - } - - return itemIndexes - } - - updateScrollingDeceleration = () => { - let currVelocity = this.scroller.__decelerationVelocityY - const currScrollTop = this.state.scrollTop - let targetScrollTop = 0 - let estimatedEndScrollTop = currScrollTop - - while (Math.abs(currVelocity).toFixed(6) > 0) { - estimatedEndScrollTop += currVelocity - currVelocity *= this.props.scrollingDeceleration - } - - // Find the page whose estimated end scrollTop is closest to 0. - let closestZeroDelta = Infinity - const pageHeight = this.props.itemHeightGetter() - const pageCount = this.props.numberOfItemsGetter() - let pageScrollTop - - for (let pageIndex = 0, len = pageCount; pageIndex < len; pageIndex++) { - pageScrollTop = pageHeight * pageIndex - estimatedEndScrollTop - if (Math.abs(pageScrollTop) < closestZeroDelta) { - closestZeroDelta = Math.abs(pageScrollTop) - targetScrollTop = pageHeight * pageIndex - } - } - - this.scroller.__minDecelerationScrollTop = targetScrollTop - this.scroller.__maxDecelerationScrollTop = targetScrollTop - } -} - -export default ListView diff --git a/src/ReactDOMComponentTree.js b/src/ReactDOMComponentTree.js index a27fb00..2b0e813 100644 --- a/src/ReactDOMComponentTree.js +++ b/src/ReactDOMComponentTree.js @@ -7,7 +7,7 @@ const HostText = 6 const randomKey = Math.random() .toString(36) .slice(2) -const internalInstanceKey = '__reactInternalInstance$' + randomKey +const internalInstanceKey = `__reactInternalInstance$${randomKey}` /** * Given a DOM node, return the closest ReactDOMComponent or @@ -28,7 +28,7 @@ export function getClosestInstanceFromNode(node) { } } - let inst = node[internalInstanceKey] + const inst = node[internalInstanceKey] if (inst.tag === HostComponent || inst.tag === HostText) { // In Fiber, this will always be the deepest root. return inst diff --git a/src/RenderLayer.js b/src/RenderLayer.js index 6bc15bd..05f7808 100644 --- a/src/RenderLayer.js +++ b/src/RenderLayer.js @@ -12,15 +12,17 @@ RenderLayer.prototype = { * * @return {RenderLayer} */ - reset: function(component) { + reset(component) { if (this.backingStoreId) { invalidateBackingStore(this.backingStoreId) } for (const key in this) { + // eslint-disable-next-line no-continue if (key === 'children' || key === 'frame' || key === 'component') continue const value = this[key] + // eslint-disable-next-line no-continue if (typeof value === 'function') continue this[key] = null } @@ -48,7 +50,7 @@ RenderLayer.prototype = { * * @return {RenderLayer} */ - getRootLayer: function() { + getRootLayer() { let root = this while (root.parentLayer) { root = root.parentLayer @@ -62,7 +64,7 @@ RenderLayer.prototype = { * * @param {RenderLayer} parentLayer */ - inject: function(parentLayer) { + inject(parentLayer) { if (this.parentLayer && this.parentLayer !== parentLayer) { this.remove() } @@ -77,7 +79,7 @@ RenderLayer.prototype = { * @param {RenderLayer} parentLayer * @param {RenderLayer} referenceLayer */ - injectBefore: function(parentLayer, beforeLayer) { + injectBefore(parentLayer, beforeLayer) { this.remove() const beforeIndex = parentLayer.children.indexOf(beforeLayer) parentLayer.children.splice(beforeIndex, 0, this) @@ -90,7 +92,7 @@ RenderLayer.prototype = { * * @param {RenderLayer} child */ - addChild: function(child) { + addChild(child) { child.parentLayer = this this.children.push(child) }, @@ -98,7 +100,7 @@ RenderLayer.prototype = { /** * Remove a layer from it's parent layer */ - remove: function() { + remove() { if (this.parentLayer) { this.parentLayer.children.splice( this.parentLayer.children.indexOf(this), @@ -112,7 +114,7 @@ RenderLayer.prototype = { /** * Move a layer to top. */ - moveToTop: function() { + moveToTop() { if ( this.parentLayer && this.parentLayer.children.length > 1 && @@ -136,7 +138,7 @@ RenderLayer.prototype = { * @param {?Object} callbackScope * @return {Function} invoke to unsubscribe the listener */ - subscribe: function(type, callback, callbackScope) { + subscribe(type, callback, callbackScope) { // This is the integration point with React, called from LayerMixin.putEventListener(). // Enforce that only a single callbcak can be assigned per event type. for (const eventType in EventTypes) { @@ -152,7 +154,7 @@ RenderLayer.prototype = { /** * @param {String} type */ - destroyEventListeners: function() { + destroyEventListeners() { for (const eventType in EventTypes) { if (this[eventType]) { delete this[eventType] @@ -165,7 +167,7 @@ RenderLayer.prototype = { * @param {Function} callback * @param {?Object} callbackScope */ - removeEventListener: function(type, callback, callbackScope) { + removeEventListener(type, callback, callbackScope) { const listeners = this.eventListeners[type] let listener if (listeners) { @@ -188,7 +190,7 @@ RenderLayer.prototype = { * @param {Number} x * @param {Number} y */ - translate: function(x, y) { + translate(x, y) { if (this.frame) { this.frame.x += x this.frame.y += y @@ -200,7 +202,7 @@ RenderLayer.prototype = { } if (this.children) { - this.children.forEach(function(child) { + this.children.forEach(child => { child.translate(x, y) }) } @@ -217,7 +219,7 @@ RenderLayer.prototype = { * @param {?Frame} frame Optional, if not passed the entire layer's frame * will be invalidated. */ - invalidateLayout: function() { + invalidateLayout() { // Bubble all the way to the root layer. this.getRootLayer().draw() }, @@ -227,7 +229,7 @@ RenderLayer.prototype = { * redrawn. For instance, an image component would call this once after the * image loads. */ - invalidateBackingStore: function() { + invalidateBackingStore() { if (this.backingStoreId) { invalidateBackingStore(this.backingStoreId) } @@ -237,9 +239,9 @@ RenderLayer.prototype = { /** * Only the root owning layer should implement this function. */ - draw: function() { + draw() { // Placeholer - }, + } } export default RenderLayer diff --git a/src/Surface.js b/src/Surface.js index b74d301..bff89e2 100755 --- a/src/Surface.js +++ b/src/Surface.js @@ -1,5 +1,3 @@ -'use strict' - import React from 'react' import PropTypes from 'prop-types' import RenderLayer from './RenderLayer' @@ -15,7 +13,7 @@ const MOUSE_CLICK_DURATION_MS = 300 * ReactCanvas components cannot be rendered outside a Surface. */ class Surface extends React.Component { - displayName = 'Surface' + static displayName = 'Surface' static propTypes = { className: PropTypes.string, @@ -24,23 +22,26 @@ class Surface extends React.Component { left: PropTypes.number.isRequired, width: PropTypes.number.isRequired, height: PropTypes.number.isRequired, - scale: PropTypes.number.isRequired, + scale: PropTypes.number, enableCSSLayout: PropTypes.bool, - children: PropTypes.node, + children: PropTypes.node.isRequired, + // eslint-disable-next-line react/forbid-prop-types style: PropTypes.object, - canvas: PropTypes.object, + // eslint-disable-next-line react/forbid-prop-types + canvas: PropTypes.object } static defaultProps = { scale: window.devicePixelRatio || 1, + className: '', + id: undefined, + enableCSSLayout: false, + style: {}, + canvas: undefined } static canvasRenderer = null - setCanvasRef = canvas => { - this.canvas = canvas - } - constructor(props) { super(props) @@ -49,6 +50,10 @@ class Surface extends React.Component { } } + setCanvasRef = canvas => { + this.canvas = canvas + } + componentDidMount = () => { // Prepare the for drawing. this.scale() @@ -57,20 +62,12 @@ class Surface extends React.Component { // `this.node` is injected into child components and represents the current // render tree. this.node = new RenderLayer() - this.node.frame = make( - this.props.left, - this.props.top, - this.props.width, - this.props.height - ) + const { left, top, width, height, children } = this.props + this.node.frame = make(left, top, width, height) this.node.draw = this.batchedTick this.mountNode = Surface.canvasRenderer.createContainer(this) - Surface.canvasRenderer.updateContainer( - this.props.children, - this.mountNode, - this - ) + Surface.canvasRenderer.updateContainer(children, this.mountNode, this) // Execute initial draw on mount. this.node.draw() @@ -101,50 +98,6 @@ class Surface extends React.Component { } } - render() { - if (this.props.canvas) { - return null - } - - // Scale the drawing area to match DPI. - const width = this.props.width * this.props.scale - const height = this.props.height * this.props.scale - let style = {} - - if (this.props.style) { - style = Object.assign({}, this.props.style) - } - - if (typeof this.props.width !== 'undefined') { - style.width = this.props.width - } - - if (typeof this.props.height !== 'undefined') { - style.height = this.props.height - } - - return React.createElement('canvas', { - ref: this.setCanvasRef, - className: this.props.className, - id: this.props.id, - width: width, - height: height, - style: style, - onTouchStart: this.handleTouchStart, - onTouchMove: this.handleTouchMove, - onTouchEnd: this.handleTouchEnd, - onTouchCancel: this.handleTouchEnd, - onMouseDown: this.handleMouseEvent, - onMouseUp: this.handleMouseEvent, - onMouseMove: this.handleMouseEvent, - onMouseOver: this.handleMouseEvent, - onMouseOut: this.handleMouseEvent, - onContextMenu: this.handleContextMenu, - onClick: this.handleMouseEvent, - onDoubleClick: this.handleMouseEvent, - }) - } - // Drawing // ======= getLayer = () => this.node @@ -302,6 +255,50 @@ class Surface extends React.Component { handleContextMenu = e => { this.hitTest(e) } + + render() { + if (this.props.canvas) { + return null + } + + // Scale the drawing area to match DPI. + const width = this.props.width * this.props.scale + const height = this.props.height * this.props.scale + let style = {} + + if (this.props.style) { + style = Object.assign({}, this.props.style) + } + + if (typeof this.props.width !== 'undefined') { + style.width = this.props.width + } + + if (typeof this.props.height !== 'undefined') { + style.height = this.props.height + } + + return React.createElement('canvas', { + ref: this.setCanvasRef, + className: this.props.className, + id: this.props.id, + width, + height, + style, + onTouchStart: this.handleTouchStart, + onTouchMove: this.handleTouchMove, + onTouchEnd: this.handleTouchEnd, + onTouchCancel: this.handleTouchEnd, + onMouseDown: this.handleMouseEvent, + onMouseUp: this.handleMouseEvent, + onMouseMove: this.handleMouseEvent, + onMouseOver: this.handleMouseEvent, + onMouseOut: this.handleMouseEvent, + onContextMenu: this.handleContextMenu, + onClick: this.handleMouseEvent, + onDoubleClick: this.handleMouseEvent + }) + } } export default Surface diff --git a/src/hitTest.js b/src/hitTest.js index 20da07d..cca6a0d 100755 --- a/src/hitTest.js +++ b/src/hitTest.js @@ -103,8 +103,8 @@ function hitTest(e, rootLayer, rootNode) { touchY -= rootNodeBox.top } - touchY = touchY - window.pageYOffset - touchX = touchX - window.pageXOffset + touchY -= window.pageYOffset + touchX -= window.pageXOffset return getLayerAtPoint( rootLayer, diff --git a/src/index.js b/src/index.js index d75aa90..97eae72 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,6 @@ import Surface from './Surface' import Core from './Core' import Image from './Image' -import ListView from './ListView' import FontFace from './FontFace' import FrameUtils from './FrameUtils' import measureText from './measureText' @@ -11,7 +10,7 @@ import { registerLayerType } from './DrawingUtils' Surface.canvasRenderer = CanvasRenderer -const registerCustomComponent = function(name, applyProps, drawFunction) { +const registerCustomComponent = (name, applyProps, drawFunction) => { const layerType = name.toLowerCase() registerLayerType(layerType, drawFunction) @@ -37,26 +36,28 @@ const ReactCanvas = { ...Core, Surface, Image, - ListView, FontFace, FrameUtils, measureText, - registerCustomComponent, + registerCustomComponent } +// eslint-disable-next-line prefer-destructuring export const Text = ReactCanvas.Text +// eslint-disable-next-line prefer-destructuring export const Group = ReactCanvas.Group +// eslint-disable-next-line prefer-destructuring export const Gradient = ReactCanvas.Gradient +// eslint-disable-next-line prefer-destructuring export const Layer = ReactCanvas.Layer export { Surface, Image, - ListView, FontFace, FrameUtils, measureText, - registerCustomComponent, + registerCustomComponent } export default ReactCanvas diff --git a/src/layoutNode.js b/src/layoutNode.js index a2a3186..6403f28 100644 --- a/src/layoutNode.js +++ b/src/layoutNode.js @@ -3,16 +3,16 @@ import { emptyObject } from './utils' function createNode(layer) { return { - layer: layer, + layer, layout: { width: undefined, // computeLayout will mutate height: undefined, // computeLayout will mutate top: 0, - left: 0, + left: 0 }, style: layer._originalStyle || emptyObject, // TODO no need to layout children that have non-dirty backing store - children: (layer.children || []).map(createNode), + children: (layer.children || []).map(createNode) } } @@ -22,7 +22,7 @@ function walkNode(node, parentLeft, parentTop) { node.layer.frame.width = node.layout.width node.layer.frame.height = node.layout.height if (node.children && node.children.length > 0) { - node.children.forEach(function(child) { + node.children.forEach(child => { walkNode(child, node.layer.frame.x, node.layer.frame.y) }) } diff --git a/src/measureText.js b/src/measureText.js index 03cbf4f..c1251f0 100644 --- a/src/measureText.js +++ b/src/measureText.js @@ -1,6 +1,6 @@ -import { isFontLoaded } from './FontUtils' import LineBreaker from '@craigmorton/linebreak' import MultiKeyCache from 'multi-key-cache' +import { isFontLoaded } from './FontUtils' const canvas = document.createElement('canvas') const ctx = canvas.getContext('2d') @@ -9,7 +9,7 @@ const _cache = new MultiKeyCache() const _zeroMetrics = { width: 0, height: 0, - lines: [], + lines: [] } /** @@ -49,14 +49,9 @@ export default function measureText( let bk let lastBreak - ctx.font = - fontFace.attributes.style + - ' normal ' + - fontFace.attributes.weight + - ' ' + - fontSize + - 'px ' + - fontFace.family + ctx.font = `${fontFace.attributes.style} normal ${ + fontFace.attributes.weight + } ${fontSize}px ${fontFace.family}` textMetrics = ctx.measureText(text) measuredSize.width = textMetrics.width @@ -65,13 +60,14 @@ export default function measureText( if (measuredSize.width <= width) { // The entire text string fits. - measuredSize.lines.push({ width: measuredSize.width, text: text }) + measuredSize.lines.push({ width: measuredSize.width, text }) } else { // Break into multiple lines. measuredSize.width = width currentLine = '' breaker = new LineBreaker(text) + // eslint-disable-next-line no-cond-assign while ((bk = breaker.nextBreak())) { const word = text.slice(lastBreak ? lastBreak.position : 0, bk.position) @@ -81,7 +77,7 @@ export default function measureText( measuredSize.height += lineHeight measuredSize.lines.push({ width: lastMeasuredWidth, - text: currentLine.trim(), + text: currentLine.trim() }) currentLine = word lastMeasuredWidth = ctx.measureText(currentLine.trim()).width diff --git a/stories/CSS.js b/stories/CSS.jsx similarity index 90% rename from stories/CSS.js rename to stories/CSS.jsx index 6e0f695..14727bc 100644 --- a/stories/CSS.js +++ b/stories/CSS.jsx @@ -1,7 +1,6 @@ import React from 'react' import { storiesOf } from '@storybook/react' -import ReactCanvas from '../src/index' -const { FontFace, Text, Group, Image, Surface } = ReactCanvas +import { FontFace, Text, Group, Image, Surface } from '../src/index' class App extends React.Component { componentDidMount() { @@ -12,43 +11,6 @@ class App extends React.Component { this._unmounted = true } - render() { - const size = this.getSize() - - return ( - - - Professor PuddinPop - - - - - With these words the Witch fell down in a brown, melted, shapeless - mass and began to spread over the clean boards of the kitchen floor. - Seeing that she had really melted away to nothing, Dorothy drew - another bucket of water and threw it over the mess. She then swept - it all out the door. After picking out the silver shoe, which was - all that was left of the old woman, she cleaned and dried it with a - cloth, and put it on her foot again. Then, being at last free to do - as she chose, she ran out to the courtyard to tell the Lion that the - Wicked Witch of the West had come to an end, and that they were no - longer prisoners in a strange land. - - - - ) - } - // Styles // ====== @@ -64,7 +26,7 @@ class App extends React.Component { width: size.width, height: size.height, backgroundColor: '#f7f7f7', - flexDirection: 'column', + flexDirection: 'column' } } @@ -72,7 +34,7 @@ class App extends React.Component { return { position: 'relative', flex: 1, - backgroundColor: '#eee', + backgroundColor: '#eee' } } @@ -82,7 +44,7 @@ class App extends React.Component { left: 0, top: 0, right: 0, - bottom: 0, + bottom: 0 } } @@ -94,7 +56,7 @@ class App extends React.Component { height: 28, marginBottom: 10, color: '#333', - textAlign: 'center', + textAlign: 'center' } } @@ -105,7 +67,7 @@ class App extends React.Component { lineHeight: 25, marginTop: 15, flex: 1, - color: '#333', + color: '#333' } } @@ -117,6 +79,42 @@ class App extends React.Component { this.forceUpdate() } } + + render() { + const size = this.getSize() + + return ( + + + Professor PuddinPop + + + + + With these words the Witch fell down in a brown, melted, shapeless + mass and began to spread over the clean boards of the kitchen floor. + Seeing that she had really melted away to nothing, Dorothy drew + another bucket of water and threw it over the mess. She then swept + it all out the door. After picking out the silver shoe, which was + all that was left of the old woman, she cleaned and dried it with a + cloth, and put it on her foot again. Then, being at last free to do + as she chose, she ran out to the courtyard to tell the Lion that the + Wicked Witch of the West had come to an end, and that they were no + longer prisoners in a strange land. + + + + ) + } } storiesOf('CSS', module).add('test-css', () => { diff --git a/stories/CustomDraw.js b/stories/CustomDraw.jsx similarity index 79% rename from stories/CustomDraw.js rename to stories/CustomDraw.jsx index da0996b..d636931 100644 --- a/stories/CustomDraw.js +++ b/stories/CustomDraw.jsx @@ -1,15 +1,10 @@ import React from 'react' import { storiesOf } from '@storybook/react' -import ReactCanvas from '../src/index' +import { Surface, registerCustomComponent } from '../src/index' -const { Surface } = ReactCanvas - -const circleDraw = function(ctx, layer) { - const x = layer.frame.x - const y = layer.frame.y - const width = layer.frame.width - const height = layer.frame.height +const circleDraw = function draw(ctx, layer) { + const { x, y, width, height } = layer.frame const centerX = x + width / 2 const centerY = y + height / 2 @@ -42,25 +37,21 @@ const circleDraw = function(ctx, layer) { } } -const circleApplyProps = (layer, style /*, prevProps, props*/) => { +const circleApplyProps = (layer, style /* , prevProps, props */) => { layer.shadowColor = style.shadowColor || 0 layer.shadowOffsetX = style.shadowOffsetX || 0 layer.shadowOffsetY = style.shadowOffsetY || 0 layer.shadowBlur = style.shadowBlur || 0 } -const Circle = ReactCanvas.registerCustomComponent( - 'Circle', - circleApplyProps, - circleDraw -) +const Circle = registerCustomComponent('Circle', circleApplyProps, circleDraw) class App extends React.Component { render() { return ( diff --git a/stories/Gradient.js b/stories/Gradient.jsx similarity index 80% rename from stories/Gradient.js rename to stories/Gradient.jsx index db9a6c6..cf0a780 100644 --- a/stories/Gradient.js +++ b/stories/Gradient.jsx @@ -11,18 +11,17 @@ storiesOf('Gradient', module) top={0} left={0} width={props.size.width} - height={props.size.height} - > + height={props.size.height}> @@ -37,18 +36,17 @@ storiesOf('Gradient', module) top={0} left={0} width={props.size.width} - height={props.size.height} - > + height={props.size.height}> diff --git a/stories/Heatmap.js b/stories/Heatmap.jsx similarity index 78% rename from stories/Heatmap.js rename to stories/Heatmap.jsx index 64872ce..8834a0a 100644 --- a/stories/Heatmap.js +++ b/stories/Heatmap.jsx @@ -6,11 +6,8 @@ import { storiesOf } from '@storybook/react' import range from 'lodash.range' import { scaleBand, interpolateInferno } from 'd3-scale' -import ReactCanvas from '../src/index' - -const { Surface } = ReactCanvas - import Alea from 'alea' +import { Surface, registerCustomComponent } from '../src/index' const random = new Alea(0) random() @@ -21,11 +18,8 @@ const colRange = range(0, NUM_COLS) const rows = rowsRange.map(() => colRange.map(() => random())) const heatmapDraw = (ctx, layer) => { - const data = layer.data - const x = layer.frame.x - const y = layer.frame.y - const width = layer.frame.width - const height = layer.frame.height + const { data } = layer + const { x, y, width, height } = layer.frame const fillColor = layer.backgroundColor || '#FFF' @@ -44,7 +38,7 @@ const heatmapDraw = (ctx, layer) => { x: horizontalScale(rowIdx), y: verticalScale(colIdx), width: horizontalScale.bandwidth(), - height: verticalScale.bandwidth(), + height: verticalScale.bandwidth() } ctx.fillRect( rectDimensions.x, @@ -64,7 +58,7 @@ const heatmapApplyProps = (layer, style, prevProps, props) => { layer.data = props.data || [] } -const Heatmap = ReactCanvas.registerCustomComponent( +const Heatmap = registerCustomComponent( 'Heatmap', heatmapApplyProps, heatmapDraw @@ -72,11 +66,12 @@ const Heatmap = ReactCanvas.registerCustomComponent( class App extends React.Component { static propTypes = { - data: PropTypes.array, - x: PropTypes.number, - y: PropTypes.number, - width: PropTypes.number, - height: PropTypes.number, + // eslint-disable-next-line react/forbid-prop-types + data: PropTypes.array.isRequired, + x: PropTypes.number.isRequired, + y: PropTypes.number.isRequired, + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired } render() { @@ -85,19 +80,19 @@ class App extends React.Component { return ( @@ -112,7 +107,7 @@ storiesOf('Heatmap', module).add('heatmap', () => { width: 800, x: 0, y: 0, - size: { width: 80, height: 80 }, + size: { width: 80, height: 80 } } return (
diff --git a/stories/Image.js b/stories/Image.jsx similarity index 89% rename from stories/Image.js rename to stories/Image.jsx index f836e80..2209ab5 100644 --- a/stories/Image.js +++ b/stories/Image.jsx @@ -10,14 +10,13 @@ storiesOf('Image', module).add('hello-world', () => { top={0} left={0} width={props.size.width} - height={props.size.height} - > + height={props.size.height}> diff --git a/stories/Listview.js b/stories/Listview.js deleted file mode 100644 index ff7b9bb..0000000 --- a/stories/Listview.js +++ /dev/null @@ -1,187 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { storiesOf } from '@storybook/react' - -import ReactCanvas from '../src/index' -const { ListView, Surface, Group, Image, Text } = ReactCanvas - -const articles = [ - { - title: '10 Unbelievable Secrets That Will Make Your Airline Pilot Nervous', - excerpt: - 'With these words the Witch fell down in a brown, melted, shapeless mass and began to spread over the clean boards of the kitchen floor. Seeing that she had really melted away to nothing, Dorothy drew another bucket of water and threw it over the mess. She then swept it all out the door. After picking out the silver shoe, which was all that was left of the old woman, she cleaned and dried it with a cloth, and put it on her foot again. Then, being at last free to do as she chose, she ran out to the courtyard to tell the Lion that the Wicked Witch of the West had come to an end, and that they were no longer prisoners in a strange land.', - imageUrl: 'http://lorempixel.com/360/420/cats/1/', - }, - { - title: 'Will Batman Save Leaf Blowing?', - excerpt: - 'The splendid fellow sprang to his feet, and grasping me by the shoulder raised his sword on high, exclaiming: "And had the choice been left to me I could not have chosen a more fitting mate for the first princess of Barsoom. Here is my hand upon your shoulder, John Carter, and my word that Sab Than shall go out at the point of my sword for the sake of my love for Helium, for Dejah Thoris, and for you. This very night I shall try to reach his quarters in the palace." "How?" I asked. "You are strongly guarded and a quadruple force patrols the sky." He bent his head in thought a moment, then raised it with an air of confidence.', - imageUrl: 'http://lorempixel.com/360/420/cats/2/', - }, - { - title: '8 Scary Things Your Professor Is Using Against You', - excerpt: - 'For a minute he scarcely realised what this meant, and, although the heat was excessive, he clambered down into the pit close to the bulk to see the Thing more clearly. He fancied even then that the cooling of the body might account for this, but what disturbed that idea was the fact that the ash was falling only from the end of the cylinder. And then he perceived that, very slowly, the circular top of the cylinder was rotating on its body. It was such a gradual movement that he discovered it only through noticing that a black mark that had been near him five minutes ago was now at the other side of the circumference.', - imageUrl: 'http://lorempixel.com/360/420/cats/3/', - }, - { - title: "Kanye West's Top 10 Scandalous Microsoft Excel Secrets", - excerpt: - 'My wife was curiously silent throughout the drive, and seemed oppressed with forebodings of evil. I talked to her reassuringly, pointing out that the Martians were tied to the Pit by sheer heaviness, and at the utmost could but crawl a little out of it; but she answered only in monosyllables. Had it not been for my promise to the innkeeper, she would, I think, have urged me to stay in Leatherhead that night. Would that I had! Her face, I remember, was very white as we parted. For my own part, I had been feverishly excited all day.', - imageUrl: 'http://lorempixel.com/360/420/cats/4/', - }, - { - title: 'The Embarassing Secrets Of Julia Roberts', - excerpt: - 'Passepartout heard the street door shut once; it was his new master going out. He heard it shut again; it was his predecessor, James Forster, departing in his turn. Passepartout remained alone in the house in Saville Row. "Faith," muttered Passepartout, somewhat flurried, "I\'ve seen people at Madame Tussaud\'s as lively as my new master!" Madame Tussaud\'s "people," let it be said, are of wax, and are much visited in London; speech is all that is wanting to make them human. During his brief interview with Mr. Fogg, Passepartout had been carefully observing him.', - imageUrl: 'http://lorempixel.com/360/420/cats/5/', - }, - { - title: "20 Unbelievable Things Girlfriends Won't Tell Their Friends", - excerpt: - "On March 3, 1866, Powell and I packed his provisions on two of our burros, and bidding me good-bye he mounted his horse, and started down the mountainside toward the valley, across which led the first stage of his journey. The morning of Powell's departure was, like nearly all Arizona mornings, clear and beautiful; I could see him and his little pack animals picking their way down the mountainside toward the valley, and all during the morning I would catch occasional glimpses of them as they topped a hog back or came out upon a level plateau.", - imageUrl: 'http://lorempixel.com/360/420/cats/6/', - }, - { - title: 'Can Vladimir Putin Save Beard Care?', - excerpt: - 'So powerfully did the whole grim aspect of Ahab affect me, and the livid brand which streaked it, that for the first few moments I hardly noted that not a little of this overbearing grimness was owing to the barbaric white leg upon which he partly stood. It had previously come to me that this ivory leg had at sea been fashioned from the polished bone of the sperm whale\'s jaw. "Aye, he was dismasted off Japan," said the old Gay-Head Indian once; "but like his dismasted craft, he shipped another mast without coming home for it.', - imageUrl: 'http://lorempixel.com/360/420/cats/7/', - }, - { - title: '15 Truths That Will Make Your Psychiatrist Feel Ashamed', - excerpt: - 'Again was I suddenly recalled to my immediate surroundings by a repetition of the weird moan from the depths of the cave. Naked and unarmed as I was, I had no desire to face the unseen thing which menaced me. My revolvers were strapped to my lifeless body which, for some unfathomable reason, I could not bring myself to touch. My carbine was in its boot, strapped to my saddle, and as my horse had wandered off I was left without means of defense. My only alternative seemed to lie in flight and my decision was crystallized by a recurrence of the rustling sound.', - imageUrl: 'http://lorempixel.com/360/420/cats/8/', - }, - { - title: '6 Terrible Facts That Make Boyfriends Stronger', - excerpt: - 'First they came to a great hall in which were many ladies and gentlemen of the court, all dressed in rich costumes. These people had nothing to do but talk to each other, but they always came to wait outside the Throne Room every morning, although they were never permitted to see Oz. As Dorothy entered they looked at her curiously, and one of them whispered: "Are you really going to look upon the face of Oz the Terrible?" "Of course," answered the girl, "if he will see me." "Oh, he will see you," said the soldier who had taken her message to the Wizard.', - imageUrl: 'http://lorempixel.com/360/420/cats/9/', - }, - { - title: '5 Surprising Dental Care Tips From Robert De Niro', - excerpt: - "At once, with a quick mental leap, he linked the Thing with the flash upon Mars. The thought of the confined creature was so dreadful to him that he forgot the heat and went forward to the cylinder to help turn. But luckily the dull radiation arrested him before he could burn his hands on the still-glowing metal. At that he stood irresolute for a moment, then turned, scrambled out of the pit, and set off running wildly into Woking. The time then must have been somewhere about six o'clock. He met a waggoner and tried to make him understand, but the tale he told and his appearance were so wild--his hat had fallen off in the pit--that the man simply drove on.", - imageUrl: 'http://lorempixel.com/360/420/cats/10/', - }, -] - -class Item extends React.Component { - static propTypes = { - width: PropTypes.number, - height: PropTypes.number, - imageUrl: PropTypes.string, - title: PropTypes.string, - itemIndex: PropTypes.number, - } - - static getItemHeight = () => { - return 80 - } - - render() { - return ( - console.log('Clicked ' + this.props.title)} - > - - {this.props.title} - - ) - } - - getStyle = () => { - return { - width: this.props.width, - height: Item.getItemHeight(), - backgroundColor: this.props.itemIndex % 2 ? '#eee' : '#a5d2ee', - } - } - - getImageStyle = () => { - return { - top: 10, - left: 10, - width: 60, - height: 60, - backgroundColor: '#ddd', - borderColor: '#999', - borderWidth: 1, - } - } - - getTitleStyle = () => { - return { - top: 32, - left: 80, - width: this.props.width - 90, - height: 18, - fontSize: 14, - lineHeight: 18, - } - } -} - -class App extends React.Component { - render() { - const size = this.getSize() - return ( - - - - ) - } - - renderItem = itemIndex => { - const article = articles[itemIndex % articles.length] - return ( - - ) - } - - getSize = () => { - return { - width: 800, - height: 400, - } - } - - // ListView - // ======== - - getListViewStyle = () => { - return { - top: 0, - left: 0, - width: this.getSize().width, - height: this.getSize().height, - } - } - - getNumberOfItems = () => { - return 1000 - } -} - -storiesOf('ListView', module).add('transparent-grey', () => { - return ( -
- -
- ) -}) diff --git a/stories/Text.js b/stories/Text.jsx similarity index 81% rename from stories/Text.js rename to stories/Text.jsx index 42d1be5..0e3b28e 100644 --- a/stories/Text.js +++ b/stories/Text.jsx @@ -10,17 +10,15 @@ storiesOf('Text', module).add('hello-world', () => { top={0} left={0} width={props.size.width} - height={props.size.height} - > + height={props.size.height}> + height: props.size.height + }}> Hello World { left: 0, color: 'red', width: props.size.width, - height: props.size.height, - }} - > + height: props.size.height + }}> Hello World 2 diff --git a/stories/Timeline.js b/stories/Timeline.js deleted file mode 100644 index 00e1d2a..0000000 --- a/stories/Timeline.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react' -import ReactCanvas from '../src/index' -import Page from './components/Page' -import articles from './data' - -import { storiesOf } from '@storybook/react' -const { ListView, Surface } = ReactCanvas - -class App extends React.Component { - render() { - const size = this.getSize() - - return ( - - - - ) - } - - renderPage = (pageIndex, scrollTop) => { - const size = this.getSize() - const article = articles[pageIndex % articles.length] - const pageScrollTop = pageIndex * this.getPageHeight() - scrollTop - - return ( - - ) - } - - getSize = () => { - const size = document.getElementById('root').getBoundingClientRect() - size.height = 800 - return size - } - - getListViewStyle = () => { - const size = this.getSize() - - return { - top: 0, - left: 0, - width: size.width, - height: size.height, - backgroundColor: '#320000', - } - } - - getNumberOfPages = () => { - return 1000 - } - - getPageHeight = () => { - return this.getSize().height - } -} - -storiesOf('Timeline', module).add('app', () => { - return -}) diff --git a/stories/components/Page.js b/stories/components/Page.jsx similarity index 71% rename from stories/components/Page.js rename to stories/components/Page.jsx index 58bc9d1..4061872 100644 --- a/stories/components/Page.js +++ b/stories/components/Page.jsx @@ -1,8 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' -import ReactCanvas from '../../src/index' -const { Group, Image, Text, FontFace, measureText } = ReactCanvas +import { Group, Image, Text, FontFace, measureText } from '../../src/index' const CONTENT_INSET = 14 const TEXT_SCROLL_SPEED_MULTIPLIER = 0.6 @@ -13,17 +12,20 @@ const TEXT_LAYER_INDEX = 1 class Page extends React.Component { static propTypes = { - width: PropTypes.number, - height: PropTypes.number, - article: PropTypes.object, - scrollTop: PropTypes.number, + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + article: PropTypes.shape({ + title: PropTypes.string.isRequired, + excerpt: PropTypes.string.isRequired + }).isRequired, + scrollTop: PropTypes.number.isRequired } constructor(props) { super() // Pre-compute headline/excerpt text dimensions. - const article = props.article + const { article } = props const maxWidth = props.width - 2 * CONTENT_INSET const titleStyle = this.getTitleStyle(props) const excerptStyle = this.getExcerptStyle(props) @@ -44,42 +46,16 @@ class Page extends React.Component { ) } - render() { - const groupStyle = this.getGroupStyle() - const imageStyle = this.getImageStyle() - const titleStyle = this.getTitleStyle(this.props) - const excerptStyle = this.getExcerptStyle(this.props) - - // Layout title and excerpt below image. - titleStyle.height = this.titleMetrics.height - excerptStyle.top = titleStyle.top + titleStyle.height + CONTENT_INSET - excerptStyle.height = this.props.height - excerptStyle.top - CONTENT_INSET - - return ( - - - - {this.props.article.title} - {this.props.article.excerpt} - - - ) - } - // Styles // ====== getGroupStyle = () => { + const { width, height } = this.props return { top: 0, left: 0, - width: this.props.width, - height: this.props.height, + width, + height } } @@ -88,13 +64,14 @@ class Page extends React.Component { } getImageStyle = () => { + const { width } = this.props return { top: 0, left: 0, - width: this.props.width, + width, height: this.getImageHeight(this.props), backgroundColor: '#eee', - zIndex: IMAGE_LAYER_INDEX, + zIndex: IMAGE_LAYER_INDEX } } @@ -106,8 +83,8 @@ class Page extends React.Component { fontSize: 22, lineHeight: 30, fontFace: FontFace('Avenir Next Condensed, Helvetica, sans-serif', null, { - weight: 500, - }), + weight: 500 + }) } } @@ -117,31 +94,60 @@ class Page extends React.Component { width: props.width - 2 * CONTENT_INSET, fontFace: FontFace('Georgia, serif'), fontSize: 15, - lineHeight: 23, + lineHeight: 23 } } getTextGroupStyle = () => { + const { scrollTop, height, width } = this.props const imageHeight = this.getImageHeight(this.props) let translateY = 0 const alphaMultiplier = - this.props.scrollTop <= 0 + scrollTop <= 0 ? -TEXT_ALPHA_SPEED_OUT_MULTIPLIER : TEXT_ALPHA_SPEED_IN_MULTIPLIER - let alpha = 1 - (this.props.scrollTop / this.props.height) * alphaMultiplier + let alpha = 1 - (scrollTop / height) * alphaMultiplier alpha = Math.min(Math.max(alpha, 0), 1) - translateY = -this.props.scrollTop * TEXT_SCROLL_SPEED_MULTIPLIER + translateY = -scrollTop * TEXT_SCROLL_SPEED_MULTIPLIER return { - width: this.props.width, - height: this.props.height - imageHeight, + width, + height: height - imageHeight, top: imageHeight, left: 0, - alpha: alpha, - translateY: translateY, - zIndex: TEXT_LAYER_INDEX, + alpha, + translateY, + zIndex: TEXT_LAYER_INDEX } } + + render() { + const { height, article } = this.props + const groupStyle = this.getGroupStyle() + const imageStyle = this.getImageStyle() + const titleStyle = this.getTitleStyle(this.props) + const excerptStyle = this.getExcerptStyle(this.props) + + // Layout title and excerpt below image. + titleStyle.height = this.titleMetrics.height + excerptStyle.top = titleStyle.top + titleStyle.height + CONTENT_INSET + excerptStyle.height = height - excerptStyle.top - CONTENT_INSET + + return ( + + + + {this.props.article.title} + {this.props.article.excerpt} + + + ) + } } export default Page diff --git a/stories/data.js b/stories/data.js index 51cd6b5..562a9ec 100644 --- a/stories/data.js +++ b/stories/data.js @@ -3,60 +3,60 @@ module.exports = [ title: '10 Unbelievable Secrets That Will Make Your Airline Pilot Nervous', excerpt: 'With these words the Witch fell down in a brown, melted, shapeless mass and began to spread over the clean boards of the kitchen floor. Seeing that she had really melted away to nothing, Dorothy drew another bucket of water and threw it over the mess. She then swept it all out the door. After picking out the silver shoe, which was all that was left of the old woman, she cleaned and dried it with a cloth, and put it on her foot again. Then, being at last free to do as she chose, she ran out to the courtyard to tell the Lion that the Wicked Witch of the West had come to an end, and that they were no longer prisoners in a strange land.', - imageUrl: 'http://lorempixel.com/360/420/cats/1/', + imageUrl: 'http://lorempixel.com/360/420/cats/1/' }, { title: 'Will Batman Save Leaf Blowing?', excerpt: 'The splendid fellow sprang to his feet, and grasping me by the shoulder raised his sword on high, exclaiming: "And had the choice been left to me I could not have chosen a more fitting mate for the first princess of Barsoom. Here is my hand upon your shoulder, John Carter, and my word that Sab Than shall go out at the point of my sword for the sake of my love for Helium, for Dejah Thoris, and for you. This very night I shall try to reach his quarters in the palace." "How?" I asked. "You are strongly guarded and a quadruple force patrols the sky." He bent his head in thought a moment, then raised it with an air of confidence.', - imageUrl: 'http://lorempixel.com/360/420/cats/2/', + imageUrl: 'http://lorempixel.com/360/420/cats/2/' }, { title: '8 Scary Things Your Professor Is Using Against You', excerpt: 'For a minute he scarcely realised what this meant, and, although the heat was excessive, he clambered down into the pit close to the bulk to see the Thing more clearly. He fancied even then that the cooling of the body might account for this, but what disturbed that idea was the fact that the ash was falling only from the end of the cylinder. And then he perceived that, very slowly, the circular top of the cylinder was rotating on its body. It was such a gradual movement that he discovered it only through noticing that a black mark that had been near him five minutes ago was now at the other side of the circumference.', - imageUrl: 'http://lorempixel.com/360/420/cats/3/', + imageUrl: 'http://lorempixel.com/360/420/cats/3/' }, { title: "Kanye West's Top 10 Scandalous Microsoft Excel Secrets", excerpt: 'My wife was curiously silent throughout the drive, and seemed oppressed with forebodings of evil. I talked to her reassuringly, pointing out that the Martians were tied to the Pit by sheer heaviness, and at the utmost could but crawl a little out of it; but she answered only in monosyllables. Had it not been for my promise to the innkeeper, she would, I think, have urged me to stay in Leatherhead that night. Would that I had! Her face, I remember, was very white as we parted. For my own part, I had been feverishly excited all day.', - imageUrl: 'http://lorempixel.com/360/420/cats/4/', + imageUrl: 'http://lorempixel.com/360/420/cats/4/' }, { title: 'The Embarassing Secrets Of Julia Roberts', excerpt: 'Passepartout heard the street door shut once; it was his new master going out. He heard it shut again; it was his predecessor, James Forster, departing in his turn. Passepartout remained alone in the house in Saville Row. "Faith," muttered Passepartout, somewhat flurried, "I\'ve seen people at Madame Tussaud\'s as lively as my new master!" Madame Tussaud\'s "people," let it be said, are of wax, and are much visited in London; speech is all that is wanting to make them human. During his brief interview with Mr. Fogg, Passepartout had been carefully observing him.', - imageUrl: 'http://lorempixel.com/360/420/cats/5/', + imageUrl: 'http://lorempixel.com/360/420/cats/5/' }, { title: "20 Unbelievable Things Girlfriends Won't Tell Their Friends", excerpt: "On March 3, 1866, Powell and I packed his provisions on two of our burros, and bidding me good-bye he mounted his horse, and started down the mountainside toward the valley, across which led the first stage of his journey. The morning of Powell's departure was, like nearly all Arizona mornings, clear and beautiful; I could see him and his little pack animals picking their way down the mountainside toward the valley, and all during the morning I would catch occasional glimpses of them as they topped a hog back or came out upon a level plateau.", - imageUrl: 'http://lorempixel.com/360/420/cats/6/', + imageUrl: 'http://lorempixel.com/360/420/cats/6/' }, { title: 'Can Vladimir Putin Save Beard Care?', excerpt: 'So powerfully did the whole grim aspect of Ahab affect me, and the livid brand which streaked it, that for the first few moments I hardly noted that not a little of this overbearing grimness was owing to the barbaric white leg upon which he partly stood. It had previously come to me that this ivory leg had at sea been fashioned from the polished bone of the sperm whale\'s jaw. "Aye, he was dismasted off Japan," said the old Gay-Head Indian once; "but like his dismasted craft, he shipped another mast without coming home for it.', - imageUrl: 'http://lorempixel.com/360/420/cats/7/', + imageUrl: 'http://lorempixel.com/360/420/cats/7/' }, { title: '15 Truths That Will Make Your Psychiatrist Feel Ashamed', excerpt: 'Again was I suddenly recalled to my immediate surroundings by a repetition of the weird moan from the depths of the cave. Naked and unarmed as I was, I had no desire to face the unseen thing which menaced me. My revolvers were strapped to my lifeless body which, for some unfathomable reason, I could not bring myself to touch. My carbine was in its boot, strapped to my saddle, and as my horse had wandered off I was left without means of defense. My only alternative seemed to lie in flight and my decision was crystallized by a recurrence of the rustling sound.', - imageUrl: 'http://lorempixel.com/360/420/cats/8/', + imageUrl: 'http://lorempixel.com/360/420/cats/8/' }, { title: '6 Terrible Facts That Make Boyfriends Stronger', excerpt: 'First they came to a great hall in which were many ladies and gentlemen of the court, all dressed in rich costumes. These people had nothing to do but talk to each other, but they always came to wait outside the Throne Room every morning, although they were never permitted to see Oz. As Dorothy entered they looked at her curiously, and one of them whispered: "Are you really going to look upon the face of Oz the Terrible?" "Of course," answered the girl, "if he will see me." "Oh, he will see you," said the soldier who had taken her message to the Wizard.', - imageUrl: 'http://lorempixel.com/360/420/cats/9/', + imageUrl: 'http://lorempixel.com/360/420/cats/9/' }, { title: '5 Surprising Dental Care Tips From Robert De Niro', excerpt: "At once, with a quick mental leap, he linked the Thing with the flash upon Mars. The thought of the confined creature was so dreadful to him that he forgot the heat and went forward to the cylinder to help turn. But luckily the dull radiation arrested him before he could burn his hands on the still-glowing metal. At that he stood irresolute for a moment, then turned, scrambled out of the pit, and set off running wildly into Woking. The time then must have been somewhere about six o'clock. He met a waggoner and tried to make him understand, but the tale he told and his appearance were so wild--his hat had fallen off in the pit--that the man simply drove on.", - imageUrl: 'http://lorempixel.com/360/420/cats/10/', - }, + imageUrl: 'http://lorempixel.com/360/420/cats/10/' + } ] diff --git a/stories/index.js b/stories/index.js index 67fda0e..b9b5907 100644 --- a/stories/index.js +++ b/stories/index.js @@ -1,8 +1,6 @@ import './Image' import './Gradient' import './Text' -import './Listview' import './CustomDraw' import './Heatmap' -import './Timeline' import './CSS' diff --git a/yarn.lock b/yarn.lock index 2fb39cc..e51b740 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,6 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" - dependencies: - "@babel/highlight" "7.0.0-beta.44" - "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -15,43 +9,39 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/generator@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" +"@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== dependencies: - "@babel/types" "7.0.0-beta.44" + "@babel/types" "^7.4.4" jsesc "^2.5.1" - lodash "^4.2.0" + lodash "^4.17.11" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/helper-function-name@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.44" - "@babel/template" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-get-function-arity@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" - dependencies: - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-split-export-declaration@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== dependencies: - "@babel/types" "7.0.0-beta.44" + "@babel/types" "^7.0.0" -"@babel/highlight@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" + "@babel/types" "^7.4.4" "@babel/highlight@^7.0.0": version "7.0.0" @@ -62,36 +52,42 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/template@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - lodash "^4.2.0" - -"@babel/traverse@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/generator" "7.0.0-beta.44" - "@babel/helper-function-name" "7.0.0-beta.44" - "@babel/helper-split-export-declaration" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - debug "^3.1.0" +"@babel/parser@^7.0.0", "@babel/parser@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" + integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w== + +"@babel/template@^7.1.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/traverse@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" + integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + debug "^4.1.0" globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.2.0" + lodash "^4.17.11" -"@babel/types@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" +"@babel/types@^7.0.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== dependencies: esutils "^2.0.2" - lodash "^4.2.0" + lodash "^4.17.11" to-fast-properties "^2.0.0" "@craigmorton/linebreak@^0.4.5": @@ -331,7 +327,7 @@ acorn@^5.0.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" -acorn@^6.0.7: +acorn@^6.0.2: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== @@ -357,6 +353,11 @@ airbnb-js-shims@^1.4.1: string.prototype.padend "^3.0.0" string.prototype.padstart "^3.0.0" +ajv-keywords@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" + integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== + ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" @@ -370,16 +371,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - uri-js "^4.2.1" - -ajv@^6.9.1: +ajv@^6.0.1, ajv@^6.5.0: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== @@ -389,6 +381,15 @@ ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.1.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + uri-js "^4.2.1" + alea@^0.0.9: version "0.0.9" resolved "https://registry.yarnpkg.com/alea/-/alea-0.0.9.tgz#f738cb45f83430069f45cf69ccbf312dd57a9e1a" @@ -409,11 +410,6 @@ ansi-escapes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -426,16 +422,11 @@ ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: @@ -472,6 +463,14 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" + integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= + dependencies: + ast-types-flow "0.0.7" + commander "^2.11.0" + arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" @@ -563,6 +562,11 @@ assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" +ast-types-flow@0.0.7, ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + ast-types@0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" @@ -571,11 +575,6 @@ ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -612,6 +611,13 @@ autoprefixer@^7.2.6: postcss "^6.0.17" postcss-value-parser "^3.2.3" +axobject-query@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" + integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== + dependencies: + ast-types-flow "0.0.7" + babel-cli@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" @@ -665,15 +671,16 @@ babel-core@^6.26.0, babel-core@^6.26.3: slash "^1.0.0" source-map "^0.5.7" -babel-eslint@^8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf" +babel-eslint@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" + integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ== dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "~3.7.1" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" babel-generator@^6.26.0: @@ -1526,10 +1533,6 @@ babylon@7.0.0-beta.31: version "7.0.0-beta.31" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.31.tgz#7ec10f81e0e456fd0f855ad60fa30c2ac454283f" -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" - babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1772,10 +1775,17 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= camel-case@3.0.x: version "3.0.0" @@ -1838,24 +1848,10 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - chokidar@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -1900,6 +1896,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -2065,6 +2066,11 @@ constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" @@ -2365,6 +2371,11 @@ d@1: dependencies: es5-ext "^0.10.9" +damerau-levenshtein@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" + integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -2381,7 +2392,7 @@ debug@^3.1.0: dependencies: ms "2.0.0" -debug@^4.0.1: +debug@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -2486,16 +2497,17 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -doctrine@^2.0.0, doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" + isarray "^1.0.0" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== +doctrine@^2.0.0, doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" @@ -2594,7 +2606,7 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emoji-regex@^7.0.1: +emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== @@ -2768,6 +2780,24 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-config-airbnb-base@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" + integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw== + dependencies: + eslint-restricted-globals "^0.1.1" + object.assign "^4.1.0" + object.entries "^1.0.4" + +eslint-config-airbnb@17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" + integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw== + dependencies: + eslint-config-airbnb-base "^13.1.0" + object.assign "^4.1.0" + object.entries "^1.0.4" + eslint-config-prettier@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz#c55c1fcac8ce4518aeb77906984e134d9eb5a4f0" @@ -2775,6 +2805,53 @@ eslint-config-prettier@^4.3.0: dependencies: get-stdin "^6.0.0" +eslint-import-resolver-node@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.14.0: + version "2.17.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz#d227d5c6dc67eca71eb590d2bb62fb38d86e9fcb" + integrity sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g== + dependencies: + array-includes "^3.0.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.0" + has "^1.0.3" + lodash "^4.17.11" + minimatch "^3.0.4" + read-pkg-up "^2.0.0" + resolve "^1.10.0" + +eslint-plugin-jsx-a11y@^6.1.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" + integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== + dependencies: + aria-query "^3.0.0" + array-includes "^3.0.3" + ast-types-flow "^0.0.7" + axobject-query "^2.0.2" + damerau-levenshtein "^1.0.4" + emoji-regex "^7.0.2" + has "^1.0.3" + jsx-ast-utils "^2.0.1" + eslint-plugin-prettier@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz#8695188f95daa93b0dc54b249347ca3b79c4686d" @@ -2782,7 +2859,7 @@ eslint-plugin-prettier@^3.1.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react@^7.13.0: +eslint-plugin-react@^7.11.0: version "7.13.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.13.0.tgz#bc13fd7101de67996ea51b33873cd9dc2b7e5758" integrity sha512-uA5LrHylu8lW/eAH3bEQe9YdzpPaFd9yAJTwTi/i/BKTD7j6aQMKVAdGM/ML72zD6womuSK7EiGtMKuK06lWjQ== @@ -2795,17 +2872,23 @@ eslint-plugin-react@^7.13.0: prop-types "^15.7.2" resolve "^1.10.1" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint-restricted-globals@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= + +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@~3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" +eslint-scope@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -2819,54 +2902,57 @@ eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^5.16.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== +eslint@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.3.0.tgz#53695aca5213968aacdf970ccb231e42a2b285f8" + integrity sha512-N/tCqlMKkyNvAvLu+zI9AqDasnSLt00K+Hu8kdsERliC9jYEc8ck12XtjvOXrBKu8fK6RrBcN9bat6Xk++9jAg== dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" + ajv "^6.5.0" + babel-code-frame "^6.26.0" chalk "^2.1.0" cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^4.0.3" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^4.0.0" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^5.0.1" + espree "^4.0.0" esquery "^1.0.1" esutils "^2.0.2" - file-entry-cache "^5.0.1" + file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + ignore "^4.0.2" imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" + inquirer "^5.2.0" + is-resolvable "^1.1.0" + js-yaml "^3.11.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.11" + lodash "^4.17.5" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" + pluralize "^7.0.0" progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" + regexpp "^2.0.0" + require-uncached "^1.0.3" + semver "^5.5.0" + string.prototype.matchall "^2.0.0" strip-ansi "^4.0.0" strip-json-comments "^2.0.1" - table "^5.2.3" + table "^4.0.3" text-table "^0.2.0" -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== +espree@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" + integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== dependencies: - acorn "^6.0.7" + acorn "^6.0.2" acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" @@ -3029,7 +3115,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -external-editor@^2.0.4: +external-editor@^2.0.4, external-editor@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: @@ -3037,15 +3123,6 @@ external-editor@^2.0.4: iconv-lite "^0.4.17" tmp "^0.0.33" -external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -3118,12 +3195,13 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= dependencies: - flat-cache "^2.0.1" + flat-cache "^1.2.1" + object-assign "^4.0.1" file-loader@^1.1.11: version "1.1.11" @@ -3185,19 +3263,15 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" - integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" flatten@^1.0.2: version "1.0.2" @@ -3651,13 +3725,6 @@ iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -3682,7 +3749,7 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^4.0.6: +ignore@^4.0.2: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== @@ -3691,14 +3758,6 @@ immutable@^3.8.1: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3763,30 +3822,30 @@ inquirer@3.3.0: strip-ansi "^4.0.0" through "^2.3.6" -inquirer@^6.2.2: - version "6.3.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" - integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== +inquirer@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" + integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ== dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" + ansi-escapes "^3.0.0" + chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^3.0.3" + external-editor "^2.1.0" figures "^2.0.0" - lodash "^4.17.11" + lodash "^4.3.0" mute-stream "0.0.7" run-async "^2.2.0" - rxjs "^6.4.0" + rxjs "^5.5.2" string-width "^2.1.0" - strip-ansi "^5.1.0" + strip-ansi "^4.0.0" through "^2.3.6" interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -4001,6 +4060,11 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + is-root@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" @@ -4076,7 +4140,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.0: +js-yaml@^3.11.0: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -4147,7 +4211,7 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" -jsx-ast-utils@^2.1.0: +jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" integrity sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA== @@ -4301,7 +4365,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^4.14.0, lodash@^4.17.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.14.0, lodash@^4.17.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" @@ -4785,7 +4849,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.12: +object-keys@^1.0.11, object-keys@^1.0.12: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4800,6 +4864,16 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + object.entries@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" @@ -4966,13 +5040,6 @@ param-case@2.1.x: dependencies: no-case "^2.2.0" -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - parse-asn1@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" @@ -5084,6 +5151,11 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -5877,7 +5949,14 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.1: +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + dependencies: + define-properties "^1.1.2" + +regexpp@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== @@ -5956,6 +6035,14 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5967,10 +6054,10 @@ resolve-dir@^1.0.0: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= resolve-url@^0.2.1: version "0.2.1" @@ -5982,7 +6069,7 @@ resolve@^1.1.6: dependencies: path-parse "^1.0.5" -resolve@^1.10.1: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.5.0: version "1.11.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== @@ -6006,19 +6093,19 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -6048,12 +6135,12 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" -rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== +rxjs@^5.5.2: + version "5.5.12" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" + integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== dependencies: - tslib "^1.9.0" + symbol-observable "1.0.1" safe-buffer@5.1.1: version "5.1.1" @@ -6106,15 +6193,11 @@ schema-utils@^0.4.0, schema-utils@^0.4.5: ajv "^6.1.0" ajv-keywords "^3.1.0" -"scroller@https://github.com/mjohnston/scroller": - version "0.0.1" - resolved "https://github.com/mjohnston/scroller#054c3349d5ff7474589eb7fbbb36708e5c48e435" - "semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" -semver@^5.5.0, semver@^5.5.1: +semver@^5.5.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== @@ -6246,13 +6329,11 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: @@ -6424,21 +6505,23 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0: +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +string.prototype.matchall@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8" + integrity sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q== dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" + define-properties "^1.1.2" + es-abstract "^1.10.0" + function-bind "^1.1.1" + has-symbols "^1.0.0" + regexp.prototype.flags "^1.2.0" string.prototype.padend@^3.0.0: version "3.0.0" @@ -6478,13 +6561,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6542,19 +6618,26 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" +symbol-observable@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" + integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= + symbol-observable@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" -table@^5.2.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/table/-/table-5.3.3.tgz#eae560c90437331b74200e011487a33442bd28b4" - integrity sha512-3wUNCgdWX6PNpOe3amTTPWPuF6VGvgzjKCaO1snFj0z7Y3mUPWf5+zDtxUVGispJkDECPmR29wbzh6bVMOHbcw== +table@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== dependencies: - ajv "^6.9.1" - lodash "^4.17.11" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^6.0.1" + ajv-keywords "^3.0.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" tapable@^0.2.7: version "0.2.8" @@ -6649,11 +6732,6 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -7034,10 +7112,10 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= dependencies: mkdirp "^0.5.1" From 5da89ba46e7230a18135a46dae2c09235b55cadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Thu, 16 May 2019 16:34:32 +0200 Subject: [PATCH 05/13] Upgrade storybook @ babel dependencies --- .babelrc | 9 +- .storybook/addons.js | 1 + package.json | 15 +- src/CanvasComponent.js | 2 - stories/Events.jsx | 24 + stories/index.js | 1 + yarn.lock | 6851 ++++++++++++++++++++++++---------------- 7 files changed, 4108 insertions(+), 2795 deletions(-) create mode 100644 .storybook/addons.js create mode 100644 stories/Events.jsx diff --git a/.babelrc b/.babelrc index 9a926d3..f6afc87 100644 --- a/.babelrc +++ b/.babelrc @@ -1,13 +1,14 @@ { "presets": [ [ - "env", { + "@babel/preset-env", + { "targets": { "browsers": ["last 2 versions"] } } ], - "react", - "stage-2" - ] + "@babel/preset-react" + ], + "plugins": [["@babel/plugin-proposal-class-properties", { "loose": false }]] } diff --git a/.storybook/addons.js b/.storybook/addons.js new file mode 100644 index 0000000..17bb328 --- /dev/null +++ b/.storybook/addons.js @@ -0,0 +1 @@ +import '@storybook/addon-actions/register' diff --git a/package.json b/package.json index 7c6c0ea..6e50d31 100644 --- a/package.json +++ b/package.json @@ -26,15 +26,16 @@ "url": "https://github.com/gfodor/react-canvas/issues" }, "devDependencies": { - "@storybook/react": "^3.4.5", + "@babel/cli": "^7.4.4", + "@babel/core": "^7.4.4", + "@babel/plugin-proposal-class-properties": "^7.4.4", + "@babel/preset-env": "^7.4.4", + "@babel/preset-react": "^7.0.0", + "@storybook/addon-actions": "^5.0.11", + "@storybook/react": "^5.0.11", "alea": "^0.0.9", - "babel-cli": "^6.26.0", - "babel-core": "^6.26.3", "babel-eslint": "^10.0.1", - "babel-preset-env": "^1.7.0", - "babel-preset-react": "^6.24.1", - "babel-preset-stage-2": "^6.24.1", - "babel-runtime": "^6.26.0", + "babel-loader": "^8.0.6", "d3-scale": "^1.0.6", "eslint": "5.3.0", "eslint-config-airbnb": "17.1.0", diff --git a/src/CanvasComponent.js b/src/CanvasComponent.js index 1ab7e6e..2f0913a 100644 --- a/src/CanvasComponent.js +++ b/src/CanvasComponent.js @@ -127,8 +127,6 @@ export default class CanvasComponent { // Register events for (const type in EventTypes) { if (prevProps[type] !== props[type]) { - // eslint-disable-next-line no-console - console.log(props[type], type) this.putEventListener(EventTypes[type], props[type]) } } diff --git a/stories/Events.jsx b/stories/Events.jsx new file mode 100644 index 0000000..3ddb35e --- /dev/null +++ b/stories/Events.jsx @@ -0,0 +1,24 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' +import { action } from '@storybook/addon-actions' + +import { Group, Surface } from '../src/index' + +storiesOf('Events', module).add('mouse events', () => { + return ( +
+ + + +
+ ) +}) diff --git a/stories/index.js b/stories/index.js index b9b5907..b963d37 100644 --- a/stories/index.js +++ b/stories/index.js @@ -4,3 +4,4 @@ import './Text' import './CustomDraw' import './Heatmap' import './CSS' +import './Events' diff --git a/yarn.lock b/yarn.lock index e51b740..933a965 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,71 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0": +"@babel/cli@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.4.4.tgz#5454bb7112f29026a4069d8e6f0e1794e651966c" + integrity sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ== + dependencies: + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.0.0" + lodash "^4.17.11" + mkdirp "^0.5.1" + output-file-sync "^2.0.0" + slash "^2.0.0" + source-map "^0.5.0" + optionalDependencies: + chokidar "^2.0.4" + +"@babel/code-frame@7.0.0", "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: "@babel/highlight" "^7.0.0" -"@babel/generator@^7.4.4": +"@babel/core@7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" + integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.2" + "@babel/template" "^7.2.2" + "@babel/traverse" "^7.2.2" + "@babel/types" "^7.2.2" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.4.3", "@babel/core@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250" + integrity sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helpers" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.11" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.2.2", "@babel/generator@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== @@ -20,6 +77,67 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" + integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== + dependencies: + "@babel/types" "^7.3.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-create-class-features-plugin@^7.3.0", "@babel/helper-create-class-features-plugin@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" + integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-split-export-declaration" "^7.4.4" + +"@babel/helper-define-map@^7.1.0", "@babel/helper-define-map@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" + integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.4.4" + lodash "^4.17.11" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + "@babel/helper-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" @@ -36,13 +154,113 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@^7.4.4": +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" + integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.4.4" + lodash "^4.17.11" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" + integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== + dependencies: + lodash "^4.17.11" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" + integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: "@babel/types" "^7.4.4" +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.2.0", "@babel/helpers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" + integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== + dependencies: + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" @@ -52,12 +270,632 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.4.4": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.3", "@babel/parser@^7.2.2", "@babel/parser@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w== -"@babel/template@^7.1.0": +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-class-properties@7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" + integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-class-properties@^7.3.0", "@babel/plugin-proposal-class-properties@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce" + integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-decorators@7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7" + integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" + integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.3.1", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" + integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" + integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@7.2.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-typescript@^7.2.0": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991" + integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.2.0", "@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" + integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" + integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.11" + +"@babel/plugin-transform-classes@7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-classes@^7.2.0", "@babel/plugin-transform-classes@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" + integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.4.4" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" + integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" + integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-flow-strip-types@7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz#e3ac2a594948454e7431c7db33e1d02d51b5cd69" + integrity sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" + integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-for-of@^7.2.0", "@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.2.0", "@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" + integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + +"@babel/plugin-transform-modules-systemjs@^7.2.0", "@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" + integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.4.tgz#5611d96d987dfc4a3a81c4383bb173361037d68d" + integrity sha512-Ki+Y9nXBlKfhD+LXaRS7v95TtTGYRAf9Y1rTDiE75zf8YQz4GDaWRXosMfJBXxnk88mGFjWdCRIeqDbon7spYA== + dependencies: + regexp-tree "^0.1.0" + +"@babel/plugin-transform-new-target@^7.0.0", "@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-constant-elements@7.2.0", "@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz#ed602dc2d8bff2f0cb1a5ce29263dbdec40779f7" + integrity sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@7.2.0", "@babel/plugin-transform-react-display-name@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" + integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" + integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== + dependencies: + "@babel/helper-builder-react-jsx" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.4.tgz#5b4da4df79391895fca9e28f99e87e22cfc02072" + integrity sha512-Zz3w+pX1SI0KMIiqshFZkwnVGUhDZzpX2vtPzfJBKQQq8WsP/Xy9DNdELWivxcKOCX/Pywge4SiEaPaLtoDT4g== + dependencies: + regenerator-transform "^0.13.4" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-runtime@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" + integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.2.0", "@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typescript@^7.1.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.4.tgz#93e9c3f2a546e6d3da1e9cc990e30791b807aa9f" + integrity sha512-rwDvjaMTx09WC0rXGBRlYSSkEHOKRrecY6hEr3SVIPKII8DVWXtapNAfAyMC0dovuO+zYArcAuKeu3q9DNRfzA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.2.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/preset-env@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" + integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-modules-systemjs" "^7.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + browserslist "^4.3.4" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-env@^7.4.1", "@babel/preset-env@^7.4.3", "@babel/preset-env@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.4.tgz#b6f6825bfb27b3e1394ca3de4f926482722c1d6f" + integrity sha512-FU1H+ACWqZZqfw1x2G1tgtSSYSfxJLkpaUQL37CenULFARDo+h4xJoVHzRoHbK+85ViLciuI7ME4WTIhFRBBlw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.4.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.4.4" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.4.4" + "@babel/plugin-transform-classes" "^7.4.4" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-modules-systemjs" "^7.4.4" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.4" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.4" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.4.4" + browserslist "^4.5.2" + core-js-compat "^3.0.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/preset-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" + integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + +"@babel/preset-react@7.0.0", "@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + +"@babel/preset-typescript@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" + integrity sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.1.0" + +"@babel/runtime@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" + integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== + dependencies: + regenerator-runtime "^0.12.0" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.3": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.4.tgz#dc2e34982eb236803aa27a07fea6857af1b9171d" + integrity sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== @@ -66,7 +904,7 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.2.2", "@babel/traverse@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A== @@ -81,7 +919,7 @@ globals "^11.1.0" lodash "^4.17.11" -"@babel/types@^7.0.0", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== @@ -97,205 +935,721 @@ base64-js "0.0.8" unicode-trie "^0.3.0" -"@storybook/addon-actions@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.4.5.tgz#ba0d0c0c74357c0852e0b890b404214975df40a8" - dependencies: - "@storybook/components" "3.4.5" - babel-runtime "^6.26.0" - deep-equal "^1.0.1" - glamor "^2.20.40" - glamorous "^4.12.1" - global "^4.3.2" - make-error "^1.3.4" - prop-types "^15.6.1" - react-inspector "^2.2.2" - uuid "^3.2.1" +"@emotion/cache@^10.0.9": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.9.tgz#e0c7b7a289f7530edcfad4dcf3858bd2e5700a6f" + integrity sha512-f7MblpE2xoimC4fCMZ9pivmsIn7hyWRIvY75owMDi8pdOSeh+w5tH3r4hBJv/LLrwiMM7cTQURqTPcYoL5pWnw== + dependencies: + "@emotion/sheet" "0.9.2" + "@emotion/stylis" "0.8.3" + "@emotion/utils" "0.11.1" + "@emotion/weak-memoize" "0.2.2" + +"@emotion/core@^10.0.7": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.10.tgz#8d3114e5a2f8b178a7067c603a2937516f180b08" + integrity sha512-U1aE2cOWUscjc8ZJ3Cx32udOzLeRoJwGxBH93xQD850oQFpwPKZARzdUtdc9SByUOwzSFYxhDhrpXnV34FJmWg== + dependencies: + "@emotion/cache" "^10.0.9" + "@emotion/css" "^10.0.9" + "@emotion/serialize" "^0.11.6" + "@emotion/sheet" "0.9.2" + "@emotion/utils" "0.11.1" + +"@emotion/css@^10.0.9": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.9.tgz#ea0df431965a308f6cb1d61386df8ad61e5befb5" + integrity sha512-jtHhUSWw+L7yxYgNtC+KJ3Ory90/jiAtpG1qT+gTQQ/RR5AMiigs9/lDHu/vnwljaq2S48FoKb/FZZMlJcC4bw== + dependencies: + "@emotion/serialize" "^0.11.6" + "@emotion/utils" "0.11.1" + babel-plugin-emotion "^10.0.9" + +"@emotion/hash@0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.1.tgz#9833722341379fb7d67f06a4b00ab3c37913da53" + integrity sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA== + +"@emotion/is-prop-valid@0.7.3": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz#a6bf4fa5387cbba59d44e698a4680f481a8da6cc" + integrity sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA== + dependencies: + "@emotion/memoize" "0.7.1" + +"@emotion/memoize@0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz#e93c13942592cf5ef01aa8297444dc192beee52f" + integrity sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg== + +"@emotion/serialize@^0.11.6": + version "0.11.6" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.6.tgz#78be8b9ee9ff49e0196233ba6ec1c1768ba1e1fc" + integrity sha512-n4zVv2qGLmspF99jaEUwnMV0fnEGsyUMsC/8KZKUSUTZMYljHE+j+B6rSD8PIFtaUIhHaxCG2JawN6L+OgLN0Q== + dependencies: + "@emotion/hash" "0.7.1" + "@emotion/memoize" "0.7.1" + "@emotion/unitless" "0.7.3" + "@emotion/utils" "0.11.1" + csstype "^2.5.7" + +"@emotion/sheet@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.2.tgz#74e5c6b5e489a1ba30ab246ab5eedd96916487c4" + integrity sha512-pVBLzIbC/QCHDKJF2E82V2H/W/B004mDFQZiyo/MSR+VC4pV5JLG0TF/zgQDFvP3fZL/5RTPGEmXlYJBMUuJ+A== + +"@emotion/styled-base@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.10.tgz#ffb811295c9dcd9b3c12bf93301d7d8bcb02e6f4" + integrity sha512-uZwKrBfcH7jCRAQi5ZxsEGIZ+1Zr9/lof4TMsIolC0LSwpnWkQ+JRJLy+p4ZyATee9SdmyCV0sG/VTngVSnrpA== + dependencies: + "@emotion/is-prop-valid" "0.7.3" + "@emotion/serialize" "^0.11.6" + "@emotion/utils" "0.11.1" + object-assign "^4.1.1" -"@storybook/addon-links@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.4.5.tgz#c885dae976f5084faa0ae026755f2d6068da034f" +"@emotion/styled@^10.0.7": + version "10.0.11" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.11.tgz#f749ca95bfe398b3e511b65ea14b16984f049e6d" + integrity sha512-c/M/JJHTQuqdY9viSZD41ccCJDe07/VMrj+JgOcyb8uDnRAr+3cCQ03tyrgl72bQD0YWcjXHhpA7Ja9S3+vuRw== dependencies: - "@storybook/components" "3.4.5" - babel-runtime "^6.26.0" - global "^4.3.2" - prop-types "^15.6.1" + "@emotion/styled-base" "^10.0.10" + babel-plugin-emotion "^10.0.9" -"@storybook/addons@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.4.5.tgz#8dd6eb93ae26b4498a9b1e2b890316944efa41da" +"@emotion/stylis@0.8.3": + version "0.8.3" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.3.tgz#3ca7e9bcb31b3cb4afbaeb66156d86ee85e23246" + integrity sha512-M3nMfJ6ndJMYloSIbYEBq6G3eqoYD41BpDOxreE8j0cb4fzz/5qvmqU9Mb2hzsXcCnIlGlWhS03PCzVGvTAe0Q== -"@storybook/channel-postmessage@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.4.5.tgz#8c7de674847dec2a154947e0b99e54a2618c79cb" - dependencies: - "@storybook/channels" "3.4.5" - global "^4.3.2" - json-stringify-safe "^5.0.1" +"@emotion/unitless@0.7.3": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.3.tgz#6310a047f12d21a1036fb031317219892440416f" + integrity sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg== -"@storybook/channels@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.4.5.tgz#cb8e3798cdcbed0b7037e634fb029cdd758c73a8" +"@emotion/utils@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.1.tgz#8529b7412a6eb4b48bdf6e720cc1b8e6e1e17628" + integrity sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg== -"@storybook/client-logger@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-3.4.5.tgz#aca45699b14d6663c694ab3253d46bc257f8783e" +"@emotion/weak-memoize@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz#63985d3d8b02530e0869962f4da09142ee8e200e" + integrity sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA== -"@storybook/components@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.4.5.tgz#02653ba562e3678eab3adbc31b012eae4fbe61dc" +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== dependencies: - glamor "^2.20.40" - glamorous "^4.12.1" - prop-types "^15.6.1" + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" -"@storybook/core@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-3.4.5.tgz#a34a498eace85d29a12559a895c420f5ae54b0b7" +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@reach/router@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e" + integrity sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ== dependencies: - "@storybook/addons" "3.4.5" - "@storybook/channel-postmessage" "3.4.5" - "@storybook/client-logger" "3.4.5" - "@storybook/node-logger" "3.4.5" - "@storybook/ui" "3.4.5" - autoprefixer "^7.2.6" - babel-runtime "^6.26.0" - chalk "^2.3.2" - commander "^2.15.0" - css-loader "^0.28.11" - dotenv "^5.0.1" - events "^2.0.0" - express "^4.16.3" - file-loader "^1.1.11" - global "^4.3.2" - json-loader "^0.5.7" - postcss-flexbugs-fixes "^3.2.0" - postcss-loader "^2.1.2" + create-react-context "^0.2.1" + invariant "^2.2.3" prop-types "^15.6.1" - qs "^6.5.1" - serve-favicon "^2.4.5" - shelljs "^0.8.1" - style-loader "^0.20.3" - url-loader "^0.6.2" - webpack "^3.11.0" - webpack-dev-middleware "^1.12.2" - webpack-hot-middleware "^2.22.1" - -"@storybook/mantra-core@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@storybook/mantra-core/-/mantra-core-1.7.2.tgz#e10c7faca29769e97131e0e0308ef7cfb655b70c" - dependencies: - "@storybook/react-komposer" "^2.0.1" - "@storybook/react-simple-di" "^1.2.1" - babel-runtime "6.x.x" - -"@storybook/node-logger@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-3.4.5.tgz#d08c082b0d4a573736f25c2e0eea261b30183962" - dependencies: - npmlog "^4.1.2" + react-lifecycles-compat "^3.0.4" + warning "^3.0.0" -"@storybook/podda@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@storybook/podda/-/podda-1.2.3.tgz#53c4a1a3f8c7bbd5755dff5c34576fd1af9d38ba" +"@storybook/addon-actions@^5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-5.0.11.tgz#7ca6d6ce9400b9b97f2699935edade88905767c3" + integrity sha512-1aJ/UDBYAyuqq4wkEYKNv/xwy2BZS61Cl8+c8le5af3Rk/y2HVRuBHPoKptFkS0nACE/XvPSvLPUIHZDLUkkMw== dependencies: - babel-runtime "^6.11.6" - immutable "^3.8.1" + "@storybook/addons" "5.0.11" + "@storybook/components" "5.0.11" + "@storybook/core-events" "5.0.11" + "@storybook/theming" "5.0.11" + core-js "^2.6.5" + fast-deep-equal "^2.0.1" + global "^4.3.2" + lodash "^4.17.11" + make-error "^1.3.5" + polished "^2.3.3" + prop-types "^15.6.2" + react "^16.8.1" + react-inspector "^2.3.0" + uuid "^3.3.2" + +"@storybook/addons@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-5.0.11.tgz#86de70747e0a692d9dd8ea431daa1147d8785697" + integrity sha512-zw3vjYa2EfFQKKZd8/o44eVy5xaZpFEBY/4mGMBBTQb57H0X1VTzE4VxHrk7fGPJMdmrPfXbYEiQtfHyO56y+w== + dependencies: + "@storybook/channels" "5.0.11" + "@storybook/client-logger" "5.0.11" + core-js "^2.6.5" + global "^4.3.2" + util-deprecate "^1.0.2" -"@storybook/react-komposer@^2.0.1", "@storybook/react-komposer@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@storybook/react-komposer/-/react-komposer-2.0.4.tgz#c2c0d4a75d9b4a9c0c6b46f14ab050f458ad4bb0" +"@storybook/channel-postmessage@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-5.0.11.tgz#0f63ddfc699936c96a054b002e1b544bc4540f95" + integrity sha512-Vm9GLSDrMchyhoxZqNUuKlnIaMHNLV3QBjVGhHox/WvSq1An4wlqlJnjrO3YvbX1I1wcFjlUwQp1x9VJBL7sGw== dependencies: - "@storybook/react-stubber" "^1.0.0" - babel-runtime "^6.11.6" - hoist-non-react-statics "^1.2.0" + "@storybook/channels" "5.0.11" + "@storybook/client-logger" "5.0.11" + core-js "^2.6.5" + global "^4.3.2" + telejson "^2.1.0" + +"@storybook/channels@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-5.0.11.tgz#fae33809ed14187e7962bb10b813085c6838538c" + integrity sha512-50kaqBZSkB91c5iXtZ8gGQuj3oOAshGXYukvyw9CsQMdcXtw46hX5DNvdBH7E1UCNtbtk91pS0W0YMbP3avmIQ== + dependencies: + core-js "^2.6.5" + +"@storybook/client-api@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-5.0.11.tgz#b0b0ab3ce77320752a4966d17e3eb709ffe554b2" + integrity sha512-HA93c11qTCcU0FyrhS3n851aGAO3LUiPUg/Hmp6Uq+4TIqLoKBtLHsrE6V6KTMg1ej9bYm1V5u7QryMfR+VgkA== + dependencies: + "@storybook/addons" "5.0.11" + "@storybook/client-logger" "5.0.11" + "@storybook/core-events" "5.0.11" + "@storybook/router" "5.0.11" + common-tags "^1.8.0" + core-js "^2.6.5" + eventemitter3 "^3.1.0" + global "^4.3.2" + is-plain-object "^2.0.4" + lodash.debounce "^4.0.8" + lodash.isequal "^4.5.0" + lodash.mergewith "^4.6.1" + memoizerific "^1.11.3" + qs "^6.5.2" + +"@storybook/client-logger@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-5.0.11.tgz#1211421355188f418cc421893f760a2feaf22d27" + integrity sha512-UWEdAlihpASAx770jg3JSDPG8ZkH6aiRCpLMwG7PFbfIpi+ZMRUj9SgxTQvj+/FFmzLR+LNBqfGeT8VHF317/g== + dependencies: + core-js "^2.6.5" + +"@storybook/components@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-5.0.11.tgz#0cf3aad5df92bae9d896a4d6cc376d4445bbe27f" + integrity sha512-s0m+jU08z+YE6QVVYXT63uG2RG3z4KYLE1jwGveoh0vW3vmilHofNx67LBq6HvN+Oq4z1FgfOrZeiZX6zypDNw== + dependencies: + "@storybook/addons" "5.0.11" + "@storybook/client-logger" "5.0.11" + "@storybook/core-events" "5.0.11" + "@storybook/router" "5.0.11" + "@storybook/theming" "5.0.11" + core-js "^2.6.5" + global "^4.3.2" + immer "^1.12.0" + js-beautify "^1.8.9" lodash.pick "^4.4.0" - shallowequal "^0.2.2" - -"@storybook/react-simple-di@^1.2.1": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@storybook/react-simple-di/-/react-simple-di-1.3.0.tgz#13116d89a2f42898716a7f8c4095b47415526371" - dependencies: - babel-runtime "6.x.x" - create-react-class "^15.6.2" - hoist-non-react-statics "1.x.x" - prop-types "^15.6.0" - -"@storybook/react-stubber@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@storybook/react-stubber/-/react-stubber-1.0.1.tgz#8c312c2658b9eeafce470e1c39e4193f0b5bf9b1" - dependencies: - babel-runtime "^6.5.0" - -"@storybook/react@^3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.4.5.tgz#1979423f365252cf03a4508db26b676f239c1e80" - dependencies: - "@storybook/addon-actions" "3.4.5" - "@storybook/addon-links" "3.4.5" - "@storybook/addons" "3.4.5" - "@storybook/channel-postmessage" "3.4.5" - "@storybook/client-logger" "3.4.5" - "@storybook/core" "3.4.5" - "@storybook/node-logger" "3.4.5" - "@storybook/ui" "3.4.5" - airbnb-js-shims "^1.4.1" - babel-loader "^7.1.4" - babel-plugin-macros "^2.2.0" - babel-plugin-react-docgen "^1.9.0" - babel-plugin-transform-regenerator "^6.26.0" - babel-plugin-transform-runtime "^6.23.0" - babel-preset-env "^1.6.1" - babel-preset-minify "^0.3.0" - babel-preset-react "^6.24.1" - babel-preset-stage-0 "^6.24.1" - babel-runtime "^6.26.0" - case-sensitive-paths-webpack-plugin "^2.1.2" - common-tags "^1.7.2" - core-js "^2.5.3" - dotenv-webpack "^1.5.5" - find-cache-dir "^1.0.0" - glamor "^2.20.40" - glamorous "^4.12.1" + lodash.throttle "^4.1.1" + memoizerific "^1.11.3" + polished "^2.3.3" + prop-types "^15.6.2" + react "^16.8.1" + react-dom "^16.8.1" + react-focus-lock "^1.17.7" + react-helmet-async "^0.2.0" + react-inspector "^2.3.0" + react-popper-tooltip "^2.8.0" + react-syntax-highlighter "^8.0.1" + react-textarea-autosize "^7.0.4" + reactjs-popup "^1.3.2" + recompose "^0.30.0" + render-fragment "^0.1.1" + +"@storybook/core-events@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-5.0.11.tgz#c7f10df6de6eb9a92cb4fe30b77e956f11b971e6" + integrity sha512-hwtazXO9hkoI5vtUm6koJ30+8FzbFuPO35AkAMAue+/OLZWJX3wzQ9gBKR4jOtRcWRRJsaBykltW/VH7b+NoPQ== + dependencies: + core-js "^2.6.5" + +"@storybook/core@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-5.0.11.tgz#e941cf18ef62ee962607d1fb24c57b9cafc88cfd" + integrity sha512-im9PDPTCyz2YctMVau/GHLYuj0xAEnwh570oW3eg9pftjsyTq2zAnh+s93iX65XyRWNzKeHgnoEaxJtmdA4tug== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.3.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.2" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-transform-react-constant-elements" "^7.2.0" + "@babel/preset-env" "^7.4.1" + "@storybook/addons" "5.0.11" + "@storybook/channel-postmessage" "5.0.11" + "@storybook/client-api" "5.0.11" + "@storybook/client-logger" "5.0.11" + "@storybook/core-events" "5.0.11" + "@storybook/node-logger" "5.0.11" + "@storybook/router" "5.0.11" + "@storybook/theming" "5.0.11" + "@storybook/ui" "5.0.11" + airbnb-js-shims "^1 || ^2" + autoprefixer "^9.4.7" + babel-plugin-add-react-displayname "^0.0.5" + babel-plugin-emotion "^10.0.7" + babel-plugin-macros "^2.4.5" + babel-preset-minify "^0.5.0 || 0.6.0-alpha.5" + boxen "^2.1.0" + case-sensitive-paths-webpack-plugin "^2.2.0" + chalk "^2.4.2" + child-process-promise "^2.2.1" + cli-table3 "0.5.1" + commander "^2.19.0" + common-tags "^1.8.0" + core-js "^2.6.5" + css-loader "^2.1.0" + detect-port "^1.2.3" + dotenv-webpack "^1.7.0" + ejs "^2.6.1" + express "^4.16.3" + file-loader "^3.0.1" + file-system-cache "^1.0.5" + find-cache-dir "^2.0.0" + fs-extra "^7.0.1" global "^4.3.2" - html-loader "^0.5.5" - html-webpack-plugin "^2.30.1" - json5 "^0.5.1" - lodash.flattendeep "^4.4.0" - markdown-loader "^2.0.2" - prop-types "^15.6.1" - react-dev-utils "^5.0.0" - redux "^3.7.2" - uglifyjs-webpack-plugin "^1.2.4" + html-webpack-plugin "^4.0.0-beta.2" + inquirer "^6.2.0" + interpret "^1.2.0" + ip "^1.1.5" + json5 "^2.1.0" + lazy-universal-dotenv "^2.0.0" + node-fetch "^2.2.0" + object.omit "^3.0.0" + opn "^5.4.0" + postcss-flexbugs-fixes "^4.1.0" + postcss-loader "^3.0.0" + pretty-hrtime "^1.0.3" + prop-types "^15.6.2" + raw-loader "^1.0.0" + react-dev-utils "^7.0.0" + regenerator-runtime "^0.12.1" + resolve "^1.10.0" + resolve-from "^4.0.0" + semver "^5.6.0" + serve-favicon "^2.5.0" + shelljs "^0.8.2" + spawn-promise "^0.1.8" + style-loader "^0.23.1" + svg-url-loader "^2.3.2" + terser-webpack-plugin "^1.2.1" + url-loader "^1.1.2" util-deprecate "^1.0.2" - webpack "^3.11.0" - webpack-hot-middleware "^2.22.1" + webpack "^4.29.0" + webpack-dev-middleware "^3.5.1" + webpack-hot-middleware "^2.24.3" -"@storybook/ui@3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.4.5.tgz#b11e97590b5e09b2d1452c0a4b84567780ec3390" +"@storybook/node-logger@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.0.11.tgz#7c97e667295ce7d75af1a14878e83c0cd475c2ba" + integrity sha512-wmWo+CcEw0bEwT+cC20ofVW+jwVN7m5TYQSX7ujfpi8Ug9t2yHNM7Qn26p2g97mBM9CXsyW1HCeLEwsE+SfTGQ== dependencies: - "@storybook/components" "3.4.5" - "@storybook/mantra-core" "^1.7.2" - "@storybook/podda" "^1.2.3" - "@storybook/react-komposer" "^2.0.3" - babel-runtime "^6.26.0" - deep-equal "^1.0.1" - events "^2.0.0" - fuse.js "^3.2.0" + chalk "^2.4.2" + core-js "^2.6.5" + npmlog "^4.1.2" + pretty-hrtime "^1.0.3" + regenerator-runtime "^0.12.1" + +"@storybook/react@^5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-5.0.11.tgz#e131437a59d1f2fac7fbad4ab0c28a54d8a96398" + integrity sha512-HOKtOvGAOpwZyKXEEjNg3Exhf1E946H+Wcmfgp3hD7BOdxiWbXvkE3kwdBHb+cnQri0rJaADnYiXB/p8MkxfzQ== + dependencies: + "@babel/plugin-transform-react-constant-elements" "^7.2.0" + "@babel/preset-flow" "^7.0.0" + "@babel/preset-react" "^7.0.0" + "@storybook/core" "5.0.11" + "@storybook/node-logger" "5.0.11" + "@storybook/theming" "5.0.11" + "@svgr/webpack" "^4.0.3" + babel-plugin-named-asset-import "^0.3.0" + babel-plugin-react-docgen "^2.0.2" + babel-preset-react-app "^7.0.0" + common-tags "^1.8.0" + core-js "^2.6.5" + global "^4.3.2" + lodash "^4.17.11" + mini-css-extract-plugin "^0.5.0" + prop-types "^15.6.2" + react-dev-utils "^7.0.1" + regenerator-runtime "^0.12.1" + semver "^5.6.0" + webpack "^4.29.0" + +"@storybook/router@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-5.0.11.tgz#e742ec567f623877bdb45b5b26551cb9380c1bf2" + integrity sha512-g5K65FknSwhlaNoMEKMKFVA+V4vS95xUTg1PoAQeW+noVdCr2nBhFSHiaQyz35AkKDYvOFr1nTxuL2kfVfD7dQ== + dependencies: + "@reach/router" "^1.2.1" + "@storybook/theming" "5.0.11" + core-js "^2.6.5" + global "^4.3.2" + memoizerific "^1.11.3" + qs "^6.5.2" + +"@storybook/theming@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-5.0.11.tgz#46e243c36324676c36393c01695bdbd6369e79b4" + integrity sha512-zZoMFirkdGYd4M6HupNYn713GesA/kx0nbhPfyatwnwRV9/LrG7KwkMjVDMrSHRdZei7z1KF7yFhleAOKb8RaQ== + dependencies: + "@emotion/core" "^10.0.7" + "@emotion/styled" "^10.0.7" + "@storybook/client-logger" "5.0.11" + common-tags "^1.8.0" + core-js "^2.6.5" + deep-object-diff "^1.1.0" + emotion-theming "^10.0.7" + global "^4.3.2" + lodash.isequal "^4.5.0" + lodash.mergewith "^4.6.1" + memoizerific "^1.11.3" + polished "^2.3.3" + prop-types "^15.6.2" + react-inspector "^2.3.1" + +"@storybook/ui@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-5.0.11.tgz#207f767d96e40513bb3887b428a4d9a81d027051" + integrity sha512-APLI0J/V/dxeNYozNP5iAgVlqsEbr9SeruDI1NREpQYc+a0sAXmblbRIiAXpUuJbRBkEx3r9RIl1TNV2wp6i/w== + dependencies: + "@storybook/addons" "5.0.11" + "@storybook/client-logger" "5.0.11" + "@storybook/components" "5.0.11" + "@storybook/core-events" "5.0.11" + "@storybook/router" "5.0.11" + "@storybook/theming" "5.0.11" + core-js "^2.6.5" + fast-deep-equal "^2.0.1" + fuzzy-search "^3.0.1" global "^4.3.2" - keycode "^2.1.9" + history "^4.7.2" + keycode "^2.2.0" lodash.debounce "^4.0.8" + lodash.isequal "^4.5.0" + lodash.mergewith "^4.6.1" lodash.pick "^4.4.0" lodash.sortby "^4.7.0" lodash.throttle "^4.1.1" - prop-types "^15.6.1" - qs "^6.5.1" - react-fuzzy "^0.5.2" - react-icons "^2.2.7" - react-modal "^3.3.2" - react-split-pane "^0.1.77" - react-treebeard "^2.1.0" + markdown-to-jsx "^6.9.1" + memoizerific "^1.11.3" + polished "^2.3.3" + prop-types "^15.6.2" + qs "^6.5.2" + react "^16.8.1" + react-dom "^16.8.1" + react-draggable "^3.1.1" + react-helmet-async "^0.2.0" + react-hotkeys "2.0.0-pre4" + react-lifecycles-compat "^3.0.4" + react-modal "^3.8.1" + react-resize-detector "^3.2.1" + recompose "^0.30.0" + semver "^5.6.0" + telejson "^2.1.1" + util-deprecate "^1.0.2" + +"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" + integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== + +"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" + integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" + integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" + integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== + +"@svgr/babel-plugin-svg-dynamic-title@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.2.0.tgz#43f0f689a5347a894160eb51b39a109889a4df20" + integrity sha512-gH2qItapwCUp6CCqbxvzBbc4dh4OyxdYKsW3EOkYexr0XUmQL0ScbdNh6DexkZ01T+sdClniIbnCObsXcnx3sQ== + +"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" + integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== + +"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" + integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== + +"@svgr/babel-plugin-transform-svg-component@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" + integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== + +"@svgr/babel-preset@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.2.0.tgz#c9fc236445a02a8cd4e750085e51c181de00d6c5" + integrity sha512-iLetHpRCQXfK47voAs5/uxd736cCyocEdorisjAveZo8ShxJ/ivSZgstBmucI1c8HyMF5tOrilJLoFbhpkPiKw== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" + "@svgr/babel-plugin-svg-dynamic-title" "^4.2.0" + "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" + "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" + "@svgr/babel-plugin-transform-svg-component" "^4.2.0" + +"@svgr/core@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.2.0.tgz#f32ef8b9d05312aaa775896ec30ae46a6521e248" + integrity sha512-nvzXaf2VavqjMCTTfsZfjL4o9035KedALkMzk82qOlHOwBb8JT+9+zYDgBl0oOunbVF94WTLnvGunEg0csNP3Q== + dependencies: + "@svgr/plugin-jsx" "^4.2.0" + camelcase "^5.3.1" + cosmiconfig "^5.2.0" + +"@svgr/hast-util-to-babel-ast@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.2.0.tgz#dd743435a5f3a8e84a1da067f27b5fae3d7b6b63" + integrity sha512-IvAeb7gqrGB5TH9EGyBsPrMRH/QCzIuAkLySKvH2TLfLb2uqk98qtJamordRQTpHH3e6TORfBXoTo7L7Opo/Ow== + dependencies: + "@babel/types" "^7.4.0" + +"@svgr/plugin-jsx@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.2.0.tgz#15a91562c9b5f90640ea0bdcb2ad59d692ee7ae9" + integrity sha512-AM1YokmZITgveY9bulLVquqNmwiFo2Px2HL+IlnTCR01YvWDfRL5QKdnF7VjRaS5MNP938mmqvL0/8oz3zQMkg== + dependencies: + "@babel/core" "^7.4.3" + "@svgr/babel-preset" "^4.2.0" + "@svgr/hast-util-to-babel-ast" "^4.2.0" + rehype-parse "^6.0.0" + unified "^7.1.0" + vfile "^4.0.0" + +"@svgr/plugin-svgo@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.2.0.tgz#2a594a2d3312955e75fd87dc77ae51f377c809f3" + integrity sha512-zUEKgkT172YzHh3mb2B2q92xCnOAMVjRx+o0waZ1U50XqKLrVQ/8dDqTAtnmapdLsGurv8PSwenjLCUpj6hcvw== + dependencies: + cosmiconfig "^5.2.0" + merge-deep "^3.0.2" + svgo "^1.2.1" + +"@svgr/webpack@^4.0.3": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-4.2.0.tgz#b7cdef42ae671a27ed4cfe118a0f2da7f4e9ebed" + integrity sha512-sm3UUJHmRlqEg8w8bjUT+FAMf5lkgCydxotEapinpd10kzrpQP++Qd+bmuepE3hsIUU68BO24vgQALQ92qBZEw== + dependencies: + "@babel/core" "^7.4.3" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.4.3" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^4.2.0" + "@svgr/plugin-jsx" "^4.2.0" + "@svgr/plugin-svgo" "^4.2.0" + loader-utils "^1.2.3" + +"@types/node@*": + version "12.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40" + integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@types/vfile-message@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz#e1e9895cc6b36c462d4244e64e6d0b6eaf65355a" + integrity sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA== + dependencies: + "@types/node" "*" + "@types/unist" "*" + +"@types/vfile@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9" + integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw== + dependencies: + "@types/node" "*" + "@types/unist" "*" + "@types/vfile-message" "*" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abbrev@1: version "1.1.1" @@ -308,26 +1662,17 @@ accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-jsx@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -acorn@^6.0.2: +acorn@^6.0.2, acorn@^6.0.5: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== @@ -336,41 +1681,43 @@ address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" -airbnb-js-shims@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-1.4.1.tgz#cc3e8eb8d35877f9d0fdc6583e26b0ee75b98ad0" +"airbnb-js-shims@^1 || ^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.2.0.tgz#46e1d9d9516f704ef736de76a3b6d484df9a96d8" + integrity sha512-pcSQf1+Kx7/0ibRmxj6rmMYc5V8SHlKu+rkQ80h0bjSLDaIxHg/3PiiFJi4A9mDc01CoBHoc8Fls2G/W0/+s5g== dependencies: array-includes "^3.0.3" - array.prototype.flatmap "^1.2.0" - array.prototype.flatten "^1.2.0" - es5-shim "^4.5.10" - es6-shim "^0.35.3" + array.prototype.flat "^1.2.1" + array.prototype.flatmap "^1.2.1" + es5-shim "^4.5.13" + es6-shim "^0.35.5" function.prototype.name "^1.1.0" - object.entries "^1.0.4" + globalthis "^1.0.0" + object.entries "^1.1.0" + object.fromentries "^2.0.0 || ^1.0.0" object.getownpropertydescriptors "^2.0.3" - object.values "^1.0.4" + object.values "^1.1.0" + promise.allsettled "^1.0.0" promise.prototype.finally "^3.1.0" + string.prototype.matchall "^3.0.1" string.prototype.padend "^3.0.0" string.prototype.padstart "^3.0.0" + symbol.prototype.description "^1.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-keywords@^3.0.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== -ajv-keywords@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - -ajv@^5.0.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - +ajv-keywords@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + ajv@^6.0.1, ajv@^6.5.0: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" @@ -394,22 +1741,27 @@ alea@^0.0.9: version "0.0.9" resolved "https://registry.yarnpkg.com/alea/-/alea-0.0.9.tgz#f738cb45f83430069f45cf69ccbf312dd57a9e1a" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" + string-width "^3.0.0" -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-escapes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -422,6 +1774,11 @@ ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -432,13 +1789,6 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -446,6 +1796,11 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +app-root-dir@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" + integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= + aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -471,17 +1826,11 @@ aria-query@^3.0.0: ast-types-flow "0.0.7" commander "^2.11.0" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" @@ -493,10 +1842,6 @@ array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" -array-find@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -516,30 +1861,45 @@ array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" -array.prototype.flatmap@^1.2.0: +array.prototype.flat@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz#3103cd4826ef90019c9b0a4839b2535fa6faf4e9" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" + integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== dependencies: define-properties "^1.1.2" es-abstract "^1.10.0" function-bind "^1.1.1" -array.prototype.flatten@^1.2.0: +array.prototype.flatmap@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatten/-/array.prototype.flatten-1.2.1.tgz#a77ae1b64524ce373b137fade324d12040d3c680" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz#3103cd4826ef90019c9b0a4839b2535fa6faf4e9" + integrity sha512-i18e2APdsiezkcqDyZor78Pbfjfds3S94dG6dgIV2ZASJaUf1N0dz2tGdrmwrmlZuNUgxH+wz6Z0zYVH2c5xzQ== dependencies: define-properties "^1.1.2" es-abstract "^1.10.0" function-bind "^1.1.1" +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -567,19 +1927,26 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= -ast-types@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" +ast-types@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" + integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA== -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" +ast-types@0.11.7: + version "0.11.7" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c" + integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw== async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@^2.1.2, async@^2.1.4: +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: @@ -589,27 +1956,17 @@ atob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -autoprefixer@^7.2.6: - version "7.2.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" +autoprefixer@^9.4.7: + version "9.5.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.1.tgz#243b1267b67e7e947f28919d786b50d3bb0fb357" + integrity sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ== dependencies: - browserslist "^2.11.3" - caniuse-lite "^1.0.30000805" + browserslist "^4.5.4" + caniuse-lite "^1.0.30000957" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^6.0.17" - postcss-value-parser "^3.2.3" + postcss "^7.0.14" + postcss-value-parser "^3.3.1" axobject-query@^2.0.2: version "2.0.2" @@ -618,28 +1975,7 @@ axobject-query@^2.0.2: dependencies: ast-types-flow "0.0.7" -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@6.26.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -647,30 +1983,6 @@ babel-code-frame@6.26.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - babel-eslint@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" @@ -683,863 +1995,327 @@ babel-eslint@^10.0.1: eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-bindify-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-evaluate-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.3.0.tgz#2439545e0b6eae5b7f49b790acbebd6b9a73df20" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-class@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" - dependencies: - babel-helper-bindify-decorators "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-flip-expressions@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz#f5b6394bd5219b43cf8f7b201535ed540c6e7fa2" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" +babel-helper-evaluate-path@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz#a62fa9c4e64ff7ea5cea9353174ef023a900a67c" + integrity sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA== -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" +babel-helper-flip-expressions@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz#3696736a128ac18bc25254b5f40a22ceb3c1d3fd" + integrity sha1-NpZzahKKwYvCUlS19AoizrPB0/0= babel-helper-is-nodes-equiv@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" -babel-helper-is-void-0@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.3.0.tgz#95570d20bd27b2206f68083ae9980ee7003d8fe7" - -babel-helper-mark-eval-scopes@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.3.0.tgz#b4731314fdd7a89091271a5213b4e12d236e29e8" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" +babel-helper-is-void-0@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz#7d9c01b4561e7b95dbda0f6eee48f5b60e67313e" + integrity sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4= -babel-helper-remove-or-void@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz#f43c86147c8fcc395a9528cbb31e7ff49d7e16e3" +babel-helper-mark-eval-scopes@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz#d244a3bef9844872603ffb46e22ce8acdf551562" + integrity sha1-0kSjvvmESHJgP/tG4izorN9VFWI= -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" +babel-helper-remove-or-void@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz#a4f03b40077a0ffe88e45d07010dee241ff5ae60" + integrity sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA= -babel-helper-to-multiple-sequence-expressions@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz#8da2275ccc26995566118f7213abfd9af7214427" +babel-helper-to-multiple-sequence-expressions@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" + integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" +babel-loader@8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33" + integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw== dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" -babel-loader@^7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" +babel-loader@^8.0.6: + version "8.0.6" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== dependencies: - find-cache-dir "^1.0.0" + find-cache-dir "^2.0.0" loader-utils "^1.0.2" mkdirp "^0.5.1" + pify "^4.0.1" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" +babel-plugin-add-react-displayname@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" + integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U= -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" +babel-plugin-dynamic-import-node@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e" + integrity sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA== dependencies: - babel-runtime "^6.22.0" + object.assign "^4.1.0" -babel-plugin-macros@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.2.1.tgz#7cc0f84735aa86f776b51860793a98928f43a7fa" +babel-plugin-emotion@^10.0.7, babel-plugin-emotion@^10.0.9: + version "10.0.9" + resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.9.tgz#04a0404d5a4084d5296357a393d344c0f8303ae4" + integrity sha512-IfWP12e9/wHtWHxVTzD692Nbcmrmcz2tip7acp6YUqtrP7slAyr5B+69hyZ8jd55GsyNSZwryNnmuDEVe0j+7w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@emotion/hash" "0.7.1" + "@emotion/memoize" "0.7.1" + "@emotion/serialize" "^0.11.6" + babel-plugin-macros "^2.0.0" + babel-plugin-syntax-jsx "^6.18.0" + convert-source-map "^1.5.0" + escape-string-regexp "^1.0.5" + find-root "^1.1.0" + source-map "^0.5.7" + +babel-plugin-macros@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz#01f4d3b50ed567a67b80a30b9da066e94f4097b6" + integrity sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw== dependencies: - cosmiconfig "^4.0.0" + cosmiconfig "^5.0.5" + resolve "^1.8.1" -babel-plugin-minify-builtins@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.3.0.tgz#4740117a6a784063aaf8f092989cf9e4bd484860" +babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.4.5: + version "2.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.5.1.tgz#4a119ac2c2e19b458c259b9accd7ee34fd57ec6f" + integrity sha512-xN3KhAxPzsJ6OQTktCanNpIFnnMsCV+t8OloKxIL72D6+SUZYFn9qfklPgef5HyyDtzYZqqb+fs1S12+gQY82Q== dependencies: - babel-helper-evaluate-path "^0.3.0" + "@babel/runtime" "^7.4.2" + cosmiconfig "^5.2.0" + resolve "^1.10.0" -babel-plugin-minify-constant-folding@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.3.0.tgz#687e40336bd4ddd921e0e197f0006235ac184bb9" +babel-plugin-minify-builtins@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz#31eb82ed1a0d0efdc31312f93b6e4741ce82c36b" + integrity sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag== + +babel-plugin-minify-constant-folding@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz#f84bc8dbf6a561e5e350ff95ae216b0ad5515b6e" + integrity sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ== dependencies: - babel-helper-evaluate-path "^0.3.0" + babel-helper-evaluate-path "^0.5.0" -babel-plugin-minify-dead-code-elimination@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.3.0.tgz#a323f686c404b824186ba5583cf7996cac81719e" +babel-plugin-minify-dead-code-elimination@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.0.tgz#d23ef5445238ad06e8addf5c1cf6aec835bcda87" + integrity sha512-XQteBGXlgEoAKc/BhO6oafUdT4LBa7ARi55mxoyhLHNuA+RlzRmeMAfc31pb/UqU01wBzRc36YqHQzopnkd/6Q== dependencies: - babel-helper-evaluate-path "^0.3.0" - babel-helper-mark-eval-scopes "^0.3.0" - babel-helper-remove-or-void "^0.3.0" + babel-helper-evaluate-path "^0.5.0" + babel-helper-mark-eval-scopes "^0.4.3" + babel-helper-remove-or-void "^0.4.3" lodash.some "^4.6.0" -babel-plugin-minify-flip-comparisons@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.3.0.tgz#6627893a409c9f30ef7f2c89e0c6eea7ee97ddc4" +babel-plugin-minify-flip-comparisons@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz#00ca870cb8f13b45c038b3c1ebc0f227293c965a" + integrity sha1-AMqHDLjxO0XAOLPB68DyJyk8llo= dependencies: - babel-helper-is-void-0 "^0.3.0" + babel-helper-is-void-0 "^0.4.3" -babel-plugin-minify-guarded-expressions@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.3.0.tgz#2552d96189ef45d9a463f1a6b5e4fa110703ac8d" +babel-plugin-minify-guarded-expressions@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.3.tgz#cc709b4453fd21b1f302877444c89f88427ce397" + integrity sha1-zHCbRFP9IbHzAod0RMifiEJ845c= dependencies: - babel-helper-flip-expressions "^0.3.0" + babel-helper-flip-expressions "^0.4.3" -babel-plugin-minify-infinity@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.3.0.tgz#c5ec0edd433517cf31b3af17077c202beb48bbe7" +babel-plugin-minify-infinity@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz#dfb876a1b08a06576384ef3f92e653ba607b39ca" + integrity sha1-37h2obCKBldjhO8/kuZTumB7Oco= -babel-plugin-minify-mangle-names@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.3.0.tgz#f28561bad0dd2f0380816816bb946e219b3b6135" +babel-plugin-minify-mangle-names@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz#bcddb507c91d2c99e138bd6b17a19c3c271e3fd3" + integrity sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw== dependencies: - babel-helper-mark-eval-scopes "^0.3.0" + babel-helper-mark-eval-scopes "^0.4.3" -babel-plugin-minify-numeric-literals@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.3.0.tgz#b57734a612e8a592005407323c321119f27d4b40" +babel-plugin-minify-numeric-literals@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz#8e4fd561c79f7801286ff60e8c5fd9deee93c0bc" + integrity sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw= -babel-plugin-minify-replace@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.3.0.tgz#980125bbf7cbb5a637439de9d0b1b030a4693893" +babel-plugin-minify-replace@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz#d3e2c9946c9096c070efc96761ce288ec5c3f71c" + integrity sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q== -babel-plugin-minify-simplify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.3.0.tgz#14574cc74d21c81d3060fafa041010028189f11b" +babel-plugin-minify-simplify@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.0.tgz#1f090018afb90d8b54d3d027fd8a4927f243da6f" + integrity sha512-TM01J/YcKZ8XIQd1Z3nF2AdWHoDsarjtZ5fWPDksYZNsoOjQ2UO2EWm824Ym6sp127m44gPlLFiO5KFxU8pA5Q== dependencies: - babel-helper-flip-expressions "^0.3.0" + babel-helper-flip-expressions "^0.4.3" babel-helper-is-nodes-equiv "^0.0.1" - babel-helper-to-multiple-sequence-expressions "^0.3.0" + babel-helper-to-multiple-sequence-expressions "^0.5.0" -babel-plugin-minify-type-constructors@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.3.0.tgz#7f5a86ef322c4746364e3c591b8514eeafea6ad4" - dependencies: - babel-helper-is-void-0 "^0.3.0" - -babel-plugin-react-docgen@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.9.0.tgz#2e79aeed2f93b53a172398f93324fdcf9f02e01f" +babel-plugin-minify-type-constructors@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz#1bc6f15b87f7ab1085d42b330b717657a2156500" + integrity sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA= dependencies: - babel-types "^6.24.1" - lodash "^4.17.0" - react-docgen "^3.0.0-beta11" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-do-expressions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + babel-helper-is-void-0 "^0.4.3" -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" +babel-plugin-named-asset-import@^0.3.0: + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.2.tgz#20978ed446b8e1bf4a2f42d0a94c0ece85f75f4f" + integrity sha512-CxwvxrZ9OirpXQ201Ec57OmGhmI8/ui/GwTDy0hSp6CmRvgRC0pSair6Z04Ck+JStA0sMPZzSJ3uE4n17EXpPQ== -babel-plugin-syntax-function-bind@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" +babel-plugin-react-docgen@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-2.0.2.tgz#3307e27414c370365710576b7fadbcaf8984d862" + integrity sha512-fFendfUUU2KqqE1ki2NyQoZm4uHPoEWPUgBZiPBiowcPZos+4q+chdQh0nlwY5hxs08AMHSH4Pp98RQL0VFS/g== + dependencies: + lodash "^4.17.10" + react-docgen "^3.0.0" + recast "^0.14.7" -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-generator-functions@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-constructor-call@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" - dependencies: - babel-helper-explode-class "^6.24.1" - babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-do-expressions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" - dependencies: - babel-plugin-syntax-do-expressions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-function-bind@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" - dependencies: - babel-plugin-syntax-function-bind "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-inline-consecutive-adds@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz#f07d93689c0002ed2b2b62969bdd99f734e03f57" +babel-plugin-transform-inline-consecutive-adds@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" + integrity sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE= -babel-plugin-transform-member-expression-literals@^6.9.0: +babel-plugin-transform-member-expression-literals@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" + integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= -babel-plugin-transform-merge-sibling-variables@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" - -babel-plugin-transform-minify-booleans@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" - -babel-plugin-transform-object-rest-spread@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-plugin-transform-property-literals@^6.9.0: +babel-plugin-transform-merge-sibling-variables@^6.9.4: version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" - dependencies: - esutils "^2.0.2" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" + integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" +babel-plugin-transform-minify-booleans@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" + integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" +babel-plugin-transform-property-literals@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" + integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + esutils "^2.0.2" -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-plugin-transform-regexp-constructors@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.3.0.tgz#9bb2c8dd082271a5cb1b3a441a7c52e8fd07e0f5" +babel-plugin-transform-regexp-constructors@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" + integrity sha1-WLd3W2OvzzMyj66aX4j71PsLSWU= -babel-plugin-transform-remove-console@^6.9.0: +babel-plugin-transform-remove-console@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= -babel-plugin-transform-remove-debugger@^6.9.0: +babel-plugin-transform-remove-debugger@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" + integrity sha1-QrcnYxyXl44estGZp67IShgznvI= -babel-plugin-transform-remove-undefined@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.3.0.tgz#03f5f0071867781e9beabbc7b77bf8095fd3f3ec" - dependencies: - babel-helper-evaluate-path "^0.3.0" - -babel-plugin-transform-runtime@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" +babel-plugin-transform-remove-undefined@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz#80208b31225766c630c97fa2d288952056ea22dd" + integrity sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ== dependencies: - babel-runtime "^6.22.0" + babel-helper-evaluate-path "^0.5.0" -babel-plugin-transform-simplify-comparison-operators@^6.9.0: +babel-plugin-transform-simplify-comparison-operators@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" + integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-undefined-to-void@^6.9.0: +babel-plugin-transform-undefined-to-void@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" + integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1, babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-minify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz#7db64afa75f16f6e06c0aa5f25195f6f36784d77" - dependencies: - babel-plugin-minify-builtins "^0.3.0" - babel-plugin-minify-constant-folding "^0.3.0" - babel-plugin-minify-dead-code-elimination "^0.3.0" - babel-plugin-minify-flip-comparisons "^0.3.0" - babel-plugin-minify-guarded-expressions "^0.3.0" - babel-plugin-minify-infinity "^0.3.0" - babel-plugin-minify-mangle-names "^0.3.0" - babel-plugin-minify-numeric-literals "^0.3.0" - babel-plugin-minify-replace "^0.3.0" - babel-plugin-minify-simplify "^0.3.0" - babel-plugin-minify-type-constructors "^0.3.0" - babel-plugin-transform-inline-consecutive-adds "^0.3.0" - babel-plugin-transform-member-expression-literals "^6.9.0" - babel-plugin-transform-merge-sibling-variables "^6.9.0" - babel-plugin-transform-minify-booleans "^6.9.0" - babel-plugin-transform-property-literals "^6.9.0" - babel-plugin-transform-regexp-constructors "^0.3.0" - babel-plugin-transform-remove-console "^6.9.0" - babel-plugin-transform-remove-debugger "^6.9.0" - babel-plugin-transform-remove-undefined "^0.3.0" - babel-plugin-transform-simplify-comparison-operators "^6.9.0" - babel-plugin-transform-undefined-to-void "^6.9.0" +"babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.0.tgz#e25bb8d3590087af02b650967159a77c19bfb96b" + integrity sha512-xj1s9Mon+RFubH569vrGCayA9Fm2GMsCgDRm1Jb8SgctOB7KFcrVc2o8K3YHUyMz+SWP8aea75BoS8YfsXXuiA== + dependencies: + babel-plugin-minify-builtins "^0.5.0" + babel-plugin-minify-constant-folding "^0.5.0" + babel-plugin-minify-dead-code-elimination "^0.5.0" + babel-plugin-minify-flip-comparisons "^0.4.3" + babel-plugin-minify-guarded-expressions "^0.4.3" + babel-plugin-minify-infinity "^0.4.3" + babel-plugin-minify-mangle-names "^0.5.0" + babel-plugin-minify-numeric-literals "^0.4.3" + babel-plugin-minify-replace "^0.5.0" + babel-plugin-minify-simplify "^0.5.0" + babel-plugin-minify-type-constructors "^0.4.3" + babel-plugin-transform-inline-consecutive-adds "^0.4.3" + babel-plugin-transform-member-expression-literals "^6.9.4" + babel-plugin-transform-merge-sibling-variables "^6.9.4" + babel-plugin-transform-minify-booleans "^6.9.4" + babel-plugin-transform-property-literals "^6.9.4" + babel-plugin-transform-regexp-constructors "^0.4.3" + babel-plugin-transform-remove-console "^6.9.4" + babel-plugin-transform-remove-debugger "^6.9.4" + babel-plugin-transform-remove-undefined "^0.5.0" + babel-plugin-transform-simplify-comparison-operators "^6.9.4" + babel-plugin-transform-undefined-to-void "^6.9.4" lodash.isplainobject "^4.0.6" -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-preset-stage-0@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" - dependencies: - babel-plugin-transform-do-expressions "^6.22.0" - babel-plugin-transform-function-bind "^6.22.0" - babel-preset-stage-1 "^6.24.1" - -babel-preset-stage-1@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" - dependencies: - babel-plugin-transform-class-constructor-call "^6.24.1" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.24.1" - -babel-preset-stage-2@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.24.1" - babel-plugin-transform-decorators "^6.24.1" - babel-preset-stage-3 "^6.24.1" - -babel-preset-stage-3@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-generator-functions "^6.24.1" - babel-plugin-transform-async-to-generator "^6.24.1" - babel-plugin-transform-exponentiation-operator "^6.24.1" - babel-plugin-transform-object-rest-spread "^6.22.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@6.x.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.5.0, babel-runtime@^6.9.2: +babel-preset-react-app@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz#d01ae973edc93b9f1015cb0236dd55889a584308" + integrity sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ== + dependencies: + "@babel/core" "7.2.2" + "@babel/plugin-proposal-class-properties" "7.3.0" + "@babel/plugin-proposal-decorators" "7.3.0" + "@babel/plugin-proposal-object-rest-spread" "7.3.2" + "@babel/plugin-syntax-dynamic-import" "7.2.0" + "@babel/plugin-transform-classes" "7.2.2" + "@babel/plugin-transform-destructuring" "7.3.2" + "@babel/plugin-transform-flow-strip-types" "7.2.3" + "@babel/plugin-transform-react-constant-elements" "7.2.0" + "@babel/plugin-transform-react-display-name" "7.2.0" + "@babel/plugin-transform-runtime" "7.2.0" + "@babel/preset-env" "7.3.1" + "@babel/preset-react" "7.0.0" + "@babel/preset-typescript" "7.1.0" + "@babel/runtime" "7.3.1" + babel-loader "8.0.5" + babel-plugin-dynamic-import-node "2.2.0" + babel-plugin-macros "2.5.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-runtime@^6.18.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@7.0.0-beta.31: - version "7.0.0-beta.31" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.31.tgz#7ec10f81e0e456fd0f855ad60fa30c2ac454283f" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +bail@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" + integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== balanced-match@^1.0.0: version "1.0.0" @@ -1569,13 +2345,19 @@ big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" -bluebird@^3.4.7, bluebird@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" +bluebird@^3.3.5, bluebird@^3.5.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -1596,30 +2378,31 @@ body-parser@1.18.2: raw-body "2.3.2" type-is "~1.6.15" -boolbase@~1.0.0: +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -bowser@^1.0.0, bowser@^1.7.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.3.tgz#6643ae4d783f31683f6d23156976b74183862162" +boxen@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-2.1.0.tgz#8d576156e33fc26a34d6be8635fd16b1d745f0b2" + integrity sha512-luq3RQOt2U5sUX+fiu+qnT+wWnHDcATLpEe63jvge6GUZO99AKbVRfp97d2jgLvq1iQa0ORzaAm4lGVG52ZSlw== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.0.0" + chalk "^2.4.1" + cli-boxes "^1.0.0" + string-width "^3.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.0, braces@^2.3.1: +braces@^2.3.0, braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: @@ -1634,10 +2417,6 @@ braces@^2.3.0, braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -brcast@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/brcast/-/brcast-3.0.1.tgz#6256a8349b20de9eed44257a9b24d71493cd48dd" - brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1694,26 +2473,23 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^2.11.3: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" +browserslist@4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" + integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A== dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" + caniuse-lite "^1.0.30000929" + electron-to-chromium "^1.3.103" + node-releases "^1.1.3" -browserslist@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.7.tgz#aa488634d320b55e88bab0256184dbbcca1e6de9" +browserslist@^4.3.4, browserslist@^4.5.2, browserslist@^4.5.4: + version "4.6.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.0.tgz#5274028c26f4d933d5b1323307c1d1da5084c9ff" + integrity sha512-Jk0YFwXBuMOOol8n6FhgkDzn3mY9PYLYGk29zybF05SbRTsMgPqmTNeQQhOghCxq5oFqAXE3u4sYddr4C0uRhg== dependencies: - caniuse-lite "^1.0.30000835" - electron-to-chromium "^1.3.45" + caniuse-lite "^1.0.30000967" + electron-to-chromium "^1.3.133" + node-releases "^1.1.19" buffer-from@^1.0.0: version "1.0.0" @@ -1743,22 +2519,24 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" -cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" +cacache@^11.3.2: + version "11.3.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" + bluebird "^3.5.3" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + lru-cache "^5.1.1" + mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" + ssri "^6.0.1" + unique-filename "^1.1.1" y18n "^4.0.0" cache-base@^1.0.1: @@ -1775,6 +2553,18 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1782,11 +2572,23 @@ caller-path@^0.1.0: dependencies: callsites "^0.2.0" +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + camel-case@3.0.x: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" @@ -1794,43 +2596,36 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" +camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000842" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000842.tgz#8a82c377b8b3d6f2594478e8431ff4fd303e160c" +caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000967: + version "1.0.30000969" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000969.tgz#7664f571f2072657bde70b00a1fc1ba41f1942a9" + integrity sha512-Kus0yxkoAJgVc0bax7S4gLSlFifCa7MnSZL9p9VuS/HIKEL4seaqh28KIQAAO50cD/rJ5CiJkJFapkdDAlhFxQ== -caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000835: - version "1.0.30000842" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000842.tgz#7a198e3181a207f4b5749b8f5a1817685bf3d7df" +case-sensitive-paths-webpack-plugin@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" + integrity sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g== -case-sensitive-paths-webpack-plugin@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192" +ccount@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" + integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" +chalk@2.4.2, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -chalk@1.1.3, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1840,7 +2635,7 @@ chalk@1.1.3, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: @@ -1848,24 +2643,43 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +change-emitter@^0.1.2: + version "0.1.6" + resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" + integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= + +character-entities-legacy@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" + integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== + +character-entities@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" + integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== + +character-reference-invalid@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" + integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +child-process-promise@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" + integrity sha1-RzChHvYQ+tRQuPIjx50x172tgHQ= dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" + cross-spawn "^4.0.2" + node-version "^1.0.0" + promise-polyfill "^6.0.1" chokidar@^2.0.2: version "2.0.3" @@ -1885,10 +2699,41 @@ chokidar@^2.0.2: optionalDependencies: fsevents "^1.1.2" +chokidar@^2.0.4: + version "2.1.6" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== + dependencies: + tslib "^1.9.0" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1901,12 +2746,6 @@ circular-json@^0.3.1: resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1920,11 +2759,17 @@ classnames@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" -clean-css@4.1.x: - version "4.1.11" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" +clean-css@4.2.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== dependencies: - source-map "0.5.x" + source-map "~0.6.0" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= cli-cursor@^2.1.0: version "2.1.0" @@ -1932,38 +2777,51 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-table3@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" +clipboard@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" + integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ== dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" q "^1.1.2" code-point-at@^1.0.0: @@ -1977,59 +2835,45 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0, color-convert@^1.9.0: +color-convert@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" dependencies: color-name "^1.1.1" -color-name@^1.0.0, color-name@^1.1.1: +color-name@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== -commander@2.15.x, commander@^2.15.0, commander@^2.9.0, commander@~2.15.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" +comma-separated-tokens@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" + integrity sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ== -commander@^2.11.0: +commander@2.17.x, commander@^2.11.0: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" +commander@^2.19.0, commander@^2.8.1: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== -common-tags@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.7.2.tgz#24d9768c63d253a56ecff93845b44b4df1d52771" - dependencies: - babel-runtime "^6.26.0" +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== commondir@^1.0.1: version "1.0.1" @@ -2052,6 +2896,14 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -2079,7 +2931,14 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2106,30 +2965,43 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" +core-js-compat@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.0.1.tgz#bff73ba31ca8687431b9c88f78d3362646fb76f0" + integrity sha512-2pC3e+Ht/1/gD7Sim/sqzvRplMiRnFQVlPpDVaHtY9l7zZP7knamr3VRD6NyGfHd84MrDC0tAM9ulNxYMW0T3g== + dependencies: + browserslist "^4.5.4" + core-js "3.0.1" + core-js-pure "3.0.1" + semver "^6.0.0" + +core-js-pure@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.1.tgz#37358fb0d024e6b86d443d794f4e37e949098cbe" + integrity sha512-mSxeQ6IghKW3MoyF4cz19GJ1cMm7761ON+WObSyLfTu/Jn3x7w4NwNFnrZxgl4MTSvYYepVLNuRtlB4loMwJ5g== + +core-js@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738" + integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew== + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.3: +core-js@^2.4.0: version "2.5.6" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" +core-js@^2.5.7, core-js@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - cosmiconfig@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" @@ -2139,6 +3011,16 @@ cosmiconfig@^4.0.0: parse-json "^4.0.0" require-from-string "^2.0.1" +cosmiconfig@^5.0.5, cosmiconfig@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -2167,23 +3049,23 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.6.2: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" +create-react-context@<=0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca" + integrity sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A== dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" + fbjs "^0.8.0" + gud "^1.0.0" -cross-spawn@5.1.0, cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" +create-react-context@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3" + integrity sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag== dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" + fbjs "^0.8.0" + gud "^1.0.0" -cross-spawn@^6.0.5: +cross-spawn@6.0.5, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2194,6 +3076,22 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2210,39 +3108,31 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-in-js-utils@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" - dependencies: - hyphenate-style-name "^1.0.2" - isobject "^3.0.1" - css-layout@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-layout/-/css-layout-1.1.1.tgz#ada5bb8c901e475d41043a88e034ade54d939392" -css-loader@^0.28.11: - version "0.28.11" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" - dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - cssnano "^3.10.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - object-assign "^4.1.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" +css-loader@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" + integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== + dependencies: + camelcase "^5.2.0" + icss-utils "^4.1.0" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.14" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.6" + postcss-modules-scope "^2.1.0" + postcss-modules-values "^2.0.0" postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" + schema-utils "^1.0.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^1.1.0: version "1.2.0" @@ -2253,69 +3143,62 @@ css-select@^1.1.0: domutils "1.5.1" nth-check "~1.0.1" -css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.28: + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" + integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w== + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-url-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" + integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w= css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" +css-what@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== -cssnano@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== dependencies: - clap "^1.0.9" - source-map "^0.5.3" + css-tree "1.0.0-alpha.29" -csstype@^2.2.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.2.tgz#4534308476ceede8fbe148b9b99f9baf1c80fa06" +csstype@^2.5.7: + version "2.6.4" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.4.tgz#d585a6062096e324e7187f80e04f92bd0f00e37f" + integrity sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg== cyclist@~0.2.2: version "0.2.2" @@ -2365,12 +3248,6 @@ d3-time@1: version "1.0.8" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz#dbd2d6007bf416fe67a76d17947b784bffea1e84" -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - damerau-levenshtein@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" @@ -2380,7 +3257,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -2392,6 +3269,13 @@ debug@^3.1.0: dependencies: ms "2.0.0" +debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + debug@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -2399,26 +3283,28 @@ debug@^4.1.0: dependencies: ms "^2.1.1" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - deep-extend@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +deep-object-diff@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" + integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== + define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -2426,6 +3312,13 @@ define-properties@^1.1.2: foreach "^2.0.5" object-keys "^1.0.8" +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -2445,9 +3338,10 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== delegates@^1.0.0: version "1.0.0" @@ -2472,12 +3366,6 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -2489,6 +3377,14 @@ detect-port-alt@1.1.6: address "^1.0.1" debug "^2.6.0" +detect-port@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -2497,6 +3393,14 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-glob@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2517,10 +3421,6 @@ dom-converter@~0.1: dependencies: utila "~0.3" -dom-helpers@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6" - dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -2563,15 +3463,37 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" -dotenv-webpack@^1.5.5: - version "1.5.5" - resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.5.5.tgz#3441094f04d304b6119e6b72524e62fb3252f5f2" +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: - dotenv "^5.0.1" + dom-serializer "0" + domelementtype "1" -dotenv@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" +dotenv-defaults@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-1.0.2.tgz#441cf5f067653fca4bbdce9dd3b803f6f84c585d" + integrity sha512-iXFvHtXl/hZPiFj++1hBg4lbKwGM+t/GlvELDnRtOFdjXyWP7mubkVr+eZGWG62kdsbulXAef6v/j6kiWc/xGA== + dependencies: + dotenv "^6.2.0" + +dotenv-expand@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" + integrity sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU= + +dotenv-webpack@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.7.0.tgz#4384d8c57ee6f405c296278c14a9f9167856d3a1" + integrity sha512-wwNtOBW/6gLQSkb8p43y0Wts970A3xtNiG/mpwj9MLUhtPCQG6i+/DSXXoNN7fbPCU/vQ7JjwGmgOeGZSSZnsw== + dependencies: + dotenv-defaults "^1.0.2" + +dotenv@^6.0.0, dotenv@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== duplexer@^0.1.1: version "0.1.1" @@ -2586,13 +3508,29 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.45: - version "1.3.47" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz#764e887ca9104d01a0ac8eabee7dfc0e2ce14104" +ejs@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" + integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== + +electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.133: + version "1.3.134" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.134.tgz#550222bddac43c6bd6c445c3543a0fe8a615021d" + integrity sha512-C3uK2SrtWg/gSWaluLHWSHjyebVZCe4ZC0NVgTAoTq8tCR9FareRK5T7R7AS/nPZShtlEcjVMX1kQ8wi4nU68w== elliptic@^6.0.0: version "6.4.0" @@ -2606,7 +3544,7 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emoji-regex@^7.0.2: +emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== @@ -2615,6 +3553,15 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" +emotion-theming@^10.0.7: + version "10.0.10" + resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.10.tgz#efe8751119751bdc70fdc1795fe4cde0fb0cf14c" + integrity sha512-E4SQ3Y91avxxydDgubi/po/GaC5MM1XHm8kcClKg1PA/TeOye0PiLBzAzlgt9dBzDRV9+qHDunsayPvzVYIYng== + dependencies: + "@emotion/weak-memoize" "0.2.2" + hoist-non-react-statics "^3.3.0" + object-assign "^4.1.1" + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2631,14 +3578,14 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" + tapable "^1.0.0" entities@~1.1.1: version "1.1.1" @@ -2666,7 +3613,7 @@ es-abstract@^1.10.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, is-callable "^1.1.3" is-regex "^1.0.4" -es-abstract@^1.11.0: +es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -2695,73 +3642,15 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.42" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es5-shim@^4.5.10: - version "4.5.10" - resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.10.tgz#b7e17ef4df2a145b821f1497b50c25cf94026205" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-shim@^0.35.3: - version "0.35.3" - resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-templates@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - dependencies: - recast "~0.11.12" - through "~2.3.6" +es5-shim@^4.5.13: + version "4.5.13" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.13.tgz#5d88062de049f8969f83783f4a4884395f21d28b" + integrity sha512-xi6hh6gsvDE0MaW4Vp1lgNEBpVcCXRWfPXj5egDvtgLz4L9MEvNwYEMdJH+JJinWkwa8c3c3o5HduV7dB/e1Hw== -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" +es6-shim@^0.35.5: + version "0.35.5" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab" + integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg== escape-html@~1.0.3: version "1.0.3" @@ -2771,15 +3660,6 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-config-airbnb-base@^13.1.0: version "13.1.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" @@ -2956,18 +3836,10 @@ espree@^4.0.0: acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - esprima@^4.0.0, esprima@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" -esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" @@ -2985,7 +3857,7 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -esutils@^2.0.2: +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2993,26 +3865,21 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -events@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.0.0.tgz#cbbb56bf3ab1ac18d71c43bb32c86255062769f2" - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== dependencies: - original ">=0.0.5" + original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -3033,16 +3900,10 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -exenv@^1.2.0, exenv@^1.2.1: +exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -3055,18 +3916,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - dependencies: - homedir-polyfill "^1.0.1" - express@^4.16.3: version "4.16.3" resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" @@ -3115,7 +3964,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -external-editor@^2.0.4, external-editor@^2.1.0: +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: @@ -3123,11 +3977,14 @@ external-editor@^2.0.4, external-editor@^2.1.0: iconv-lite "^0.4.17" tmp "^0.0.33" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" +external-editor@^3.0.0, external-editor@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: - is-extglob "^1.0.0" + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" extglob@^2.0.4: version "2.0.4" @@ -3142,10 +3999,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" @@ -3155,6 +4008,18 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== +fast-glob@^2.0.2: + version "2.2.6" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" + integrity sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -3163,21 +4028,34 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" -fast-memoize@^2.2.7: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.3.2.tgz#f6b9eb8e06a754029cca25b4cd3945f2f6242c90" - -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" +fault@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.3.tgz#4da88cf979b6b792b4e13c7ec836767725170b7e" + integrity sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA== + dependencies: + format "^0.2.2" -faye-websocket@~0.11.0: +faye-websocket@~0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.9: +fbjs@^0.8.0, fbjs@^0.8.1: + version "0.8.17" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +fbjs@^0.8.16: version "0.8.16" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" dependencies: @@ -3189,6 +4067,11 @@ fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.9: setimmediate "^1.0.5" ua-parser-js "^0.7.9" +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3203,30 +4086,35 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-loader@^1.1.11: +file-loader@1.1.11: version "1.1.11" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" + integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg== dependencies: loader-utils "^1.0.2" schema-utils "^0.4.5" -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -filesize@3.5.11: - version "3.5.11" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" +file-system-cache@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" + integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08= dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" + bluebird "^3.3.5" + fs-extra "^0.30.0" + ramda "^0.21.0" + +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== fill-range@^4.0.0: version "4.0.0" @@ -3249,13 +4137,26 @@ finalhandler@1.1.1: statuses "~1.4.0" unpipe "~1.0.0" -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" @@ -3273,10 +4174,6 @@ flat-cache@^1.2.1: rimraf "~2.6.2" write "^0.2.1" -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - flush-write-stream@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" @@ -3284,13 +4181,24 @@ flush-write-stream@^1.0.0: inherits "^2.0.1" readable-stream "^2.0.4" +focus-lock@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.3.tgz#ef0e82ebac0023f841039d60bf329725d6438028" + integrity sha512-EU6ePgEauhWrzJEN5RtG1d1ayrWXhEnfzTjnieHj+jG9tNHDEhKTAnCn1TN3gs9h6XWCDH6cpeX1VXY/lzLwZg== + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.4: +for-own@^0.1.3: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= dependencies: for-in "^1.0.1" @@ -3298,6 +4206,11 @@ foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" +format@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -3319,15 +4232,36 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" dependencies: minipass "^2.2.1" -fs-readdir-recursive@^1.0.0: +fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs-write-stream-atomic@^1.0.8: version "1.0.10" @@ -3342,13 +4276,21 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.1.2: +fsevents@^1.1.2: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" dependencies: nan "^2.9.2" node-pre-gyp "^0.10.0" +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -3365,9 +4307,10 @@ functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" -fuse.js@^3.0.1, fuse.js@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.2.0.tgz#f0448e8069855bf2a3e683cdc1d320e7e2a07ef4" +fuzzy-search@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fuzzy-search/-/fuzzy-search-3.0.1.tgz#14a4964508a9607d6e9a88818e7ff634108260b6" + integrity sha512-rjUvzdsMlOyarm0oD5k6zVQwgvt4Tb5Xe3YdIGU+Vogw54+ueAGPUTMU2B9jfPQEie5cD11i/S9J9d+MNBSQ3Q== gauge@~2.7.3: version "2.7.4" @@ -3382,10 +4325,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -3399,42 +4338,6 @@ get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" -glamor@^2.20.40: - version "2.20.40" - resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05" - dependencies: - fbjs "^0.8.12" - inline-style-prefixer "^3.0.6" - object-assign "^4.1.1" - prop-types "^15.5.10" - through "^2.3.8" - -glamorous@^4.12.1: - version "4.13.0" - resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.13.0.tgz#4ac5cb05633aa49a0396d409f665dd9b614f1b5a" - dependencies: - brcast "^3.0.0" - csstype "^2.2.0" - fast-memoize "^2.2.7" - html-tag-names "^1.1.1" - is-function "^1.0.1" - is-plain-object "^2.0.4" - react-html-attributes "^1.4.2" - svg-tag-names "^1.1.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -3442,6 +4345,11 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + glob@^7.0.0, glob@^7.0.5, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -3465,23 +4373,21 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@1.0.0, global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" + global-prefix "^3.0.0" -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" global@^4.3.2: version "4.3.2" @@ -3499,19 +4405,56 @@ globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +globalthis@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" + integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + object-keys "^1.0.12" + +globby@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== + dependencies: + array-union "^1.0.1" + dir-glob "2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: +graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -gzip-size@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + +gzip-size@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" + integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA== dependencies: duplexer "^0.1.1" + pify "^3.0.0" has-ansi@^2.0.0: version "2.0.0" @@ -3519,14 +4462,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3594,9 +4529,53 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -he@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" +hast-util-from-parse5@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.0.tgz#a505a05766e0f96e389bfb0b1dd809eeefcef47b" + integrity sha512-A7ev5OseS/J15214cvDdcI62uwovJO2PB60Xhnq7kaxvvQRFDEccuqbkrFXU03GPBGopdPqlpQBRqIcDS/Fjbg== + dependencies: + ccount "^1.0.3" + hastscript "^5.0.0" + property-information "^5.0.0" + web-namespaces "^1.1.2" + xtend "^4.0.1" + +hast-util-parse-selector@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.1.tgz#4ddbae1ae12c124e3eb91b581d2556441766f0ab" + integrity sha512-Xyh0v+nHmQvrOqop2Jqd8gOdyQtE8sIP9IQf7mlVDqp924W4w/8Liuguk2L2qei9hARnQSG2m+wAOCxM7npJVw== + +hastscript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.0.0.tgz#fee10382c1bc4ba3f1be311521d368c047d2c43a" + integrity sha512-xJtuJ8D42Xtq5yJrnDg/KAIxl2cXBXKoiIJwmWX9XMf8113qHTGl/Bf7jEsxmENJ4w6q4Tfl8s/Y6mEZo8x8qw== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.2.0" + property-information "^5.0.1" + space-separated-tokens "^1.0.0" + +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +highlight.js@~9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" + integrity sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4= + +history@^4.7.2: + version "4.9.0" + resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" + integrity sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^2.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^0.4.0" hmac-drbg@^1.0.0: version "1.0.1" @@ -3606,75 +4585,50 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" +hoist-non-react-statics@^2.3.1: + version "2.5.5" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== -homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" +hoist-non-react-statics@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" + integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== dependencies: - parse-passwd "^1.0.0" + react-is "^16.7.0" hosted-git-info@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -html-element-attributes@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-1.3.1.tgz#9fa6a2e37e6b61790a303e87ddbbb9746e8c035f" - html-entities@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" -html-loader@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" - dependencies: - es6-templates "^0.2.3" - fastparse "^1.1.1" - html-minifier "^3.5.8" - loader-utils "^1.1.0" - object-assign "^4.1.1" - -html-minifier@^3.2.3, html-minifier@^3.5.8: - version "3.5.15" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.15.tgz#f869848d4543cbfd84f26d5514a2a87cbf9a05e0" +html-minifier@^3.5.20: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== dependencies: camel-case "3.0.x" - clean-css "4.1.x" - commander "2.15.x" - he "1.1.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" param-case "2.1.x" relateurl "0.2.x" - uglify-js "3.3.x" + uglify-js "3.4.x" -html-tag-names@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.3.tgz#f81f75e59d626cb8a958a19e58f90c1d69707b82" - -html-webpack-plugin@^2.30.1: - version "2.30.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" +html-webpack-plugin@^4.0.0-beta.2: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz#2c53083c1151bfec20479b1f8aaf0039e77b5513" + integrity sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ== dependencies: - bluebird "^3.4.7" - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - toposort "^1.0.0" + html-minifier "^3.5.20" + loader-utils "^1.1.0" + lodash "^4.17.11" + pretty-error "^2.1.1" + tapable "^1.1.0" + util.promisify "1.0.0" htmlparser2@~3.3.0: version "3.3.0" @@ -3711,10 +4665,6 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -hyphenate-style-name@^1.0.1, hyphenate-style-name@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" - iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" @@ -3725,15 +4675,23 @@ iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" +icss-utils@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.0.tgz#339dbbffb9f8729a243b701e1c29d4cc58c52f0e" + integrity sha512-3DEun4VOeMvSczifM3F2cKQrDQ5Pj6WKhkOq6HD4QTnDUAq8MQRxy5TX6Sy1iY6WPBe4gQ3p5vTECjbIkglkkQ== dependencies: - postcss "^6.0.1" + postcss "^7.0.14" ieee754@^1.1.4: version "1.1.11" @@ -3749,14 +4707,47 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + ignore@^4.0.2: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -immutable@^3.8.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" +immer@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +immer@^1.12.0: + version "1.12.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.12.1.tgz#40c6e5b292c00560836c2993bda3a24379d466f5" + integrity sha512-3fmKM6ovaqDt0CdC9daXpNi5x/YCYS3i4cwLdTVkhJdk5jrDXoPs7lCm3IqM3yhfSnz4tjjxbRG2CziQ7m8ztg== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" imurmurhash@^0.1.4: version "0.1.4" @@ -3785,41 +4776,27 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inline-style-prefixer@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" - dependencies: - bowser "^1.0.0" - hyphenate-style-name "^1.0.1" - -inline-style-prefixer@^3.0.6: - version "3.0.8" - resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz#8551b8e5b4d573244e66a34b04f7d32076a2b534" - dependencies: - bowser "^1.7.3" - css-in-js-utils "^2.0.0" - -inquirer@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" +inquirer@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" + integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.0.4" + external-editor "^3.0.0" figures "^2.0.0" - lodash "^4.3.0" + lodash "^4.17.10" mute-stream "0.0.7" run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" + rxjs "^6.1.0" string-width "^2.1.0" - strip-ansi "^4.0.0" + strip-ansi "^5.0.0" through "^2.3.6" inquirer@^5.2.0: @@ -3841,28 +4818,49 @@ inquirer@^5.2.0: strip-ansi "^4.0.0" through "^2.3.6" +inquirer@^6.2.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.2.2, invariant@^2.2.4: +interpret@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -3875,6 +4873,19 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-alphabetical@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" + integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== + +is-alphanumerical@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" + integrity sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3885,10 +4896,15 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-buffer@^1.1.5: +is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" +is-buffer@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" @@ -3920,6 +4936,11 @@ is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" +is-decimal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" + integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -3944,40 +4965,20 @@ is-dom@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.0.9.tgz#483832d52972073de12b9fe3f60320870da8370d" -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" -is-extendable@^1.0.1: +is-extendable@^1.0.0, is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -3992,12 +4993,6 @@ is-function@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -4010,11 +5005,10 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" +is-hexadecimal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" + integrity sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA== is-number@^3.0.0: version "3.0.0" @@ -4032,9 +5026,10 @@ is-odd@^2.0.0: dependencies: is-number "^4.0.0" -is-plain-obj@^1.0.0: +is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" @@ -4042,14 +5037,6 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -4065,20 +5052,15 @@ is-resolvable@^1.1.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-root@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" +is-root@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.0.0.tgz#838d1e82318144e5a6f77819d90207645acc7019" + integrity sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg== is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" @@ -4090,7 +5072,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -4127,9 +5109,21 @@ isomorphic-fetch@^2.1.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -js-base64@^2.1.9: - version "2.4.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92" +js-beautify@^1.8.9: + version "1.10.0" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.0.tgz#9753a13c858d96828658cd18ae3ca0e5783ea672" + integrity sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~0.5.1" + nopt "~4.0.1" + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" @@ -4140,7 +5134,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.11.0: +js-yaml@^3.11.0, js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -4148,24 +5142,13 @@ js-yaml@^3.11.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.4.3, js-yaml@^3.9.0: +js-yaml@^3.9.0: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" @@ -4174,13 +5157,10 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-loader@^0.5.4, json-loader@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - -json-parse-better-errors@^1.0.1: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.3.0: version "0.3.1" @@ -4195,18 +5175,42 @@ json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" -json5@^0.5.0, json5@^0.5.1: +json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" @@ -4218,9 +5222,17 @@ jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: dependencies: array-includes "^3.0.3" -keycode@^2.1.9: +keycode@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04" + integrity sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ= + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -4242,15 +5254,32 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" +lazy-universal-dotenv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-2.0.0.tgz#e015ad9f77be9ef811956d53ea9519b1c0ab0214" + integrity sha512-1Wi0zgZMfRLaRAK21g3odYuU+HE1d85Loe2tb44YhcNwIzhmD49mTPR9aKckpB9Q9Q9mA+hUMLI2xlkcCAe3yw== dependencies: - invert-kv "^1.0.0" + "@babel/runtime" "^7.0.0" + app-root-dir "^1.0.2" + core-js "^2.5.7" + dotenv "^6.0.0" + dotenv-expand "^4.2.0" levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -4272,22 +5301,22 @@ loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" +loader-utils@1.1.0, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" - object-assign "^4.0.1" -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" +loader-utils@1.2.3, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: - big.js "^3.1.3" + big.js "^5.2.2" emojis-list "^2.0.0" - json5 "^0.5.0" + json5 "^1.0.1" locate-path@^2.0.0: version "2.0.0" @@ -4296,49 +5325,41 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.2.1: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.10.tgz#62cd7104cdf5dd87f235a837f0ede0e8e5117e05" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" +lodash-es@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" + integrity sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q== lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" -lodash.keys@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" +lodash.mergewith@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== lodash.pick@^4.4.0: version "4.4.0" @@ -4361,30 +5382,22 @@ lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash@^4.14.0, lodash@^4.17.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.14.0, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" -lodash@^4.17.11: +lodash@^4.17.10, lodash@^4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" -loose-envify@^1.4.0: +loose-envify@^1.2.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4395,32 +5408,59 @@ lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lru-cache@^4.0.1, lru-cache@^4.1.1: +lowlight@~1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.9.2.tgz#0b9127e3cec2c3021b7795dd81005c709a42fdd1" + integrity sha512-Ek18ElVCf/wF/jEm1b92gTnigh94CtBNWiZ2ad+vTgW7cTmQxUY3I98BjHK68gZAJEWmybGBZgx9qv3QxLQB/Q== + dependencies: + fault "^1.0.2" + highlight.js "~9.12.0" + +lru-cache@^4.0.1: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: - pify "^3.0.0" + yallist "^3.0.2" -make-error@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-error@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" -map-or-similar@^1.1.3: +map-or-similar@^1.1.3, map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" @@ -4430,24 +5470,13 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-loader@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-2.0.2.tgz#1cdcf11307658cd611046d7db34c2fe80542af7c" +markdown-to-jsx@^6.9.1: + version "6.9.4" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.9.4.tgz#ed1e6925e643f7a0ee2fed90f28d16b4402aad09" + integrity sha512-Fvx2ZhiknGmcLsWVjIq6MmiN9gcCot8w+jzwN2mLXZcQsJGRN3Zes5Sp5M9YNIzUy/sDyuOTjimFdtAcvvmAPQ== dependencies: - loader-utils "^1.1.0" - marked "^0.3.9" - -marked@^0.3.9: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" - -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + prop-types "^15.6.2" + unquote "^1.1.0" md5.js@^1.3.4: version "1.3.4" @@ -4456,52 +5485,55 @@ md5.js@^1.3.4: hash-base "^3.0.0" inherits "^2.0.1" +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" +memoizerific@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" + integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo= dependencies: - mimic-fn "^1.0.0" + map-or-similar "^1.5.0" -memory-fs@^0.4.0, memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: errno "^0.1.3" readable-stream "^2.0.1" +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge2@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -4538,9 +5570,10 @@ mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.4.1, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" +mime@^2.0.3, mime@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.3.tgz#229687331e86f68924e6cb59e1cdd937f18275fe" + integrity sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw== mimic-fn@^1.0.0: version "1.2.0" @@ -4552,6 +5585,15 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" +mini-css-extract-plugin@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" + integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4560,13 +5602,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -4593,9 +5629,10 @@ minizlib@^1.1.0: dependencies: minipass "^2.2.1" -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -4603,7 +5640,7 @@ mississippi@^2.0.0: flush-write-stream "^1.0.0" from2 "^2.1.0" parallel-transform "^1.1.0" - pump "^2.0.1" + pump "^3.0.0" pumpify "^1.3.3" stream-each "^1.1.0" through2 "^2.0.0" @@ -4615,6 +5652,14 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -4650,6 +5695,11 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" +nan@^2.12.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== + nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" @@ -4683,6 +5733,15 @@ needle@^2.2.0: iconv-lite "^0.4.4" sax "^1.2.4" +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -4691,10 +5750,6 @@ neo-async@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -4719,6 +5774,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.2.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" @@ -4762,7 +5822,35 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -nopt@^4.0.1: +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.19, node-releases@^1.1.3: + version "1.1.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.19.tgz#c492d1e381fea0350b338b646c27867e88e91b3d" + integrity sha512-SH/B4WwovHbulIALsQllAVwqZZD1kPmKCqrhGfR29dXjLAVZMHvBjD3S6nL9D/J9QkmZ1R92/0wCMDKXUUvyyA== + dependencies: + semver "^5.3.0" + +node-version@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" + integrity sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ== + +nopt@^4.0.1, nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: @@ -4778,25 +5866,21 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - npm-bundled@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" @@ -4823,6 +5907,13 @@ npmlog@^4.0.2, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" @@ -4883,7 +5974,17 @@ object.entries@^1.0.4: function-bind "^1.1.0" has "^1.0.1" -object.fromentries@^2.0.0: +object.entries@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" + integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +object.fromentries@^2.0.0, "object.fromentries@^2.0.0 || ^1.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== @@ -4900,12 +6001,12 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" +object.omit@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af" + integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" + is-extendable "^1.0.0" object.pick@^1.3.0: version "1.3.0" @@ -4913,14 +6014,15 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" on-finished@~2.3.0: version "2.3.0" @@ -4940,9 +6042,17 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" +opn@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" + integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw== + dependencies: + is-wsl "^1.1.0" + +opn@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" @@ -4957,29 +6067,22 @@ optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -original@>=0.0.5: - version "1.0.1" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190" +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: - url-parse "~1.4.0" + url-parse "^1.4.3" os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4990,13 +6093,14 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" +output-file-sync@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0" + integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ== dependencies: - graceful-fs "^4.1.4" + graceful-fs "^4.1.11" + is-plain-obj "^1.1.0" mkdirp "^0.5.1" - object-assign "^4.1.0" p-finally@^1.0.0: version "1.0.0" @@ -5008,16 +6112,35 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + pako@^0.2.5: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -5050,14 +6173,17 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" +parse-entities@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" parse-json@^2.2.0: version "2.2.0" @@ -5072,9 +6198,10 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" +parse5@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== parseurl@~1.3.2: version "1.3.2" @@ -5096,7 +6223,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -5127,6 +6254,13 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + pbkdf2@^3.0.3: version "3.0.16" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" @@ -5145,317 +6279,140 @@ pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: find-up "^2.1.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" + find-up "^3.0.0" -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" +pkg-up@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" + find-up "^2.1.0" -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" +polished@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/polished/-/polished-2.3.3.tgz#bdbaba962ba8271b0e11aa287f2befd4c87be99a" + integrity sha512-59V4fDbdxtH4I1m9TWxFsoGJbC8nnOpUYo5uFmvMfKp9Qh+6suo4VMUle1TGIIUZIGxfkW+Rs485zPk0wcwR2Q== dependencies: - postcss "^5.0.4" + "@babel/runtime" "^7.2.0" -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" +popper.js@^1.14.4: + version "1.15.0" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.15.0.tgz#5560b99bbad7647e9faa475c6b8056621f5a4ff2" + integrity sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA== -postcss-discard-overridden@^0.1.1: +posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-flexbugs-fixes@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz#0783cc7212850ef707f97f8bc8b6fb624e00c75d" - dependencies: - postcss "^6.0.1" - -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" +postcss-flexbugs-fixes@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" + integrity sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA== dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" + postcss "^7.0.0" -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" +postcss-load-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" + integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ== dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" + cosmiconfig "^4.0.0" + import-cwd "^2.0.0" -postcss-loader@^2.1.2: - version "2.1.5" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.5.tgz#3c6336ee641c8f95138172533ae461a83595e788" +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== dependencies: loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.4.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" -postcss-message-helpers@^2.0.0: +postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: - postcss "^6.0.1" + postcss "^7.0.5" -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" +postcss-modules-local-by-default@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" + integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^3.3.1" -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" +postcss-modules-scope@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" + integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== dependencies: icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - dependencies: - postcss "^5.0.4" + postcss "^7.0.6" -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" +postcss-selector-parser@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== dependencies: - flatten "^1.0.2" + cssesc "^3.0.0" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" +postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.17: - version "6.0.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz#48f64f1b4b558cb8b52c88987724359acb010da2" + integrity sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA== dependencies: - chalk "^2.4.1" + chalk "^2.4.2" source-map "^0.6.1" - supports-color "^5.4.0" + supports-color "^6.1.0" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -5468,14 +6425,27 @@ prettier@^1.17.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.1.tgz#ed64b4e93e370cb8a25b9ef7fef3e4fd1c0995db" integrity sha512-TzGRNvuUSmPgwivDqkZ9tM/qTGW9hqDKWOE9YHiyQdixlKbv7kvEqsmDPrcHJTKwthU774TQwZXVtaQ/mMsvjg== -pretty-error@^2.0.2: +pretty-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= dependencies: renderkid "^2.0.1" utila "~0.4" -private@^0.1.6, private@^0.1.8, private@~0.1.5: +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +prismjs@^1.8.4, prismjs@~1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.16.0.tgz#406eb2c8aacb0f5f0f1167930cb83835d10a4308" + integrity sha512-OA4MKxjFZHSvZcisLGe14THYsug/nF6O1f0pAJc0KN0wTyAcLqmsbE+lTGKSpyh+9pEW57+k6pg2AfYR+coyHA== + optionalDependencies: + clipboard "^2.0.0" + +private@^0.1.6, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -5499,6 +6469,20 @@ promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" +promise-polyfill@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" + integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc= + +promise.allsettled@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.1.tgz#afe4bfcc13b26e2263a97a7fbbb19b8ca6eb619c" + integrity sha512-3ST7RS7TY3TYLOIe+OACZFvcWVe1osbgz2x07nTb446pa3t4GUZWidMDzQ4zf9jC2l6mRa1/3X81icFYbi+D/g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.13.0" + function-bind "^1.1.1" + promise.prototype.finally@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz#66f161b1643636e50e7cf201dc1b84a857f3864e" @@ -5513,7 +6497,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0, prop-types@^15.6.1: +prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1: version "15.6.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" dependencies: @@ -5530,6 +6514,18 @@ prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +property-information@^5.0.0, property-information@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.1.0.tgz#e4755eee5319f03f7f6f5a9bc1a6a7fea6609e2c" + integrity sha512-tODH6R3+SwTkAQckSp2S9xyYX8dEKYkeXw+4TmJzTxnNzd6mQPu1OD4f9zPrvw/Rm4wpPgI+Zp63mNSGNzUgHg== + dependencies: + xtend "^4.0.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + proxy-addr@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" @@ -5555,13 +6551,21 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: end-of-stream "^1.1.0" once "^1.3.1" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + pumpify@^1.3.3: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" @@ -5590,16 +6594,10 @@ qs@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" -qs@^6.5.1: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" +qs@^6.5.2: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== querystring-es3@^0.2.0: version "0.2.1" @@ -5609,26 +6607,15 @@ querystring@0.2.0, querystring@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" -querystringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" - -radium@^0.19.0: - version "0.19.6" - resolved "https://registry.yarnpkg.com/radium/-/radium-0.19.6.tgz#b86721d08dbd303b061a4ae2ebb06cc6e335ae72" - dependencies: - array-find "^1.0.0" - exenv "^1.2.1" - inline-style-prefixer "^2.0.5" - prop-types "^15.5.8" +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== -randomatic@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" +ramda@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" + integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" @@ -5643,7 +6630,12 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@~1.2.0: +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" @@ -5656,6 +6648,14 @@ raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" +raw-loader@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-1.0.0.tgz#3f9889e73dadbda9a424bce79809b4133ad46405" + integrity sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + rc@^1.1.7: version "1.2.7" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" @@ -5665,42 +6665,68 @@ rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dev-utils@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.1.tgz#1f396e161fe44b595db1b186a40067289bf06613" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-clientside-effect@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.0.tgz#db823695f75e9616a5e4dd6d908e5ea627fb2516" + integrity sha512-cVIsGG7SNHsQsCP4+fw7KFUB0HiYiU8hbvL640XaLCbZ31aK8/lj0qOKJ2K+xRjuQz/IM4Q4qclI0aEqTtcXtA== dependencies: + "@babel/runtime" "^7.0.0" + shallowequal "^1.1.0" + +react-dev-utils@^7.0.0, react-dev-utils@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-7.0.5.tgz#cb95375d01ae71ca27b3c7616006ef7a77d14e8e" + integrity sha512-zJnqqb0x6gd63E3xoz5pXAxBPNaW75Hyz7GgQp0qPhMroBCRQtRvG67AoTZZY1z4yCYVJQZAfQJFdnea0Ujbug== + dependencies: + "@babel/code-frame" "7.0.0" address "1.0.3" - babel-code-frame "6.26.0" - chalk "1.1.3" - cross-spawn "5.1.0" + browserslist "4.4.1" + chalk "2.4.2" + cross-spawn "6.0.5" detect-port-alt "1.1.6" escape-string-regexp "1.0.5" - filesize "3.5.11" - global-modules "1.0.0" - gzip-size "3.0.0" - inquirer "3.3.0" - is-root "1.0.0" - opn "5.2.0" - react-error-overlay "^4.0.0" - recursive-readdir "2.2.1" + filesize "3.6.1" + find-up "3.0.0" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.0.0" + immer "1.10.0" + inquirer "6.2.1" + is-root "2.0.0" + loader-utils "1.2.3" + opn "5.4.0" + pkg-up "2.0.0" + react-error-overlay "^5.1.4" + recursive-readdir "2.2.2" shell-quote "1.6.1" - sockjs-client "1.1.4" - strip-ansi "3.0.1" + sockjs-client "1.3.0" + strip-ansi "5.0.0" text-table "0.2.0" -react-docgen@^3.0.0-beta11: - version "3.0.0-beta9" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-3.0.0-beta9.tgz#6be987e640786ecb10ce2dd22157a022c8285e95" +react-docgen@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-3.0.0.tgz#79c6e1b1870480c3c2bc1a65bede0577a11c38cd" + integrity sha512-2UseoLWabFNXuk1Foz4VDPSIAkxz+1Hmmq4qijzUmYHDq0ZSloKDLXtGLpQRcAi/M76hRpPtH1rV4BI5jNAOnQ== dependencies: + "@babel/parser" "^7.1.3" + "@babel/runtime" "^7.0.0" async "^2.1.4" - babel-runtime "^6.9.2" - babylon "7.0.0-beta.31" - commander "^2.9.0" + commander "^2.19.0" doctrine "^2.0.0" node-dir "^0.1.10" - recast "^0.12.6" + recast "^0.16.0" -react-dom@^16.8.6: +react-dom@^16.8.1, react-dom@^16.8.6: version "16.8.6" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== @@ -5710,60 +6736,99 @@ react-dom@^16.8.6: prop-types "^15.6.2" scheduler "^0.13.6" -react-error-overlay@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.0.tgz#d198408a85b4070937a98667f500c832f86bd5d4" - -react-fuzzy@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.2.tgz#fc13bf6f0b785e5fefe908724efebec4935eaefe" +react-draggable@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.3.0.tgz#2ed7ea3f92e7d742d747f9e6324860606cd4d997" + integrity sha512-U7/jD0tAW4T0S7DCPK0kkKLyL0z61sC/eqU+NUfDjnq+JtBKaYKDHpsK2wazctiA4alEzCXUnzkREoxppOySVw== dependencies: - babel-runtime "^6.23.0" classnames "^2.2.5" - fuse.js "^3.0.1" - prop-types "^15.5.9" + prop-types "^15.6.0" -react-html-attributes@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/react-html-attributes/-/react-html-attributes-1.4.2.tgz#0d2ccf134fc79b2d3543837dc1591d32b7b903f9" +react-error-overlay@^5.1.4: + version "5.1.6" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.6.tgz#0cd73407c5d141f9638ae1e0c63e7b2bf7e9929d" + integrity sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q== + +react-fast-compare@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-focus-lock@^1.17.7: + version "1.19.1" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-1.19.1.tgz#2f3429793edaefe2d077121f973ce5a3c7a0651a" + integrity sha512-TPpfiack1/nF4uttySfpxPk4rGZTLXlaZl7ncZg/ELAk24Iq2B1UUaUioID8H8dneUXqznT83JTNDHDj+kwryw== dependencies: - html-element-attributes "^1.0.0" + "@babel/runtime" "^7.0.0" + focus-lock "^0.6.3" + prop-types "^15.6.2" + react-clientside-effect "^1.2.0" -react-icon-base@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-icon-base/-/react-icon-base-2.1.0.tgz#a196e33fdf1e7aaa1fda3aefbb68bdad9e82a79d" +react-helmet-async@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-0.2.0.tgz#d20d8725c1dcdcc95d54e281a1040af47c3abffa" + integrity sha512-xo8oN+SUt0YkgQscKPTqhZZIOn5ni18FMv/H3KuBDt5+yAXTGktPEf3HU2EyufbHAF0TQ8qI+JrA3ILnjVfqNA== + dependencies: + invariant "^2.2.4" + prop-types "^15.6.1" + react-fast-compare "^2.0.2" + shallowequal "^1.0.2" -react-icons@^2.2.7: - version "2.2.7" - resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-2.2.7.tgz#d7860826b258557510dac10680abea5ca23cf650" +react-hotkeys@2.0.0-pre4: + version "2.0.0-pre4" + resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-2.0.0-pre4.tgz#a1c248a51bdba4282c36bf3204f80d58abc73333" + integrity sha512-oa+UncSWyOwMK3GExt+oELXaR7T3ItgcMolsupQFdKvwkEhVAluJd5rYczsRSQpQlVkdNoHG46De2NUeuS+88Q== dependencies: - react-icon-base "2.1.0" + prop-types "^15.6.1" -react-inspector@^2.2.2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.0.tgz#fc9c1d38ab687fc0d190dcaf133ae40158968fc8" +react-inspector@^2.3.0, react-inspector@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c" + integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q== dependencies: babel-runtime "^6.26.0" is-dom "^1.0.9" + prop-types "^15.6.1" -react-is@^16.8.1: +react-is@^16.7.0, react-is@^16.8.1: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== -react-lifecycles-compat@^3.0.0: +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" -react-modal@^3.3.2: - version "3.4.4" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.4.4.tgz#e9dde25e9e85a59c76831f2a2b468712a546aded" +react-modal@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.8.1.tgz#7300f94a6f92a2e17994de0be6ccb61734464c9e" + integrity sha512-aLKeZM9pgXpIKVwopRHMuvqKWiBajkqisDA8UzocdCF6S4fyKVfLWmZR5G1Q0ODBxxxxf2XIwiCP8G/11GJAuw== dependencies: exenv "^1.2.0" prop-types "^15.5.10" react-lifecycles-compat "^3.0.0" warning "^3.0.0" +react-popper-tooltip@^2.8.0: + version "2.8.2" + resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-2.8.2.tgz#4803446362a815b1406e39526ddeb299ed2fb414" + integrity sha512-k0T5y42Lhru4+7/YqB20YoHtlemlKE/6hT8nWtQzvoyBw/eKCahK6+udW4iZ6KwRYM/vocih14d0OPkMccqhWA== + dependencies: + "@babel/runtime" "^7.4.3" + react-popper "^1.3.3" + +react-popper@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.3.tgz#2c6cef7515a991256b4f0536cd4bdcb58a7b6af6" + integrity sha512-ynMZBPkXONPc5K4P5yFWgZx5JGAUIP3pGGLNs58cfAPgK67olx7fmLp+AdpZ0+GoQ+ieFDa/z4cdV6u7sioH6w== + dependencies: + "@babel/runtime" "^7.1.2" + create-react-context "<=0.2.2" + popper.js "^1.14.4" + prop-types "^15.6.1" + typed-styles "^0.0.7" + warning "^4.0.2" + react-reconciler@^0.20.4: version "0.20.4" resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.20.4.tgz#3da6a95841592f849cb4edd3d38676c86fd920b2" @@ -5774,40 +6839,36 @@ react-reconciler@^0.20.4: prop-types "^15.6.2" scheduler "^0.13.6" -react-split-pane@^0.1.77: - version "0.1.77" - resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.77.tgz#f0c8cd18d076bbac900248dcf6dbcec02d5340db" - dependencies: - inline-style-prefixer "^3.0.6" - prop-types "^15.5.10" - react-style-proptype "^3.0.0" - -react-style-proptype@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.2.1.tgz#7cfeb9b87ec7ab9dcbde9715170ed10c11fb86aa" +react-resize-detector@^3.2.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-3.4.0.tgz#2ccd399958a0efe9b7c52c5db5a13d87e47cd585" + integrity sha512-T96I8Iqa1hGWyooeFA2Sl6FdPoMhXWINfEKg2/EJLxhP37+/94VNuyuyz9CRqpmApD83IWRR+lbB3r0ADMoKJg== dependencies: - prop-types "^15.5.4" + lodash "^4.17.11" + lodash-es "^4.17.11" + prop-types "^15.6.2" + resize-observer-polyfill "^1.5.1" -react-transition-group@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.3.1.tgz#31d611b33e143a5e0f2d94c348e026a0f3b474b6" +react-syntax-highlighter@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-8.1.0.tgz#59103ff17a828a27ed7c8f035ae2558f09b6b78c" + integrity sha512-G2bkZxmF3VOa4atEdXIDSfwwCqjw6ZQX5znfTaHcErA1WqHIS0o6DaSCDKFPVaOMXQEB9Hf1UySYQvuJmV8CXg== dependencies: - dom-helpers "^3.3.1" - loose-envify "^1.3.1" - prop-types "^15.6.1" + babel-runtime "^6.18.0" + highlight.js "~9.12.0" + lowlight "~1.9.1" + prismjs "^1.8.4" + refractor "^2.4.1" -react-treebeard@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-treebeard/-/react-treebeard-2.1.0.tgz#fbd5cf51089b6f09a9b18350ab3bddf736e57800" +react-textarea-autosize@^7.0.4: + version "7.1.0" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-7.1.0.tgz#3132cb77e65d94417558d37c0bfe415a5afd3445" + integrity sha512-c2FlR/fP0qbxmlrW96SdrbgP/v0XZMTupqB90zybvmDVDutytUgPl7beU35klwcTeMepUIQEpQUn3P3bdshGPg== dependencies: - babel-runtime "^6.23.0" - deep-equal "^1.0.1" - prop-types "^15.5.8" - radium "^0.19.0" - shallowequal "^0.2.2" - velocity-react "^1.3.1" + "@babel/runtime" "^7.1.2" + prop-types "^15.6.0" -react@^16.8.6: +react@^16.8.1, react@^16.8.6: version "16.8.6" resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== @@ -5817,6 +6878,11 @@ react@^16.8.6: prop-types "^15.6.2" scheduler "^0.13.6" +reactjs-popup@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/reactjs-popup/-/reactjs-popup-1.4.0.tgz#7ba0055760df742f00ebba0e7e683726ebbfa207" + integrity sha512-m7KWzOTLaibqBD6iw1dRNGX07kt1gW2hjImky+nLYBR/+FFe68xJYdYgPF6sMkLYBHLApJRczIBPhP/z5y63yQ== + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -5862,24 +6928,34 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -recast@^0.12.6: - version "0.12.9" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +recast@^0.14.7: + version "0.14.7" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" + integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A== dependencies: - ast-types "0.10.1" - core-js "^2.4.1" + ast-types "0.11.3" esprima "~4.0.0" private "~0.1.5" source-map "~0.6.1" -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" +recast@^0.16.0: + version "0.16.2" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.16.2.tgz#3796ebad5fe49ed85473b479cd6df554ad725dc2" + integrity sha512-O/7qXi51DPjRVdbrpNzoBQH5dnAPQNbfoOFyRiUwreTMJfIHYOEBzwuH+c0+/BTSJ3CQyKs6ILSWXhESH6Op3A== dependencies: - ast-types "0.9.6" - esprima "~3.1.0" + ast-types "0.11.7" + esprima "~4.0.0" private "~0.1.5" - source-map "~0.5.0" + source-map "~0.6.1" rechoir@^0.6.2: version "0.6.2" @@ -5887,60 +6963,66 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -recursive-readdir@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" +recompose@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" + integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w== dependencies: - minimatch "3.0.3" + "@babel/runtime" "^7.0.0" + change-emitter "^0.1.2" + fbjs "^0.8.1" + hoist-non-react-statics "^2.3.1" + react-lifecycles-compat "^3.0.2" + symbol-observable "^1.0.4" -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" + minimatch "3.0.4" -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" +refractor@^2.4.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.9.0.tgz#0a381aadb51513e4e6ec1ed410b5104dd65e2489" + integrity sha512-lCnCYvXpqd8hC7ksuvo516rz5q4NwzBbq0X5qjH5pxRfcQKiQxKZ8JctrSQmrR/7pcV2TRrs9TT+Whmq/wtluQ== dependencies: - balanced-match "^0.4.2" + hastscript "^5.0.0" + parse-entities "^1.1.2" + prismjs "~1.16.0" -redux@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" +regenerate-unicode-properties@^8.0.2: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== dependencies: - lodash "^4.2.1" - lodash-es "^4.2.1" - loose-envify "^1.1.0" - symbol-observable "^1.0.3" + regenerate "^1.4.0" -regenerate@^1.2.1: +regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" +regenerator-runtime@^0.12.0, regenerator-runtime@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== + +regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" +regenerator-transform@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb" + integrity sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A== dependencies: - is-equal-shallow "^0.1.3" + private "^0.1.6" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -5949,6 +7031,11 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp-tree@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.6.tgz#84900fa12fdf428a2ac25f04300382a7c0148479" + integrity sha512-LFrA98Dw/heXqDojz7qKFdygZmFoiVlvE1Zp7Cq2cvF+ZA+03Gmhy0k0PQlsC1jvHPiTUSs+pDHEuSWv6+6D7w== + regexp.prototype.flags@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" @@ -5961,32 +7048,39 @@ regexpp@^2.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" +regexpu-core@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + regenerate "^1.4.0" + regenerate-unicode-properties "^8.0.2" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== dependencies: jsesc "~0.5.0" +rehype-parse@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.0.tgz#f681555f2598165bee2c778b39f9073d17b16bca" + integrity sha512-V2OjMD0xcSt39G4uRdMTqDXXm6HwkUbLMDayYKA/d037j8/OtVSQ+tqKwYWOuyBeoCs/3clXRe30VUjeMDTBSA== + dependencies: + hast-util-from-parse5 "^5.0.0" + parse5 "^5.0.0" + xtend "^4.0.1" + relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -5995,6 +7089,11 @@ remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" +render-fragment@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/render-fragment/-/render-fragment-0.1.1.tgz#b231f259b7eee333d34256aee0ef3169be7bef30" + integrity sha512-+DnAcalJYR8GE5VRuQGGu78Q0GDe8EXnkuk4DF8gbAhIeS6LRt4j+aaggLLj4PtQVfXNC61McXvXI58WqmRleQ== + renderkid@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" @@ -6009,32 +7108,19 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= require-from-string@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -6047,18 +7133,31 @@ requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" -resolve-dir@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" + integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -6069,7 +7168,7 @@ resolve@^1.1.6: dependencies: path-parse "^1.0.5" -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.5.0: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.11.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== @@ -6087,11 +7186,12 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" +rimraf@^2.2.8, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: - align-text "^0.1.1" + glob "^7.1.3" rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" @@ -6099,13 +7199,6 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: dependencies: glob "^7.0.5" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -6125,16 +7218,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - rxjs@^5.5.2: version "5.5.12" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" @@ -6142,6 +7225,13 @@ rxjs@^5.5.2: dependencies: symbol-observable "1.0.1" +rxjs@^6.1.0, rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -6160,7 +7250,7 @@ safe-regex@^1.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" -sax@^1.2.4, sax@~1.2.1: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -6180,28 +7270,41 @@ scheduler@^0.14.0: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - dependencies: - ajv "^5.0.0" - -schema-utils@^0.4.0, schema-utils@^0.4.5: +schema-utils@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + "semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" -semver@^5.5.0: +semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -6220,13 +7323,15 @@ send@0.16.2: range-parser "~1.2.0" statuses "~1.4.0" -serialize-javascript@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" +serialize-javascript@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" + integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== -serve-favicon@^2.4.5: +serve-favicon@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" + integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA= dependencies: etag "~1.8.1" fresh "0.5.2" @@ -6243,7 +7348,7 @@ serve-static@1.13.2: parseurl "~1.3.2" send "0.16.2" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -6288,11 +7393,20 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallowequal@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= dependencies: - lodash.keys "^3.1.2" + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shallowequal@^1.0.2, shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== shebang-command@^1.2.0: version "1.2.0" @@ -6313,14 +7427,20 @@ shell-quote@1.6.1: array-reduce "~0.0.0" jsonify "~0.0.0" -shelljs@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" +shelljs@^0.8.2: + version "0.8.3" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" + integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== dependencies: glob "^7.0.0" interpret "^1.0.0" rechoir "^0.6.2" +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -6329,6 +7449,11 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" @@ -6363,22 +7488,17 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" +sockjs-client@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" json3 "^3.3.2" - url-parse "^1.1.8" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" + url-parse "^1.4.3" source-list-map@^2.0.0: version "2.0.0" @@ -6394,24 +7514,38 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" +source-map-support@~0.5.10: + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: - source-map "^0.5.6" + buffer-from "^1.0.0" + source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" +space-separated-tokens@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz#27910835ae00d0adfcdbd0ad7e611fb9544351fa" + integrity sha512-UyhMSmeIqZrQn2UdjYpxEkwY9JUrn8pP+7L4f91zRzOQuI8MF1FGLfYU9DKCYeLdo7LXMxwrX5zKFy7eeeVHuA== + +spawn-promise@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/spawn-promise/-/spawn-promise-0.1.8.tgz#a5bea98814c48f52cbe02720e7fe2d6fc3b5119a" + integrity sha512-pTkEOFxvYLq9SaI1d8bwepj0yD9Yyz65+4e979YZLv/L3oYPxZpDTabcm6e+KIZniGK9mQ+LGrwB5s1v2z67nQ== + dependencies: + co "^4.6.0" + spdx-correct@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" @@ -6444,11 +7578,17 @@ sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: - safe-buffer "^5.1.1" + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== static-extend@^0.1.1: version "0.1.2" @@ -6493,10 +7633,6 @@ stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -6505,13 +7641,22 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string.prototype.matchall@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8" @@ -6523,6 +7668,17 @@ string.prototype.matchall@^2.0.0: has-symbols "^1.0.0" regexp.prototype.flags "^1.2.0" +string.prototype.matchall@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-3.0.1.tgz#5a9e0b64bcbeb336aa4814820237c2006985646d" + integrity sha512-NSiU0ILQr9PQ1SZmM1X327U5LsM+KfDTassJfqN1al1+0iNpKzmQ4BfXOJwRnTEqv8nKJ67mFpqRoPaGWwvy5A== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has-symbols "^1.0.0" + regexp.prototype.flags "^1.2.0" + string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" @@ -6549,7 +7705,14 @@ string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" -strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" + integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== + dependencies: + ansi-regex "^4.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: @@ -6561,6 +7724,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.0.0, strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6573,59 +7743,75 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -style-loader@^0.20.3: - version "0.20.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.3.tgz#ebef06b89dec491bcb1fdb3452e913a6fd1c10c4" +style-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== dependencies: loader-utils "^1.1.0" - schema-utils "^0.4.5" + schema-utils "^1.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" dependencies: has-flag "^3.0.0" -svg-tag-names@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/svg-tag-names/-/svg-tag-names-1.1.1.tgz#9641b29ef71025ee094c7043f7cdde7d99fbd50a" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +svg-url-loader@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/svg-url-loader/-/svg-url-loader-2.3.2.tgz#dd86b26c19fe3b914f04ea10ef39594eade04464" + integrity sha1-3YaybBn+O5FPBOoQ7zlZTq3gRGQ= + dependencies: + file-loader "1.1.11" + loader-utils "1.1.0" -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" +svgo@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316" + integrity sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA== dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.28" + css-url-regex "^1.1.0" + csso "^3.5.1" + js-yaml "^3.13.1" mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= -symbol-observable@^1.0.3: +symbol-observable@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol.prototype.description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.0.tgz#6e355660eb1e44ca8ad53a68fdb72ef131ca4b12" + integrity sha512-I9mrbZ5M96s7QeJDv95toF1svkUjeBybe8ydhY7foPaBmr0SPJMFupArmMkDrOKTTj0sJVr+nvQNxWLziQ7nDQ== + dependencies: + has-symbols "^1.0.0" table@^4.0.3: version "4.0.3" @@ -6639,9 +7825,10 @@ table@^4.0.3: slice-ansi "1.0.0" string-width "^2.1.1" -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^4: version "4.4.2" @@ -6655,6 +7842,50 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +telejson@^2.1.0, telejson@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-2.2.1.tgz#d9ee7e7eba0c81d9378257342fde7142a03787e2" + integrity sha512-JtFAnITek+Z9t+uQjVl4Fxur9Z3Bi3flytBLc3KZVXmMUHLXdtAxiP0g8IBkHvKn1kQIYZC57IG0jjGH1s64HQ== + dependencies: + global "^4.3.2" + is-function "^1.0.1" + is-regex "^1.0.4" + is-symbol "^1.0.2" + isobject "^3.0.1" + lodash.get "^4.4.2" + memoizerific "^1.11.3" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.4.tgz#56f87540c28dd5265753431009388f473b5abba3" + integrity sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q== + dependencies: + cacache "^11.3.2" + find-cache-dir "^2.0.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^1.7.0" + source-map "^0.6.1" + terser "^3.17.0" + webpack-sources "^1.3.0" + worker-farm "^1.7.0" + +terser@^3.17.0: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6666,24 +7897,35 @@ through2@^2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" -through@^2.3.6, through@^2.3.8, through@~2.3.6: +through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" - timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" dependencies: setimmediate "^1.0.4" +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + tiny-inflate@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" +tiny-invariant@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.4.tgz#346b5415fd93cb696b0c4e8a96697ff590f92463" + integrity sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g== + +tiny-warning@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.2.tgz#1dfae771ee1a04396bdfde27a3adcebc6b648b28" + integrity sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -6694,10 +7936,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -6724,14 +7962,20 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +trough@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" + integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -6749,61 +7993,54 @@ type-is@~1.6.15, type-is@~1.6.16: media-typer "0.3.0" mime-types "~2.1.18" +typed-styles@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" + integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +ua-parser-js@^0.7.18: + version "0.7.19" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" + integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== + ua-parser-js@^0.7.9: version "0.7.18" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" -uglify-es@^3.3.4: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== dependencies: - commander "~2.13.0" + commander "~2.19.0" source-map "~0.6.1" -uglify-js@3.3.x: - version "3.3.25" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.25.tgz#3266ccb87c5bea229f69041a0296010d6477d539" - dependencies: - commander "~2.15.0" - source-map "~0.6.1" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== -uglifyjs-webpack-plugin@^1.2.4: - version "1.2.5" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz#2ef8387c8f1a903ec5e44fa36f9f3cbdcea67641" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - schema-utils "^0.4.5" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-es "^3.3.4" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== unicode-trie@^0.3.0: version "0.3.1" @@ -6812,6 +8049,20 @@ unicode-trie@^0.3.0: pako "^0.2.5" tiny-inflate "^1.0.0" +unified@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" + integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== + dependencies: + "@types/unist" "^2.0.0" + "@types/vfile" "^3.0.0" + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^3.0.0" + x-is-string "^0.1.0" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -6825,19 +8076,10 @@ uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" -uniqid@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" @@ -6847,10 +8089,32 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +unist-util-stringify-position@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.0.tgz#4c452c0dbcbc509f7bcd366e9a8afd646f9d51ae" + integrity sha512-Uz5negUTrf9zm2ZT2Z9kdOL7Mr7FJLyq3ByqagUi7QZRVK1HnspVazvSqwHt73jj7APHtpuJ4K110Jm8O6/elw== + dependencies: + "@types/unist" "^2.0.2" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unquote@^1.1.0, unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -6862,6 +8126,11 @@ upath@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -6883,19 +8152,21 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-loader@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" +url-loader@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== dependencies: - loader-utils "^1.0.2" - mime "^1.4.1" - schema-utils "^0.3.0" + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" -url-parse@^1.1.8, url-parse@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.0.tgz#6bfdaad60098c7fe06f623e42b22de62de0d3d75" +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: - querystringify "^2.0.0" + querystringify "^2.1.1" requires-port "^1.0.0" url@^0.11.0: @@ -6911,14 +8182,18 @@ use@^3.1.0: dependencies: kind-of "^6.0.2" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@0.10.3, util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -6937,15 +8212,10 @@ utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" -uuid@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== validate-npm-package-license@^3.0.1: version "3.0.3" @@ -6954,26 +8224,50 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" + integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" -velocity-animate@^1.4.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.1.tgz#606837047bab8fbfb59a636d1d82ecc3f7bd71a6" +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" -velocity-react@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.4.1.tgz#1d0b41859cdf2521c08a8b57f44e93ed2d54b5fc" +vfile-message@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.0.tgz#750bbb86fe545988a67e899b329bbcabb73edef6" + integrity sha512-YS6qg6UpBfIeiO+6XlhPOuJaoLvt1Y9g2cmlwqhBOOU0XRV8j5RLeoz72t6PWLvNXq3EBG1fQ05wNPrUoz0deQ== dependencies: - lodash "^4.17.5" - prop-types "^15.5.8" - react-transition-group "^2.0.0" - velocity-animate "^1.4.0" + "@types/unist" "^2.0.2" + unist-util-stringify-position "^1.1.1" -vendors@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" +vfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" + integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== + dependencies: + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + +vfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.0.tgz#ebf3b48af9fcde524d5e08d5f75812058a5f78ad" + integrity sha512-WMNeHy5djSl895BqE86D7WqA0Ie5fAIeGCa7V1EqiXyJg5LaGch2SUaZueok5abYQGH6mXEAsZ45jkoILIOlyA== + dependencies: + "@types/unist" "^2.0.2" + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" vm-browserify@0.0.4: version "0.0.4" @@ -6987,66 +8281,99 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -watchpack@^1.4.0: +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" -webpack-dev-middleware@^1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" +web-namespaces@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.3.tgz#9bbf5c99ff0908d2da031f1d732492a96571a83f" + integrity sha512-r8sAtNmgR0WKOKOxzuSgk09JsHlpKlB+uHi937qypOu3PZ17UxPrierFKDye/uNHjNTTEshu5PId8rojIPj/tA== + +webpack-dev-middleware@^3.5.1: + version "3.7.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" + integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== dependencies: - memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - time-stamp "^2.0.0" + memory-fs "^0.4.1" + mime "^2.4.2" + range-parser "^1.2.1" + webpack-log "^2.0.0" -webpack-hot-middleware@^2.22.1: - version "2.22.2" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.22.2.tgz#623b77ce591fcd4e1fb99f18167781443e50afac" +webpack-hot-middleware@^2.24.3: + version "2.25.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" + integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== dependencies: ansi-html "0.0.7" html-entities "^1.2.0" querystring "^0.2.0" strip-ansi "^3.0.0" -webpack-sources@^1.0.1, webpack-sources@^1.1.0: +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-sources@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" +webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.29.0: + version "4.31.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.31.0.tgz#ae201d45f0571336e42d1c2b5c8ab56c4d3b0c63" + integrity sha512-n6RVO3X0LbbipoE62akME9K/JI7qYrwwufs20VvgNNpqUoH4860KkaxJTbGq5bgkVZF9FqyyTG/0WPLH3PVNJA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.0.5" + acorn-dynamic-import "^4.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" + micromatch "^3.1.8" mkdirp "~0.5.0" + neo-async "^2.5.0" node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" + schema-utils "^1.0.0" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" + watchpack "^1.5.0" + webpack-sources "^1.3.0" websocket-driver@>=0.5.1: version "0.7.0" @@ -7063,51 +8390,43 @@ whatwg-fetch@>=0.10.0: version "2.0.4" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.14, which@^1.2.9: +which@^1.2.9: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" +which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" dependencies: string-width "^1.0.2" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7119,14 +8438,15 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -xtend@^4.0.0, xtend@~4.0.1: +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -7138,36 +8458,3 @@ yallist@^2.1.2: yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" From da3f2bdd66cb6482cb9dd30c55797c19ecc33363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Thu, 16 May 2019 17:02:26 +0200 Subject: [PATCH 06/13] Added story for testing event handlers --- .eslintrc.js | 3 +- .storybook/addons.js | 1 - package.json | 1 - stories/Events.jsx | 69 ++++++++++++++++++++++++++++++++------------ yarn.lock | 25 ---------------- 5 files changed, 52 insertions(+), 47 deletions(-) delete mode 100644 .storybook/addons.js diff --git a/.eslintrc.js b/.eslintrc.js index d4aa23c..e7e6c35 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -28,7 +28,8 @@ module.exports = { 'import/no-extraneous-dependencies': [ 'error', { devDependencies: ['stories/**/*'] } - ] + ], + 'jsx-a11y/mouse-events-have-key-events': 0 }, settings: { react: { diff --git a/.storybook/addons.js b/.storybook/addons.js deleted file mode 100644 index 17bb328..0000000 --- a/.storybook/addons.js +++ /dev/null @@ -1 +0,0 @@ -import '@storybook/addon-actions/register' diff --git a/package.json b/package.json index 6e50d31..ee899bb 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "@babel/plugin-proposal-class-properties": "^7.4.4", "@babel/preset-env": "^7.4.4", "@babel/preset-react": "^7.0.0", - "@storybook/addon-actions": "^5.0.11", "@storybook/react": "^5.0.11", "alea": "^0.0.9", "babel-eslint": "^10.0.1", diff --git a/stories/Events.jsx b/stories/Events.jsx index 3ddb35e..daf98d8 100644 --- a/stories/Events.jsx +++ b/stories/Events.jsx @@ -1,24 +1,55 @@ import React from 'react' import { storiesOf } from '@storybook/react' -import { action } from '@storybook/addon-actions' import { Group, Surface } from '../src/index' -storiesOf('Events', module).add('mouse events', () => { - return ( -
- - - -
- ) -}) +class Story extends React.Component { + state = { + log: [] + } + + action = entry => { + this.setState(prevState => ({ + log: [...prevState.log, entry] + })) + } + + render() { + return ( +
+
+ + this.action('onClick')} + onMouseDown={() => this.action('onMouseDown')} + onContextMenu={() => this.action('onContextMenu')} + style={{ + backgroundColor: 'red', + top: 0, + left: 0, + width: 50, + height: 50 + }} + /> + +
+
+ {this.state.log + .slice(0) + .reverse() + .map((entry, i) => ( + // eslint-disable-next-line react/no-array-index-key +
{entry}
+ ))} +
+
+ ) + } +} + +storiesOf('Events', module).add('mouse events', () => ) diff --git a/yarn.lock b/yarn.lock index 933a965..c7ff23e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1060,26 +1060,6 @@ react-lifecycles-compat "^3.0.4" warning "^3.0.0" -"@storybook/addon-actions@^5.0.11": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-5.0.11.tgz#7ca6d6ce9400b9b97f2699935edade88905767c3" - integrity sha512-1aJ/UDBYAyuqq4wkEYKNv/xwy2BZS61Cl8+c8le5af3Rk/y2HVRuBHPoKptFkS0nACE/XvPSvLPUIHZDLUkkMw== - dependencies: - "@storybook/addons" "5.0.11" - "@storybook/components" "5.0.11" - "@storybook/core-events" "5.0.11" - "@storybook/theming" "5.0.11" - core-js "^2.6.5" - fast-deep-equal "^2.0.1" - global "^4.3.2" - lodash "^4.17.11" - make-error "^1.3.5" - polished "^2.3.3" - prop-types "^15.6.2" - react "^16.8.1" - react-inspector "^2.3.0" - uuid "^3.3.2" - "@storybook/addons@5.0.11": version "5.0.11" resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-5.0.11.tgz#86de70747e0a692d9dd8ea431daa1147d8785697" @@ -5446,11 +5426,6 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -make-error@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" - integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== - mamacro@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" From f3711839b0b1e03a4837efd4cb161e6485a5f5b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Fri, 17 May 2019 11:56:32 +0200 Subject: [PATCH 07/13] Use css-line-break for text breaks --- package.json | 2 +- src/measureText.js | 19 +++++++++---------- stories/Text.jsx | 16 ++++++++++++++-- yarn.lock | 36 +++++++++++------------------------- 4 files changed, 35 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index ee899bb..7f4ed12 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "react-dom": "^16.8.6" }, "dependencies": { - "@craigmorton/linebreak": "^0.4.5", "css-layout": "^1.1.1", + "css-line-break": "^1.1.1", "invariant": "^2.2.4", "multi-key-cache": "^1.0.2", "prop-types": "^15.6.1", diff --git a/src/measureText.js b/src/measureText.js index c1251f0..02653a6 100644 --- a/src/measureText.js +++ b/src/measureText.js @@ -1,5 +1,6 @@ -import LineBreaker from '@craigmorton/linebreak' +import { LineBreaker } from 'css-line-break' import MultiKeyCache from 'multi-key-cache' + import { isFontLoaded } from './FontUtils' const canvas = document.createElement('canvas') @@ -45,9 +46,7 @@ export default function measureText( let lastMeasuredWidth let tryLine let currentLine - let breaker let bk - let lastBreak ctx.font = `${fontFace.attributes.style} normal ${ fontFace.attributes.weight @@ -65,15 +64,17 @@ export default function measureText( // Break into multiple lines. measuredSize.width = width currentLine = '' - breaker = new LineBreaker(text) + const breaker = LineBreaker(text, { + lineBreak: 'strict', + wordBreak: 'normal' + }) // eslint-disable-next-line no-cond-assign - while ((bk = breaker.nextBreak())) { - const word = text.slice(lastBreak ? lastBreak.position : 0, bk.position) - + while (!(bk = breaker.next()).done) { + const word = bk.value.slice() tryLine = currentLine + word textMetrics = ctx.measureText(tryLine) - if (textMetrics.width > width || (lastBreak && lastBreak.required)) { + if (textMetrics.width > width) { measuredSize.height += lineHeight measuredSize.lines.push({ width: lastMeasuredWidth, @@ -85,8 +86,6 @@ export default function measureText( currentLine = tryLine lastMeasuredWidth = textMetrics.width } - - lastBreak = bk } currentLine = currentLine.trim() diff --git a/stories/Text.jsx b/stories/Text.jsx index 0e3b28e..eb6d01d 100644 --- a/stories/Text.jsx +++ b/stories/Text.jsx @@ -31,11 +31,23 @@ storiesOf('Text', module).add('hello-world', () => { }}> Hello World 2 + + Long text in with small width paramter + diff --git a/yarn.lock b/yarn.lock index c7ff23e..e4f2e85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -928,13 +928,6 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" -"@craigmorton/linebreak@^0.4.5": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@craigmorton/linebreak/-/linebreak-0.4.5.tgz#b3a9787844bc5ad954eed23c778ba56769e78d2f" - dependencies: - base64-js "0.0.8" - unicode-trie "^0.3.0" - "@emotion/cache@^10.0.9": version "10.0.9" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.9.tgz#e0c7b7a289f7530edcfad4dcf3858bd2e5700a6f" @@ -2301,9 +2294,10 @@ balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" +base64-arraybuffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" + integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== base64-js@^1.0.2: version "1.3.0" @@ -3092,6 +3086,13 @@ css-layout@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-layout/-/css-layout-1.1.1.tgz#ada5bb8c901e475d41043a88e034ade54d939392" +css-line-break@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-1.1.1.tgz#d5e9bdd297840099eb0503c7310fd34927a026ef" + integrity sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA== + dependencies: + base64-arraybuffer "^0.2.0" + css-loader@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" @@ -6116,10 +6117,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^0.2.5: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" @@ -7887,10 +7884,6 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-inflate@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" - tiny-invariant@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.4.tgz#346b5415fd93cb696b0c4e8a96697ff590f92463" @@ -8017,13 +8010,6 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== -unicode-trie@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" - dependencies: - pako "^0.2.5" - tiny-inflate "^1.0.0" - unified@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" From 20271146e0e059f94ecfc259f2ca8ba970fe9c07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Fri, 17 May 2019 12:23:06 +0200 Subject: [PATCH 08/13] Removed unused component --- stories/components/Page.jsx | 153 ------------------------------------ 1 file changed, 153 deletions(-) delete mode 100644 stories/components/Page.jsx diff --git a/stories/components/Page.jsx b/stories/components/Page.jsx deleted file mode 100644 index 4061872..0000000 --- a/stories/components/Page.jsx +++ /dev/null @@ -1,153 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' - -import { Group, Image, Text, FontFace, measureText } from '../../src/index' - -const CONTENT_INSET = 14 -const TEXT_SCROLL_SPEED_MULTIPLIER = 0.6 -const TEXT_ALPHA_SPEED_OUT_MULTIPLIER = 1.25 -const TEXT_ALPHA_SPEED_IN_MULTIPLIER = 2.6 -const IMAGE_LAYER_INDEX = 2 -const TEXT_LAYER_INDEX = 1 - -class Page extends React.Component { - static propTypes = { - width: PropTypes.number.isRequired, - height: PropTypes.number.isRequired, - article: PropTypes.shape({ - title: PropTypes.string.isRequired, - excerpt: PropTypes.string.isRequired - }).isRequired, - scrollTop: PropTypes.number.isRequired - } - - constructor(props) { - super() - - // Pre-compute headline/excerpt text dimensions. - const { article } = props - const maxWidth = props.width - 2 * CONTENT_INSET - const titleStyle = this.getTitleStyle(props) - const excerptStyle = this.getExcerptStyle(props) - - this.titleMetrics = measureText( - article.title, - maxWidth, - titleStyle.fontFace, - titleStyle.fontSize, - titleStyle.lineHeight - ) - this.excerptMetrics = measureText( - article.excerpt, - maxWidth, - excerptStyle.fontFace, - excerptStyle.fontSize, - excerptStyle.lineHeight - ) - } - - // Styles - // ====== - - getGroupStyle = () => { - const { width, height } = this.props - return { - top: 0, - left: 0, - width, - height - } - } - - getImageHeight = props => { - return Math.round(props.height * 0.5) - } - - getImageStyle = () => { - const { width } = this.props - return { - top: 0, - left: 0, - width, - height: this.getImageHeight(this.props), - backgroundColor: '#eee', - zIndex: IMAGE_LAYER_INDEX - } - } - - getTitleStyle = props => { - return { - top: this.getImageHeight(props) + CONTENT_INSET, - left: CONTENT_INSET, - width: props.width - 2 * CONTENT_INSET, - fontSize: 22, - lineHeight: 30, - fontFace: FontFace('Avenir Next Condensed, Helvetica, sans-serif', null, { - weight: 500 - }) - } - } - - getExcerptStyle = props => { - return { - left: CONTENT_INSET, - width: props.width - 2 * CONTENT_INSET, - fontFace: FontFace('Georgia, serif'), - fontSize: 15, - lineHeight: 23 - } - } - - getTextGroupStyle = () => { - const { scrollTop, height, width } = this.props - const imageHeight = this.getImageHeight(this.props) - let translateY = 0 - const alphaMultiplier = - scrollTop <= 0 - ? -TEXT_ALPHA_SPEED_OUT_MULTIPLIER - : TEXT_ALPHA_SPEED_IN_MULTIPLIER - let alpha = 1 - (scrollTop / height) * alphaMultiplier - alpha = Math.min(Math.max(alpha, 0), 1) - translateY = -scrollTop * TEXT_SCROLL_SPEED_MULTIPLIER - - return { - width, - height: height - imageHeight, - top: imageHeight, - left: 0, - alpha, - translateY, - zIndex: TEXT_LAYER_INDEX - } - } - - render() { - const { height, article } = this.props - const groupStyle = this.getGroupStyle() - const imageStyle = this.getImageStyle() - const titleStyle = this.getTitleStyle(this.props) - const excerptStyle = this.getExcerptStyle(this.props) - - // Layout title and excerpt below image. - titleStyle.height = this.titleMetrics.height - excerptStyle.top = titleStyle.top + titleStyle.height + CONTENT_INSET - excerptStyle.height = height - excerptStyle.top - CONTENT_INSET - - return ( - - - - {this.props.article.title} - {this.props.article.excerpt} - - - ) - } -} - -export default Page From de7f5f952a19c5b29b5563ba8853fb64138acbd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Fri, 17 May 2019 12:23:18 +0200 Subject: [PATCH 09/13] Fixed story image --- stories/CSS.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stories/CSS.jsx b/stories/CSS.jsx index 14727bc..8540e05 100644 --- a/stories/CSS.jsx +++ b/stories/CSS.jsx @@ -94,7 +94,7 @@ class App extends React.Component { Professor PuddinPop From 312eb200d8e544ae4094636ed4d8de6ded19aa9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Fri, 17 May 2019 12:23:26 +0200 Subject: [PATCH 10/13] Remove default exports --- src/Core.js | 13 +++++-------- src/Image.jsx | 3 +-- src/index.js | 29 +++++------------------------ 3 files changed, 11 insertions(+), 34 deletions(-) diff --git a/src/Core.js b/src/Core.js index f2eeb47..25cc4d7 100644 --- a/src/Core.js +++ b/src/Core.js @@ -1,8 +1,5 @@ -const Core = { - Layer: 'Layer', - Group: 'Group', - Text: 'Text', - Gradient: 'Gradient' -} - -export default Core +// These are known component types for CanvasRenderer +export const Layer = 'Layer' +export const Group = 'Group' +export const Text = 'Text' +export const Gradient = 'Gradient' diff --git a/src/Image.jsx b/src/Image.jsx index 4162426..f186e8b 100644 --- a/src/Image.jsx +++ b/src/Image.jsx @@ -1,13 +1,12 @@ import React from 'react' import PropTypes from 'prop-types' import CanvasComponent from './CanvasComponent' -import Core from './Core' +import { Group } from './Core' import ImageCache from './ImageCache' import { easeInCubic } from './Easing' import clamp from './clamp' const RawImageName = 'RawImage' -const { Group } = Core const FADE_DURATION = 200 diff --git a/src/index.js b/src/index.js index 97eae72..141f8aa 100644 --- a/src/index.js +++ b/src/index.js @@ -1,8 +1,7 @@ import Surface from './Surface' -import Core from './Core' +import { Group, Text, Layer, Gradient } from './Core' import Image from './Image' import FontFace from './FontFace' -import FrameUtils from './FrameUtils' import measureText from './measureText' import CanvasComponent from './CanvasComponent' import { CanvasRenderer, registerComponentConstructor } from './CanvasRenderer' @@ -32,32 +31,14 @@ const registerCustomComponent = (name, applyProps, drawFunction) => { return name } -const ReactCanvas = { - ...Core, - Surface, - Image, - FontFace, - FrameUtils, - measureText, - registerCustomComponent -} - -// eslint-disable-next-line prefer-destructuring -export const Text = ReactCanvas.Text -// eslint-disable-next-line prefer-destructuring -export const Group = ReactCanvas.Group -// eslint-disable-next-line prefer-destructuring -export const Gradient = ReactCanvas.Gradient -// eslint-disable-next-line prefer-destructuring -export const Layer = ReactCanvas.Layer - export { + Group, + Text, + Layer, + Gradient, Surface, Image, FontFace, - FrameUtils, measureText, registerCustomComponent } - -export default ReactCanvas From 6af147a5f178f9824b00ce889e46d3757762e6c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Fri, 17 May 2019 12:36:31 +0200 Subject: [PATCH 11/13] Update readme --- README.md | 127 ++++++++++++++++++------------------------------------ 1 file changed, 42 insertions(+), 85 deletions(-) diff --git a/README.md b/README.md index fe39d4a..c75ec72 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # react-canvas -This is a fork of [Flipboard/react-canvas](https://github.com/Flipboard/react-canvas) which: -- Upgrades to React 16 and uses a custom renderer with `react-reconciler` -- Converts to ES modules and modern ES6+ -- Storybook for ease of testing examples -- Removes the need to use [brfs](https://github.com/substack/brfs) and `transform-loader` when using webpack. +`react-canvas` fork which supports React 18.6.8 using custom fiber renderer. -This fork builds upon work by [CraigMorton](https://github.com/CraigMorton/react-canvas) and [CSBerger](https://github.com/CSberger/react-canvas) +Previous work / forks: + +- [Flipboard/react-canvas](https://github.com/Flipboard/react-canvas) +- [CraigMorton/react-canvas](https://github.com/CraigMorton/react-canvas) +- [CSBerger/react-canvas](https://github.com/CSberger/react-canvas) # Original repo's README @@ -26,9 +26,7 @@ React Canvas brings some of the APIs web developers are familiar with and blends ## Installation -React Canvas is available through npm: - -```npm install react-canvas``` +`yarn add react-canvas` ## React Canvas Components @@ -57,17 +55,20 @@ React Canvas provides a set of standard React components that abstract the under ### <Gradient> **Gradient** can be used to set the background of a group or surface. + ```javascript render() { ... return ( - + - ); + ) } - getGradientColors(){ + + getGradientColors() { return [ { color: "transparent", position: 0 }, { color: "#000", position: 1 } @@ -86,45 +87,24 @@ For a full list of supported events see [EventTypes](lib/EventTypes.js). Here is a very simple component that renders text below an image: ```javascript -var React = require('react'); -var ReactCanvas = require('react-canvas'); - -var Surface = ReactCanvas.Surface; -var Image = ReactCanvas.Image; -var Text = ReactCanvas.Text; +import React from 'react' +import { Surface, Image, Text } from 'react-canvas' -var MyComponent = React.createClass({ - - render: function () { - var surfaceWidth = window.innerWidth; - var surfaceHeight = window.innerHeight; - var imageStyle = this.getImageStyle(); - var textStyle = this.getTextStyle(); - - return ( - - - - Here is some text below an image. - - - ); - }, - - getImageHeight: function () { - return Math.round(window.innerHeight / 2); - }, +class MyComponent extends React.Component { + getImageHeight() { + return Math.round(window.innerHeight / 2) + } - getImageStyle: function () { + getImageStyle() { return { top: 0, left: 0, width: window.innerWidth, height: this.getImageHeight() - }; - }, + } + } - getTextStyle: function () { + getTextStyle() { return { top: this.getImageHeight() + 10, left: 0, @@ -132,18 +112,29 @@ var MyComponent = React.createClass({ height: 20, lineHeight: 20, fontSize: 12 - }; + } } -}); + render() { + const surfaceWidth = window.innerWidth + const surfaceHeight = window.innerHeight + const imageStyle = this.getImageStyle() + const textStyle = this.getTextStyle() + + return ( + + + Here is some text below an image. + + ) + } +} ``` ## Text sizing React Canvas provides the `measureText` function for computing text metrics. -The [Page component](examples/timeline/components/Page.js) in the timeline example contains an example of using measureText to achieve precise multi-line ellipsized text. - Custom fonts are not currently supported but will be added in a future version. ## css-layout @@ -154,43 +145,9 @@ Future versions may not support css-layout out of the box. The performance impli See the [css-layout example](examples/css-layout). -## Accessibility - -This area needs further exploration. Using fallback content (the canvas DOM sub-tree) should allow screen readers such as VoiceOver to interact with the content. We've seen mixed results with the iOS devices we've tested. Additionally there is a standard for [focus management](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#dom-context-2d-drawfocusring) that is not supported by browsers yet. - -One approach that was raised by [Bespin](http://vimeo.com/3195079) in 2009 is to keep a [parallel DOM](http://robertnyman.com/2009/04/03/mozilla-labs-online-code-editor-bespin/#comment-560310) in sync with the elements rendered in canvas. - -## Running the examples +## Running the examples (storybook) ``` -npm install -npm start +yarn install --pure-lockfile +yarn storybook ``` - -This will start a live reloading server on port 8080. To override the default server and live reload ports, run `npm start` with PORT and/or RELOAD_PORT environment variables. - -**A note on NODE_ENV and React**: running the examples with `NODE_ENV=production` will noticeably improve scrolling performance. This is because React skips propType validation in production mode. - - -## Using with webpack - -The [brfs](https://github.com/substack/brfs) transform is required in order to use the project with webpack. - -```bash -npm install -g brfs -npm install --save-dev transform-loader brfs -``` - -Then add the [brfs](https://github.com/substack/brfs) transform to your webpack config - -```javascript -module: { - postLoaders: [ - { loader: "transform?brfs" } - ] -} -``` - -## Contributing - -We welcome pull requests for bug fixes, new features, and improvements to React Canvas. Contributors to the main repository must accept Flipboard's Apache-style [Individual Contributor License Agreement (CLA)](https://docs.google.com/forms/d/1gh9y6_i8xFn6pA15PqFeye19VqasuI9-bGp_e0owy74/viewform) before any changes can be merged. From 65903bbdb5d7258248c053e6fe493be8c18cf18c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Fri, 17 May 2019 12:42:31 +0200 Subject: [PATCH 12/13] Pack only dist & src --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 7f4ed12..c2a5ec6 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,10 @@ "version": "1.6.4", "description": "High performance rendering for React components", "main": "dist/index.js", + "files": [ + "dist", + "src" + ], "repository": { "type": "git", "url": "https://github.com/gfodor/react-canvas.git" @@ -62,4 +66,4 @@ "react-reconciler": "^0.20.4", "scheduler": "^0.14.0" } -} +} \ No newline at end of file From 39ec2d2954d947ba0704cf0ed6661752ed2b3718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vojt=C3=A1=C5=A1ek?= Date: Mon, 20 May 2019 16:42:20 +0200 Subject: [PATCH 13/13] Version 1.7.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c2a5ec6..f4aeaf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-canvas", - "version": "1.6.4", + "version": "1.7.0", "description": "High performance rendering for React components", "main": "dist/index.js", "files": [