Add and enforce class properties

This commit is contained in:
Jordan Eldredge 2018-08-17 17:02:53 -07:00
parent 84e9b78e45
commit f799f727b2
18 changed files with 187 additions and 104 deletions

View file

@ -19,7 +19,7 @@
],
"react"
],
"plugins": ["transform-object-rest-spread"],
"plugins": ["transform-object-rest-spread", "transform-class-properties"],
"env": {
"test": {
"presets": ["react"],

View file

@ -1,4 +1,5 @@
{
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 8,
"sourceType": "module",
@ -7,7 +8,7 @@
"experimentalObjectRestSpread": true
}
},
"plugins": ["react", "prettier", "import"],
"plugins": ["react", "prettier", "import", "no-constructor-bind"],
"settings": {
"react": {
"version": "15.2"
@ -128,6 +129,7 @@
"import/no-extraneous-dependencies": "error",
"import/no-named-as-default-member": "error",
"import/no-unresolved": "error",
"import/order": "error"
"import/order": "error",
"no-constructor-bind/no-constructor-bind": "error"
}
}

View file

@ -6,8 +6,6 @@ export default class ContextMenuTarget extends React.Component {
constructor(props) {
super(props);
this.state = { selected: false };
this._handleHandleClick = this._handleHandleClick.bind(this);
this._handleGlobalClick = this._handleGlobalClick.bind(this);
}
componentDidMount() {
@ -18,11 +16,11 @@ export default class ContextMenuTarget extends React.Component {
document.removeEventListener("click", this._handleGlobalClick);
}
_handleHandleClick() {
_handleHandleClick = () => {
this.setState({ selected: !this.state.selected });
}
};
_handleGlobalClick(e) {
_handleGlobalClick = e => {
if (
this.state.selected &&
// Not sure how, but it's possible for this to get called when handleNode is null/undefined.
@ -32,7 +30,7 @@ export default class ContextMenuTarget extends React.Component {
) {
this.setState({ selected: false });
}
}
};
_offset() {
if (!this.handleNode) {

View file

@ -10,9 +10,6 @@ export default class ContextMenuWraper extends React.Component {
offsetTop: null,
offsetLeft: null
};
this._handleRightClick = this._handleRightClick.bind(this);
this._handleGlobalClick = this._handleGlobalClick.bind(this);
this._handleGlobalRightClick = this._handleGlobalRightClick.bind(this);
}
componentWillUnmount() {
@ -28,18 +25,18 @@ export default class ContextMenuWraper extends React.Component {
);
}
_handleGlobalRightClick() {
_handleGlobalRightClick = () => {
this._closeMenu();
}
};
_handleGlobalClick(e) {
_handleGlobalClick = e => {
if (e.button === 2) {
return;
}
this._closeMenu();
}
};
_handleRightClick(e) {
_handleRightClick = e => {
const { pageX, pageY } = e;
this.setState({
selected: true,
@ -54,7 +51,7 @@ export default class ContextMenuWraper extends React.Component {
document.body.addEventListener("contextmenu", this._handleGlobalRightClick);
e.preventDefault();
e.stopPropagation();
}
};
render() {
const { children, renderContents, ...passThroughProps } = this.props;

View file

@ -1,12 +1,6 @@
import React from "react";
export default class DropTarget extends React.Component {
constructor(props) {
super(props);
this.handleDrop = this.handleDrop.bind(this);
this._ref = this._ref.bind(this);
}
supress(e) {
e.stopPropagation();
e.preventDefault();
@ -14,18 +8,18 @@ export default class DropTarget extends React.Component {
e.dataTransfer.effectAllowed = "link";
}
handleDrop(e) {
handleDrop = e => {
this.supress(e);
if (!this._node) {
return;
}
const { x, y } = this._node.getBoundingClientRect();
this.props.handleDrop(e, { x, y });
}
};
_ref(node) {
_ref = node => {
this._node = node;
}
};
render() {
const {

View file

@ -73,7 +73,6 @@ class Marquee extends React.Component {
constructor(props) {
super(props);
this.state = { stepping: true, dragOffset: 0 };
this.handleMouseDown = this.handleMouseDown.bind(this);
this.stepHandle = null;
}
@ -91,7 +90,7 @@ class Marquee extends React.Component {
}
}
handleMouseDown(e) {
handleMouseDown = e => {
const xStart = e.clientX;
this.setState({ stepping: false });
const handleMouseMove = ee => {
@ -110,7 +109,7 @@ class Marquee extends React.Component {
document.addEventListener("mousemove", handleMouseMove);
document.addEventListener("mouseup", handleMouseUp);
}
};
render() {
const { text, marqueeStep } = this.props;

View file

@ -40,19 +40,13 @@ import MainVolume from "./MainVolume";
import "../../../css/main-window.css";
export class MainWindow extends React.Component {
constructor(props) {
super(props);
this._handleClick = this._handleClick.bind(this);
this._handleDrop = this._handleDrop.bind(this);
}
_handleClick() {
_handleClick = () => {
this.props.setFocus();
}
};
_handleDrop(e) {
_handleDrop = e => {
this.props.loadFilesFromReferences(e);
}
};
render() {
const {

View file

@ -12,9 +12,6 @@ export default class Milkdrop extends React.Component {
isFullscreen: false,
presetOverlay: false
};
this._handleFocusedKeyboardInput = this._handleFocusedKeyboardInput.bind(
this
);
}
async componentDidMount() {
@ -92,7 +89,7 @@ export default class Milkdrop extends React.Component {
}
}
_handleFocusedKeyboardInput(e) {
_handleFocusedKeyboardInput = e => {
switch (e.keyCode) {
case 32: // spacebar
this._nextPreset(USER_PRESET_TRANSITION_SECONDS);
@ -116,7 +113,7 @@ export default class Milkdrop extends React.Component {
this._restartCycling();
break;
}
}
};
async _nextPreset(blendTime) {
this.selectPreset(await this.props.presets.next(), blendTime);

View file

@ -4,9 +4,6 @@ class PresetOverlay extends React.Component {
constructor(props) {
super(props);
this.state = { presetIdx: Math.max(props.currentPreset, 0) };
this._handleFocusedKeyboardInput = this._handleFocusedKeyboardInput.bind(
this
);
}
componentDidMount() {
@ -21,7 +18,7 @@ class PresetOverlay extends React.Component {
}
}
_handleFocusedKeyboardInput(e) {
_handleFocusedKeyboardInput = e => {
switch (e.keyCode) {
case 38: // up arrow
this.setState({ presetIdx: Math.max(this.state.presetIdx - 1, 0) });
@ -45,7 +42,7 @@ class PresetOverlay extends React.Component {
e.stopPropagation();
break;
}
}
};
render() {
if (!this.props.presetKeys) {

View file

@ -26,9 +26,6 @@ class PresetsLoader extends React.Component {
isFullscreen: false,
desktop: false
};
this._handleFullscreenChange = this._handleFullscreenChange.bind(this);
this._handleRequestFullsceen = this._handleRequestFullsceen.bind(this);
this._toggleDesktop = this._toggleDesktop.bind(this);
}
isHidden() {
@ -57,11 +54,11 @@ class PresetsLoader extends React.Component {
screenfull.off("change", this._handleFullscreenChange);
}
_handleFullscreenChange() {
_handleFullscreenChange = () => {
this.setState({ isFullscreen: screenfull.isFullscreen });
}
};
_toggleDesktop() {
_toggleDesktop = () => {
if (this.state.desktop) {
this.props.showWindow(this.props.windowId);
this.setState({ desktop: false });
@ -69,9 +66,9 @@ class PresetsLoader extends React.Component {
this.props.hideWindow(this.props.windowId);
this.setState({ desktop: true });
}
}
};
_handleRequestFullsceen() {
_handleRequestFullsceen = () => {
if (screenfull.enabled) {
if (!screenfull.isFullscreen) {
screenfull.request(this._wrapperNode);
@ -79,7 +76,7 @@ class PresetsLoader extends React.Component {
screenfull.exit();
}
}
}
};
_renderMilkdrop(size) {
const { butterchurn, presets, initialPreset } = this.state;

View file

@ -44,10 +44,9 @@ export default class PlaylistMenu extends React.Component {
constructor(props) {
super(props);
this.state = { selected: false };
this._handleClick = this._handleClick.bind(this);
}
_handleClick(e) {
_handleClick = e => {
const { target } = e;
const { selected } = this.state;
if (selected) {
@ -76,7 +75,7 @@ export default class PlaylistMenu extends React.Component {
});
this.setState({ selected: true });
}
};
render() {
return (

View file

@ -10,12 +10,7 @@ import {
import { getCurrentTrackId, getSkinPlaylistStyle } from "../../selectors";
class TrackCell extends React.Component {
constructor(props) {
super(props);
this._onMouseDown = this._onMouseDown.bind(this);
}
_onMouseDown(e) {
_onMouseDown = e => {
if (e.shiftKey) {
this.props.shiftClick(e);
return;
@ -29,7 +24,7 @@ class TrackCell extends React.Component {
}
this.props.handleMoveClick(e);
}
};
render() {
const {

View file

@ -18,11 +18,6 @@ function getNumberLength(number) {
}
class TrackList extends React.Component {
constructor(props) {
super(props);
this._handleMoveClick = this._handleMoveClick.bind(this);
}
_renderTracks(format) {
return this.props.trackIds.map((id, i) => (
<TrackCell
@ -36,7 +31,7 @@ class TrackList extends React.Component {
));
}
_handleMoveClick(e) {
_handleMoveClick = e => {
if (!this._node) {
return;
}
@ -61,7 +56,7 @@ class TrackList extends React.Component {
window.removeEventListener("mousemove", handleMouseMove);
});
window.addEventListener("mousemove", handleMouseMove);
}
};
render() {
const { tracks, offset } = this.props;

View file

@ -38,12 +38,7 @@ import ScrollBar from "./ScrollBar";
import "../../../css/playlist-window.css";
class PlaylistWindow extends React.Component {
constructor(props) {
super(props);
this._handleDrop = this._handleDrop.bind(this);
}
_handleDrop(e, targetCoords) {
_handleDrop = (e, targetCoords) => {
const top = e.clientY - targetCoords.y;
const atIndex = clamp(
this.props.offset + Math.round((top - 23) / TRACK_HEIGHT),
@ -51,7 +46,7 @@ class PlaylistWindow extends React.Component {
this.props.maxTrackIndex + 1
);
this.props.loadFilesFromReferences(e, atIndex);
}
};
render() {
const {

View file

@ -6,12 +6,7 @@ import {
} from "../constants";
export default class ResizeTarget extends React.Component {
constructor(props) {
super(props);
this.handleMouseDown = this.handleMouseDown.bind(this);
}
handleMouseDown(e) {
handleMouseDown = e => {
// Prevent dragging from highlighting text.
e.preventDefault();
const [width, height] = this.props.currentSize;
@ -42,7 +37,7 @@ export default class ResizeTarget extends React.Component {
window.addEventListener("mouseup", () => {
window.removeEventListener("mousemove", handleMove);
});
}
};
render() {
/* eslint-disable no-unused-vars */

View file

@ -24,17 +24,11 @@ const abuts = (a, b) => {
};
class WindowManager extends React.Component {
constructor(props) {
super(props);
this.handleMouseDown = this.handleMouseDown.bind(this);
this.centerWindows = this.centerWindows.bind(this);
}
componentDidMount() {
this.centerWindows();
}
centerWindows() {
centerWindows = () => {
const { container } = this.props;
const offsetLeft = container.offsetLeft;
@ -80,7 +74,7 @@ class WindowManager extends React.Component {
this.props.updateWindowPositions(newPositions);
}
}
};
movingAndStationaryNodes(key) {
const windows = this.props.windowsInfo.filter(
@ -102,7 +96,7 @@ class WindowManager extends React.Component {
return [moving, stationary];
}
handleMouseDown(key, e) {
handleMouseDown = (key, e) => {
if (!e.target.classList.contains("draggable")) {
return;
}
@ -171,7 +165,7 @@ class WindowManager extends React.Component {
window.addEventListener("mouseup", removeListeners);
window.addEventListener("mousemove", handleMouseMove);
}
};
// Keys for the visible windows
windowKeys() {

View file

@ -48,8 +48,10 @@
"babel": "^6.23.0",
"babel-cli": "^6.14.0",
"babel-core": "^6.21.0",
"babel-eslint": "^8.2.6",
"babel-loader": "^7.1.1",
"babel-plugin-remove-webpack": "^1.1.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.20.2",
"babel-plugin-transform-react-jsx": "^6.24.1",
@ -68,6 +70,7 @@
"eslint": "4.16.0",
"eslint-config-prettier": "^2.3.0",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-no-constructor-bind": "^1.2.1",
"eslint-plugin-prettier": "^2.2.0",
"eslint-plugin-react": "^7.7.0",
"file-loader": "^1.1.5",

138
yarn.lock
View file

@ -2,12 +2,56 @@
# 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-beta.35":
version "7.0.0-beta.47"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27"
dependencies:
"@babel/highlight" "7.0.0-beta.47"
"@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"
dependencies:
"@babel/types" "7.0.0-beta.44"
jsesc "^2.5.1"
lodash "^4.2.0"
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"
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-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"
dependencies:
"@babel/types" "7.0.0-beta.44"
"@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"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^3.0.0"
"@babel/highlight@7.0.0-beta.47":
version "7.0.0-beta.47"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.47.tgz#8fbc83fb2a21f0bd2b95cdbeb238cf9689cad494"
@ -16,6 +60,38 @@
esutils "^2.0.2"
js-tokens "^3.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"
globals "^11.1.0"
invariant "^2.2.0"
lodash "^4.2.0"
"@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"
dependencies:
esutils "^2.0.2"
lodash "^4.2.0"
to-fast-properties "^2.0.0"
"@types/node@*":
version "10.1.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.1.0.tgz#2783ee1b6c47cbd4044f4a233976c1ac5fa9e942"
@ -431,6 +507,17 @@ babel-core@^6.21.0, babel-core@^6.26.0:
slash "^1.0.0"
source-map "^0.5.6"
babel-eslint@^8.2.6:
version "8.2.6"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9"
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"
eslint-visitor-keys "^1.0.0"
babel-generator@^6.18.0, babel-generator@^6.26.0:
version "6.26.1"
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
@ -601,6 +688,10 @@ 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-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-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"
@ -629,6 +720,15 @@ babel-plugin-transform-async-to-generator@^6.22.0:
babel-plugin-syntax-async-functions "^6.8.0"
babel-runtime "^6.22.0"
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-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"
@ -989,6 +1089,10 @@ babel@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel/-/babel-6.23.0.tgz#d0d1e7d803e974765beea3232d4e153c0efb90f4"
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"
@ -2615,6 +2719,12 @@ eslint-plugin-import@^2.7.0:
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
eslint-plugin-no-constructor-bind@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-no-constructor-bind/-/eslint-plugin-no-constructor-bind-1.2.1.tgz#1bb0237465aa90c3e44e0f7507a4d36b7b5153c1"
dependencies:
requireindex "~1.1.0"
eslint-plugin-prettier@^2.2.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7"
@ -2631,7 +2741,7 @@ eslint-plugin-react@^7.7.0:
jsx-ast-utils "^2.0.1"
prop-types "^15.6.0"
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:
@ -3421,6 +3531,10 @@ globals@^11.0.1:
version "11.3.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0"
globals@^11.1.0:
version "11.7.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@ -3940,6 +4054,12 @@ invariant@^2.0.0, invariant@^2.2.2:
dependencies:
loose-envify "^1.0.0"
invariant@^2.2.0:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
dependencies:
loose-envify "^1.0.0"
invariant@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688"
@ -4753,6 +4873,10 @@ 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"
jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
@ -5017,7 +5141,7 @@ lodash@3.x:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10:
lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.2.0:
version "4.17.10"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
@ -6941,6 +7065,10 @@ require-uncached@^1.0.3:
caller-path "^0.1.0"
resolve-from "^1.0.0"
requireindex@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162"
requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@ -7340,7 +7468,7 @@ 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.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
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.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@ -7784,6 +7912,10 @@ 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"
to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"