Prevent more unnecessary recomputations on selectors + Upgraded dependencies

This commit is contained in:
Bruno Lemos
2017-07-02 02:51:01 -03:00
parent 32771bf116
commit 052d8ba90a
19 changed files with 479 additions and 340 deletions

View File

@@ -26,8 +26,8 @@
"dependencies": {
"babel-polyfill": "^6.23.0",
"bugsnag-react-native": "^2.2.3",
"denormalizr": "^0.5.2",
"firebase": "^3.7.5",
"denormalizr": "^0.6.0",
"firebase": "^4.1.3",
"github": "git+https://github.com/brunolemos/react-native-github-api.git",
"gravatar": "^1.6.0",
"immutable": "^3.8.1",
@@ -35,54 +35,53 @@
"moment": "^2.18.1",
"normalizr": "^3.2.3",
"prop-types": "^15.5.10",
"qs": "^6.4.0",
"qs": "^6.5.0",
"react": "^16.0.0-alpha.12",
"react-native": "^0.45.0-rc.2",
"react-native-actionsheet": "^2.1.0",
"react-native-code-push": "^2.0.3-beta",
"react-native-immutable-list-view": "^0.4.5",
"react-native": "0.45.1",
"react-native-code-push": "^3.0.0-beta",
"react-native-immutable-list-view": "^0.5.0",
"react-native-linear-gradient": "^2.0.0",
"react-native-prompt-android": "^0.0.5",
"react-native-prompt-android": "^0.0.8",
"react-native-safari-view": "^2.0.0",
"react-native-vector-icons": "^4.2.0",
"react-native-wkwebview-reborn": "^1.4.0",
"react-native-wkwebview-reborn": "^1.6.0",
"react-navigation": "^1.0.0-beta.11",
"react-redux": "^5.0.5",
"redux": "^3.6.0",
"redux": "^3.7.1",
"redux-immutable": "^4.0.0",
"redux-persist": "^4.8.0",
"redux-persist": "^4.8.2",
"redux-persist-immutable": "^4.3.0",
"redux-saga": "^0.15.3",
"remote-redux-devtools": "^0.5.11",
"redux-saga": "^0.15.4",
"remote-redux-devtools": "^0.5.12",
"reselect": "^3.0.1",
"styled-components": "git+https://github.com/brunolemos/styled-components.git#master-npm",
"styled-components": "^2.1.0",
"warna": "^0.2.4"
},
"devDependencies": {
"babel-eslint": "^7.2.3",
"babel-jest": "^19.0.0",
"babel-jest": "^20.0.3",
"babel-plugin-transform-es2015-parameters": "^6.24.1",
"babel-plugin-transform-remove-console": "^6.8.4",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react-native": "1.9.1",
"babel-preset-react-native": "^2.0.0",
"babel-preset-react-native-stage-0": "^1.0.1",
"eslint": "^3.15.0",
"eslint-config-airbnb": "^14.1.0",
"eslint-config-prettier": "^1.7.0",
"eslint-config-react-app": "^0.6.2",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^15.0.1",
"eslint-config-prettier": "^2.3.0",
"eslint-config-react-app": "^1.0.5",
"eslint-plugin-babel": "^4.1.1",
"eslint-plugin-flowtype": "^2.32.1",
"eslint-plugin-flowtype": "^2.34.1",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^3.0.2 || ^4.0.0",
"eslint-plugin-prettier": "^2.0.1",
"eslint-plugin-react": "^6.9.0",
"eslint-plugin-jsx-a11y": "^5.0.1",
"eslint-plugin-prettier": "^2.1.2",
"eslint-plugin-react": "^7.0.1",
"eslint-plugin-react-native": "^2.3.2",
"flow-bin": "^0.45.0",
"husky": "^0.13.4",
"flow-bin": "^0.49.1",
"husky": "^0.14.2",
"jest": "^20.0.4",
"lint-staged": "^3.6.0",
"prettier": "^1.4.2",
"react-test-renderer": "^15.5.4",
"lint-staged": "^4.0.0",
"prettier": "^1.5.2",
"react-test-renderer": "^15.6.1",
"remote-redux-devtools-on-debugger": "^0.7.1",
"whatwg-fetch": "^2.0.3"
},

View File

