diff --git a/.flowconfig b/.flowconfig
new file mode 100644
index 0000000..e69de29
diff --git a/package.json b/package.json
index 98a610b..0f4982f 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"eslint": "^3.8.1",
"eslint-plugin-babel": "^4.0.1",
"eslint-plugin-react": "^6.4.1",
+ "flow-bin": "^0.40.0",
"koa": "^1.2.4",
"mocha": "^3.2.0",
"node-fetch": "^1.6.3",
diff --git a/src/constants.js b/src/constants.js
index bf64a70..b80f741 100644
--- a/src/constants.js
+++ b/src/constants.js
@@ -1 +1,2 @@
+// @flow
export const __REACT_PREPARE__ = '@__REACT_PREPARE__@';
diff --git a/src/dispatched.js b/src/dispatched.js
index b8fcc2c..2d2f0a8 100644
--- a/src/dispatched.js
+++ b/src/dispatched.js
@@ -1,3 +1,4 @@
+// @flow
import { PropTypes } from 'react';
import prepared from './prepared';
@@ -6,8 +7,18 @@ const storeShape = PropTypes.shape({
dispatch: PropTypes.func.isRequired,
});
-const dispatched = (prepareUsingDispatch, opts = {}) => (OriginalComponent) => {
- const prepare = (props, { store: { dispatch } }) => prepareUsingDispatch(props, dispatch);
+type Opts = {
+ componentDidMount?: boolean,
+ componentWillReceiveProps?: boolean,
+ contextTypes?: Object,
+ pure?: boolean,
+};
+
+const dispatched = (prepareUsingDispatch: Function, opts: Opts = {}) => (
+ OriginalComponent: Function,
+) => {
+ const prepare = (props, { store: { dispatch } }) =>
+ prepareUsingDispatch(props, dispatch);
const contextTypes = Object.assign(
{},
opts && opts.contextTypes ? opts.contextTypes : {},
diff --git a/src/index.js b/src/index.js
index 346a537..6e33cb3 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,11 +1,8 @@
+// @flow
import dispatched from './dispatched';
import prepare from './prepare';
import prepared from './prepared';
-export {
- dispatched,
- prepare,
- prepared,
-};
+export { dispatched, prepare, prepared };
export default prepare;
diff --git a/src/prepare.js b/src/prepare.js
index 7354099..ac1c7bb 100644
--- a/src/prepare.js
+++ b/src/prepare.js
@@ -1,29 +1,36 @@
+// @flow
import React from 'react';
import isReactCompositeComponent from './utils/isReactCompositeComponent';
import isThenable from './utils/isThenable';
import { isPrepared, getPrepare } from './prepared';
-function createCompositeElementInstance({ type: CompositeComponent, props }, context) {
+function createCompositeElementInstance(
+ { type: CompositeComponent, props },
+ context,
+) {
const instance = new CompositeComponent(props, context);
- if(instance.componentWillMount) {
+ if (instance.componentWillMount) {
instance.componentWillMount();
}
return instance;
}
function renderCompositeElementInstance(instance, context = {}) {
- const childContext = Object.assign({}, context, instance.getChildContext ? instance.getChildContext() : {});
+ const childContext = Object.assign(
+ {},
+ context,
+ instance.getChildContext ? instance.getChildContext() : {},
+ );
return [instance.render(), childContext];
}
-function disposeOfCompositeElementInstance() {
-}
+function disposeOfCompositeElementInstance() {}
async function prepareCompositeElement({ type, props }, context) {
- if(isPrepared(type)) {
+ if (isPrepared(type)) {
const p = getPrepare(type)(props, context);
- if(isThenable(p)) {
+ if (isThenable(p)) {
await p;
}
}
@@ -31,31 +38,32 @@ async function prepareCompositeElement({ type, props }, context) {
try {
instance = createCompositeElementInstance({ type, props }, context);
return renderCompositeElementInstance(instance, context);
- }
- finally {
- if(instance !== null) {
+ } finally {
+ if (instance !== null) {
disposeOfCompositeElementInstance(instance);
}
}
}
async function prepareElement(element, context) {
- if(element === null || typeof element !== 'object') {
+ if (element === null || typeof element !== 'object') {
return [null, context];
}
const { type, props } = element;
- if(typeof type === 'string') {
+ if (typeof type === 'string') {
return [props.children, context];
}
- if(!isReactCompositeComponent(type)) {
+ if (!isReactCompositeComponent(type)) {
return [type(props), context];
}
return await prepareCompositeElement(element, context);
}
-const prepare = async (element, context = {}) => {
+const prepare = async (element: any, context: Object = {}) => {
const [children, childContext] = await prepareElement(element, context);
- await Promise.all(React.Children.toArray(children).map((child) => prepare(child, childContext)));
+ await Promise.all(
+ React.Children.toArray(children).map(child => prepare(child, childContext)),
+ );
};
export default prepare;
diff --git a/src/prepared.js b/src/prepared.js
index 908eb56..caa9eeb 100644
--- a/src/prepared.js
+++ b/src/prepared.js
@@ -1,13 +1,17 @@
+// @flow weak
import React, { PureComponent, Component } from 'react';
import { __REACT_PREPARE__ } from './constants';
-const prepared = (prepare, {
- pure = true,
- componentDidMount = true,
- componentWillReceiveProps = true,
- contextTypes = {},
-} = {}) => (OriginalComponent) => {
+const prepared = (
+ prepare,
+ {
+ pure = true,
+ componentDidMount = true,
+ componentWillReceiveProps = true,
+ contextTypes = {},
+ } = {},
+) => OriginalComponent => {
const { displayName } = OriginalComponent;
class PreparedComponent extends (pure ? PureComponent : Component) {
static displayName = `PreparedComponent${displayName ? `(${displayName})` : ''}`;
@@ -16,13 +20,13 @@ const prepared = (prepare, {
static contextTypes = contextTypes;
componentDidMount() {
- if(componentDidMount) {
+ if (componentDidMount) {
prepare(this.props, this.context);
}
}
componentWillReceiveProps(nextProps, nextContext) {
- if(componentWillReceiveProps) {
+ if (componentWillReceiveProps) {
prepare(nextProps, nextContext);
}
}
@@ -31,6 +35,7 @@ const prepared = (prepare, {
return ;
}
}
+ // $FlowFixMe
PreparedComponent[__REACT_PREPARE__] = prepare.bind(null);
return PreparedComponent;
};
diff --git a/src/tests/ReactLifeCycle.spec.js b/src/tests/ReactLifeCycle.spec.js
index 8279f46..10ee96d 100644
--- a/src/tests/ReactLifeCycle.spec.js
+++ b/src/tests/ReactLifeCycle.spec.js
@@ -1,3 +1,4 @@
+// @flow
const { describe, it } = global;
import React, { Component, PropTypes } from 'react';
import { renderToString } from 'react-dom/server';
@@ -29,20 +30,30 @@ describe('React lifecycle methods', () => {
it('renderToString calls #componentWillMount()', () => {
const spyForComponentWillMount = sinon.spy();
const spyForComponentWillUnmount = () => void 0;
- renderToString();
- t.assert(spyForComponentWillMount.calledOnce, '#componentWillMount() has been called once');
+ renderToString(
+ ,
+ );
+ t.assert(
+ spyForComponentWillMount.calledOnce,
+ '#componentWillMount() has been called once',
+ );
});
- it('renderToString doesn\'t call #componentWillUnmount()', () => {
+ it("renderToString doesn't call #componentWillUnmount()", () => {
const spyForComponentWillMount = () => void 0;
const spyForComponentWillUnmount = sinon.spy();
- renderToString();
- t.assert(spyForComponentWillUnmount.callCount === 0, '#componentWillUnmount() has not been called');
+ renderToString(
+ ,
+ );
+ t.assert(
+ spyForComponentWillUnmount.callCount === 0,
+ '#componentWillUnmount() has not been called',
+ );
});
});
diff --git a/src/tests/dispatched.spec.js b/src/tests/dispatched.spec.js
index e2b7b4f..0bd231f 100644
--- a/src/tests/dispatched.spec.js
+++ b/src/tests/dispatched.spec.js
@@ -1,3 +1,4 @@
+// @flow
const { describe, it } = global;
import url from 'url';
import t from 'tcomb';
@@ -19,7 +20,6 @@ const HTTP_STATUS_OK_BOUNDS = {
describe('dispatched', () => {
it('Real-world-like example using redux, koa, et. al', async () => {
-
// Create a fake echo server that replies with the pathname, preceded by 'echo '.
const echoServer = koa().use(function* echo(next) {
this.response.body = `echo ${this.request.path}`;
@@ -39,7 +39,7 @@ describe('dispatched', () => {
const FETCH_SUCCEEDED = 'FETCH_SUCCEEDED';
const rootReducer = (state = {}, { type, ...payload }) => {
- if(type === FETCH_STARTED) {
+ if (type === FETCH_STARTED) {
const { into } = payload;
return Object.assign({}, state, {
[into]: {
@@ -47,7 +47,7 @@ describe('dispatched', () => {
},
});
}
- if(type === FETCH_FAILED) {
+ if (type === FETCH_FAILED) {
const { into, statusCode, err } = payload;
return Object.assign({}, state, {
[into]: {
@@ -57,7 +57,7 @@ describe('dispatched', () => {
},
});
}
- if(type === FETCH_SUCCEEDED) {
+ if (type === FETCH_SUCCEEDED) {
const { into, value } = payload;
return Object.assign({}, state, {
[into]: {
@@ -70,15 +70,10 @@ describe('dispatched', () => {
};
// redux store used by the app
- const store = createStore(
- rootReducer,
- applyMiddleware(
- thunkMiddleware,
- ),
- );
+ const store = createStore(rootReducer, applyMiddleware(thunkMiddleware));
// async action creator
- const fetchInto = (pathname, into) => async (dispatch) => {
+ const fetchInto = (pathname, into) => async dispatch => {
dispatch({
type: FETCH_STARTED,
into,
@@ -86,7 +81,10 @@ describe('dispatched', () => {
const href = url.format(Object.assign({}, baseUrlObj, { pathname }));
try {
const res = await fetch(href);
- if(res.status < HTTP_STATUS_OK_BOUNDS.min || res.status >= HTTP_STATUS_OK_BOUNDS.max) {
+ if (
+ res.status < HTTP_STATUS_OK_BOUNDS.min ||
+ res.status >= HTTP_STATUS_OK_BOUNDS.max
+ ) {
dispatch({
type: FETCH_FAILED,
into,
@@ -101,8 +99,7 @@ describe('dispatched', () => {
value: await res.text(),
});
return;
- }
- catch(err) {
+ } catch (err) {
dispatch({
type: FETCH_FAILED,
into,
@@ -113,14 +110,14 @@ describe('dispatched', () => {
};
const OriginalEchoAlpha = ({ alpha }) => {
- if(typeof alpha !== 'object') {
+ if (typeof alpha !== 'object') {
return
???
;
}
const { status, err, value } = alpha;
- if(status === FETCH_STARTED) {
+ if (status === FETCH_STARTED) {
return ...
;
}
- if(status === FETCH_FAILED) {
+ if (status === FETCH_FAILED) {
return Error fetching beta (Reason: {err})
;
}
return {value}
;
@@ -129,19 +126,22 @@ describe('dispatched', () => {
alpha: PropTypes.object,
};
- const ConnectedEchoAlpha = connect(({ alpha }) => ({ alpha }))(OriginalEchoAlpha);
+ const ConnectedEchoAlpha = connect(({ alpha }) => ({ alpha }))(
+ OriginalEchoAlpha,
+ );
- const EchoAlpha = dispatched(({ value }, dispatch) => dispatch(fetchInto(value, 'alpha')))(ConnectedEchoAlpha);
+ const EchoAlpha = dispatched(({ value }, dispatch) =>
+ dispatch(fetchInto(value, 'alpha')))(ConnectedEchoAlpha);
const OriginalEchoBeta = ({ beta }) => {
- if(typeof beta !== 'object') {
+ if (typeof beta !== 'object') {
return ???
;
}
const { status, err, value } = beta;
- if(status === FETCH_STARTED) {
+ if (status === FETCH_STARTED) {
return ...
;
}
- if(status === FETCH_FAILED) {
+ if (status === FETCH_FAILED) {
return Error fetching beta (Reason: {err})
;
}
return {value}
;
@@ -150,22 +150,30 @@ describe('dispatched', () => {
beta: PropTypes.object,
};
- const ConnectedEchoBeta = connect(({ beta }) => ({ beta }))(OriginalEchoBeta);
+ const ConnectedEchoBeta = connect(({ beta }) => ({ beta }))(
+ OriginalEchoBeta,
+ );
- const EchoBeta = dispatched(({ value }, dispatch) => dispatch(fetchInto(value, 'beta')))(ConnectedEchoBeta);
+ const EchoBeta = dispatched(({ value }, dispatch) =>
+ dispatch(fetchInto(value, 'beta')))(ConnectedEchoBeta);
- const App = () => ;
+ const App = () => (
+
+ );
const app = ;
await prepare(app);
const html = renderToStaticMarkup(app);
- t.assert(html === '', 'renders correct html');
- }
- finally {
+ t.assert(
+ html ===
+ '',
+ 'renders correct html',
+ );
+ } finally {
echoHttpServer.close();
}
});
diff --git a/src/tests/isReactCompositeComponent.spec.js b/src/tests/isReactCompositeComponent.spec.js
index 2ba1a97..61e0532 100644
--- a/src/tests/isReactCompositeComponent.spec.js
+++ b/src/tests/isReactCompositeComponent.spec.js
@@ -1,3 +1,4 @@
+// @flow
const { describe, it } = global;
import t from 'tcomb';
import React from 'react';
@@ -26,7 +27,10 @@ describe('isReactCompositeComponent', () => {
it('should not match functional component', () => {
const C = () => ;
- t.assert(isReactCompositeComponent(C) === false, 'not match functional component');
+ t.assert(
+ isReactCompositeComponent(C) === false,
+ 'not match functional component',
+ );
});
it('should match redux Provider', () => {
diff --git a/src/tests/isThenable.spec.js b/src/tests/isThenable.spec.js
index 82a054d..f3cb076 100644
--- a/src/tests/isThenable.spec.js
+++ b/src/tests/isThenable.spec.js
@@ -1,3 +1,4 @@
+// @flow
const { describe, it } = global;
import t from 'tcomb';
diff --git a/src/tests/prepare.spec.js b/src/tests/prepare.spec.js
index 6c069e1..2843654 100644
--- a/src/tests/prepare.spec.js
+++ b/src/tests/prepare.spec.js
@@ -1,3 +1,4 @@
+// @flow
const { describe, it } = global;
import t from 'tcomb';
import sinon from 'sinon';
@@ -15,18 +16,24 @@ describe('prepare', () => {
await doAsyncSideEffect(text);
});
const App = prepared(prepareUsingProps)(({ text }) => {text}
);
- await prepare();
- t.assert(prepareUsingProps.calledOnce, 'prepareUsingProps has been called exactly once');
- t.assert(equal(
- prepareUsingProps.getCall(0).args,
- [{ text: 'foo' }, {}],
- ), 'prepareUsingProps has been called with correct arguments');
- t.assert(doAsyncSideEffect.calledOnce, 'doAsyncSideEffect has been called exactly once');
- t.assert(equal(
- doAsyncSideEffect.getCall(0).args,
- ['foo'],
- ), 'doAsyncSideEffect has been called with correct arguments');
- const html = renderToStaticMarkup();
+ await prepare();
+ t.assert(
+ prepareUsingProps.calledOnce,
+ 'prepareUsingProps has been called exactly once',
+ );
+ t.assert(
+ equal(prepareUsingProps.getCall(0).args, [{ text: 'foo' }, {}]),
+ 'prepareUsingProps has been called with correct arguments',
+ );
+ t.assert(
+ doAsyncSideEffect.calledOnce,
+ 'doAsyncSideEffect has been called exactly once',
+ );
+ t.assert(
+ equal(doAsyncSideEffect.getCall(0).args, ['foo']),
+ 'doAsyncSideEffect has been called with correct arguments',
+ );
+ const html = renderToStaticMarkup();
t.assert(html === 'foo
', 'renders with correct html');
});
@@ -46,46 +53,69 @@ describe('prepare', () => {
await doAsyncSideEffectForSecondChild(text);
});
- const FirstChild = prepared(prepareUsingPropsForFirstChild)(({ text }) =>
+ const FirstChild = prepared(prepareUsingPropsForFirstChild)(({ text }) => (
{text}
- );
- const SecondChild = prepared(prepareUsingPropsForSecondChild)(({ text }) =>
- {text}
- );
+ ));
+ const SecondChild = prepared(prepareUsingPropsForSecondChild)((
+ { text },
+ ) => {text});
- const App = ({ texts }) => ;
+ const App = ({ texts }) => (
+
+ );
App.propTypes = {
texts: PropTypes.array,
};
await prepare();
- t.assert(prepareUsingPropsForFirstChild.calledOnce, 'prepareUsingPropsForFirstChild has been called exactly once');
- t.assert(equal(
- prepareUsingPropsForFirstChild.getCall(0).args,
- [{ text: 'first' }, {}],
- ), 'prepareUsingPropsForFirstChild has been called with correct arguments');
- t.assert(doAsyncSideEffectForFirstChild.calledOnce, 'doAsyncSideEffectForFirstChild has been called exactly once');
- t.assert(equal(
- doAsyncSideEffectForFirstChild.getCall(0).args,
- ['first'],
- ), 'doAsyncSideEffectForFirstChild has been called with correct arguments');
+ t.assert(
+ prepareUsingPropsForFirstChild.calledOnce,
+ 'prepareUsingPropsForFirstChild has been called exactly once',
+ );
+ t.assert(
+ equal(prepareUsingPropsForFirstChild.getCall(0).args, [
+ { text: 'first' },
+ {},
+ ]),
+ 'prepareUsingPropsForFirstChild has been called with correct arguments',
+ );
+ t.assert(
+ doAsyncSideEffectForFirstChild.calledOnce,
+ 'doAsyncSideEffectForFirstChild has been called exactly once',
+ );
+ t.assert(
+ equal(doAsyncSideEffectForFirstChild.getCall(0).args, ['first']),
+ 'doAsyncSideEffectForFirstChild has been called with correct arguments',
+ );
- t.assert(prepareUsingPropsForSecondChild.calledOnce, 'prepareUsingPropsForSecondChild has been called exactly once');
- t.assert(equal(
- prepareUsingPropsForSecondChild.getCall(0).args,
- [{ text: 'second' }, {}],
- ), 'prepareUsingPropsForSecondChild has been called with correct arguments');
- t.assert(doAsyncSideEffectForSecondChild.calledOnce, 'doAsyncSideEffectForSecondChild has been called exactly once');
- t.assert(equal(
- doAsyncSideEffectForSecondChild.getCall(0).args,
- ['second'],
- ), 'doAsyncSideEffectForSecondChild has been called with correct arguments');
+ t.assert(
+ prepareUsingPropsForSecondChild.calledOnce,
+ 'prepareUsingPropsForSecondChild has been called exactly once',
+ );
+ t.assert(
+ equal(prepareUsingPropsForSecondChild.getCall(0).args, [
+ { text: 'second' },
+ {},
+ ]),
+ 'prepareUsingPropsForSecondChild has been called with correct arguments',
+ );
+ t.assert(
+ doAsyncSideEffectForSecondChild.calledOnce,
+ 'doAsyncSideEffectForSecondChild has been called exactly once',
+ );
+ t.assert(
+ equal(doAsyncSideEffectForSecondChild.getCall(0).args, ['second']),
+ 'doAsyncSideEffectForSecondChild has been called with correct arguments',
+ );
const html = renderToStaticMarkup();
- t.assert(html === ''); // eslint-disable-line max-len
+ t.assert(
+ html ===
+ '',
+ ); // eslint-disable-line max-len
});
});
diff --git a/src/tests/prepared.spec.js b/src/tests/prepared.spec.js
index 3445a40..21e6510 100644
--- a/src/tests/prepared.spec.js
+++ b/src/tests/prepared.spec.js
@@ -1,3 +1,4 @@
+// @flow
const { describe, it } = global;
import sinon from 'sinon';
import t from 'tcomb';
@@ -36,23 +37,42 @@ describe('prepared', () => {
const prepareUsingProps = sinon.spy(async ({ text }) => {
await doAsyncSideEffect(text);
});
- const PreparedCompositeComponent = prepared(prepareUsingProps, { pure: false })(OriginalCompositeComponent);
- t.assert(!isPrepared(OriginalCompositeComponent), 'OriginalComponent is not prepared');
- t.assert(isPrepared(PreparedCompositeComponent), 'PreparedComponent is prepared');
+ const PreparedCompositeComponent = prepared(prepareUsingProps, {
+ pure: false,
+ })(OriginalCompositeComponent);
+ t.assert(
+ !isPrepared(OriginalCompositeComponent),
+ 'OriginalComponent is not prepared',
+ );
+ t.assert(
+ isPrepared(PreparedCompositeComponent),
+ 'PreparedComponent is prepared',
+ );
const prepare = getPrepare(PreparedCompositeComponent);
- t.assert(typeof prepare === 'function', 'getPrepare(PreparedCompositeComponent) is a function');
+ t.assert(
+ typeof prepare === 'function',
+ 'getPrepare(PreparedCompositeComponent) is a function',
+ );
await prepare({ text: 'foo' });
- t.assert(prepareUsingProps.calledOnce, 'prepareUsingProps has been called exactly once');
- t.assert(equal(
- prepareUsingProps.getCall(0).args,
- [{ text: 'foo' }],
- ), 'prepareUsingProps has been called with correct arguments');
- t.assert(doAsyncSideEffect.calledOnce, 'doAsyncSideEffect has been called exactly once');
- t.assert(equal(
- doAsyncSideEffect.getCall(0).args,
- ['foo'],
- ), 'doAsyncSideEffect has been called with correct arguments');
- const html = renderToStaticMarkup();
+ t.assert(
+ prepareUsingProps.calledOnce,
+ 'prepareUsingProps has been called exactly once',
+ );
+ t.assert(
+ equal(prepareUsingProps.getCall(0).args, [{ text: 'foo' }]),
+ 'prepareUsingProps has been called with correct arguments',
+ );
+ t.assert(
+ doAsyncSideEffect.calledOnce,
+ 'doAsyncSideEffect has been called exactly once',
+ );
+ t.assert(
+ equal(doAsyncSideEffect.getCall(0).args, ['foo']),
+ 'doAsyncSideEffect has been called with correct arguments',
+ );
+ const html = renderToStaticMarkup(
+ ,
+ );
t.assert(html === 'foo
', 'renders with correct html');
});
@@ -61,23 +81,42 @@ describe('prepared', () => {
const prepareUsingProps = sinon.spy(async ({ text }) => {
await doAsyncSideEffect(text);
});
- const PreparedCompositeComponent = prepared(prepareUsingProps)(OriginalCompositePureComponent);
- t.assert(!isPrepared(OriginalCompositePureComponent), 'OriginalComponent is not prepared');
- t.assert(isPrepared(PreparedCompositeComponent), 'PreparedComponent is prepared');
+ const PreparedCompositeComponent = prepared(prepareUsingProps)(
+ OriginalCompositePureComponent,
+ );
+ t.assert(
+ !isPrepared(OriginalCompositePureComponent),
+ 'OriginalComponent is not prepared',
+ );
+ t.assert(
+ isPrepared(PreparedCompositeComponent),
+ 'PreparedComponent is prepared',
+ );
const prepare = getPrepare(PreparedCompositeComponent);
- t.assert(typeof prepare === 'function', 'getPrepare(PreparedCompositeComponent) is a function');
+ t.assert(
+ typeof prepare === 'function',
+ 'getPrepare(PreparedCompositeComponent) is a function',
+ );
await prepare({ text: 'foo' });
- t.assert(prepareUsingProps.calledOnce, 'prepareUsingProps has been called exactly once');
- t.assert(equal(
- prepareUsingProps.getCall(0).args,
- [{ text: 'foo' }],
- ), 'prepareUsingProps has been called with correct arguments');
- t.assert(doAsyncSideEffect.calledOnce, 'doAsyncSideEffect has been called exactly once');
- t.assert(equal(
- doAsyncSideEffect.getCall(0).args,
- ['foo'],
- ), 'doAsyncSideEffect has been called with correct arguments');
- const html = renderToStaticMarkup();
+ t.assert(
+ prepareUsingProps.calledOnce,
+ 'prepareUsingProps has been called exactly once',
+ );
+ t.assert(
+ equal(prepareUsingProps.getCall(0).args, [{ text: 'foo' }]),
+ 'prepareUsingProps has been called with correct arguments',
+ );
+ t.assert(
+ doAsyncSideEffect.calledOnce,
+ 'doAsyncSideEffect has been called exactly once',
+ );
+ t.assert(
+ equal(doAsyncSideEffect.getCall(0).args, ['foo']),
+ 'doAsyncSideEffect has been called with correct arguments',
+ );
+ const html = renderToStaticMarkup(
+ ,
+ );
t.assert(html === 'foo
', 'renders with correct html');
});
@@ -86,23 +125,42 @@ describe('prepared', () => {
const prepareUsingProps = sinon.spy(async ({ text }) => {
await doAsyncSideEffect(text);
});
- const PreparedCompositeComponent = prepared(prepareUsingProps)(OriginalArrowComponent);
- t.assert(!isPrepared(OriginalArrowComponent), 'OriginalComponent is not prepared');
- t.assert(isPrepared(PreparedCompositeComponent), 'PreparedComponent is prepared');
+ const PreparedCompositeComponent = prepared(prepareUsingProps)(
+ OriginalArrowComponent,
+ );
+ t.assert(
+ !isPrepared(OriginalArrowComponent),
+ 'OriginalComponent is not prepared',
+ );
+ t.assert(
+ isPrepared(PreparedCompositeComponent),
+ 'PreparedComponent is prepared',
+ );
const prepare = getPrepare(PreparedCompositeComponent);
- t.assert(typeof prepare === 'function', 'getPrepare(PreparedCompositeComponent) is a function');
+ t.assert(
+ typeof prepare === 'function',
+ 'getPrepare(PreparedCompositeComponent) is a function',
+ );
await prepare({ text: 'foo' });
- t.assert(prepareUsingProps.calledOnce, 'prepareUsingProps has been called exactly once');
- t.assert(equal(
- prepareUsingProps.getCall(0).args,
- [{ text: 'foo' }],
- ), 'prepareUsingProps has been called with correct arguments');
- t.assert(doAsyncSideEffect.calledOnce, 'doAsyncSideEffect has been called exactly once');
- t.assert(equal(
- doAsyncSideEffect.getCall(0).args,
- ['foo'],
- ), 'doAsyncSideEffect has been called with correct arguments');
- const html = renderToStaticMarkup();
+ t.assert(
+ prepareUsingProps.calledOnce,
+ 'prepareUsingProps has been called exactly once',
+ );
+ t.assert(
+ equal(prepareUsingProps.getCall(0).args, [{ text: 'foo' }]),
+ 'prepareUsingProps has been called with correct arguments',
+ );
+ t.assert(
+ doAsyncSideEffect.calledOnce,
+ 'doAsyncSideEffect has been called exactly once',
+ );
+ t.assert(
+ equal(doAsyncSideEffect.getCall(0).args, ['foo']),
+ 'doAsyncSideEffect has been called with correct arguments',
+ );
+ const html = renderToStaticMarkup(
+ ,
+ );
t.assert(html === 'foo
', 'renders with correct html');
});
});
diff --git a/src/utils/isReactCompositeComponent.js b/src/utils/isReactCompositeComponent.js
index 6e34eca..307da94 100644
--- a/src/utils/isReactCompositeComponent.js
+++ b/src/utils/isReactCompositeComponent.js
@@ -1,11 +1,12 @@
-export default function isReactCompositeComponent(type) {
- if(typeof type !== 'function') {
+// @flow
+export default function isReactCompositeComponent(type: any) {
+ if (typeof type !== 'function') {
return false;
}
- if(typeof type.prototype !== 'object') {
+ if (typeof type.prototype !== 'object') {
return false;
}
- if(typeof type.prototype.render !== 'function') {
+ if (typeof type.prototype.render !== 'function') {
return false;
}
return true;
diff --git a/src/utils/isThenable.js b/src/utils/isThenable.js
index eb2f309..ce4b4f4 100644
--- a/src/utils/isThenable.js
+++ b/src/utils/isThenable.js
@@ -1,4 +1,5 @@
-function isThenable(p) {
+// @flow
+function isThenable(p: any) {
return p && typeof p === 'object' && typeof p.then === 'function';
}
diff --git a/yarn.lock b/yarn.lock
index 630a05e..243212f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,8 +3,8 @@
abbrev@1:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
accepts@^1.2.2:
version "1.3.3"
@@ -32,8 +32,8 @@ ajv-keywords@^1.0.0:
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
ajv@^4.7.0:
- version "4.11.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.2.tgz#f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6"
+ version "4.11.3"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.3.tgz#ce30bdb90d1254f762c75af915fb3a63e7183d22"
dependencies:
co "^4.6.0"
json-stable-stringify "^1.0.1"
@@ -62,8 +62,8 @@ anymatch@^1.3.0:
micromatch "^2.1.5"
aproba@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
are-we-there-yet@~1.1.2:
version "1.1.2"
@@ -142,16 +142,16 @@ aws-sign2@~0.6.0:
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
aws4@^1.2.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
babel-cli@^6.22.2:
- version "6.22.2"
- resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.22.2.tgz#3f814c8acf52759082b8fedd9627f938936ab559"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.23.0.tgz#52ff946a2b0f64645c35e7bd5eea267aa0948c0f"
dependencies:
- babel-core "^6.22.1"
- babel-polyfill "^6.22.0"
- babel-register "^6.22.0"
+ babel-core "^6.23.0"
+ babel-polyfill "^6.23.0"
+ babel-register "^6.23.0"
babel-runtime "^6.22.0"
commander "^2.8.1"
convert-source-map "^1.1.0"
@@ -174,19 +174,19 @@ babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.0"
-babel-core@^6.22.0, babel-core@^6.22.1:
- version "6.22.1"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648"
+babel-core@^6.23.0:
+ version "6.23.1"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.23.1.tgz#c143cb621bb2f621710c220c5d579d15b8a442df"
dependencies:
babel-code-frame "^6.22.0"
- babel-generator "^6.22.0"
- babel-helpers "^6.22.0"
- babel-messages "^6.22.0"
- babel-register "^6.22.0"
+ babel-generator "^6.23.0"
+ babel-helpers "^6.23.0"
+ babel-messages "^6.23.0"
+ babel-register "^6.23.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-traverse "^6.22.1"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.1"
+ babel-types "^6.23.0"
babylon "^6.11.0"
convert-source-map "^1.1.0"
debug "^2.1.1"
@@ -208,17 +208,18 @@ babel-eslint@^7.0.0:
babylon "^6.13.0"
lodash.pickby "^4.6.0"
-babel-generator@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.22.0.tgz#d642bf4961911a8adc7c692b0c9297f325cda805"
+babel-generator@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.23.0.tgz#6b8edab956ef3116f79d8c84c5a3c05f32a74bc5"
dependencies:
- babel-messages "^6.22.0"
+ babel-messages "^6.23.0"
babel-runtime "^6.22.0"
- babel-types "^6.22.0"
+ babel-types "^6.23.0"
detect-indent "^4.0.0"
jsesc "^1.3.0"
lodash "^4.2.0"
source-map "^0.5.0"
+ trim-right "^1.0.1"
babel-helper-builder-binary-assignment-operator-visitor@^6.22.0:
version "6.22.0"
@@ -228,12 +229,12 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.22.0:
babel-runtime "^6.22.0"
babel-types "^6.22.0"
-babel-helper-builder-react-jsx@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.22.0.tgz#aafb31913e47761fd4d0b6987756a144a65fca0d"
+babel-helper-builder-react-jsx@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.23.0.tgz#d53fc8c996e0bc56d0de0fc4cc55a7138395ea4b"
dependencies:
babel-runtime "^6.22.0"
- babel-types "^6.22.0"
+ babel-types "^6.23.0"
esutils "^2.0.0"
lodash "^4.2.0"
@@ -246,13 +247,13 @@ babel-helper-call-delegate@^6.22.0:
babel-traverse "^6.22.0"
babel-types "^6.22.0"
-babel-helper-define-map@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.22.0.tgz#9544e9502b2d6dfe7d00ff60e82bd5a7a89e95b7"
+babel-helper-define-map@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz#1444f960c9691d69a2ced6a205315f8fd00804e7"
dependencies:
- babel-helper-function-name "^6.22.0"
+ babel-helper-function-name "^6.23.0"
babel-runtime "^6.22.0"
- babel-types "^6.22.0"
+ babel-types "^6.23.0"
lodash "^4.2.0"
babel-helper-explode-assignable-expression@^6.22.0:
@@ -263,15 +264,15 @@ babel-helper-explode-assignable-expression@^6.22.0:
babel-traverse "^6.22.0"
babel-types "^6.22.0"
-babel-helper-function-name@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.22.0.tgz#51f1bdc4bb89b15f57a9b249f33d742816dcbefc"
+babel-helper-function-name@^6.22.0, babel-helper-function-name@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz#25742d67175c8903dbe4b6cb9d9e1fcb8dcf23a6"
dependencies:
babel-helper-get-function-arity "^6.22.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-traverse "^6.22.0"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.0"
+ babel-types "^6.23.0"
babel-helper-get-function-arity@^6.22.0:
version "6.22.0"
@@ -287,12 +288,12 @@ babel-helper-hoist-variables@^6.22.0:
babel-runtime "^6.22.0"
babel-types "^6.22.0"
-babel-helper-optimise-call-expression@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.22.0.tgz#f8d5d4b40a6e2605a6a7f9d537b581bea3756d15"
+babel-helper-optimise-call-expression@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz#f3ee7eed355b4282138b33d02b78369e470622f5"
dependencies:
babel-runtime "^6.22.0"
- babel-types "^6.22.0"
+ babel-types "^6.23.0"
babel-helper-regex@^6.22.0:
version "6.22.0"
@@ -312,27 +313,27 @@ babel-helper-remap-async-to-generator@^6.22.0:
babel-traverse "^6.22.0"
babel-types "^6.22.0"
-babel-helper-replace-supers@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.22.0.tgz#1fcee2270657548908c34db16bcc345f9850cf42"
+babel-helper-replace-supers@^6.22.0, babel-helper-replace-supers@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz#eeaf8ad9b58ec4337ca94223bacdca1f8d9b4bfd"
dependencies:
- babel-helper-optimise-call-expression "^6.22.0"
- babel-messages "^6.22.0"
+ babel-helper-optimise-call-expression "^6.23.0"
+ babel-messages "^6.23.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-traverse "^6.22.0"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.0"
+ babel-types "^6.23.0"
-babel-helpers@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.22.0.tgz#d275f55f2252b8101bff07bc0c556deda657392c"
+babel-helpers@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.23.0.tgz#4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992"
dependencies:
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
+ babel-template "^6.23.0"
-babel-messages@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.22.0.tgz#36066a214f1217e4ed4164867669ecb39e3ea575"
+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"
@@ -354,7 +355,7 @@ 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-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13:
+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"
@@ -379,13 +380,13 @@ babel-plugin-transform-async-to-generator@^6.22.0:
babel-runtime "^6.22.0"
babel-plugin-transform-class-properties@^6.18.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.22.0.tgz#aa78f8134495c7de06c097118ba061844e1dc1d8"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.23.0.tgz#187b747ee404399013563c993db038f34754ac3b"
dependencies:
- babel-helper-function-name "^6.22.0"
+ babel-helper-function-name "^6.23.0"
babel-plugin-syntax-class-properties "^6.8.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
+ babel-template "^6.23.0"
babel-plugin-transform-es2015-arrow-functions@^6.22.0:
version "6.22.0"
@@ -400,28 +401,28 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-block-scoping@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.22.0.tgz#00d6e3a0bebdcfe7536b9d653b44a9141e63e47e"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz#e48895cf0b375be148cd7c8879b422707a053b51"
dependencies:
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-traverse "^6.22.0"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.0"
+ babel-types "^6.23.0"
lodash "^4.2.0"
babel-plugin-transform-es2015-classes@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.22.0.tgz#54d44998fd823d9dca15292324161c331c1b6f14"
- dependencies:
- babel-helper-define-map "^6.22.0"
- babel-helper-function-name "^6.22.0"
- babel-helper-optimise-call-expression "^6.22.0"
- babel-helper-replace-supers "^6.22.0"
- babel-messages "^6.22.0"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.23.0.tgz#49b53f326202a2fd1b3bbaa5e2edd8a4f78643c1"
+ dependencies:
+ babel-helper-define-map "^6.23.0"
+ babel-helper-function-name "^6.23.0"
+ babel-helper-optimise-call-expression "^6.23.0"
+ babel-helper-replace-supers "^6.23.0"
+ babel-messages "^6.23.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-traverse "^6.22.0"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.0"
+ babel-types "^6.23.0"
babel-plugin-transform-es2015-computed-properties@^6.22.0:
version "6.22.0"
@@ -431,8 +432,8 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0:
babel-template "^6.22.0"
babel-plugin-transform-es2015-destructuring@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz#8e0af2f885a0b2cf999d47c4c1dd23ce88cfa4c6"
+ 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"
@@ -444,8 +445,8 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0:
babel-types "^6.22.0"
babel-plugin-transform-es2015-for-of@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.22.0.tgz#180467ad63aeea592a1caeee4bf1c8b3e2616265"
+ 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"
@@ -472,29 +473,29 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0:
babel-template "^6.22.0"
babel-plugin-transform-es2015-modules-commonjs@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.22.0.tgz#6ca04e22b8e214fb50169730657e7a07dc941145"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.23.0.tgz#cba7aa6379fb7ec99250e6d46de2973aaffa7b92"
dependencies:
babel-plugin-transform-strict-mode "^6.22.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-types "^6.23.0"
babel-plugin-transform-es2015-modules-systemjs@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.22.0.tgz#810cd0cd025a08383b84236b92c6e31f88e644ad"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz#ae3469227ffac39b0310d90fec73bfdc4f6317b0"
dependencies:
babel-helper-hoist-variables "^6.22.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
+ babel-template "^6.23.0"
babel-plugin-transform-es2015-modules-umd@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.22.0.tgz#60d0ba3bd23258719c64391d9bf492d648dc0fae"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.23.0.tgz#8d284ae2e19ed8fe21d2b1b26d6e7e0fcd94f0f1"
dependencies:
babel-plugin-transform-es2015-modules-amd "^6.22.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
+ babel-template "^6.23.0"
babel-plugin-transform-es2015-object-super@^6.22.0:
version "6.22.0"
@@ -504,15 +505,15 @@ babel-plugin-transform-es2015-object-super@^6.22.0:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-parameters@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.22.0.tgz#57076069232019094f27da8c68bb7162fe208dbb"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz#3a2aabb70c8af945d5ce386f1a4250625a83ae3b"
dependencies:
babel-helper-call-delegate "^6.22.0"
babel-helper-get-function-arity "^6.22.0"
babel-runtime "^6.22.0"
- babel-template "^6.22.0"
- babel-traverse "^6.22.0"
- babel-types "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.0"
+ babel-types "^6.23.0"
babel-plugin-transform-es2015-shorthand-properties@^6.22.0:
version "6.22.0"
@@ -542,8 +543,8 @@ babel-plugin-transform-es2015-template-literals@^6.22.0:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-typeof-symbol@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.22.0.tgz#87faf2336d3b6a97f68c4d906b0cd0edeae676e1"
+ 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"
@@ -571,15 +572,15 @@ babel-plugin-transform-flow-strip-types@^6.22.0:
babel-runtime "^6.22.0"
babel-plugin-transform-object-rest-spread@^6.16.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921"
dependencies:
babel-plugin-syntax-object-rest-spread "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-react-display-name@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.22.0.tgz#077197520fa8562b8d3da4c3c4b0b1bdd7853f26"
+babel-plugin-transform-react-display-name@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz#4398910c358441dc4cef18787264d0412ed36b37"
dependencies:
babel-runtime "^6.22.0"
@@ -597,11 +598,11 @@ babel-plugin-transform-react-jsx-source@^6.22.0:
babel-plugin-syntax-jsx "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-react-jsx@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.22.0.tgz#48556b7dd4c3fe97d1c943bcd54fc3f2561c1817"
+babel-plugin-transform-react-jsx@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.23.0.tgz#23e892f7f2e759678eb5e4446a8f8e94e81b3470"
dependencies:
- babel-helper-builder-react-jsx "^6.22.0"
+ babel-helper-builder-react-jsx "^6.23.0"
babel-plugin-syntax-jsx "^6.8.0"
babel-runtime "^6.22.0"
@@ -612,8 +613,8 @@ babel-plugin-transform-regenerator@^6.22.0:
regenerator-transform "0.9.8"
babel-plugin-transform-runtime@^6.15.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.22.0.tgz#10968d760bbf6517243081eec778e10fa828551c"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee"
dependencies:
babel-runtime "^6.22.0"
@@ -624,9 +625,9 @@ babel-plugin-transform-strict-mode@^6.22.0:
babel-runtime "^6.22.0"
babel-types "^6.22.0"
-babel-polyfill@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.22.0.tgz#1ac99ebdcc6ba4db1e2618c387b2084a82154a3b"
+babel-polyfill@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
dependencies:
babel-runtime "^6.22.0"
core-js "^2.4.0"
@@ -674,6 +675,12 @@ babel-preset-es2017@^6.22.0:
babel-plugin-syntax-trailing-function-commas "^6.22.0"
babel-plugin-transform-async-to-generator "^6.22.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-latest@^6.16.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.22.0.tgz#47b800531350a3dc69126e8c375a40655cd1eeff"
@@ -683,22 +690,21 @@ babel-preset-latest@^6.16.0:
babel-preset-es2017 "^6.22.0"
babel-preset-react@^6.16.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.22.0.tgz#7bc97e2d73eec4b980fb6b4e4e0884e81ccdc165"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.23.0.tgz#eb7cee4de98a3f94502c28565332da9819455195"
dependencies:
- babel-plugin-syntax-flow "^6.3.13"
babel-plugin-syntax-jsx "^6.3.13"
- babel-plugin-transform-flow-strip-types "^6.22.0"
- babel-plugin-transform-react-display-name "^6.22.0"
- babel-plugin-transform-react-jsx "^6.22.0"
+ babel-plugin-transform-react-display-name "^6.23.0"
+ babel-plugin-transform-react-jsx "^6.23.0"
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-register@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.22.0.tgz#a61dd83975f9ca4a9e7d6eff3059494cd5ea4c63"
+babel-register@^6.22.0, babel-register@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.23.0.tgz#c9aa3d4cca94b51da34826c4a0f9e08145d74ff3"
dependencies:
- babel-core "^6.22.0"
+ babel-core "^6.23.0"
babel-runtime "^6.22.0"
core-js "^2.4.0"
home-or-tmp "^2.0.0"
@@ -707,39 +713,39 @@ babel-register@^6.22.0:
source-map-support "^0.4.2"
babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611"
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-template@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.22.0.tgz#403d110905a4626b317a2a1fcb8f3b73204b2edb"
+babel-template@^6.22.0, babel-template@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638"
dependencies:
babel-runtime "^6.22.0"
- babel-traverse "^6.22.0"
- babel-types "^6.22.0"
+ babel-traverse "^6.23.0"
+ babel-types "^6.23.0"
babylon "^6.11.0"
lodash "^4.2.0"
-babel-traverse@^6.15.0, babel-traverse@^6.22.0, babel-traverse@^6.22.1:
- version "6.22.1"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.22.1.tgz#3b95cd6b7427d6f1f757704908f2fc9748a5f59f"
+babel-traverse@^6.15.0, babel-traverse@^6.22.0, babel-traverse@^6.23.0, babel-traverse@^6.23.1:
+ version "6.23.1"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48"
dependencies:
babel-code-frame "^6.22.0"
- babel-messages "^6.22.0"
+ babel-messages "^6.23.0"
babel-runtime "^6.22.0"
- babel-types "^6.22.0"
+ babel-types "^6.23.0"
babylon "^6.15.0"
debug "^2.2.0"
globals "^9.0.0"
invariant "^2.2.0"
lodash "^4.2.0"
-babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db"
+babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.22.0, babel-types@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf"
dependencies:
babel-runtime "^6.22.0"
esutils "^2.0.2"
@@ -747,8 +753,8 @@ babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.22.0:
to-fast-properties "^1.0.1"
babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0:
- version "6.15.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e"
+ version "6.16.1"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3"
balanced-match@^0.4.1:
version "0.4.2"
@@ -904,8 +910,8 @@ content-type@^1.0.0:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
convert-source-map@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67"
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3"
cookies@~0.6.1:
version "0.6.2"
@@ -945,8 +951,8 @@ dashdash@^1.12.0:
assert-plus "^1.0.0"
debug@*, debug@^2.1.1, debug@^2.2.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351"
dependencies:
ms "0.7.2"
@@ -995,7 +1001,7 @@ delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-depd@~1.1.0:
+depd@1.1.0, depd@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
@@ -1131,16 +1137,18 @@ eslint-plugin-babel@^4.0.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.0.1.tgz#77de74dabd67a6bef3b16bf258f5804e971e7349"
eslint-plugin-react@^6.4.1:
- version "6.9.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz#54c2e9906b76f9d10142030bdc34e9d6840a0bb2"
+ version "6.10.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.0.tgz#9c48b48d101554b5355413e7c64238abde6ef1ef"
dependencies:
array.prototype.find "^2.0.1"
doctrine "^1.2.2"
+ has "^1.0.1"
jsx-ast-utils "^1.3.4"
+ object.assign "^4.0.4"
eslint@^3.8.1:
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.15.0.tgz#bdcc6a6c5ffe08160e7b93c066695362a91e30f2"
+ version "3.16.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.16.1.tgz#9bc31fc7341692cf772e80607508f67d711c5609"
dependencies:
babel-code-frame "^6.16.0"
chalk "^1.1.3"
@@ -1184,9 +1192,9 @@ espree@^3.4.0:
acorn "4.0.4"
acorn-jsx "^3.0.0"
-esprima@^2.6.0:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+esprima@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
esrecurse@^4.1.0:
version "4.1.0"
@@ -1297,6 +1305,10 @@ flat-cache@^1.2.1:
graceful-fs "^4.1.2"
write "^0.2.1"
+flow-bin@^0.40.0:
+ version "0.40.0"
+ resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.40.0.tgz#e10d60846d923124e47f548f16ba60fd8baff5a5"
+
for-in@^0.1.5:
version "0.1.6"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
@@ -1342,8 +1354,8 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
fsevents@^1.0.0:
- version "1.0.17"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff"
dependencies:
nan "^2.3.0"
node-pre-gyp "^0.6.29"
@@ -1365,13 +1377,13 @@ fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10:
mkdirp ">=0.5 0"
rimraf "2"
-function-bind@^1.1.0:
+function-bind@^1.0.2, function-bind@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
gauge@~2.7.1:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774"
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09"
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
@@ -1380,7 +1392,6 @@ gauge@~2.7.1:
signal-exit "^3.0.0"
string-width "^1.0.1"
strip-ansi "^3.0.1"
- supports-color "^0.2.0"
wide-align "^1.1.0"
generate-function@^2.0.0:
@@ -1435,8 +1446,8 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
path-is-absolute "^1.0.0"
globals@^9.0.0, globals@^9.14.0:
- version "9.14.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034"
+ version "9.16.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80"
globby@^5.0.0:
version "5.0.0"
@@ -1484,6 +1495,12 @@ has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+has@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+ dependencies:
+ function-bind "^1.0.2"
+
hawk@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
@@ -1516,11 +1533,12 @@ http-assert@^1.1.0:
http-errors "~1.4.0"
http-errors@^1.2.8:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750"
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257"
dependencies:
+ depd "1.1.0"
inherits "2.0.3"
- setprototypeof "1.0.2"
+ setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
http-errors@~1.4.0:
@@ -1543,8 +1561,8 @@ iconv-lite@~0.4.13:
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
ignore@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.2.tgz#1c51e1ef53bab6ddc15db4d9ac4ec139eceb3410"
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.4.tgz#4055e03596729a8fabe45a43c100ad5ed815c4e8"
imurmurhash@^0.1.4:
version "0.1.4"
@@ -1699,8 +1717,10 @@ is-property@^1.0.0:
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
is-regex@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ dependencies:
+ has "^1.0.1"
is-resolvable@^1.0.0:
version "1.0.0"
@@ -1752,15 +1772,15 @@ js-tokens@^3.0.0:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
js-yaml@^3.5.1:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628"
dependencies:
argparse "^1.0.7"
- esprima "^2.6.0"
+ esprima "^3.1.1"
jsbn@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd"
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
jsesc@^1.3.0:
version "1.3.0"
@@ -1833,8 +1853,8 @@ koa-is-json@^1.0.0:
resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
koa@^1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/koa/-/koa-1.2.4.tgz#6ef6d17a7bea8ec778a8572b55a0d0562e488654"
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/koa/-/koa-1.2.5.tgz#2b1bf59dc1f2fdd7b756e8a4f11a55eb57db6a09"
dependencies:
accepts "^1.2.2"
co "^4.4.0"
@@ -2080,10 +2100,18 @@ object-assign@^4.0.1, object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-object-keys@^1.0.8:
+object-keys@^1.0.10, object-keys@^1.0.8:
version "1.0.11"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+object.assign@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc"
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.0"
+ object-keys "^1.0.10"
+
object.omit@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
@@ -2165,6 +2193,10 @@ path-is-inside@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -2192,8 +2224,8 @@ preserve@^0.2.0:
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
private@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1"
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
process-nextick-args@~1.0.6:
version "1.0.7"
@@ -2214,8 +2246,8 @@ punycode@^1.4.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
qs@~6.3.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.1.tgz#918c0b3bcd36679772baf135b1acb4c1651ed79d"
randomatic@^1.1.3:
version "1.1.6"
@@ -2225,13 +2257,13 @@ randomatic@^1.1.3:
kind-of "^3.0.2"
rc@~1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9"
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea"
dependencies:
deep-extend "~0.4.0"
ini "~1.3.0"
minimist "^1.2.0"
- strip-json-comments "~1.0.4"
+ strip-json-comments "~2.0.1"
react-dom@^15.4.2:
version "15.4.2"
@@ -2242,8 +2274,8 @@ react-dom@^15.4.2:
object-assign "^4.1.0"
react-redux@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.2.tgz#3d9878f5f71c6fafcd45de1fbb162ea31f389814"
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.3.tgz#86c3b68d56e74294a42e2a740ab66117ef6c019f"
dependencies:
hoist-non-react-statics "^1.0.3"
invariant "^2.0.0"
@@ -2260,8 +2292,8 @@ react@^15.4.2:
object-assign "^4.1.0"
"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729"
dependencies:
buffer-shims "^1.0.0"
core-util-is "~1.0.0"
@@ -2324,8 +2356,8 @@ regenerate@^1.2.1:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
regenerator-runtime@^0.10.0:
- version "0.10.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb"
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e"
regenerator-transform@0.9.8:
version "0.9.8"
@@ -2411,8 +2443,10 @@ resolve-from@^1.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
resolve@^1.1.6:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c"
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.1.tgz#5d0a1632609b6b00a22284293db1d5d973676314"
+ dependencies:
+ path-parse "^1.0.5"
restore-cursor@^1.0.1:
version "1.0.1"
@@ -2421,7 +2455,13 @@ restore-cursor@^1.0.1:
exit-hook "^1.0.0"
onetime "^1.0.0"
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
+ dependencies:
+ glob "^7.0.5"
+
+rimraf@~2.5.1, rimraf@~2.5.4:
version "2.5.4"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
dependencies:
@@ -2457,9 +2497,9 @@ setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-setprototypeof@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08"
+setprototypeof@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
shelljs@^0.7.5:
version "0.7.6"
@@ -2562,10 +2602,6 @@ strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
-strip-json-comments@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
-
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"
@@ -2576,10 +2612,6 @@ supports-color@3.1.2:
dependencies:
has-flag "^1.0.0"
-supports-color@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
-
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -2621,8 +2653,8 @@ tar@~2.2.1:
inherits "2"
tcomb@^3.2.15:
- version "3.2.16"
- resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.16.tgz#345782f2f060839a2df30480209b1afc8b16e1fa"
+ version "3.2.17"
+ resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.17.tgz#4466b4ae881a6efc6a2b3017a4ae3773a646e887"
text-table@~0.2.0:
version "0.2.0"
@@ -2642,6 +2674,10 @@ tough-cookie@~2.3.0:
dependencies:
punycode "^1.4.1"
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+
tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"