diff --git a/.eslintrc b/.eslintrc
index 0e5a14b..1ffe2bd 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,148 +1,30 @@
{
- "parser": "babel-eslint",
-
"env": {
- "browser": true,
- "node": true,
- "es6": true
+ "browser": true
},
- "parserOptions": {
- "sourceType": "module",
- "ecmaFeatures": {
- "jsx": true
- }
- },
+ "extends": ["callstack-io"],
- "extends": [
- "prettier",
- "prettier/flowtype",
- "prettier/react"
- ],
-
- "plugins": [
- "babel",
- "flowtype",
- "import",
- "react",
- "react-native",
- "prettier",
- ],
+ "plugins": ["react-native"],
"rules": {
- "constructor-super": "error",
- "no-case-declarations": "error",
- "no-class-assign": "error",
- "no-cond-assign": "error",
- "no-const-assign": "error",
- "no-constant-condition": "error",
- "no-control-regex": "error",
- "no-delete-var": "error",
- "no-dupe-args": "error",
- "no-dupe-class-members": "error",
- "no-dupe-keys": "error",
- "no-duplicate-case": "error",
- "no-empty": "error",
- "no-empty-character-class": "error",
- "no-empty-pattern": "error",
- "no-ex-assign": "error",
- "no-extra-boolean-cast": "error",
- "no-extra-semi": "error",
- "no-fallthrough": "error",
- "no-func-assign": "error",
- "no-global-assign": "error",
- "no-inner-declarations": "error",
- "no-invalid-regexp": "error",
- "no-new-symbol": "error",
- "no-obj-calls": "error",
- "no-octal": "error",
- "no-redeclare": "error",
- "no-regex-spaces": "error",
- "no-self-assign": "error",
- "no-sparse-arrays": "error",
- "no-this-before-super": "error",
- "no-undef": "error",
- "no-unexpected-multiline": "error",
- "no-unreachable": "error",
- "no-unsafe-finally": "error",
- "no-unsafe-negation": "error",
- "no-unused-labels": "error",
- "no-unused-vars": "error",
- "require-yield": "error",
- "use-isnan": "error",
- "valid-typeof": "error",
+ "one-var": "off",
+ "no-multi-assign": "off",
+ "no-nested-ternary": "off",
+ "global-require": "off",
- "babel/new-cap": "off",
- "babel/object-curly-spacing": "off",
- "babel/arrow-parens": "off",
-
- "flowtype/boolean-style": ["error", "boolean"],
"flowtype/define-flow-type": "error",
- "flowtype/no-dupe-keys": "error",
- "flowtype/no-types-missing-file-annotation": "error",
- "flowtype/no-primitive-constructor-types": "error",
"flowtype/no-weak-types": "off",
- "flowtype/require-parameter-type": "off",
- "flowtype/require-return-type": "off",
- "flowtype/require-valid-file-annotation": "error",
"flowtype/require-variable-type": "off",
"flowtype/sort-keys": "off",
"flowtype/type-id-match": "off",
"flowtype/use-flow-type": "error",
"flowtype/valid-syntax": "error",
- "import/no-unresolved": "error",
- "import/named": "error",
- "import/default": "off",
- "import/namespace": "off",
- "import/export": "error",
- "import/no-named-as-default": "off",
- "import/no-named-as-default-member": "off",
- "import/no-deprecated": "off",
"import/no-extraneous-dependencies": "off",
- "import/no-commonjs": "error",
- "import/no-amd": "error",
- "import/no-nodejs-modules": "off",
- "import/imports-first": "error",
- "import/no-duplicates": "error",
- "import/no-namespace": "off",
- "import/extensions": ["error", { "js": "never", "json": "always" }],
- "import/order": "off",
-
- "react/display-name": "off",
- "react/forbid-prop-types": "off",
- "react/no-danger": "error",
- "react/no-deprecated": "error",
- "react/no-did-mount-set-state": "error",
- "react/no-did-update-set-state": "error",
- "react/no-direct-mutation-state": "error",
- "react/no-is-mounted": "error",
- "react/no-multi-comp": "off",
- "react/no-set-state": "off",
- "react/no-string-refs": "error",
- "react/no-unknown-property": "error",
- "react/prefer-es6-class": "error",
- "react/prop-types": "error",
- "react/react-in-jsx-scope": "error",
- "react/require-render-return": "error",
- "react/self-closing-comp": "error",
- "react/sort-comp": "error",
- "react/sort-prop-types": "off",
- "react/jsx-boolean-value": ["error", "never"],
- "react/jsx-handler-names": "off",
- "react/jsx-key": "error",
- "react/jsx-no-bind": "off",
- "react/jsx-no-duplicate-props": "error",
- "react/jsx-no-literals": "off",
- "react/jsx-no-undef": "error",
- "react/jsx-pascal-case": "off",
- "react/jsx-sort-props": "off",
- "react/jsx-uses-react": "error",
- "react/jsx-uses-vars": "error",
+ "import/first": "off",
"react-native/no-unused-styles": "error",
- "react-native/split-platform-components": "off",
-
- "prettier/prettier": ["error", {"trailingComma": "es5", "singleQuote": true}]
+ "react-native/split-platform-components": "off"
}
}
diff --git a/docs/pages/src/Home.js b/docs/pages/src/Home.js
index bfa7983..776911a 100644
--- a/docs/pages/src/Home.js
+++ b/docs/pages/src/Home.js
@@ -131,6 +131,7 @@ export default class Home extends React.Component<{}> {
{...styles(button, secondary)}
href="https://github.com/callstack/react-native-paper"
target="_blank"
+ rel="noopener noreferrer"
>
GitHub
@@ -138,7 +139,11 @@ export default class Home extends React.Component<{}> {
Scan with{' '}
-
+
Expo
{' '}
to try it out
@@ -146,13 +151,19 @@ export default class Home extends React.Component<{}> {
-
+
- {screenshots.map((image, i) =>

)}
+ {// eslint-disable-next-line react/no-array-index-key
+ screenshots.map((image, i) =>

)}
);
diff --git a/example/.eslintrc b/example/.eslintrc
index 5e330ef..32373b5 100644
--- a/example/.eslintrc
+++ b/example/.eslintrc
@@ -6,6 +6,6 @@
},
"rules": {
- "react/prop-types": "off",
+ "react/prop-types": "off"
}
}
diff --git a/example/src/PaperExample.js b/example/src/PaperExample.js
index eb7425e..8f7b43f 100644
--- a/example/src/PaperExample.js
+++ b/example/src/PaperExample.js
@@ -19,13 +19,11 @@ class PaperExample extends React.Component {
style={[styles.container, { backgroundColor: background }]}
contentContainerStyle={styles.content}
>
- {[1, 2, 4, 6, 12].map(i => {
- return (
-
- {i}
-
- );
- })}
+ {[1, 2, 4, 6, 12].map(i => (
+
+ {i}
+
+ ))}
);
}
diff --git a/example/src/TextInputExample.js b/example/src/TextInputExample.js
index 5b67d0a..3eaa3eb 100644
--- a/example/src/TextInputExample.js
+++ b/example/src/TextInputExample.js
@@ -1,7 +1,6 @@
/* @flow */
import * as React from 'react';
-import PropTypes from 'prop-types';
import { ScrollView, StyleSheet } from 'react-native';
import { TextInput, withTheme } from 'react-native-paper';
import type { Theme } from 'react-native-paper/types';
@@ -16,9 +15,6 @@ type State = {
class TextInputExample extends React.Component {
static title = 'TextInput';
- static propTypes = {
- theme: PropTypes.object.isRequired,
- };
state = {
text: '',
diff --git a/package.json b/package.json
index 7e112f7..41e149b 100644
--- a/package.json
+++ b/package.json
@@ -23,14 +23,9 @@
},
"devDependencies": {
"babel-cli": "^6.26.0",
- "babel-eslint": "^8.0.2",
- "eslint": "^4.11.0",
- "eslint-config-prettier": "^2.8.0",
- "eslint-plugin-babel": "^4.1.2",
- "eslint-plugin-flowtype": "^2.39.1",
- "eslint-plugin-import": "^2.8.0",
- "eslint-plugin-prettier": "^2.3.1",
- "eslint-plugin-react": "^7.5.1",
+ "eslint": "^4.18.1",
+ "eslint-config-callstack-io": "^1.1.1",
+ "eslint-plugin-prettier": "^2.1.2",
"eslint-plugin-react-native": "^3.2.0",
"flow-bin": "~0.56.0",
"husky": "^0.14.3",
diff --git a/src/components/Button.js b/src/components/Button.js
index 8e9e1b4..4e77edd 100644
--- a/src/components/Button.js
+++ b/src/components/Button.js
@@ -141,16 +141,12 @@ class Button extends React.Component {
.alpha(0.12)
.rgb()
.string();
+ } else if (buttonColor) {
+ backgroundColor = buttonColor;
+ } else if (primary) {
+ backgroundColor = colors.primary;
} else {
- if (buttonColor) {
- backgroundColor = buttonColor;
- } else {
- if (primary) {
- backgroundColor = colors.primary;
- } else {
- backgroundColor = theme.dark ? '#535354' : white;
- }
- }
+ backgroundColor = theme.dark ? '#535354' : white;
}
} else {
backgroundColor = 'transparent';
@@ -175,20 +171,14 @@ class Button extends React.Component {
.alpha(0.26)
.rgb()
.string();
+ } else if (raised) {
+ textColor = isDark ? white : black;
+ } else if (buttonColor) {
+ textColor = buttonColor;
+ } else if (primary) {
+ textColor = colors.primary;
} else {
- if (raised) {
- textColor = isDark ? white : black;
- } else {
- if (buttonColor) {
- textColor = buttonColor;
- } else {
- if (primary) {
- textColor = colors.primary;
- } else {
- textColor = theme.dark ? white : black;
- }
- }
- }
+ textColor = theme.dark ? white : black;
}
const rippleColor = color(textColor)
diff --git a/src/components/Card/CardActions.js b/src/components/Card/CardActions.js
index 464de04..1b57700 100644
--- a/src/components/Card/CardActions.js
+++ b/src/components/Card/CardActions.js
@@ -26,23 +26,21 @@ type Props = {
* );
* ```
*/
-const CardActions = (props: Props) => {
- return (
-
- {React.Children.map(
- props.children,
- child =>
- typeof child === 'object' && child !== null
- ? /* $FlowFixMe */
- React.cloneElement(child, {
- /* $FlowFixMe */
- compact: child.props.compact !== false,
- })
- : child
- )}
-
- );
-};
+const CardActions = (props: Props) => (
+
+ {React.Children.map(
+ props.children,
+ child =>
+ typeof child === 'object' && child !== null
+ ? /* $FlowFixMe */
+ React.cloneElement(child, {
+ /* $FlowFixMe */
+ compact: child.props.compact !== false,
+ })
+ : child
+ )}
+
+);
const styles = StyleSheet.create({
container: {
diff --git a/src/components/Card/CardContent.js b/src/components/Card/CardContent.js
index 144e05f..44d2ddd 100644
--- a/src/components/Card/CardContent.js
+++ b/src/components/Card/CardContent.js
@@ -47,26 +47,22 @@ const CardContent = (props: Props) => {
if ((prev === cover && next === cover) || total === 1) {
contentStyle = styles.only;
- } else {
- if (index === 0) {
- if (next === cover) {
- contentStyle = styles.only;
- } else {
- contentStyle = styles.first;
- }
- } else if (typeof total === 'number' && index === total - 1) {
- if (prev === cover) {
- contentStyle = styles.only;
- } else {
- contentStyle = styles.last;
- }
+ } else if (index === 0) {
+ if (next === cover) {
+ contentStyle = styles.only;
} else {
- if (prev === cover) {
- contentStyle = styles.first;
- } else if (next === cover) {
- contentStyle = styles.last;
- }
+ contentStyle = styles.first;
}
+ } else if (typeof total === 'number' && index === total - 1) {
+ if (prev === cover) {
+ contentStyle = styles.only;
+ } else {
+ contentStyle = styles.last;
+ }
+ } else if (prev === cover) {
+ contentStyle = styles.first;
+ } else if (next === cover) {
+ contentStyle = styles.last;
}
return ;
diff --git a/src/components/Card/CardCover.js b/src/components/Card/CardCover.js
index 99ac743..4690533 100644
--- a/src/components/Card/CardCover.js
+++ b/src/components/Card/CardCover.js
@@ -51,12 +51,10 @@ const CardCover = (props: Props) => {
borderTopRightRadius: roundness,
};
}
- } else {
- if (typeof total === 'number' && index === total - 1) {
- coverStyle = {
- borderBottomLeftRadius: roundness,
- };
- }
+ } else if (typeof total === 'number' && index === total - 1) {
+ coverStyle = {
+ borderBottomLeftRadius: roundness,
+ };
}
return (
diff --git a/src/components/Dialog/Dialog.js b/src/components/Dialog/Dialog.js
index 3e40c73..87a5b6f 100644
--- a/src/components/Dialog/Dialog.js
+++ b/src/components/Dialog/Dialog.js
@@ -118,9 +118,8 @@ class Dialog extends React.Component {
return React.cloneElement(child, {
style: { paddingTop: 24 },
});
- } else {
- return child;
}
+ return child;
});
}
return (
diff --git a/src/components/Dialog/DialogActions.js b/src/components/Dialog/DialogActions.js
index b10f290..af67170 100644
--- a/src/components/Dialog/DialogActions.js
+++ b/src/components/Dialog/DialogActions.js
@@ -38,22 +38,20 @@ type Props = {
* }
* ```
*/
-const DialogActions = (props: Props) => {
- return (
-
- {React.Children.map(
- props.children,
- child =>
- typeof child === 'object' && child !== null
- ? /* $FlowFixMe */
- React.cloneElement(child, {
- compact: true,
- })
- : child
- )}
-
- );
-};
+const DialogActions = (props: Props) => (
+
+ {React.Children.map(
+ props.children,
+ child =>
+ typeof child === 'object' && child !== null
+ ? /* $FlowFixMe */
+ React.cloneElement(child, {
+ compact: true,
+ })
+ : child
+ )}
+
+);
const styles = StyleSheet.create({
container: {
diff --git a/src/components/Icon.js b/src/components/Icon.js
index 7954df3..be30b0c 100644
--- a/src/components/Icon.js
+++ b/src/components/Icon.js
@@ -19,7 +19,8 @@ const Icon = ({ name, ...props }: Props) => {
} else if (
(typeof name === 'object' &&
name !== null &&
- (name.hasOwnProperty('uri') && typeof name.uri === 'string')) ||
+ (Object.prototype.hasOwnProperty.call(name, 'uri') &&
+ typeof name.uri === 'string')) ||
typeof name === 'number'
) {
return (
@@ -36,23 +37,22 @@ const Icon = ({ name, ...props }: Props) => {
]}
/>
);
- } else {
- return (
-
- {(name: any)}
-
- );
}
+ return (
+
+ {(name: any)}
+
+ );
};
export default Icon;
diff --git a/src/components/Portal/PortalHost.js b/src/components/Portal/PortalHost.js
index 2e0f16f..fbf58e8 100644
--- a/src/components/Portal/PortalHost.js
+++ b/src/components/Portal/PortalHost.js
@@ -86,10 +86,9 @@ export default class Portals extends React.Component {
}
return g;
});
- } else {
- group = { position, items: [children] };
- return [...acc, group];
}
+ group = { position, items: [children] };
+ return [...acc, group];
}, [])
.map(({ position, items }) => (
diff --git a/src/components/ProgressBar.js b/src/components/ProgressBar.js
index fc0c00d..33069e0 100644
--- a/src/components/ProgressBar.js
+++ b/src/components/ProgressBar.js
@@ -7,9 +7,9 @@ import {
ProgressViewIOS,
ProgressBarAndroid,
} from 'react-native';
+import setColor from 'color';
import withTheme from '../core/withTheme';
import type { Theme } from '../types';
-import setColor from 'color';
type Props = {
/**
diff --git a/src/components/Switch.js b/src/components/Switch.js
index 8582410..86ddc37 100644
--- a/src/components/Switch.js
+++ b/src/components/Switch.js
@@ -3,8 +3,8 @@ import * as React from 'react';
import { grey400, grey800, grey50, white, black } from '../styles/colors';
import { Switch as NativeSwitch, Platform } from 'react-native';
-import withTheme from '../core/withTheme';
import setColor from 'color';
+import withTheme from '../core/withTheme';
import type { Theme } from '../types';
type Props = {
diff --git a/src/components/TextInput.js b/src/components/TextInput.js
index e9d3339..76bbaa8 100644
--- a/src/components/TextInput.js
+++ b/src/components/TextInput.js
@@ -151,7 +151,9 @@ class TextInput extends React.Component {
_timer: any;
_root: any;
- _setRef: any = (c: Object) => (this._root = c);
+ _setRef: any = (c: Object) => {
+ this._root = c;
+ };
_animateFocus = () => {
Animated.timing(this.state.focused, {
diff --git a/src/components/TouchableIcon.js b/src/components/TouchableIcon.js
index 8fab0e1..750f3c4 100644
--- a/src/components/TouchableIcon.js
+++ b/src/components/TouchableIcon.js
@@ -13,14 +13,12 @@ type Props = {
onPress: Function,
};
-const TouchableIcon = ({ name, iconStyle, onPress, ...rest }: Props) => {
- return (
-
-
-
-
-
- );
-};
+const TouchableIcon = ({ name, iconStyle, onPress, ...rest }: Props) => (
+
+
+
+
+
+);
export default TouchableIcon;
diff --git a/src/components/Typography/Text.js b/src/components/Typography/Text.js
index 799de39..1aa8789 100644
--- a/src/components/Typography/Text.js
+++ b/src/components/Typography/Text.js
@@ -31,7 +31,9 @@ class Text extends React.Component {
return (
(this._root = c)}
+ ref={c => {
+ this._root = c;
+ }}
style={[
{ fontFamily: theme.fonts.regular, color: theme.colors.text },
style,
diff --git a/src/core/withTheme.js b/src/core/withTheme.js
index 9d67ab6..ea15006 100644
--- a/src/core/withTheme.js
+++ b/src/core/withTheme.js
@@ -68,13 +68,10 @@ export default function withTheme(
this._subscription && this._subscription.remove();
}
- _merge = (theme: Theme, props: *) => {
+ _merge = (theme: Theme, props: *) =>
// Only merge if both theme from context and props are present
// Avoiding unnecessary merge allows us to check equality by reference
- return theme && props.theme
- ? merge(theme, props.theme)
- : theme || props.theme;
- };
+ theme && props.theme ? merge(theme, props.theme) : theme || props.theme;
_subscription: { remove: Function };
_root: any;
@@ -88,7 +85,9 @@ export default function withTheme(
element = (
(this._root = c)}
+ ref={c => {
+ this._root = c;
+ }}
theme={this.state.theme}
/>
);
diff --git a/yarn.lock b/yarn.lock
index 5588bc8..abb6390 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,53 +2,70 @@
# yarn lockfile v1
-"@babel/code-frame@7.0.0-beta.32", "@babel/code-frame@^7.0.0-beta.31":
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz#04f231b8ec70370df830d9926ce0f5add074ec4c"
+"@babel/code-frame@7.0.0-beta.40", "@babel/code-frame@^7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6"
+ dependencies:
+ "@babel/highlight" "7.0.0-beta.40"
+
+"@babel/generator@7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.40.tgz#ab61f9556f4f71dbd1138949c795bb9a21e302ea"
+ dependencies:
+ "@babel/types" "7.0.0-beta.40"
+ 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.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.40.tgz#9d033341ab16517f40d43a73f2d81fc431ccd7b6"
+ dependencies:
+ "@babel/helper-get-function-arity" "7.0.0-beta.40"
+ "@babel/template" "7.0.0-beta.40"
+ "@babel/types" "7.0.0-beta.40"
+
+"@babel/helper-get-function-arity@7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.40.tgz#ac0419cf067b0ec16453e1274f03878195791c6e"
+ dependencies:
+ "@babel/types" "7.0.0-beta.40"
+
+"@babel/highlight@7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^3.0.0"
-"@babel/helper-function-name@7.0.0-beta.32":
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.32.tgz#6161af4419f1b4e3ed2d28c0c79c160e218be1f3"
+"@babel/template@7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.40.tgz#034988c6424eb5c3268fe6a608626de1f4410fc8"
dependencies:
- "@babel/helper-get-function-arity" "7.0.0-beta.32"
- "@babel/template" "7.0.0-beta.32"
- "@babel/types" "7.0.0-beta.32"
-
-"@babel/helper-get-function-arity@7.0.0-beta.32":
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.32.tgz#93721a99db3757de575a83bab7c453299abca568"
- dependencies:
- "@babel/types" "7.0.0-beta.32"
-
-"@babel/template@7.0.0-beta.32":
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.32.tgz#e1d9fdbd2a7bcf128f2f920744a67dab18072495"
- dependencies:
- "@babel/code-frame" "7.0.0-beta.32"
- "@babel/types" "7.0.0-beta.32"
- babylon "7.0.0-beta.32"
+ "@babel/code-frame" "7.0.0-beta.40"
+ "@babel/types" "7.0.0-beta.40"
+ babylon "7.0.0-beta.40"
lodash "^4.2.0"
-"@babel/traverse@^7.0.0-beta.31":
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.32.tgz#b78b754c6e1af3360626183738e4c7a05951bc99"
+"@babel/traverse@^7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.40.tgz#d140e449b2e093ef9fe1a2eecc28421ffb4e521e"
dependencies:
- "@babel/code-frame" "7.0.0-beta.32"
- "@babel/helper-function-name" "7.0.0-beta.32"
- "@babel/types" "7.0.0-beta.32"
- babylon "7.0.0-beta.32"
+ "@babel/code-frame" "7.0.0-beta.40"
+ "@babel/generator" "7.0.0-beta.40"
+ "@babel/helper-function-name" "7.0.0-beta.40"
+ "@babel/types" "7.0.0-beta.40"
+ babylon "7.0.0-beta.40"
debug "^3.0.1"
- globals "^10.0.0"
+ globals "^11.1.0"
invariant "^2.2.0"
lodash "^4.2.0"
-"@babel/types@7.0.0-beta.32", "@babel/types@^7.0.0-beta.31":
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.32.tgz#c317d0ecc89297b80bbcb2f50608e31f6452a5ff"
+"@babel/types@7.0.0-beta.40", "@babel/types@^7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.40.tgz#25c3d7aae14126abe05fcb098c65a66b6d6b8c14"
dependencies:
esutils "^2.0.2"
lodash "^4.2.0"
@@ -169,6 +186,13 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
+aria-query@^0.7.0:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e"
+ 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"
@@ -240,6 +264,10 @@ assert-plus@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+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"
+
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
@@ -266,6 +294,12 @@ aws4@^1.2.1, aws4@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+axobject-query@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0"
+ 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"
@@ -327,14 +361,16 @@ babel-core@^6.24.1, babel-core@^6.26.0, babel-core@^6.7.2:
slash "^1.0.0"
source-map "^0.5.6"
-babel-eslint@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.0.2.tgz#e44fb9a037d749486071d52d65312f5c20aa7530"
+babel-eslint@^8.2.1:
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b"
dependencies:
- "@babel/code-frame" "^7.0.0-beta.31"
- "@babel/traverse" "^7.0.0-beta.31"
- "@babel/types" "^7.0.0-beta.31"
- babylon "^7.0.0-beta.31"
+ "@babel/code-frame" "^7.0.0-beta.40"
+ "@babel/traverse" "^7.0.0-beta.40"
+ "@babel/types" "^7.0.0-beta.40"
+ babylon "^7.0.0-beta.40"
+ eslint-scope "~3.7.1"
+ eslint-visitor-keys "^1.0.0"
babel-generator@^6.24.1:
version "6.25.0"
@@ -887,9 +923,9 @@ babel-types@^6.24.1:
lodash "^4.2.0"
to-fast-properties "^1.0.1"
-babylon@7.0.0-beta.32, babylon@^7.0.0-beta.31:
- version "7.0.0-beta.32"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.32.tgz#e9033cb077f64d6895f4125968b37dc0a8c3bc6e"
+babylon@7.0.0-beta.40, babylon@^7.0.0-beta.40:
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a"
babylon@^6.17.2, babylon@^6.18.0:
version "6.18.0"
@@ -1336,6 +1372,10 @@ csurf@~1.8.3:
csrf "~3.0.0"
http-errors "~1.3.1"
+damerau-levenshtein@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
+
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -1364,6 +1404,12 @@ debug@^3.0.1:
dependencies:
ms "2.0.0"
+debug@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ dependencies:
+ ms "2.0.0"
+
debug@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
@@ -1449,6 +1495,12 @@ doctrine@^2.0.0:
esutils "^2.0.2"
isarray "^1.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"
+
dom-walk@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
@@ -1469,6 +1521,10 @@ ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+emoji-regex@^6.1.0:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
+
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
@@ -1532,9 +1588,36 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-eslint-config-prettier@^2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.8.0.tgz#929861a11de0249677686eba908118175d1a26bc"
+eslint-config-airbnb-base@^11.3.0:
+ version "11.3.2"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
+ dependencies:
+ eslint-restricted-globals "^0.1.1"
+
+eslint-config-airbnb@^15.1.0:
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz#fd432965a906e30139001ba830f58f73aeddae8e"
+ dependencies:
+ eslint-config-airbnb-base "^11.3.0"
+
+eslint-config-callstack-io@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-config-callstack-io/-/eslint-config-callstack-io-1.1.1.tgz#3bd46d2ce8f99abf940e2189142dd6c283431ade"
+ dependencies:
+ babel-eslint "^8.2.1"
+ eslint-config-airbnb "^15.1.0"
+ eslint-config-prettier "^2.6.0"
+ eslint-plugin-flowtype "^2.35.0"
+ eslint-plugin-import "^2.7.0"
+ eslint-plugin-jest "^20.0.3"
+ eslint-plugin-jsx-a11y "^5.1.1"
+ eslint-plugin-prettier "^2.1.2"
+ eslint-plugin-react "^7.5.1"
+ prettier "^1.10.2"
+
+eslint-config-prettier@^2.6.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3"
dependencies:
get-stdin "^5.0.1"
@@ -1552,19 +1635,15 @@ eslint-module-utils@^2.1.1:
debug "^2.6.8"
pkg-dir "^1.0.0"
-eslint-plugin-babel@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz#79202a0e35757dd92780919b2336f1fa2fe53c1e"
-
-eslint-plugin-flowtype@^2.39.1:
- version "2.39.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz#b5624622a0388bcd969f4351131232dcb9649cd5"
+eslint-plugin-flowtype@^2.35.0:
+ version "2.46.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.46.1.tgz#c4f81d580cd89c82bc3a85a1ccf4ae3a915143a4"
dependencies:
lodash "^4.15.0"
-eslint-plugin-import@^2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894"
+eslint-plugin-import@^2.7.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169"
dependencies:
builtin-modules "^1.1.1"
contains-path "^0.1.0"
@@ -1573,13 +1652,29 @@ eslint-plugin-import@^2.8.0:
eslint-import-resolver-node "^0.3.1"
eslint-module-utils "^2.1.1"
has "^1.0.1"
- lodash.cond "^4.3.0"
+ lodash "^4.17.4"
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
-eslint-plugin-prettier@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.3.1.tgz#e7a746c67e716f335274b88295a9ead9f544e44d"
+eslint-plugin-jest@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-20.0.3.tgz#ec15eba6ac0ab44a67ebf6e02672ca9d7e7cba29"
+
+eslint-plugin-jsx-a11y@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1"
+ dependencies:
+ aria-query "^0.7.0"
+ array-includes "^3.0.3"
+ ast-types-flow "0.0.7"
+ axobject-query "^0.1.0"
+ damerau-levenshtein "^1.0.0"
+ emoji-regex "^6.1.0"
+ jsx-ast-utils "^1.4.0"
+
+eslint-plugin-prettier@^2.1.2:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7"
dependencies:
fast-diff "^1.1.1"
jest-docblock "^21.0.0"
@@ -1597,33 +1692,41 @@ eslint-plugin-react@^7.5.1:
jsx-ast-utils "^2.0.0"
prop-types "^15.6.0"
-eslint-scope@^3.7.1:
+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"
+
+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@^4.11.0:
- version "4.11.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.11.0.tgz#39a8c82bc0a3783adf5a39fa27fdd9d36fac9a34"
+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.18.1:
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.1.tgz#b9138440cb1e98b2f44a0d578c6ecf8eae6150b0"
dependencies:
ajv "^5.3.0"
babel-code-frame "^6.22.0"
chalk "^2.1.0"
concat-stream "^1.6.0"
cross-spawn "^5.1.0"
- debug "^3.0.1"
- doctrine "^2.0.0"
+ debug "^3.1.0"
+ doctrine "^2.1.0"
eslint-scope "^3.7.1"
+ eslint-visitor-keys "^1.0.0"
espree "^3.5.2"
esquery "^1.0.0"
- estraverse "^4.2.0"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
- globals "^9.17.0"
+ globals "^11.0.1"
ignore "^3.3.3"
imurmurhash "^0.1.4"
inquirer "^3.0.6"
@@ -1670,7 +1773,7 @@ esrecurse@^4.1.0:
estraverse "^4.1.0"
object-assign "^4.0.1"
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+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"
@@ -2038,11 +2141,11 @@ global@^4.3.0:
min-document "^2.19.0"
process "~0.5.1"
-globals@^10.0.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-10.1.0.tgz#4425a1881be0d336b4a823a82a7be725d5dd987c"
+globals@^11.0.1, globals@^11.1.0:
+ version "11.3.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0"
-globals@^9.0.0, globals@^9.17.0, globals@^9.18.0:
+globals@^9.0.0, globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -2501,6 +2604,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"
@@ -2554,6 +2661,10 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
+jsx-ast-utils@^1.4.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
+
jsx-ast-utils@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
@@ -2647,10 +2758,6 @@ lodash._root@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
-lodash.cond@^4.3.0:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
-
lodash.escape@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
@@ -3279,6 +3386,10 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+prettier@^1.10.2:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93"
+
prettier@^1.8.2:
version "1.8.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.8.2.tgz#bff83e7fd573933c607875e5ba3abbdffb96aeb8"