@@ -156,7 +156,9 @@ export default class EventCard extends React.PureComponent {
const dateText = getDateSmallText(createdAt, '•')
return (
dateText &&
<SmallText muted>&nbsp;&nbsp;{dateText}</SmallText>
<SmallText muted>
&nbsp;&nbsp;{dateText}
</SmallText>
)
}}
</IntervalRefresh>
@@ -166,7 +168,9 @@ export default class EventCard extends React.PureComponent {
<StyledText numberOfLines={1} muted>
{Boolean(isPrivate) &&
<StyledText muted><Icon name="lock" /></StyledText>}
<StyledText muted>
<Icon name="lock" />
</StyledText>}
{getEventText(event, { repoIsKnown: onlyOneRepository })}
</StyledText>
</FullView>
@@ -202,10 +206,10 @@ export default class EventCard extends React.PureComponent {
/>}
{(() => {
const repos = (payload.get('repos') || List()).filter(Boolean)
const repos = payload.get('repos') || List()
if (!(repos.size > 0)) return null
const ids = repos.map(_item => _item.get('id'))
const ids = repos.filter(Boolean).map(_item => _item.get('id'))
return (
<RepositoryListRow
@@ -245,10 +249,10 @@ export default class EventCard extends React.PureComponent {
{(() => {
const member = payload.get('member')
const users = (payload.get('users') || List([member])).filter(Boolean)
const users = payload.get('users') || List([member])
if (!(users.size > 0)) return null
const ids = users.map(_item => _item.get('id'))
const ids = users.filter(Boolean).map(_item => _item.get('id'))
return (
<UserListRow
@@ -265,7 +269,7 @@ export default class EventCard extends React.PureComponent {
const pages = payload.get('pages')
if (!(pages.size > 0)) return null
const ids = pages.map(_item => _item.get('id'))
const ids = pages.filter(Boolean).map(_item => _item.get('id'))
return (
<WikiPageListRow
@@ -292,10 +296,10 @@ export default class EventCard extends React.PureComponent {
headCommit: payload.get('head_commit'),
}
const list = (commits || List([headCommit])).filter(Boolean)
const list = commits || List([headCommit])
if (!(list.size > 0)) return null
const ids = list.map(_item => _item.get('id'))
const ids = list.filter(Boolean).map(_item => _item.get('id'))
return (
<CommitListRow

View File

@@ -14,7 +14,7 @@ export default class CommitListRow extends React.PureComponent {
}
makeRenderItem = (passProps = {}) => ({ item: commit }) =>
commit &&
Boolean(commit) &&
<CommitRow
key={`commit-row-${commit.get('sha')}`}
commit={commit}

View File

@@ -14,7 +14,7 @@ export default class RepositoryListRow extends React.PureComponent {
}
makeRenderItem = (passProps = {}) => ({ item: repo }) =>
repo &&
Boolean(repo) &&
<RepoRow
key={`repo-row-${repo.get('id')}`}
repo={repo}

View File

@@ -14,7 +14,7 @@ export default class UserListRow extends React.PureComponent {
}
makeRenderItem = (passProps = {}) => ({ item: user }) =>
user &&
Boolean(user) &&
<UserRow
key={`user-row-${user.get('id')}`}
user={user}

View File

@@ -8,9 +8,9 @@ import EventColumn from '../components/columns/EventColumn'
import { getRequestTypeIcon, requestTypes } from '../api/github'
import {
columnIsLoadingSelector,
columnErrorsSelector,
makeColumnErrorsSelector,
makeColumnIsEmptySelector,
makeColumnIsLoadingSelector,
makeColumnSelector,
makeColumnSubscriptionsSelector,
makeDenormalizedOrderedColumnEventsSelector,
@@ -25,7 +25,9 @@ import type {
} from '../utils/types'
const makeMapStateToProps = () => {
const columnErrorsSelector = makeColumnErrorsSelector()
const columnIsEmptySelector = makeColumnIsEmptySelector()
const columnIsLoadingSelector = makeColumnIsLoadingSelector()
const columnSelector = makeColumnSelector()
const columnSubscriptionsSelector = makeColumnSubscriptionsSelector()
const denormalizedOrderedColumnEventsSelector = makeDenormalizedOrderedColumnEventsSelector()
@@ -43,9 +45,10 @@ const makeMapStateToProps = () => {
? getRequestTypeIcon(subscriptions.first().get('requestType'))
: '') || 'mark-github'
const updatedAt = subscriptions && subscriptions.size > 0
? subscriptions.first().get('updatedAt')
: null
const updatedAt =
subscriptions && subscriptions.size > 0
? subscriptions.first().get('updatedAt')
: null
return {
column,

View File

@@ -14,10 +14,10 @@ import { Map, Set } from 'immutable'
import { APP_CLEANUP } from '../utils/constants/actions'
import {
columnSubscriptionIdsSelector,
columnsEntitySelector,
eventIdsSelector,
isReadySelector,
makeColumnSubscriptionIdsSelector,
subscriptionEventsSelector,
subscriptionIdsSelector,
} from '../selectors'
@@ -29,6 +29,8 @@ import {
} from '../actions'
import { sagaActionChunk } from './_shared'
const columnSubscriptionIdsSelector = makeColumnSubscriptionIdsSelector()
function* _getUsedSubscriptionIds() {
const state = yield select()

View File

@@ -19,11 +19,11 @@ import {
import { EventSchema } from '../utils/normalizr/schemas'
import {
columnIdsSelector,
columnSubscriptionIdsSelector,
subscriptionSelector,
accessTokenSelector,
columnIdsSelector,
isLoggedSelector,
makeColumnSubscriptionIdsSelector,
subscriptionSelector,
} from '../selectors'
import { TIMEOUT } from '../utils/constants/defaults'
@@ -56,6 +56,8 @@ import { authenticate, getApiMethod } from '../api/github'
import { sagaActionChunk } from './_shared'
const columnSubscriptionIdsSelector = makeColumnSubscriptionIdsSelector()
function* loadSubscriptionData({ payload }: Action<ApiRequestPayload>) {
let state = yield select()
const accessToken = accessTokenSelector(state)

View File

@@ -4,28 +4,34 @@
import moment from 'moment'
import { List, Map, Set } from 'immutable'
import { archivedEventIdsSelector, readEventIdsSelector } from './events'
import {
archivedEventIdsSelector,
readEventIdsSelector,
eventIdsSelector,
} from './events'
import {
subscriptionsEntitySelector,
subscriptionSelector,
} from './subscriptions'
import {
createImmutableSelector,
createImmutableSelectorCreator,
createObjectKeysMemoized,
entitiesSelector,
objectKeysMemoized,
stateSelector,
} from './shared'
import { get } from '../utils/immutable'
const objectKeysMemoized = createObjectKeysMemoized()
export const columnIdSelector = (state, { columnId }) => columnId
export const columnsEntitySelector = state => {
let columns = get(entitiesSelector(state), 'columns').filter(Boolean)
columns = columns.set('new', Map({ id: 'new', order: columns.size }))
return columns
}
export const columnsEntitySelector = createImmutableSelector(
state => get(entitiesSelector(state), 'columns'),
columns =>
columns.filter(Boolean).set('new', Map({ id: 'new', order: columns.size })),
)
export const columnIdsSelector = state =>
objectKeysMemoized(columnsEntitySelector(state))
@@ -42,19 +48,26 @@ export const makeColumnSelector = () =>
(columnId, columns) => get(columns, columnId),
)
export const columnSubscriptionIdsSelector = (state, { columnId }) => {
export const makeColumnSubscriptionIdsSelector = () => {
const columnSelector = makeColumnSelector()
return (
get(columnSelector(state, { columnId }) || Map(), 'subscriptions') || List()
return createImmutableSelector(
columnSelector,
column => get(column || Map(), 'subscriptions') || List(),
)
}
export const makeColumnEventIdsSelector = () =>
createImmutableSelector(
stateSelector,
export const makeColumnEventIdsSelector = () => {
const columnSubscriptionIdsSelector = makeColumnSubscriptionIdsSelector()
return createImmutableSelectorCreator(
3,
)(
columnIdSelector,
columnSubscriptionIdsSelector,
(state, columnId, subscriptionsIds) => {
eventIdsSelector,
stateSelector,
(columnId, subscriptionsIds, _allEventIds, state) => {
let eventIds = Set()
subscriptionsIds.forEach(subscriptionId => {
@@ -68,6 +81,7 @@ export const makeColumnEventIdsSelector = () =>
return eventIds.toList()
},
)
}
export const makeColumnArchivedIdsSelector = () => {
const columnEventIdsSelector = makeColumnEventIdsSelector()
@@ -91,8 +105,10 @@ export const makeColumnReadIdsSelector = () => {
)
}
export const makeColumnSubscriptionsSelector = () =>
createImmutableSelector(
export const makeColumnSubscriptionsSelector = () => {
const columnSubscriptionIdsSelector = makeColumnSubscriptionIdsSelector()
return createImmutableSelector(
columnSubscriptionIdsSelector,
subscriptionsEntitySelector,
(subscriptionIds, subscriptions) =>
@@ -100,25 +116,28 @@ export const makeColumnSubscriptionsSelector = () =>
.map(subscriptionId => get(subscriptions, subscriptionId))
.filter(Boolean),
)
}
const columnSubscriptionsSelector = makeColumnSubscriptionsSelector()
export const makeColumnIsLoadingSelector = () => {
const columnSubscriptionsSelector = makeColumnSubscriptionsSelector()
export const columnIsLoadingSelector = createImmutableSelector(
columnSubscriptionsSelector,
subscriptions =>
return createImmutableSelector(columnSubscriptionsSelector, subscriptions =>
subscriptions.some(subscription => get(subscription, 'loading')),
)
)
}
export const columnErrorsSelector = createImmutableSelector(
columnSubscriptionsSelector,
subscriptions =>
export const makeColumnErrorsSelector = () => {
const columnSubscriptionsSelector = makeColumnSubscriptionsSelector()
return createImmutableSelector(columnSubscriptionsSelector, subscriptions =>
subscriptions
.reduce(
(errors, subscription) => errors.concat(get(subscription, 'error')),
List(),
)
.filter(Boolean),
)
)
}
export const orderedColumnsSelector = createImmutableSelector(
columnsEntitySelector,

View File

@@ -5,22 +5,29 @@ import { denormalize } from 'denormalizr'
import { Set } from 'immutable'
import {
createImmutableSelectorCreator,
createImmutableSelector,
createImmutableSelectorCreator,
createObjectKeysMemoized,
entitiesSelector,
isArchivedFilter,
isDeletedFilter,
isReadFilter,
objectKeysMemoized,
} from './shared'
import { makeColumnEventIdsSelector } from './columns'
import { EventSchema } from '../utils/normalizr/schemas'
import { groupSimilarEvents } from '../utils/helpers/github/events'
import { get } from '../utils/immutable'
const objectKeysMemoized = createObjectKeysMemoized()
export const eventIdSelector = (state, { eventId }) => eventId
export const eventEntitiesSelector = state =>
entitiesSelector(state).get('events').filter(Boolean)
export const eventEntitiesSelector = createImmutableSelector(
state => get(entitiesSelector(state), 'events'),
events => events.filter(Boolean),
)
export const eventIdsSelector = state =>
objectKeysMemoized(eventEntitiesSelector(state))
@@ -56,11 +63,7 @@ export const makeIsArchivedEventSelector = () =>
createImmutableSelector(eventSelector, isArchivedFilter)
export const makeIsReadEventSelector = () =>
createImmutableSelector(
eventIdSelector,
readEventIdsSelector,
(eventId, readIds) => !!readIds.includes(eventId),
)
createImmutableSelector(eventSelector, isReadFilter)
export const makeDenormalizedEventSelector = (n = 1) =>
createImmutableSelectorCreator(

View File

@@ -15,6 +15,7 @@ import {
import { groupNotificationsByRepository } from '../utils/helpers/github/notifications'
import { NotificationSchema } from '../utils/normalizr/schemas'
import { get } from '../utils/immutable'
export const sortNotificationsByDate = (b, a) =>
a.get('updated_at') > b.get('updated_at') ? 1 : -1
@@ -22,8 +23,11 @@ export const sortNotificationsByDate = (b, a) =>
export const notificationIdSelector = (state, { notificationId }) =>
notificationId
export const notificationDetailsSelector = state => state.get('notifications')
export const notificationEntitiesSelector = state =>
entitiesSelector(state).get('notifications').filter(Boolean)
export const notificationEntitiesSelector = createImmutableSelector(
state => get(entitiesSelector(state), 'notifications'),
notifications => notifications.filter(Boolean),
)
export const notificationSelector = (state, { notificationId }) =>
notificationEntitiesSelector(state).get(notificationId)
@@ -77,11 +81,7 @@ export const makeIsArchivedNotificationSelector = () =>
createImmutableSelector(notificationSelector, isArchivedFilter)
export const makeIsReadNotificationSelector = () =>
createImmutableSelector(
notificationIdSelector,
readNotificationIdsSelector,
(notificationId, readIds) => readIds.includes(notificationId),
)
createImmutableSelector(notificationSelector, isReadFilter)
export const makeDenormalizedNotificationSelector = (n = 1) =>
createImmutableSelectorCreator(

View File

@@ -8,9 +8,14 @@ import {
isReadFilter,
} from './shared'
import { get } from '../utils/immutable'
export const repoIdSelector = (state, { repoId }) => repoId
export const reposEntitiesSelector = state =>
entitiesSelector(state).get('repos').filter(Boolean)
export const reposEntitiesSelector = createImmutableSelector(
state => get(entitiesSelector(state), 'repos'),
repos => repos.filter(Boolean),
)
export const starredReposSelector = createImmutableSelector(
reposEntitiesSelector,

View File

@@ -19,11 +19,12 @@ export function immutableMemoize(
equalityCheck(value, lastArgs[index])
return (...args) => {
const slicedArgs = typeof numberOfArgsToMemoize === 'number'
? numberOfArgsToMemoize < 0
? args.slice(numberOfArgsToMemoize)
: args.slice(0, numberOfArgsToMemoize)
: args
const slicedArgs =
typeof numberOfArgsToMemoize === 'number'
? numberOfArgsToMemoize < 0
? args.slice(numberOfArgsToMemoize)
: args.slice(0, numberOfArgsToMemoize)
: args
if (
lastArgs === null ||
@@ -44,7 +45,9 @@ export function immutableMemoize(
export const getKeysFromImmutableObject = obj =>
obj ? obj.keySeq().toList() : List()
export const objectKeysMemoized = immutableMemoize(getKeysFromImmutableObject)
export const createObjectKeysMemoized = () =>
immutableMemoize(getKeysFromImmutableObject)
export const createImmutableSelectorCreator = _.memoize(numberOfArgsToMemoize =>
createSelectorCreator(

View File

@@ -3,11 +3,13 @@ import { List, Map } from 'immutable'
import {
createImmutableSelector,
createImmutableSelectorCreator,
createObjectKeysMemoized,
getKeysFromImmutableObject,
immutableMemoize,
objectKeysMemoized,
} from './shared'
const objectKeysMemoized = createObjectKeysMemoized()
const obj = Map({
a: 10,
b: 20,
@@ -21,9 +23,11 @@ test('getKeysFromImmutableObject', () => {
test('objectKeysMemoized', () => {
const result1 = objectKeysMemoized(obj)
const result2 = objectKeysMemoized(obj)
const result3 = objectKeysMemoized(obj.set('c', 33))
expect(result1).toEqual(List(['a', 'b', 'c']))
expect(result1).toBe(result2)
expect(result1).toBe(result3)
})
test('immutableMemoize -- memoize all arguments', () => {

View File

@@ -6,17 +6,22 @@ import { denormalize } from 'denormalizr'
import {
createImmutableSelector,
createImmutableSelectorCreator,
createObjectKeysMemoized,
entitiesSelector,
objectKeysMemoized,
} from './shared'
import { SubscriptionSchema } from '../utils/normalizr/schemas'
import { get } from '../utils/immutable'
const objectKeysMemoized = createObjectKeysMemoized()
export const subscriptionIdSelector = (state, { subscriptionId }) =>
subscriptionId
export const subscriptionsEntitySelector = state =>
entitiesSelector(state).get('subscriptions').filter(Boolean)
export const subscriptionsEntitySelector = createImmutableSelector(
state => get(entitiesSelector(state), 'subscriptions'),
subscriptions => subscriptions.filter(Boolean),
)
export const subscriptionIdsSelector = state =>
objectKeysMemoized(subscriptionsEntitySelector(state))

View File

@@ -198,7 +198,9 @@ export function getEventText(
case 'ForkEvent':
return `forked ${repositoryText}`
case 'IssueCommentEvent':
return `commented on ${isPullRequest(get(payload, 'issue')) ? pullRequestText : issueText}`
return `commented on ${isPullRequest(get(payload, 'issue'))
? pullRequestText
: issueText}`
case 'IssuesEvent': // TODO: Fix these texts
switch (get(payload, 'action')) {
case 'closed':
@@ -292,11 +294,12 @@ export function getEventText(
case 'WatchEvent:OneRepoMultipleUsers':
return (() => {
const otherUsers = get(payload, 'users')
const otherUsersText = otherUsers && otherUsers.size > 0
? otherUsers.size > 1
const otherUsersText =
otherUsers && otherUsers.size > 0
? otherUsers.size > 1
? `and ${otherUsers.size} others`
: 'and 1 other'
: ''
: ''
return `${otherUsersText} starred ${repositoryText}`
})()

View File

@@ -5,18 +5,18 @@
"homepage": "./",
"dependencies": {
"bugsnag-js": "^3.2.0",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-helmet": "^5.1.3",
"react-native-web": "^0.0.97"
"react-native-web": "^0.0.108"
},
"devDependencies": {
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"extensible-react-scripts": "^1.0.6-10",
"gh-pages": "^1.0.0",
"react-dev-utils": "^3.0.0",
"serve": "^5.2.1",
"sw-precache": "^5.1.1"
"react-dev-utils": "^3.0.2",
"serve": "^6.0.0",
"sw-precache": "^5.2.0"
},
"scripts": {
"build": "NODE_ENV=production extensible-react-scripts build && sw-precache --config=sw-precache-config.js",

View File

@@ -58,6 +58,10 @@ address@1.0.1, address@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537"
address@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af"
ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@@ -107,6 +111,10 @@ anser@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/anser/-/anser-1.3.0.tgz#65b42f01119edb5a2fc8ea6f0892274cbcbec6b1"
anser@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.1.tgz#c3641863a962cebef941ea2c8706f2cb4f0716bd"
ansi-align@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba"
@@ -123,6 +131,10 @@ ansi-escapes@^1.1.0, ansi-escapes@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
ansi-escapes@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b"
ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
@@ -1379,9 +1391,9 @@ clipboardy@1.1.1:
dependencies:
execa "^0.6.0"
clipboardy@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.1.2.tgz#a26d075ff779b8f82721c0affebc543208a09116"
clipboardy@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.1.4.tgz#51b17574fc682588e2dd295cfa6e6aa109eab5ee"
dependencies:
execa "^0.6.0"
@@ -1628,9 +1640,9 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
create-react-class@^15.5.2:
version "15.5.3"
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.5.3.tgz#fb0f7cae79339e9a179e194ef466efa3923820fe"
create-react-class@^15.6.0:
version "15.6.0"
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
@@ -1926,9 +1938,16 @@ detect-node@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
detect-port@1.1.3:
detect-port-alt@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.1.3.tgz#5e639e9d61580d7c5be552431f21a2bc8a7a95d3"
resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.3.tgz#a4d2f061d757a034ecf37c514260a98750f2b131"
dependencies:
address "^1.0.1"
debug "^2.6.0"
detect-port@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.2.1.tgz#a2c0a048aa9df2b703fc54bb4436ce2118f09b5a"
dependencies:
address "^1.0.1"
debug "^2.6.0"
@@ -2524,7 +2543,7 @@ extensible-react-scripts@^1.0.6-10:
optionalDependencies:
fsevents "1.0.17"
external-editor@^2.0.1:
external-editor@^2.0.1, external-editor@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
dependencies:
@@ -3170,6 +3189,10 @@ ignore@^3.2.0:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -3207,9 +3230,9 @@ ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
inline-style-prefixer@^3.0.3:
version "3.0.5"
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.5.tgz#0092881b3a2eadf1bd619dc43726557316f76042"
inline-style-prefixer@^3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.6.tgz#b27fe309b4168a31eaf38c8e8c60ab9e7c11731f"
dependencies:
bowser "^1.6.0"
css-in-js-utils "^1.0.3"
@@ -3232,6 +3255,25 @@ inquirer@3.0.6:
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.1.1.tgz#87621c4fba4072f48a8dd71c9f9df6f100b2d534"
dependencies:
ansi-escapes "^2.0.0"
chalk "^1.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^2.0.4"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
rx-lite "^4.0.8"
rx-lite-aggregates "^4.0.8"
string-width "^2.0.0"
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
@@ -3447,6 +3489,10 @@ is-retry-allowed@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
is-root@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5"
is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -4498,6 +4544,12 @@ opn@5.0.0:
dependencies:
is-wsl "^1.1.0"
opn@5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519"
dependencies:
is-wsl "^1.1.0"
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@@ -5076,7 +5128,7 @@ promise@7.1.1, promise@^7.1.1:
dependencies:
asap "~2.0.3"
prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@~15.5.7:
prop-types@^15.5.10, prop-types@^15.5.4:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
@@ -5201,36 +5253,37 @@ react-dev-utils@^2.0.1:
strip-ansi "3.0.1"
text-table "0.2.0"
react-dev-utils@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-3.0.0.tgz#3677f37718ba0cae892ba9c01fe54d1622e6ef7c"
react-dev-utils@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-3.0.2.tgz#1a42263e9b6aa11dcb45d69dfe5eb1b354bd5531"
dependencies:
"@timer/detect-port" "1.1.3"
address "1.0.1"
anser "1.3.0"
address "1.0.2"
anser "1.4.1"
babel-code-frame "6.22.0"
chalk "1.1.3"
cross-spawn "4.0.2"
detect-port-alt "1.1.3"
escape-string-regexp "1.0.5"
filesize "3.3.0"
gzip-size "3.0.0"
html-entities "1.2.1"
inquirer "3.0.6"
opn "5.0.0"
inquirer "3.1.1"
is-root "1.0.0"
opn "5.1.0"
recursive-readdir "2.2.1"
shell-quote "1.6.1"
sockjs-client "1.1.4"
strip-ansi "3.0.1"
text-table "0.2.0"
react-dom@^15.5.4:
version "15.5.4"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.5.4.tgz#ba0c28786fd52ed7e4f2135fe0288d462aef93da"
react-dom@^15.6.1:
version "15.6.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.1.0"
object-assign "^4.1.0"
prop-types "~15.5.7"
prop-types "^15.5.10"
react-error-overlay@^1.0.6:
version "1.0.6"
@@ -5252,21 +5305,21 @@ react-helmet@^5.1.3:
prop-types "^15.5.4"
react-side-effect "^1.1.0"
react-native-web@^0.0.97:
version "0.0.97"
resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.0.97.tgz#80f48c2d69ae0b872c9076828dbee9a51685c6e5"
react-native-web@^0.0.108:
version "0.0.108"
resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.0.108.tgz#e35fcf410aafb012f9a381a2434d396ad97f3113"
dependencies:
animated "^0.2.0"
array-find-index "^1.0.2"
babel-runtime "^6.23.0"
create-react-class "^15.5.2"
create-react-class "^15.6.0"
debounce "1.0.2"
deep-assign "^2.0.0"
fbjs "^0.8.12"
hyphenate-style-name "^1.0.2"
inline-style-prefixer "^3.0.3"
inline-style-prefixer "^3.0.6"
normalize-css-color "^1.0.2"
prop-types "^15.5.8"
prop-types "^15.5.10"
react-timer-mixin "^0.13.3"
react-side-effect@^1.1.0:
@@ -5280,14 +5333,15 @@ react-timer-mixin@^0.13.3:
version "0.13.3"
resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.3.tgz#0da8b9f807ec07dc3e854d082c737c65605b3d22"
react@^15.5.4:
version "15.5.4"
resolved "https://registry.yarnpkg.com/react/-/react-15.5.4.tgz#fa83eb01506ab237cdc1c8c3b1cea8de012bf047"
react@^15.6.1:
version "15.6.1"
resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df"
dependencies:
create-react-class "^15.6.0"
fbjs "^0.8.9"
loose-envify "^1.1.0"
object-assign "^4.1.0"
prop-types "^15.5.7"
prop-types "^15.5.10"
read-all-stream@^3.0.0:
version "3.1.0"
@@ -5585,6 +5639,16 @@ run-async@^2.2.0:
dependencies:
is-promise "^2.1.0"
rx-lite-aggregates@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
dependencies:
rx-lite "*"
rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
rx-lite@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
@@ -5672,18 +5736,18 @@ serve-static@1.12.3:
parseurl "~1.3.1"
send "0.15.3"
serve@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/serve/-/serve-5.2.1.tgz#f71a2cf2392e596abec9e3fed8280dd2dc370954"
serve@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/serve/-/serve-6.0.0.tgz#9b7e2f8c478a6759c87c5de7f5d32c124d09f429"
dependencies:
args "3.0.2"
basic-auth "1.1.0"
bluebird "3.5.0"
boxen "1.1.0"
chalk "1.1.3"
clipboardy "1.1.2"
clipboardy "1.1.4"
dargs "5.1.0"
detect-port "1.1.3"
detect-port "1.2.1"
filesize "3.5.10"
fs-extra "3.0.1"
handlebars "4.0.10"
@@ -5692,10 +5756,10 @@ serve@^5.2.1:
micro-compress "1.0.0"
mime-types "2.1.15"
node-version "1.0.0"
opn "5.0.0"
opn "5.1.0"
path-type "2.0.0"
send "0.15.3"
update-notifier "2.1.0"
update-notifier "2.2.0"
serviceworker-cache-polyfill@^4.0.0:
version "4.0.0"
@@ -6041,7 +6105,7 @@ sw-precache-webpack-plugin@0.9.1:
sw-precache "^5.0.0"
uglify-js "^2.8.5"
sw-precache@^5.0.0, sw-precache@^5.1.1:
sw-precache@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.1.1.tgz#928720957463e55ed56777e177c4699f35ec59b6"
dependencies:
@@ -6056,6 +6120,21 @@ sw-precache@^5.0.0, sw-precache@^5.1.1:
sw-toolbox "^3.4.0"
update-notifier "^1.0.3"
sw-precache@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.0.tgz#eb6225ce580ceaae148194578a0ad01ab7ea199c"
dependencies:
dom-urls "^1.1.0"
es6-promise "^4.0.5"
glob "^7.1.1"
lodash.defaults "^4.2.0"
lodash.template "^4.4.0"
meow "^3.7.0"
mkdirp "^0.5.1"
pretty-bytes "^4.0.2"
sw-toolbox "^3.4.0"
update-notifier "^1.0.3"
sw-toolbox@^3.4.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5"
@@ -6297,6 +6376,19 @@ update-notifier@2.1.0:
semver-diff "^2.0.0"
xdg-basedir "^3.0.0"
update-notifier@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f"
dependencies:
boxen "^1.0.0"
chalk "^1.0.0"
configstore "^3.0.0"
import-lazy "^2.1.0"
is-npm "^1.0.0"
latest-version "^3.0.0"
semver-diff "^2.0.0"
xdg-basedir "^3.0.0"
update-notifier@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a"

361
yarn.lock
View File

@@ -136,9 +136,9 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
aria-query@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.3.0.tgz#cb8a9984e2862711c83c80ade5b8f5ca0de2b467"
aria-query@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.5.0.tgz#85e3152cd8cc5bab18dbed61cd9c4fce54fa79c3"
dependencies:
ast-types-flow "0.0.7"
@@ -168,6 +168,13 @@ array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
array-includes@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.7.0"
array-map@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
@@ -190,13 +197,6 @@ array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
array.prototype.find@^2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.7.0"
arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -273,6 +273,12 @@ aws4@^1.2.1:
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-code-frame@^6.16.0, babel-code-frame@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
@@ -436,14 +442,6 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
babel-jest@^19.0.0:
version "19.0.0"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-19.0.0.tgz#59323ced99a3a84d359da219ca881074ffc6ce3f"
dependencies:
babel-core "^6.0.0"
babel-plugin-istanbul "^4.0.0"
babel-preset-jest "^19.0.0"
babel-jest@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671"
@@ -478,10 +476,6 @@ babel-plugin-istanbul@^4.0.0:
istanbul-lib-instrument "^1.7.1"
test-exclude "^4.1.0"
babel-plugin-jest-hoist@^19.0.0:
version "19.0.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz#4ae2a04ea612a6e73651f3fde52c178991304bea"
babel-plugin-jest-hoist@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767"
@@ -953,12 +947,6 @@ babel-preset-fbjs@^2.1.2:
babel-plugin-transform-react-display-name "^6.8.0"
babel-plugin-transform-react-jsx "^6.8.0"
babel-preset-jest@^19.0.0:
version "19.0.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz#22d67201d02324a195811288eb38294bb3cac396"
dependencies:
babel-plugin-jest-hoist "^19.0.0"
babel-preset-jest@^20.0.3:
version "20.0.3"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a"
@@ -978,7 +966,7 @@ babel-preset-react-native-stage-0@^1.0.1:
babel-plugin-transform-function-bind "^6.5.2"
babel-preset-react-native "^1.5.6"
babel-preset-react-native@1.9.1, babel-preset-react-native@^1.5.6, babel-preset-react-native@^1.9.1:
babel-preset-react-native@^1.5.6, babel-preset-react-native@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-1.9.1.tgz#ec8e378274410d78f550fa9f8edd70353f3bb2fe"
dependencies:
@@ -1012,6 +1000,40 @@ babel-preset-react-native@1.9.1, babel-preset-react-native@^1.5.6, babel-preset-
babel-plugin-transform-regenerator "^6.5.0"
react-transform-hmr "^1.0.4"
babel-preset-react-native@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-2.0.0.tgz#c26c7066c7399df30926fa03c012ef87f2cce5b7"
dependencies:
babel-plugin-check-es2015-constants "^6.5.0"
babel-plugin-react-transform "2.0.2"
babel-plugin-syntax-async-functions "^6.5.0"
babel-plugin-syntax-class-properties "^6.5.0"
babel-plugin-syntax-flow "^6.5.0"
babel-plugin-syntax-jsx "^6.5.0"
babel-plugin-syntax-trailing-function-commas "^6.5.0"
babel-plugin-transform-class-properties "^6.5.0"
babel-plugin-transform-es2015-arrow-functions "^6.5.0"
babel-plugin-transform-es2015-block-scoping "^6.5.0"
babel-plugin-transform-es2015-classes "^6.5.0"
babel-plugin-transform-es2015-computed-properties "^6.5.0"
babel-plugin-transform-es2015-destructuring "^6.5.0"
babel-plugin-transform-es2015-for-of "^6.5.0"
babel-plugin-transform-es2015-function-name "^6.5.0"
babel-plugin-transform-es2015-literals "^6.5.0"
babel-plugin-transform-es2015-modules-commonjs "^6.5.0"
babel-plugin-transform-es2015-parameters "^6.5.0"
babel-plugin-transform-es2015-shorthand-properties "^6.5.0"
babel-plugin-transform-es2015-spread "^6.5.0"
babel-plugin-transform-es2015-template-literals "^6.5.0"
babel-plugin-transform-flow-strip-types "^6.5.0"
babel-plugin-transform-object-assign "^6.5.0"
babel-plugin-transform-object-rest-spread "^6.5.0"
babel-plugin-transform-react-display-name "^6.5.0"
babel-plugin-transform-react-jsx "^6.5.0"
babel-plugin-transform-react-jsx-source "^6.5.0"
babel-plugin-transform-regenerator "^6.5.0"
react-transform-hmr "^1.0.4"
babel-register@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
@@ -1158,10 +1180,6 @@ boom@2.x.x:
dependencies:
hoek "2.x.x"
bowser@^1.0.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.0.tgz#169de4018711f994242bff9a8009e77a1f35e003"
bplist-creator@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.4.tgz#4ac0496782e127a85c1d2026a4f5eb22a7aff991"
@@ -1409,14 +1427,10 @@ commoner@~0.10.3:
q "^1.1.2"
recast "^0.11.17"
component-emitter@1.2.0:
component-emitter@1.2.0, component-emitter@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe"
component-emitter@~1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
compressible@~2.0.5:
version "2.0.10"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.10.tgz#feda1c7f7617912732b29bf8cf26252a20b9eecd"
@@ -1670,7 +1684,7 @@ dateformat@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
debug@2, debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.4.5, debug@^2.6.3:
debug@2, debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.4.5, debug@^2.6.3, debug@^2.6.8:
version "2.6.8"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
dependencies:
@@ -1760,9 +1774,9 @@ denodeify@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631"
denormalizr@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/denormalizr/-/denormalizr-0.5.2.tgz#48522ed31dc9004aa19c52972090e432845f0cbc"
denormalizr@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/denormalizr/-/denormalizr-0.6.0.tgz#ce940ebc1020b3a8f0628e0aacf311950291866f"
dependencies:
lodash "^4.17.4"
@@ -1795,7 +1809,7 @@ diff@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
doctrine@1.5.0, doctrine@^1.2.2:
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
dependencies:
@@ -1903,8 +1917,8 @@ es-to-primitive@^1.1.1:
is-symbol "^1.0.1"
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.20"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.20.tgz#72a9b4fd5832797ba1bb65dceb2e25c04241c492"
version "0.10.23"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38"
dependencies:
es6-iterator "2"
es6-symbol "~3.1"
@@ -1986,33 +2000,32 @@ escope@^3.6.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-config-airbnb-base@^11.1.0:
eslint-config-airbnb-base@^11.2.0:
version "11.2.0"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.2.0.tgz#19a9dc4481a26f70904545ec040116876018f853"
eslint-config-airbnb@^14.1.0:
version "14.1.0"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz#355d290040bbf8e00bf8b4b19f4b70cbe7c2317f"
eslint-config-airbnb@^15.0.1:
version "15.0.1"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-15.0.1.tgz#7b5188e5b7c74b9b2ce639fd5e1daba8fd761aed"
dependencies:
eslint-config-airbnb-base "^11.1.0"
eslint-config-airbnb-base "^11.2.0"
eslint-config-prettier@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-1.7.0.tgz#cda3ce22df1e852daa9370f1f3446e8b8a02ce44"
eslint-config-prettier@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.3.0.tgz#b75b1eabea0c8b97b34403647ee25db349b9d8a0"
dependencies:
get-stdin "^5.0.1"
eslint-config-react-app@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-0.6.2.tgz#ee535cbaaf9e3576ea16b99afe720353d8730ec0"
eslint-config-react-app@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-1.0.5.tgz#98337597bc01cc22991fcbdda07451f3b4511718"
eslint-import-resolver-node@^0.2.0:
version "0.2.3"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c"
eslint-import-resolver-node@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
dependencies:
debug "^2.2.0"
object-assign "^4.0.1"
resolve "^1.1.6"
debug "^2.6.8"
resolve "^1.2.0"
eslint-module-utils@^2.0.0:
version "2.0.0"
@@ -2025,41 +2038,42 @@ eslint-plugin-babel@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.1.tgz#ef285c87039b67beb3bbd227f5b0eed4fb376b87"
eslint-plugin-flowtype@^2.32.1:
version "2.34.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.34.0.tgz#b9875f314652e5081623c9d2b18a346bbb759c09"
eslint-plugin-flowtype@^2.34.1:
version "2.34.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.34.1.tgz#ea109175645b05d37baeac53b9b65066d79b9446"
dependencies:
lodash "^4.15.0"
eslint-plugin-import@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.3.0.tgz#37c801e0ada0e296cbdf20c3f393acb5b52af36b"
version "2.6.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.6.1.tgz#f580be62bb809421d46e338372764afcc9f59bf6"
dependencies:
builtin-modules "^1.1.1"
contains-path "^0.1.0"
debug "^2.2.0"
debug "^2.6.8"
doctrine "1.5.0"
eslint-import-resolver-node "^0.2.0"
eslint-import-resolver-node "^0.3.1"
eslint-module-utils "^2.0.0"
has "^1.0.1"
lodash.cond "^4.3.0"
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
"eslint-plugin-jsx-a11y@^3.0.2 || ^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz#779bb0fe7b08da564a422624911de10061e048ee"
eslint-plugin-jsx-a11y@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.0.tgz#4a829634344e7a90391a9fb0fbd19810737d79c5"
dependencies:
aria-query "^0.3.0"
aria-query "^0.5.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.0.0"
object-assign "^4.0.1"
jsx-ast-utils "^1.4.0"
eslint-plugin-prettier@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.1.1.tgz#2fb7e2ab961f2b61d2c8cf91bc17716ca8c53868"
eslint-plugin-prettier@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.1.2.tgz#4b90f4ee7f92bfbe2e926017e1ca40eb628965ea"
dependencies:
fast-diff "^1.1.1"
jest-docblock "^20.0.1"
@@ -2068,17 +2082,15 @@ eslint-plugin-react-native@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-2.3.2.tgz#e1b2ba2d97fb46b16fe2dbb5bd4d0f47419f2859"
eslint-plugin-react@^6.9.0:
version "6.10.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78"
eslint-plugin-react@^7.0.1:
version "7.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz#27770acf39f5fd49cd0af4083ce58104eb390d4c"
dependencies:
array.prototype.find "^2.0.1"
doctrine "^1.2.2"
doctrine "^2.0.0"
has "^1.0.1"
jsx-ast-utils "^1.3.4"
object.assign "^4.0.4"
jsx-ast-utils "^1.4.1"
eslint@^3.15.0:
eslint@^3.19.0:
version "3.19.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
dependencies:
@@ -2191,9 +2203,9 @@ exec-sh@^0.2.0:
dependencies:
merge "^1.1.3"
execa@^0.6.0:
version "0.6.3"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe"
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.0.0"
@@ -2414,10 +2426,6 @@ finalhandler@~1.0.3:
statuses "~1.3.1"
unpipe "~1.0.0"
find-parent-dir@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -2431,9 +2439,9 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
firebase@^3.7.5:
version "3.9.0"
resolved "https://registry.yarnpkg.com/firebase/-/firebase-3.9.0.tgz#c4237f50f58eeb25081b1839d6cbf175f8f7ed9b"
firebase@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/firebase/-/firebase-4.1.3.tgz#e5d7327366c854dc12461633ba8bfeea2f5c7358"
dependencies:
dom-storage "^2.0.2"
faye-websocket "0.9.3"
@@ -2454,9 +2462,9 @@ fleximap@0.9.x:
version "0.9.10"
resolved "https://registry.yarnpkg.com/fleximap/-/fleximap-0.9.10.tgz#1aa50ff6a8fea0037cc378e38ddacc091025ac10"
flow-bin@^0.45.0:
version "0.45.0"
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.45.0.tgz#009dd0f577a3f665c74ca8be827ae8c2dd8fd6b5"
flow-bin@^0.49.1:
version "0.49.1"
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.49.1.tgz#c9e456b3173a7535a4ffaf28956352c63bb8e3e9"
follow-redirects@^1.1.0:
version "1.2.3"
@@ -2848,18 +2856,13 @@ https-proxy-agent@1, https-proxy-agent@^1.0.0:
debug "2"
extend "3"
husky@^0.13.4:
version "0.13.4"
resolved "https://registry.yarnpkg.com/husky/-/husky-0.13.4.tgz#48785c5028de3452a51c48c12c4f94b2124a1407"
husky@^0.14.2:
version "0.14.2"
resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.2.tgz#6df06483965d2254db95dd143c445d6d8509b4b8"
dependencies:
chalk "^1.1.3"
find-parent-dir "^0.3.0"
is-ci "^1.0.9"
is-ci "^1.0.10"
normalize-path "^1.0.0"
hyphenate-style-name@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b"
strip-indent "^2.0.0"
iconv-lite@0.4.11:
version "0.4.11"
@@ -2869,10 +2872,14 @@ iconv-lite@0.4.13:
version "0.4.13"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
iconv-lite@0.4.15, iconv-lite@^0.4.5, iconv-lite@~0.4.13:
iconv-lite@0.4.15:
version "0.4.15"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
iconv-lite@^0.4.5, iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
ieee754@^1.1.4:
version "1.1.8"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
@@ -2918,13 +2925,6 @@ inherits@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
inline-style-prefixer@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7"
dependencies:
bowser "^1.0.0"
hyphenate-style-name "^1.0.1"
inquirer@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.1.2.tgz#ac3ba5f06b8e7291abd9f22912c03f09cfe2dd1f"
@@ -3021,7 +3021,7 @@ is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
is-ci@^1.0.10, is-ci@^1.0.9:
is-ci@^1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
dependencies:
@@ -3602,7 +3602,7 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.3.6"
jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4:
jsx-ast-utils@^1.4.0, jsx-ast-utils@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
@@ -3664,13 +3664,13 @@ linked-list@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf"
lint-staged@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.6.0.tgz#cda8f0bef16e7928cc14b735186ae12cd662599c"
lint-staged@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.0.0.tgz#c15669f598614a6e68090303e175a799d48e0d85"
dependencies:
app-root-path "^2.0.0"
cosmiconfig "^1.1.0"
execa "^0.6.0"
execa "^0.7.0"
listr "^0.12.0"
lodash.chunk "^4.2.0"
minimatch "^3.0.0"
@@ -4182,18 +4182,10 @@ object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
object-keys@^1.0.10, object-keys@^1.0.8:
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"
@@ -4455,9 +4447,9 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
prettier@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.4.2.tgz#bcdd95ed1eca434ac7f98ca26ea4d25a2af6a2ac"
prettier@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.2.tgz#7ea0751da27b93bfb6cecfcec509994f52d83bb3"
pretty-format@^20.0.3:
version "20.0.3"
@@ -4555,10 +4547,14 @@ qs@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607"
qs@6.4.0, qs@^6.4.0, qs@~6.4.0:
qs@6.4.0, qs@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
qs@^6.5.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49"
querystring@0.2.0, querystring@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
@@ -4613,13 +4609,9 @@ react-devtools-core@^2.1.8:
shell-quote "^1.6.1"
ws "^2.0.3"
react-native-actionsheet@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/react-native-actionsheet/-/react-native-actionsheet-2.1.0.tgz#e1b58bd951f4fcc1c5ebbb769fff5c693f12e23a"
react-native-code-push@^2.0.3-beta:
version "2.0.3-beta"
resolved "https://registry.yarnpkg.com/react-native-code-push/-/react-native-code-push-2.0.3-beta.tgz#2eca24e125a85711abda4e5a553deb4ff61c9177"
react-native-code-push@^3.0.0-beta:
version "3.0.0-beta"
resolved "https://registry.yarnpkg.com/react-native-code-push/-/react-native-code-push-3.0.0-beta.tgz#9cd3afb719b66d9f08c5f093f15f902ec1da8845"
dependencies:
code-push "1.11.2-beta"
glob "^5.0.15"
@@ -4643,9 +4635,9 @@ react-native-drawer-layout@1.3.1:
dependencies:
react-native-dismiss-keyboard "1.0.0"
react-native-immutable-list-view@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/react-native-immutable-list-view/-/react-native-immutable-list-view-0.4.5.tgz#47e15e3ed2b34a493c2bcd5eaccae4ff17d368d9"
react-native-immutable-list-view@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/react-native-immutable-list-view/-/react-native-immutable-list-view-0.5.0.tgz#4462ef1c334cef436fc9ad8bbbb8a4d6ad94bba5"
dependencies:
immutable ">=3.8"
@@ -4653,9 +4645,9 @@ react-native-linear-gradient@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.0.0.tgz#7442c00e1fcd9fca329119dcbaf744d12bcd1b5a"
react-native-prompt-android@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/react-native-prompt-android/-/react-native-prompt-android-0.0.5.tgz#dfc5fd2068da3b894d9bd4fe59082e775d141122"
react-native-prompt-android@^0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/react-native-prompt-android/-/react-native-prompt-android-0.0.8.tgz#4632b6bf3f7af120136b0d0503aa827cb78faeeb"
react-native-safari-view@^2.0.0:
version "2.0.0"
@@ -4675,15 +4667,15 @@ react-native-vector-icons@^4.2.0:
prop-types "^15.5.8"
yargs "^6.3.0"
react-native-wkwebview-reborn@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/react-native-wkwebview-reborn/-/react-native-wkwebview-reborn-1.4.0.tgz#5558ac1f7bc8e7ac30bc6f8b30e5ab4ab64523f8"
react-native-wkwebview-reborn@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/react-native-wkwebview-reborn/-/react-native-wkwebview-reborn-1.6.0.tgz#5b772df13906451a35b9bc0c057798e4bcb4da97"
dependencies:
fbjs "^0.8.3"
react-native@^0.45.0-rc.2:
version "0.45.0-rc.2"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.45.0-rc.2.tgz#e28c048403f6c13cb0d201ce0577549181558367"
react-native@0.45.1:
version "0.45.1"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.45.1.tgz#b3283c4a88233421f9c662a2ff1a4ccc8a9f07c0"
dependencies:
absolute-path "^0.0.0"
art "^0.10.0"
@@ -4800,9 +4792,9 @@ react-redux@^5.0.5:
loose-envify "^1.1.0"
prop-types "^15.5.10"
react-test-renderer@^15.5.4:
version "15.5.4"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.5.4.tgz#d4ebb23f613d685ea8f5390109c2d20fbf7c83bc"
react-test-renderer@^15.6.1:
version "15.6.1"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.1.tgz#026f4a5bb5552661fd2cc4bbcd0d4bc8a35ebf7e"
dependencies:
fbjs "^0.8.9"
object-assign "^4.1.0"
@@ -4957,26 +4949,26 @@ redux-persist-transform-immutable@^4.1.0:
transit-immutable-js "^0.7.0"
transit-js "^0.8.846"
redux-persist@^4.0.0, redux-persist@^4.8.0:
version "4.8.0"
resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.8.0.tgz#17fd998949bdeef9275e4cf60ad5bbe1c73675fc"
redux-persist@^4.0.0, redux-persist@^4.8.2:
version "4.8.2"
resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.8.2.tgz#7941202e0ce0a9fcc0263d66965f5263d34f43b9"
dependencies:
json-stringify-safe "^5.0.1"
lodash "^4.17.4"
lodash-es "^4.17.4"
redux-saga@^0.15.3:
version "0.15.3"
resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.15.3.tgz#be2b86b4ad46bf0d84fcfcb0ca96cfc33db91acb"
redux-saga@^0.15.4:
version "0.15.4"
resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.15.4.tgz#27982a947280053b7ecbb5d3170c837a5fe6b261"
redux@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/redux/-/redux-3.6.0.tgz#887c2b3d0b9bd86eca2be70571c27654c19e188d"
redux@^3.7.1:
version "3.7.1"
resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.1.tgz#bfc535c757d3849562ead0af18ac52122cd7268e"
dependencies:
lodash "^4.2.1"
lodash-es "^4.2.1"
loose-envify "^1.1.0"
symbol-observable "^1.0.2"
symbol-observable "^1.0.3"
regenerate@^1.2.1:
version "1.3.2"
@@ -5043,9 +5035,9 @@ remote-redux-devtools-on-debugger@^0.7.1:
minimist "^1.2.0"
remotedev-server "^0.2.2"
remote-redux-devtools@^0.5.11:
version "0.5.11"
resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.11.tgz#c7e809f5f6fed14760db4a7a11dce0399c1703ca"
remote-redux-devtools@^0.5.12:
version "0.5.12"
resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.12.tgz#42cb95dfa9e54c1d9671317c5e7bba41e68caec2"
dependencies:
jsan "^3.1.5"
querystring "^0.2.0"
@@ -5169,7 +5161,7 @@ resolve@1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
resolve@^1.1.6, resolve@^1.3.2:
resolve@^1.1.6, resolve@^1.2.0, resolve@^1.3.2:
version "1.3.3"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
dependencies:
@@ -5456,8 +5448,8 @@ shell-quote@1.6.1, shell-quote@^1.6.1:
jsonify "~0.0.0"
shelljs@^0.7.5:
version "0.7.7"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
version "0.7.8"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
@@ -5750,28 +5742,31 @@ strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
strip-indent@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
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"
"styled-components@git+https://github.com/brunolemos/styled-components.git#master-npm":
version "2.0.0"
resolved "git+https://github.com/brunolemos/styled-components.git#344eda29429478a1a119661bb845ba75d695a934"
styled-components@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.1.0.tgz#425805fca7efa5880aad2171f986bfd8a2f0808f"
dependencies:
buffer "^5.0.3"
css-to-react-native "^2.0.3"
fbjs "^0.8.9"
hoist-non-react-statics "^1.2.0"
inline-style-prefixer "^2.0.5"
is-function "^1.0.1"
is-plain-object "^2.0.1"
prop-types "^15.5.4"
stylis "^3.0.16"
stylis "^3.0.19"
supports-color "^3.2.3"
stylis@^3.0.16:
version "3.0.16"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.0.16.tgz#1059fa270934bc8bffbf06ac37418f0fb479ac04"
stylis@^3.0.19:
version "3.2.1"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.2.1.tgz#7a88988f8ccb5c238be3cc3cec173735cc594740"
superagent-proxy@^1.0.0:
version "1.0.2"
@@ -5806,7 +5801,7 @@ supports-color@^3.1.2, supports-color@^3.2.3:
dependencies:
has-flag "^1.0.0"
symbol-observable@^1.0.1, symbol-observable@^1.0.2:
symbol-observable@^1.0.1, symbol-observable@^1.0.2, symbol-observable@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"