1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00

merge master into next-export

This commit is contained in:
Arunoda Susiripala 2017-05-10 19:01:01 -07:00
commit 98ed666ca6
43 changed files with 567 additions and 387 deletions

View file

@ -4,15 +4,31 @@ import { StyleSheetServer } from 'aphrodite'
export default class MyDocument extends Document { export default class MyDocument extends Document {
static async getInitialProps ({ renderPage }) { static async getInitialProps ({ renderPage }) {
const { html, css } = StyleSheetServer.renderStatic(() => renderPage()) const { html, css } = StyleSheetServer.renderStatic(() => renderPage())
return { ...html, css } const ids = css.renderedClassNames
return { ...html, css, ids }
}
constructor (props) {
super(props)
/* Take the renderedClassNames from aphrodite (as generated
in getInitialProps) and assign them to __NEXT_DATA__ so that they
are accessible to the client for rehydration. */
const { __NEXT_DATA__, ids } = props
if (ids) {
__NEXT_DATA__.ids = this.props.ids
}
} }
render () { render () {
/* Make sure to use data-aphrodite attribute in the style tag here
so that aphrodite knows which style tag it's in control of when
the client goes to render styles. If you don't you'll get a second
<style> tag */
return ( return (
<html> <html>
<Head> <Head>
<title>My page</title> <title>My page</title>
<style dangerouslySetInnerHTML={{ __html: this.props.css.content }} /> <style data-aphrodite dangerouslySetInnerHTML={{ __html: this.props.css.content }} />
</Head> </Head>
<body> <body>
<Main /> <Main />

View file

@ -1,6 +1,13 @@
import React from 'react' import React from 'react'
import { StyleSheet, css } from 'aphrodite' import { StyleSheet, css } from 'aphrodite'
if (typeof window !== 'undefined') {
/* StyleSheet.rehydrate takes an array of rendered classnames,
and ensures that the client side render doesn't generate
duplicate style definitions in the <style data-aphrodite> tag */
StyleSheet.rehydrate(window.__NEXT_DATA__.ids)
}
export default () => ( export default () => (
<div className={css(styles.root)}> <div className={css(styles.root)}>
<h1 className={css(styles.title)}>My page</h1> <h1 className={css(styles.title)}>My page</h1>

View file

@ -0,0 +1,36 @@
import { ApolloClient, createNetworkInterface } from 'react-apollo'
import fetch from 'isomorphic-fetch'
let apolloClient = null
// Polyfill fetch() on the server (used by apollo-client)
if (!process.browser) {
global.fetch = fetch
}
function create () {
return new ApolloClient({
ssrMode: !process.browser, // Disables forceFetch on the server (so queries are only run once)
networkInterface: createNetworkInterface({
uri: 'https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn', // Server URL (must be absolute)
opts: { // Additional fetch() options like `credentials` or `headers`
credentials: 'same-origin'
}
})
})
}
export default function initApollo () {
// Make sure to create a new client for every server-side request so that data
// isn't shared between connections (which would be bad)
if (!process.browser) {
return create()
}
// Reuse client on the client-side
if (!apolloClient) {
apolloClient = create()
}
return apolloClient
}

View file

@ -1,28 +0,0 @@
import { ApolloClient, createNetworkInterface } from 'react-apollo'
let apolloClient = null
function _initClient (headers, initialState) {
return new ApolloClient({
initialState,
ssrMode: !process.browser,
dataIdFromObject: result => result.id || null,
networkInterface: createNetworkInterface({
uri: 'https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn',
opts: {
credentials: 'same-origin'
// Pass headers here if your graphql server requires them
}
})
})
}
export const initClient = (headers, initialState = {}) => {
if (!process.browser) {
return _initClient(headers, initialState)
}
if (!apolloClient) {
apolloClient = _initClient(headers, initialState)
}
return apolloClient
}

View file

@ -0,0 +1,39 @@
import { createStore, combineReducers, applyMiddleware, compose } from 'redux'
import reducers from './reducers'
let reduxStore = null
// Get the Redux DevTools extension and fallback to a no-op function
let devtools = f => f
if (process.browser && window.__REDUX_DEVTOOLS_EXTENSION__) {
devtools = window.__REDUX_DEVTOOLS_EXTENSION__()
}
function create (apollo, initialState = {}) {
return createStore(
combineReducers({ // Setup reducers
...reducers,
apollo: apollo.reducer()
}),
initialState, // Hydrate the store with server-side data
compose(
applyMiddleware(apollo.middleware()), // Add additional middleware here
devtools
)
)
}
export default function initRedux (apollo, initialState) {
// Make sure to create a new store for every server-side request so that data
// isn't shared between connections (which would be bad)
if (!process.browser) {
return create(apollo, initialState)
}
// Reuse store on the client-side
if (!reduxStore) {
reduxStore = create(apollo, initialState)
}
return reduxStore
}

View file

@ -1,18 +0,0 @@
import { createStore } from 'redux'
import getReducer from './reducer'
import createMiddleware from './middleware'
let reduxStore = null
export const initStore = (client, initialState) => {
let store
if (!process.browser || !reduxStore) {
const middleware = createMiddleware(client.middleware())
store = createStore(getReducer(client), initialState, middleware)
if (!process.browser) {
return store
}
reduxStore = store
}
return reduxStore
}

View file

@ -1,9 +0,0 @@
import { applyMiddleware, compose } from 'redux'
export default function createMiddleware (clientMiddleware) {
const middleware = applyMiddleware(clientMiddleware)
if (process.browser && window.devToolsExtension) {
return compose(middleware, window.devToolsExtension())
}
return middleware
}

View file

@ -1,7 +0,0 @@
import { combineReducers } from 'redux'
export default function getReducer (client) {
return combineReducers({
apollo: client.reducer()
})
}

View file

@ -0,0 +1,12 @@
export default {
example: (state = {}, { type, payload }) => {
switch (type) {
case 'EXAMPLE_ACTION':
return {
...state
}
default:
return state
}
}
}

View file

@ -1,56 +1,75 @@
import 'isomorphic-fetch'
import React from 'react' import React from 'react'
import PropTypes from 'prop-types'
import { ApolloProvider, getDataFromTree } from 'react-apollo' import { ApolloProvider, getDataFromTree } from 'react-apollo'
import { initClient } from './initClient' import initApollo from './initApollo'
import { initStore } from './initStore' import initRedux from './initRedux'
export default (Component) => ( export default ComposedComponent => {
class extends React.Component { return class WithData extends React.Component {
static async getInitialProps (ctx) { static displayName = `WithData(${ComposedComponent.displayName})`
const headers = ctx.req ? ctx.req.headers : {} static propTypes = {
const client = initClient(headers) serverState: PropTypes.object.isRequired
const store = initStore(client, client.initialState)
const props = {
url: { query: ctx.query, pathname: ctx.pathname },
...await (Component.getInitialProps ? Component.getInitialProps(ctx) : {})
} }
static async getInitialProps (ctx) {
let serverState = {}
// Evaluate the composed component's getInitialProps()
let composedInitialProps = {}
if (ComposedComponent.getInitialProps) {
composedInitialProps = await ComposedComponent.getInitialProps(ctx)
}
// Run all graphql queries in the component tree
// and extract the resulting data
if (!process.browser) { if (!process.browser) {
const apollo = initApollo()
const redux = initRedux(apollo)
// Provide the `url` prop data in case a graphql query uses it
const url = {query: ctx.query, pathname: ctx.pathname}
// Run all graphql queries
const app = ( const app = (
<ApolloProvider client={client} store={store}> // No need to use the Redux Provider
<Component {...props} /> // because Apollo sets up the store for us
<ApolloProvider client={apollo} store={redux}>
<ComposedComponent url={url} {...composedInitialProps} />
</ApolloProvider> </ApolloProvider>
) )
await getDataFromTree(app) await getDataFromTree(app)
}
const state = store.getState() // Extract query data from the store
const state = redux.getState()
// No need to include other initial Redux state because when it
// initialises on the client-side it'll create it again anyway
serverState = {
apollo: { // Make sure to only include Apollo's data state
data: state.apollo.data
}
}
}
return { return {
initialState: { serverState,
...state, ...composedInitialProps
apollo: {
data: client.getInitialState().data
}
},
headers,
...props
} }
} }
constructor (props) { constructor (props) {
super(props) super(props)
this.client = initClient(this.props.headers, this.props.initialState) this.apollo = initApollo()
this.store = initStore(this.client, this.props.initialState) this.redux = initRedux(this.apollo, this.props.serverState)
} }
render () { render () {
return ( return (
<ApolloProvider client={this.client} store={this.store}> // No need to use the Redux Provider
<Component {...this.props} /> // because Apollo sets up the store for us
<ApolloProvider client={this.apollo} store={this.redux}>
<ComposedComponent {...this.props} />
</ApolloProvider> </ApolloProvider>
) )
} }
} }
) }

View file

@ -1,16 +1,19 @@
{ {
"name": "with-apollo-and-redux", "name": "with-apollo-and-redux",
"version": "1.0.0", "version": "2.0.0",
"scripts": { "scripts": {
"dev": "next", "dev": "next",
"build": "next build", "build": "next build",
"start": "next start" "start": "next start"
}, },
"dependencies": { "dependencies": {
"graphql": "^0.9.1", "graphql": "^0.9.3",
"isomorphic-fetch": "^2.2.1",
"next": "latest", "next": "latest",
"react": "^15.4.2", "prop-types": "^15.5.8",
"react-apollo": "^1.0.0-rc.2", "react": "^15.5.4",
"react-apollo": "^1.1.3",
"react-dom": "^15.5.4",
"redux": "^3.6.0" "redux": "^3.6.0"
}, },
"author": "", "author": "",

View file

@ -0,0 +1,37 @@
import { ApolloClient, createNetworkInterface } from 'react-apollo'
import fetch from 'isomorphic-fetch'
let apolloClient = null
// Polyfill fetch() on the server (used by apollo-client)
if (!process.browser) {
global.fetch = fetch
}
function create (initialState) {
return new ApolloClient({
initialState,
ssrMode: !process.browser, // Disables forceFetch on the server (so queries are only run once)
networkInterface: createNetworkInterface({
uri: 'https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn', // Server URL (must be absolute)
opts: { // Additional fetch() options like `credentials` or `headers`
credentials: 'same-origin'
}
})
})
}
export default function initApollo (initialState) {
// Make sure to create a new client for every server-side request so that data
// isn't shared between connections (which would be bad)
if (!process.browser) {
return create(initialState)
}
// Reuse client on the client-side
if (!apolloClient) {
apolloClient = create(initialState)
}
return apolloClient
}

View file

@ -1,28 +0,0 @@
import { ApolloClient, createNetworkInterface } from 'react-apollo'
let apolloClient = null
function _initClient (headers, initialState) {
return new ApolloClient({
initialState,
ssrMode: !process.browser,
dataIdFromObject: result => result.id || null,
networkInterface: createNetworkInterface({
uri: 'https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn',
opts: {
credentials: 'same-origin'
// Pass headers here if your graphql server requires them
}
})
})
}
export const initClient = (headers, initialState = {}) => {
if (!process.browser) {
return _initClient(headers, initialState)
}
if (!apolloClient) {
apolloClient = _initClient(headers, initialState)
}
return apolloClient
}

View file

@ -1,50 +1,66 @@
import 'isomorphic-fetch'
import React from 'react' import React from 'react'
import PropTypes from 'prop-types'
import { ApolloProvider, getDataFromTree } from 'react-apollo' import { ApolloProvider, getDataFromTree } from 'react-apollo'
import { initClient } from './initClient' import initApollo from './initApollo'
export default (Component) => ( export default ComposedComponent => {
class extends React.Component { return class WithData extends React.Component {
static async getInitialProps (ctx) { static displayName = `WithData(${ComposedComponent.displayName})`
const headers = ctx.req ? ctx.req.headers : {} static propTypes = {
const client = initClient(headers) serverState: PropTypes.object.isRequired
const props = {
url: { query: ctx.query, pathname: ctx.pathname },
...await (Component.getInitialProps ? Component.getInitialProps(ctx) : {})
} }
static async getInitialProps (ctx) {
let serverState = {}
// Evaluate the composed component's getInitialProps()
let composedInitialProps = {}
if (ComposedComponent.getInitialProps) {
composedInitialProps = await ComposedComponent.getInitialProps(ctx)
}
// Run all graphql queries in the component tree
// and extract the resulting data
if (!process.browser) { if (!process.browser) {
const apollo = initApollo()
// Provide the `url` prop data in case a graphql query uses it
const url = {query: ctx.query, pathname: ctx.pathname}
// Run all graphql queries
const app = ( const app = (
<ApolloProvider client={client}> <ApolloProvider client={apollo}>
<Component {...props} /> <ComposedComponent url={url} {...composedInitialProps} />
</ApolloProvider> </ApolloProvider>
) )
await getDataFromTree(app) await getDataFromTree(app)
// Extract query data from the Apollo's store
const state = apollo.getInitialState()
serverState = {
apollo: { // Make sure to only include Apollo's data state
data: state.data
}
}
} }
return { return {
initialState: { serverState,
apollo: { ...composedInitialProps
data: client.getInitialState().data
}
},
headers,
...props
} }
} }
constructor (props) { constructor (props) {
super(props) super(props)
this.client = initClient(this.props.headers, this.props.initialState) this.apollo = initApollo(this.props.serverState)
} }
render () { render () {
return ( return (
<ApolloProvider client={this.client}> <ApolloProvider client={this.apollo}>
<Component {...this.props} /> <ComposedComponent {...this.props} />
</ApolloProvider> </ApolloProvider>
) )
} }
} }
) }

View file

@ -1,16 +1,19 @@
{ {
"name": "with-apollo", "name": "with-apollo",
"version": "1.0.1", "version": "2.0.0",
"scripts": { "scripts": {
"dev": "next", "dev": "next",
"build": "next build", "build": "next build",
"start": "next start" "start": "next start"
}, },
"dependencies": { "dependencies": {
"graphql": "^0.9.1", "graphql": "^0.9.3",
"isomorphic-fetch": "^2.2.1",
"next": "latest", "next": "latest",
"react": "^15.4.2", "prop-types": "^15.5.8",
"react-apollo": "^1.0.0-rc.3" "react": "^15.5.4",
"react-dom": "^15.5.4",
"react-apollo": "^1.1.3"
}, },
"author": "", "author": "",
"license": "ISC" "license": "ISC"

View file

@ -1,5 +1,5 @@
import Document, { Head, Main, NextScript } from 'next/document' import Document, { Head, Main, NextScript } from 'next/document'
import cxs from 'cxs' import cxs from 'cxs/lite'
export default class MyDocument extends Document { export default class MyDocument extends Document {
static async getInitialProps ({ renderPage }) { static async getInitialProps ({ renderPage }) {
@ -13,7 +13,7 @@ export default class MyDocument extends Document {
<html> <html>
<Head> <Head>
<title>My page</title> <title>My page</title>
<style dangerouslySetInnerHTML={{ __html: this.props.style }} /> <style id='cxs-style' dangerouslySetInnerHTML={{ __html: this.props.style }} />
</Head> </Head>
<body> <body>
<Main /> <Main />

View file

@ -1,5 +1,13 @@
import React from 'react' import React from 'react'
import cxs from 'cxs' import cxs from 'cxs/lite'
// Using cxs/lite on both the server and client,
// the styles will need to be rehydrated.
if (typeof window !== 'undefined') {
const styleTag = document.getElementById('cxs-style')
const serverCss = styleTag.innerHTML
cxs.rehydrate(serverCss)
}
export default () => ( export default () => (
<div className={cx.root}> <div className={cx.root}>

View file

@ -0,0 +1,3 @@
module.exports = {
// TODO firebase client config
}

View file

@ -0,0 +1,3 @@
module.exports = {
// TODO firebase server config
}

View file

@ -1,8 +0,0 @@
module.exports = {
clientCredentials: {
// TODO firebase client config
},
serverCredentials: {
// TODO service account json here
}
}

View file

@ -1,7 +1,7 @@
import React, { Component } from 'react' import React, { Component } from 'react'
import firebase from 'firebase' import firebase from 'firebase'
import 'isomorphic-fetch' import 'isomorphic-fetch'
import { clientCredentials } from '../firebaseCredentials' import clientCredentials from '../credentials/client'
export default class Index extends Component { export default class Index extends Component {
static async getInitialProps ({req, query}) { static async getInitialProps ({req, query}) {

View file

@ -10,7 +10,7 @@ const app = next({ dev })
const handle = app.getRequestHandler() const handle = app.getRequestHandler()
const firebase = admin.initializeApp({ const firebase = admin.initializeApp({
credential: admin.credential.cert(require('./firebaseCredentials').serverCredentials), credential: admin.credential.cert(require('./credentials/server')),
databaseURL: '' // TODO database URL goes here databaseURL: '' // TODO database URL goes here
}, 'server') }, 'server')

View file

@ -1,15 +1,16 @@
{ {
"env": { "env": {
"development": { "development": {
"presets": ["next/babel"] "presets": "next/babel"
}, },
"production": { "production": {
"presets": ["next/babel"] "presets": "next/babel"
}, },
"test": { "test": {
// next/babel does not transpile import/export syntax. "presets": [
// So, using es2015 in the beginning will fix that. ["env", { "modules": "commonjs" }],
"presets": ["es2015", "next/babel"] "next/babel"
]
} }
} }
} }

View file

@ -1,8 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`With Snapshot Testing App shows "Hello world!" 1`] = ` exports[`With Snapshot Testing App shows "Hello world!" 1`] = `
<div <div
data-jsx={2648947580}> data-jsx={2648947580}
>
<p <p
data-jsx={2648947580}> data-jsx={2648947580}
>
Hello World! Hello World!
</p> </p>
</div> </div>

View file

@ -1,15 +1,14 @@
/* global it, expect, describe */ /* eslint-env jest */
import React from 'react'
import { shallow } from 'enzyme' import { shallow } from 'enzyme'
import React from 'react'
import renderer from 'react-test-renderer' import renderer from 'react-test-renderer'
import App from '../pages/index.js' import App from '../pages/index.js'
describe('With Enzyme', () => { describe('With Enzyme', () => {
it('App shows "Hello world!"', () => { it('App shows "Hello world!"', () => {
const app = shallow( const app = shallow(<App />)
<App />
)
expect(app.find('p').text()).toEqual('Hello World!') expect(app.find('p').text()).toEqual('Hello World!')
}) })

View file

@ -2,20 +2,19 @@
"name": "with-jest", "name": "with-jest",
"dependencies": { "dependencies": {
"next": "latest", "next": "latest",
"react": "^15.4.2", "react": "^15.5.4",
"react-dom": "^15.4.2" "react-dom": "^15.5.4"
},
"devDependencies": {
"enzyme": "^2.8.2",
"jest": "^20.0.0",
"react-addons-test-utils": "^15.5.1",
"react-test-renderer": "^15.5.4"
}, },
"scripts": { "scripts": {
"test": "jest", "test": "jest",
"dev": "next", "dev": "next",
"build": "next build", "build": "next build",
"start": "next start" "start": "next start"
},
"devDependencies": {
"enzyme": "^2.5.1",
"jest-cli": "^18.0.0",
"react-addons-test-utils": "^15.4.2",
"babel-preset-es2015": "^6.22.0",
"react-test-renderer": "^15.4.2"
} }
} }

View file

@ -0,0 +1,11 @@
module.exports = {
webpack: (config) => {
// Remove minifed react aliases for material-ui so production builds work
if (config.resolve.alias) {
delete config.resolve.alias.react
delete config.resolve.alias['react-dom']
}
return config
}
}

View file

@ -1,6 +1,6 @@
{ {
"dependencies": { "dependencies": {
"material-ui": "^0.17.4", "material-ui": "^0.18.0",
"next": "latest", "next": "latest",
"react": "^15.5.4", "react": "^15.5.4",
"react-dom": "^15.5.4", "react-dom": "^15.5.4",

View file

@ -7,14 +7,11 @@ import getMuiTheme from 'material-ui/styles/getMuiTheme'
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider' import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'
import injectTapEventPlugin from 'react-tap-event-plugin' import injectTapEventPlugin from 'react-tap-event-plugin'
// Needed for onTouchTap // Make sure react-tap-event-plugin only gets injected once
// http://stackoverflow.com/a/34015469/988941 // Needed for material-ui
try { if (!process.tapEventInjected) {
if (typeof window !== 'undefined') {
injectTapEventPlugin() injectTapEventPlugin()
} process.tapEventInjected = true
} catch (e) {
// do nothing
} }
const styles = { const styles = {
@ -24,17 +21,23 @@ const styles = {
} }
} }
const _muiTheme = getMuiTheme({ const muiTheme = {
palette: { palette: {
accent1Color: deepOrange500 accent1Color: deepOrange500
} }
}) }
class Main extends Component { class Main extends Component {
static getInitialProps ({ req }) { static getInitialProps ({ req }) {
const userAgent = req ? req.headers['user-agent'] : navigator.userAgent // Ensures material-ui renders the correct css prefixes server-side
const isServer = !!req let userAgent
return {isServer, userAgent} if (process.browser) {
userAgent = navigator.userAgent
} else {
userAgent = req.headers['user-agent']
}
return { userAgent }
} }
constructor (props, context) { constructor (props, context) {
@ -58,6 +61,8 @@ class Main extends Component {
} }
render () { render () {
const { userAgent } = this.props
const standardActions = ( const standardActions = (
<FlatButton <FlatButton
label='Ok' label='Ok'
@ -66,12 +71,8 @@ class Main extends Component {
/> />
) )
const { userAgent } = this.props
/* https://github.com/callemall/material-ui/issues/3336 */
const muiTheme = getMuiTheme(getMuiTheme({userAgent: userAgent}), _muiTheme)
return ( return (
<MuiThemeProvider muiTheme={muiTheme}> <MuiThemeProvider muiTheme={getMuiTheme({userAgent, ...muiTheme})}>
<div style={styles.container}> <div style={styles.container}>
<Dialog <Dialog
open={this.state.open} open={this.state.open}

View file

@ -27,7 +27,7 @@ now
## The idea behind the example ## The idea behind the example
This example, just like `with-react` and `with-mobx` examples, shows how to manage a global state in your web-application. This example, just like `with-redux` and `with-mobx` examples, shows how to manage a global state in your web-application.
In this case we are using [refnux](https://github.com/algesten/refnux) which is an alternative, simpler, purely functional store state manager. In this case we are using [refnux](https://github.com/algesten/refnux) which is an alternative, simpler, purely functional store state manager.
We have two very similar pages (page1.js, page2.js). They both We have two very similar pages (page1.js, page2.js). They both

View file

@ -0,0 +1,9 @@
{
"presets": [
"next/babel",
"stage-0"
],
"plugins": [
["styled-components", { "ssr": true, "displayName": true, "preprocess": false } ]
]
}

View file

@ -30,6 +30,4 @@ This example features how you use a different styling solution than [styled-jsx]
For this purpose we are extending the `<Document />` and injecting the server side rendered styles into the `<head>`. For this purpose we are extending the `<Document />` and injecting the server side rendered styles into the `<head>`.
## Notes: # WARNING This example uses styled-components v2 which is currently in BETA
- On initial install, you may see a server-side error: `TypeError: Cannot read property 'cssRules' of undefined when using this line of code` until you actually render a `styled-component`. I have submitted a PR to fix this issue with them [here](https://github.com/styled-components/styled-components/pull/391). For the time being, make sure you render at least one `styled-component` when you use this.

View file

@ -7,10 +7,12 @@
"start": "next start" "start": "next start"
}, },
"dependencies": { "dependencies": {
"babel-plugin-styled-components": "^1.1.4",
"babel-preset-stage-0": "^6.24.1",
"next": "latest", "next": "latest",
"react": "^15.4.2", "react": "^15.4.2",
"react-dom": "^15.4.2", "react-dom": "^15.4.2",
"styled-components": "^1.4.4" "styled-components": "^2.0.0-17"
}, },
"author": "", "author": "",
"license": "ISC" "license": "ISC"

View file

@ -1,23 +1,21 @@
import Document, { Head, Main, NextScript } from 'next/document' import Document, { Head, Main, NextScript } from 'next/document'
import styleSheet from 'styled-components/lib/models/StyleSheet' import { ServerStyleSheet } from 'styled-components'
export default class MyDocument extends Document { export default class MyDocument extends Document {
static async getInitialProps ({ renderPage }) {
const page = renderPage()
const styles = (
<style dangerouslySetInnerHTML={{ __html: styleSheet.rules().map(rule => rule.cssText).join('\n') }} />
)
return { ...page, styles }
}
render () { render () {
const sheet = new ServerStyleSheet()
const main = sheet.collectStyles(<Main />)
const styleTags = sheet.getStyleElement()
return ( return (
<html> <html>
<Head> <Head>
<title>My page</title> <title>My page</title>
{styleTags}
</Head> </Head>
<body> <body>
<Main /> <div className='root'>
{main}
</div>
<NextScript /> <NextScript />
</body> </body>
</html> </html>

View file

@ -18,9 +18,10 @@ export default class PageLoader {
if (route[0] !== '/') { if (route[0] !== '/') {
throw new Error('Route name should start with a "/"') throw new Error('Route name should start with a "/"')
} }
route = route.replace(/index$/, '')
if (route === '/') return route if (route === '/') return route
return route.replace(/index$/, '').replace(/\/$/, '') return route.replace(/\/$/, '')
} }
loadPage (route) { loadPage (route) {

View file

@ -1,6 +1,6 @@
{ {
"name": "next", "name": "next",
"version": "2.3.0", "version": "2.3.1",
"description": "Minimalistic framework for server-rendered React applications", "description": "Minimalistic framework for server-rendered React applications",
"main": "./dist/server/next.js", "main": "./dist/server/next.js",
"license": "MIT", "license": "MIT",
@ -53,7 +53,7 @@
"babel-plugin-transform-es2015-modules-commonjs": "6.24.1", "babel-plugin-transform-es2015-modules-commonjs": "6.24.1",
"babel-plugin-transform-object-rest-spread": "6.22.0", "babel-plugin-transform-object-rest-spread": "6.22.0",
"babel-plugin-transform-react-jsx-source": "6.22.0", "babel-plugin-transform-react-jsx-source": "6.22.0",
"babel-plugin-transform-react-remove-prop-types": "0.4.4", "babel-plugin-transform-react-remove-prop-types": "0.4.5",
"babel-plugin-transform-runtime": "6.22.0", "babel-plugin-transform-runtime": "6.22.0",
"babel-preset-env": "1.3.3", "babel-preset-env": "1.3.3",
"babel-preset-react": "6.24.1", "babel-preset-react": "6.24.1",
@ -79,7 +79,7 @@
"mz": "2.6.0", "mz": "2.6.0",
"path-match": "1.2.4", "path-match": "1.2.4",
"pkg-up": "2.0.0", "pkg-up": "2.0.0",
"prop-types": "15.5.7", "prop-types": "15.5.9",
"react-hot-loader": "3.0.0-beta.6", "react-hot-loader": "3.0.0-beta.6",
"send": "0.15.2", "send": "0.15.2",
"source-map-support": "0.4.15", "source-map-support": "0.4.15",
@ -89,7 +89,7 @@
"unfetch": "2.1.2", "unfetch": "2.1.2",
"url": "0.11.0", "url": "0.11.0",
"uuid": "3.0.1", "uuid": "3.0.1",
"webpack": "2.4.0", "webpack": "2.5.1",
"webpack-dev-middleware": "1.10.2", "webpack-dev-middleware": "1.10.2",
"webpack-hot-middleware": "2.18.0", "webpack-hot-middleware": "2.18.0",
"write-file-webpack-plugin": "4.0.2" "write-file-webpack-plugin": "4.0.2"
@ -116,7 +116,7 @@
"lint-staged": "^3.4.0", "lint-staged": "^3.4.0",
"node-fetch": "1.6.3", "node-fetch": "1.6.3",
"node-notifier": "5.1.2", "node-notifier": "5.1.2",
"nyc": "10.3.0", "nyc": "10.3.2",
"react": "15.5.3", "react": "15.5.3",
"react-dom": "15.5.3", "react-dom": "15.5.3",
"recursive-copy": "^2.0.6", "recursive-copy": "^2.0.6",

View file

@ -6,12 +6,15 @@
Next.js is a minimalistic framework for server-rendered React applications. Next.js is a minimalistic framework for server-rendered React applications.
**Visit https://learnnextjs.com to get started with Next.js.**
---
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- https://github.com/thlorenz/doctoc --> <!-- https://github.com/thlorenz/doctoc -->
- [How to use](#how-to-use) - [How to use](#how-to-use)
- [Getting Started](#getting-started)
- [Setup](#setup) - [Setup](#setup)
- [Automatic code splitting](#automatic-code-splitting) - [Automatic code splitting](#automatic-code-splitting)
- [CSS](#css) - [CSS](#css)
@ -36,6 +39,7 @@ Next.js is a minimalistic framework for server-rendered React applications.
- [Customizing babel config](#customizing-babel-config) - [Customizing babel config](#customizing-babel-config)
- [CDN support with Asset Prefix](#cdn-support-with-asset-prefix) - [CDN support with Asset Prefix](#cdn-support-with-asset-prefix)
- [Production deployment](#production-deployment) - [Production deployment](#production-deployment)
- [Recipes](#recipes)
- [FAQ](#faq) - [FAQ](#faq)
- [Contributing](#contributing) - [Contributing](#contributing)
- [Authors](#authors) - [Authors](#authors)
@ -44,10 +48,6 @@ Next.js is a minimalistic framework for server-rendered React applications.
## How to use ## How to use
### Getting Started
A step by step interactive guide of next features is available at [learnnextjs.com](https://learnnextjs.com/)
### Setup ### Setup
Install it: Install it:
@ -129,17 +129,24 @@ export default () => (
} }
} }
`}</style> `}</style>
<style global jsx>{`
body {
background: black;
}
`}</style>
</div> </div>
) )
``` ```
Please see the [styled-jsx documentation](https://github.com/zeit/styled-jsx) for more examples.
#### CSS-in-JS #### CSS-in-JS
<p><details> <p><details>
<summary> <summary>
<b>Examples</b> <b>Examples</b>
</summary> </summary>
<ul><li><a href="./examples/with-styled-components">Styled components</a></li><li><a href="./examples/with-styletron">Styletron</a></li><li><a href="./examples/with-glamor">Glamor</a></li><li><a href="./examples/with-cxs">Cxs</a></li><li><a href="./examples/with-aphrodite">Aphrodite</a></li><li><a href="./examples/with-fela">Fela</a></li></ul> <ul><li><a href="./examples/with-styled-components">Styled components</a></li><li><a href="./examples/with-styletron">Styletron</a></li><li><a href="./examples/with-glamor">Glamor</a></li><li><a href="./examples/with-glamorous">Glamorous</a></li><li><a href="./examples/with-cxs">Cxs</a></li><li><a href="./examples/with-aphrodite">Aphrodite</a></li><li><a href="./examples/with-fela">Fela</a></li></ul>
</details></p> </details></p>
It's possible to use any existing CSS-in-JS solution. The simplest one is inline styles: It's possible to use any existing CSS-in-JS solution. The simplest one is inline styles:
@ -614,6 +621,8 @@ The `ctx` object is equivalent to the one received in all [`getInitialProps`](#f
- `renderPage` (`Function`) a callback that executes the actual React rendering logic (synchronously). It's useful to decorate this function in order to support server-rendering wrappers like Aphrodite's [`renderStatic`](https://github.com/Khan/aphrodite#server-side-rendering) - `renderPage` (`Function`) a callback that executes the actual React rendering logic (synchronously). It's useful to decorate this function in order to support server-rendering wrappers like Aphrodite's [`renderStatic`](https://github.com/Khan/aphrodite#server-side-rendering)
__Note: React-components outside of `<Main />` will not be initialised by the browser. If you need shared components in all your pages (like a menu or a toolbar), do _not_ add application logic here, but take a look at [this example](https://github.com/zeit/next.js/tree/master/examples/layout-component).__
### Custom error handling ### Custom error handling
404 or 500 errors are handled both client and server side by a default component `error.js`. If you wish to override it, define a `_error.js`: 404 or 500 errors are handled both client and server side by a default component `error.js`. If you wish to override it, define a `_error.js`:
@ -752,6 +761,10 @@ Next.js can be deployed to other hosting solutions too. Please have a look at th
Note: we recommend putting `.next`, or your custom dist folder (Please have a look at ['Custom Config'](You can set a custom folder in config https://github.com/zeit/next.js#custom-configuration.)), in `.npmignore` or `.gitignore`. Otherwise, use `files` or `now.files` to opt-into a whitelist of files you want to deploy (and obviously exclude `.next` or your custom dist folder) Note: we recommend putting `.next`, or your custom dist folder (Please have a look at ['Custom Config'](You can set a custom folder in config https://github.com/zeit/next.js#custom-configuration.)), in `.npmignore` or `.gitignore`. Otherwise, use `files` or `now.files` to opt-into a whitelist of files you want to deploy (and obviously exclude `.next` or your custom dist folder)
## Recipes
- [Setting up 301 redirects](https://www.raygesualdo.com/posts/301-redirects-with-nextjs/)
## FAQ ## FAQ
<details> <details>

View file

@ -9,7 +9,7 @@ const envPlugins = {
] ]
} }
const plugins = envPlugins[process.env.NODE_ENV] || [] const plugins = envPlugins[process.env.NODE_ENV] || envPlugins['development']
module.exports = { module.exports = {
presets: [ presets: [

View file

@ -12,7 +12,17 @@ export default class PagesPlugin {
pages.forEach((chunk) => { pages.forEach((chunk) => {
const page = compilation.assets[chunk.name] const page = compilation.assets[chunk.name]
const pageName = matchRouteName.exec(chunk.name)[1] const pageName = matchRouteName.exec(chunk.name)[1]
const routeName = `/${pageName.replace(/[/\\]?index$/, '')}` let routeName = `/${pageName.replace(/[/\\]?index$/, '')}`
// We need to convert \ into / when we are in windows
// to get the proper route name
// Here we need to do windows check because it's possible
// to have "\" in the filename in unix.
// Anyway if someone did that, he'll be having issues here.
// But that's something we cannot avoid.
if (/^win/.test(process.platform)) {
routeName = routeName.replace(/\\/g, '/')
}
const content = page.source() const content = page.source()
const newContent = ` const newContent = `

View file

@ -295,7 +295,7 @@ export default async function createCompiler (dir, { dev = false, quiet = false,
module: { module: {
rules rules
}, },
devtool: dev ? 'inline-source-map' : false, devtool: dev ? 'cheap-module-inline-source-map' : false,
performance: { hints: false } performance: { hints: false }
} }

View file

@ -0,0 +1,2 @@
import CDM from '../lib/cdm'
export default CDM

View file

@ -323,7 +323,7 @@ export default (context, render) => {
}) })
describe('with different types of urls', () => { describe('with different types of urls', () => {
it('on normal page', async () => { it('should work with normal page', async () => {
const browser = await webdriver(context.appPort, '/with-cdm') const browser = await webdriver(context.appPort, '/with-cdm')
const text = await browser.elementByCss('p').text() const text = await browser.elementByCss('p').text()
@ -331,7 +331,7 @@ export default (context, render) => {
browser.close() browser.close()
}) })
it('on dir/index page ', async () => { it('should work with dir/index page ', async () => {
const browser = await webdriver(context.appPort, '/nested-cdm/index') const browser = await webdriver(context.appPort, '/nested-cdm/index')
const text = await browser.elementByCss('p').text() const text = await browser.elementByCss('p').text()
@ -339,13 +339,29 @@ export default (context, render) => {
browser.close() browser.close()
}) })
it('on dir/ page ', async () => { it('should work with dir/ page ', async () => {
const browser = await webdriver(context.appPort, '/nested-cdm/') const browser = await webdriver(context.appPort, '/nested-cdm/')
const text = await browser.elementByCss('p').text() const text = await browser.elementByCss('p').text()
expect(text).toBe('ComponentDidMount executed on client.') expect(text).toBe('ComponentDidMount executed on client.')
browser.close() browser.close()
}) })
it('should work with /index page', async () => {
const browser = await webdriver(context.appPort, '/index')
const text = await browser.elementByCss('p').text()
expect(text).toBe('ComponentDidMount executed on client.')
browser.close()
})
it('should work with / page', async () => {
const browser = await webdriver(context.appPort, '/')
const text = await browser.elementByCss('p').text()
expect(text).toBe('ComponentDidMount executed on client.')
browser.close()
})
}) })
describe('with asPath', () => { describe('with asPath', () => {

314
yarn.lock
View file

@ -56,8 +56,8 @@ ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
ajv@^4.7.0, ajv@^4.9.1: ajv@^4.7.0, ajv@^4.9.1:
version "4.11.7" version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.7.tgz#8655a5d86d0824985cc471a1d913fb6729a0ec48" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
dependencies: dependencies:
co "^4.6.0" co "^4.6.0"
json-stable-stringify "^1.0.1" json-stable-stringify "^1.0.1"
@ -255,8 +255,8 @@ async@^1.4.0:
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
async@^2.0.0, async@^2.1.2, async@^2.1.4: async@^2.0.0, async@^2.1.2, async@^2.1.4:
version "2.3.0" version "2.4.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.3.0.tgz#1013d1051047dd320fe24e494d5c66ecaf6147d9" resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611"
dependencies: dependencies:
lodash "^4.14.0" lodash "^4.14.0"
@ -497,7 +497,7 @@ babel-plugin-check-es2015-constants@^6.22.0:
babel-plugin-istanbul@4.1.3, babel-plugin-istanbul@^4.0.0: babel-plugin-istanbul@4.1.3, babel-plugin-istanbul@^4.0.0:
version "4.1.3" version "4.1.3"
resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz#6ee6280410dcf59c7747518c3dfd98680958f102" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz#6ee6280410dcf59c7747518c3dfd98680958f102"
dependencies: dependencies:
find-up "^2.1.0" find-up "^2.1.0"
istanbul-lib-instrument "^1.7.1" istanbul-lib-instrument "^1.7.1"
@ -570,7 +570,7 @@ babel-plugin-transform-async-to-generator@^6.22.0:
babel-plugin-transform-class-properties@6.24.1: babel-plugin-transform-class-properties@6.24.1:
version "6.24.1" version "6.24.1"
resolved "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
dependencies: dependencies:
babel-helper-function-name "^6.24.1" babel-helper-function-name "^6.24.1"
babel-plugin-syntax-class-properties "^6.8.0" babel-plugin-syntax-class-properties "^6.8.0"
@ -789,15 +789,15 @@ babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx
babel-plugin-transform-react-jsx@^6.24.1: babel-plugin-transform-react-jsx@^6.24.1:
version "6.24.1" version "6.24.1"
resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
dependencies: dependencies:
babel-helper-builder-react-jsx "^6.24.1" babel-helper-builder-react-jsx "^6.24.1"
babel-plugin-syntax-jsx "^6.8.0" babel-plugin-syntax-jsx "^6.8.0"
babel-runtime "^6.22.0" babel-runtime "^6.22.0"
babel-plugin-transform-react-remove-prop-types@0.4.4: babel-plugin-transform-react-remove-prop-types@0.4.5:
version "0.4.4" version "0.4.5"
resolved "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.4.tgz#ef3f6fc166b0d1f53f828d1a9dda90106ac27cd8" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.5.tgz#79d1958437ae23d4fbc0b11d1a041498ddb23877"
dependencies: dependencies:
babel-traverse "^6.24.1" babel-traverse "^6.24.1"
@ -860,7 +860,7 @@ babel-preset-env@1.3.3:
babel-preset-es2015@6.24.1: babel-preset-es2015@6.24.1:
version "6.24.1" version "6.24.1"
resolved "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
dependencies: dependencies:
babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-check-es2015-constants "^6.22.0"
babel-plugin-transform-es2015-arrow-functions "^6.22.0" babel-plugin-transform-es2015-arrow-functions "^6.22.0"
@ -907,7 +907,7 @@ babel-preset-jest@^19.0.0:
babel-preset-react@6.24.1: babel-preset-react@6.24.1:
version "6.24.1" version "6.24.1"
resolved "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
dependencies: dependencies:
babel-plugin-syntax-jsx "^6.3.13" babel-plugin-syntax-jsx "^6.3.13"
babel-plugin-transform-react-display-name "^6.23.0" babel-plugin-transform-react-display-name "^6.23.0"
@ -987,8 +987,8 @@ babylon@6.14.1:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815"
babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0, babylon@^6.17.0: babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0, babylon@^6.17.0:
version "6.17.0" version "6.17.1"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f"
balanced-match@^0.4.1: balanced-match@^0.4.1:
version "0.4.2" version "0.4.2"
@ -1020,8 +1020,8 @@ binary-extensions@^1.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
bl@^1.0.0: bl@^1.0.0:
version "1.2.0" version "1.2.1"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
dependencies: dependencies:
readable-stream "^2.0.5" readable-stream "^2.0.5"
@ -1049,7 +1049,7 @@ boom@2.x.x:
dependencies: dependencies:
hoek "2.x.x" hoek "2.x.x"
brace-expansion@^1.0.0: brace-expansion@^1.1.7:
version "1.1.7" version "1.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
dependencies: dependencies:
@ -1203,8 +1203,8 @@ camelcase@^3.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
caniuse-db@^1.0.30000639: caniuse-db@^1.0.30000639:
version "1.0.30000657" version "1.0.30000666"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000657.tgz#8192aec745019cc050217ad049c60dad21e3d1bc" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000666.tgz#951ed9f3d3bfaa08a06dafbb5089ab07cce6ab90"
case-sensitive-paths-webpack-plugin@2.0.0: case-sensitive-paths-webpack-plugin@2.0.0:
version "2.0.0" version "2.0.0"
@ -1257,8 +1257,8 @@ cheerio@0.22.0:
lodash.some "^4.4.0" lodash.some "^4.4.0"
chokidar@^1.4.3, chokidar@^1.6.1: chokidar@^1.4.3, chokidar@^1.6.1:
version "1.6.1" version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
dependencies: dependencies:
anymatch "^1.3.0" anymatch "^1.3.0"
async-each "^1.0.0" async-each "^1.0.0"
@ -1459,7 +1459,7 @@ cosmiconfig@^1.1.0:
coveralls@2.13.1: coveralls@2.13.1:
version "2.13.1" version "2.13.1"
resolved "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz#d70bb9acc1835ec4f063ff9dac5423c17b11f178" resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.1.tgz#d70bb9acc1835ec4f063ff9dac5423c17b11f178"
dependencies: dependencies:
js-yaml "3.6.1" js-yaml "3.6.1"
lcov-parse "0.0.10" lcov-parse "0.0.10"
@ -1580,8 +1580,8 @@ dashdash@^1.12.0:
assert-plus "^1.0.0" assert-plus "^1.0.0"
date-fns@^1.27.2: date-fns@^1.27.2:
version "1.28.3" version "1.28.4"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.3.tgz#145d87adc3f5a82c6bda668de97eee1132c97ea1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.4.tgz#7938aec34ba31fc8bd134d2344bc2e0bbfd95165"
date-now@^0.1.4: date-now@^0.1.4:
version "0.1.4" version "0.1.4"
@ -1597,12 +1597,18 @@ debug@2.6.1:
dependencies: dependencies:
ms "0.7.2" ms "0.7.2"
debug@2.6.4, debug@^2.1.1, debug@^2.2.0, debug@^2.6.3: debug@2.6.4:
version "2.6.4" version "2.6.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
dependencies: dependencies:
ms "0.7.3" ms "0.7.3"
debug@^2.1.1, debug@^2.2.0, debug@^2.6.3:
version "2.6.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a"
dependencies:
ms "0.7.3"
decamelize@^1.0.0, decamelize@^1.1.1: decamelize@^1.0.0, decamelize@^1.1.1:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@ -1730,8 +1736,8 @@ domelementtype@~1.1.1:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
domhandler@^2.3.0: domhandler@^2.3.0:
version "2.3.0" version "2.4.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259"
dependencies: dependencies:
domelementtype "1" domelementtype "1"
@ -1753,8 +1759,8 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
electron-to-chromium@^1.2.7: electron-to-chromium@^1.2.7:
version "1.3.6" version "1.3.9"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.6.tgz#b90ff7e9094e6f7dd343761a001e82592d937db2" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.9.tgz#db1cba2a26aebcca2f7f5b8b034554468609157d"
elegant-spinner@^1.0.1: elegant-spinner@^1.0.1:
version "1.0.1" version "1.0.1"
@ -1828,10 +1834,10 @@ error-stack-parser@^1.3.6:
stackframe "^0.3.1" stackframe "^0.3.1"
error-stack-parser@^2.0.0: error-stack-parser@^2.0.0:
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.0.tgz#9ce7777b32480e34a34c12a88b3428093fcd14b0" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a"
dependencies: dependencies:
stackframe "^1.0.2" stackframe "^1.0.3"
es-abstract@^1.6.1, es-abstract@^1.7.0: es-abstract@^1.6.1, es-abstract@^1.7.0:
version "1.7.0" version "1.7.0"
@ -1851,8 +1857,8 @@ es-to-primitive@^1.1.1:
is-symbol "^1.0.1" is-symbol "^1.0.1"
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.15" version "0.10.16"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.16.tgz#1ef1b04f3d09db6a5d630226d62202f2e425e45a"
dependencies: dependencies:
es6-iterator "2" es6-iterator "2"
es6-symbol "~3.1" es6-symbol "~3.1"
@ -1995,8 +2001,8 @@ eslint@~3.18.0:
user-home "^2.0.0" user-home "^2.0.0"
espree@^3.4.0: espree@^3.4.0:
version "3.4.2" version "3.4.3"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.2.tgz#38dbdedbedc95b8961a1fbf04734a8f6a9c8c592" resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374"
dependencies: dependencies:
acorn "^5.0.1" acorn "^5.0.1"
acorn-jsx "^3.0.0" acorn-jsx "^3.0.0"
@ -2093,7 +2099,7 @@ expand-range@^1.8.1:
dependencies: dependencies:
fill-range "^2.1.0" fill-range "^2.1.0"
express@^4.15.2: express@4.15.2:
version "4.15.2" version "4.15.2"
resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35" resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35"
dependencies: dependencies:
@ -2127,8 +2133,8 @@ express@^4.15.2:
vary "~1.1.0" vary "~1.1.0"
extend@~3.0.0: extend@~3.0.0:
version "3.0.0" version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
extglob@^0.3.1: extglob@^0.3.1:
version "0.3.2" version "0.3.2"
@ -2183,8 +2189,8 @@ file-entry-cache@^2.0.0:
object-assign "^4.0.1" object-assign "^4.0.1"
filename-regex@^2.0.0: filename-regex@^2.0.0:
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
fileset@^2.0.2: fileset@^2.0.2:
version "2.0.3" version "2.0.3"
@ -2194,8 +2200,8 @@ fileset@^2.0.2:
minimatch "^3.0.3" minimatch "^3.0.3"
filesize@^3.2.1: filesize@^3.2.1:
version "3.5.6" version "3.5.9"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.6.tgz#5fd98f3eac94ec9516ef8ed5782fad84a01a0a1a" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.9.tgz#9e3dd8a9b124f5b2f1fb2ee9cd13a86c707bb222"
fill-range@^2.1.0: fill-range@^2.1.0:
version "2.2.3" version "2.2.3"
@ -2220,10 +2226,10 @@ finalhandler@~1.0.0:
unpipe "~1.0.0" unpipe "~1.0.0"
find-babel-config@^1.0.1: find-babel-config@^1.0.1:
version "1.0.1" version "1.1.0"
resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.0.1.tgz#179fa7b36bf3e94b487410855df448b6f853b9ec" resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.1.0.tgz#acc01043a6749fec34429be6b64f542ebb5d6355"
dependencies: dependencies:
json5 "^0.5.0" json5 "^0.5.1"
path-exists "^3.0.0" path-exists "^3.0.0"
find-cache-dir@^0.1.1: find-cache-dir@^0.1.1:
@ -2299,7 +2305,7 @@ fly-watch@1.1.1:
fly@2.0.6: fly@2.0.6:
version "2.0.6" version "2.0.6"
resolved "https://registry.npmjs.org/fly/-/fly-2.0.6.tgz#77aa3c94e8e30ed235e06e91973f135dd55e03bd" resolved "https://registry.yarnpkg.com/fly/-/fly-2.0.6.tgz#77aa3c94e8e30ed235e06e91973f135dd55e03bd"
dependencies: dependencies:
bluebird "^3.5.0" bluebird "^3.5.0"
clor "^5.0.1" clor "^5.0.1"
@ -2388,7 +2394,7 @@ function-bind@^1.0.2, function-bind@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
gauge@~2.7.1: gauge@~2.7.3:
version "2.7.4" version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
dependencies: dependencies:
@ -2424,8 +2430,8 @@ get-stream@^3.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
getpass@^0.1.1: getpass@^0.1.1:
version "0.1.6" version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
@ -2502,8 +2508,8 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
handlebars@^4.0.3: handlebars@^4.0.3:
version "4.0.6" version "4.0.8"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.8.tgz#22b875cd3f0e6cbea30314f144e82bc7a72ff420"
dependencies: dependencies:
async "^1.4.0" async "^1.4.0"
optimist "^0.6.1" optimist "^0.6.1"
@ -2596,8 +2602,8 @@ html-encoding-sniffer@^1.0.1:
whatwg-encoding "^1.0.1" whatwg-encoding "^1.0.1"
html-entities@^1.2.0: html-entities@^1.2.0:
version "1.2.0" version "1.2.1"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
htmlescape@1.1.1: htmlescape@1.1.1:
version "1.1.1" version "1.1.1"
@ -2660,16 +2666,16 @@ iconv-lite@0.4.13:
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
iconv-lite@~0.4.13: iconv-lite@~0.4.13:
version "0.4.15" version "0.4.17"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
ieee754@^1.1.4: ieee754@^1.1.4:
version "1.1.8" version "1.1.8"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
ignore@^3.0.9, ignore@^3.2.0: ignore@^3.0.9, ignore@^3.2.0:
version "3.2.7" version "3.3.0"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.7.tgz#4810ca5f1d8eca5595213a34b94f2eb4ed926bbd" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.0.tgz#3812d22cbe9125f2c2b4915755a1b8abd745a001"
imurmurhash@^0.1.4: imurmurhash@^0.1.4:
version "0.1.4" version "0.1.4"
@ -2754,7 +2760,7 @@ is-binary-path@^1.0.0:
dependencies: dependencies:
binary-extensions "^1.0.0" binary-extensions "^1.0.0"
is-buffer@^1.0.2: is-buffer@^1.1.5:
version "1.1.5" version "1.1.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
@ -2898,8 +2904,8 @@ is-windows-bash@1.0.3:
resolved "https://registry.yarnpkg.com/is-windows-bash/-/is-windows-bash-1.0.3.tgz#00132a47dcdacb00a9d68f3408a4d01d76215e88" resolved "https://registry.yarnpkg.com/is-windows-bash/-/is-windows-bash-1.0.3.tgz#00132a47dcdacb00a9d68f3408a4d01d76215e88"
is-windows@^1.0.0: is-windows@^1.0.0:
version "1.0.0" version "1.0.1"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.0.tgz#c61d61020c3ebe99261b781bd3d1622395f547f8" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
isarray@0.0.1: isarray@0.0.1:
version "0.0.1" version "0.0.1"
@ -2931,38 +2937,34 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
istanbul-api@^1.1.0-alpha.1: istanbul-api@^1.1.0-alpha.1:
version "1.1.7" version "1.1.8"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.7.tgz#f6f37f09f8002b130f891c646b70ee4a8e7345ae" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.8.tgz#a844e55c6f9aeee292e7f42942196f60b23dc93e"
dependencies: dependencies:
async "^2.1.4" async "^2.1.4"
fileset "^2.0.2" fileset "^2.0.2"
istanbul-lib-coverage "^1.0.2" istanbul-lib-coverage "^1.1.0"
istanbul-lib-hook "^1.0.5" istanbul-lib-hook "^1.0.6"
istanbul-lib-instrument "^1.7.0" istanbul-lib-instrument "^1.7.1"
istanbul-lib-report "^1.0.0" istanbul-lib-report "^1.1.0"
istanbul-lib-source-maps "^1.1.1" istanbul-lib-source-maps "^1.2.0"
istanbul-reports "^1.0.2" istanbul-reports "^1.1.0"
js-yaml "^3.7.0" js-yaml "^3.7.0"
mkdirp "^0.5.1" mkdirp "^0.5.1"
once "^1.4.0" once "^1.4.0"
istanbul-lib-coverage@^1.0.0: istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.1.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.2.tgz#87a0c015b6910651cb3b184814dfb339337e25e1"
istanbul-lib-coverage@^1.0.2, istanbul-lib-coverage@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528"
istanbul-lib-hook@^1.0.5, istanbul-lib-hook@^1.0.6: istanbul-lib-hook@^1.0.6:
version "1.0.6" version "1.0.6"
resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f"
dependencies: dependencies:
append-transform "^0.4.0" append-transform "^0.4.0"
istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.0, istanbul-lib-instrument@^1.7.1: istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.1:
version "1.7.1" version "1.7.1"
resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360"
dependencies: dependencies:
babel-generator "^6.18.0" babel-generator "^6.18.0"
babel-template "^6.16.0" babel-template "^6.16.0"
@ -2972,18 +2974,18 @@ istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.4.2, istanbul-lib-ins
istanbul-lib-coverage "^1.1.0" istanbul-lib-coverage "^1.1.0"
semver "^5.3.0" semver "^5.3.0"
istanbul-lib-report@^1.0.0, istanbul-lib-report@^1.1.0: istanbul-lib-report@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770"
dependencies: dependencies:
istanbul-lib-coverage "^1.1.0" istanbul-lib-coverage "^1.1.0"
mkdirp "^0.5.1" mkdirp "^0.5.1"
path-parse "^1.0.5" path-parse "^1.0.5"
supports-color "^3.1.2" supports-color "^3.1.2"
istanbul-lib-source-maps@^1.1.1, istanbul-lib-source-maps@^1.2.0: istanbul-lib-source-maps@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e"
dependencies: dependencies:
debug "^2.6.3" debug "^2.6.3"
istanbul-lib-coverage "^1.1.0" istanbul-lib-coverage "^1.1.0"
@ -2991,9 +2993,9 @@ istanbul-lib-source-maps@^1.1.1, istanbul-lib-source-maps@^1.2.0:
rimraf "^2.6.1" rimraf "^2.6.1"
source-map "^0.5.3" source-map "^0.5.3"
istanbul-reports@^1.0.2, istanbul-reports@^1.1.0: istanbul-reports@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66"
dependencies: dependencies:
handlebars "^4.0.3" handlebars "^4.0.3"
@ -3034,8 +3036,8 @@ jest-cli@19.0.1:
yargs "^6.3.0" yargs "^6.3.0"
jest-config@^19.0.1, jest-config@^19.0.2: jest-config@^19.0.1, jest-config@^19.0.2:
version "19.0.2" version "19.0.4"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-19.0.2.tgz#1b9bd2db0ddd16df61c2b10a54009e1768da6411" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-19.0.4.tgz#42980211d46417e91ca7abffd086c270234f73fd"
dependencies: dependencies:
chalk "^1.1.1" chalk "^1.1.1"
jest-environment-jsdom "^19.0.2" jest-environment-jsdom "^19.0.2"
@ -3075,8 +3077,8 @@ jest-file-exists@^19.0.0:
resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-19.0.0.tgz#cca2e587a11ec92e24cfeab3f8a94d657f3fceb8" resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-19.0.0.tgz#cca2e587a11ec92e24cfeab3f8a94d657f3fceb8"
jest-haste-map@^19.0.0: jest-haste-map@^19.0.0:
version "19.0.1" version "19.0.2"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-19.0.1.tgz#7616222491275050c7af39dbeab0a57c32ef9652" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-19.0.2.tgz#286484c3a16e86da7872b0877c35dce30c3d6f07"
dependencies: dependencies:
fb-watchman "^2.0.0" fb-watchman "^2.0.0"
graceful-fs "^4.1.6" graceful-fs "^4.1.6"
@ -3140,8 +3142,8 @@ jest-resolve@^19.0.2:
resolve "^1.2.0" resolve "^1.2.0"
jest-runtime@^19.0.1: jest-runtime@^19.0.1:
version "19.0.2" version "19.0.3"
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-19.0.2.tgz#d9a43e72de416d27d196fd9c7940d98fe6685407" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-19.0.3.tgz#a163354ace46910ee33f0282b6bff6b0b87d4330"
dependencies: dependencies:
babel-core "^6.0.0" babel-core "^6.0.0"
babel-jest "^19.0.0" babel-jest "^19.0.0"
@ -3211,8 +3213,8 @@ js-yaml@3.6.1:
esprima "^2.6.0" esprima "^2.6.0"
js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@^3.7.0: js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@^3.7.0:
version "3.8.3" version "3.8.4"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.3.tgz#33a05ec481c850c8875929166fe1beb61c728766" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
dependencies: dependencies:
argparse "^1.0.7" argparse "^1.0.7"
esprima "^3.1.1" esprima "^3.1.1"
@ -3305,10 +3307,10 @@ kew@^0.7.0:
resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
kind-of@^3.0.2: kind-of@^3.0.2:
version "3.1.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
dependencies: dependencies:
is-buffer "^1.0.2" is-buffer "^1.1.5"
lazy-cache@^1.0.3: lazy-cache@^1.0.3:
version "1.0.4" version "1.0.4"
@ -3342,13 +3344,13 @@ levn@^0.3.0, levn@~0.3.0:
type-check "~0.3.2" type-check "~0.3.2"
lint-staged@^3.4.0: lint-staged@^3.4.0:
version "3.4.0" version "3.4.1"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.4.0.tgz#52fa85dfc92bb1c6fe8ad0d0d98ca13924e03e4b" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.4.1.tgz#96cd1cf7a1ac92d81662643c37d1cca28b91b046"
dependencies: dependencies:
app-root-path "^2.0.0" app-root-path "^2.0.0"
cosmiconfig "^1.1.0" cosmiconfig "^1.1.0"
execa "^0.6.0" execa "^0.6.0"
listr "^0.11.0" listr "^0.12.0"
minimatch "^3.0.0" minimatch "^3.0.0"
npm-which "^3.0.1" npm-which "^3.0.1"
staged-git-files "0.0.4" staged-git-files "0.0.4"
@ -3379,9 +3381,9 @@ listr-verbose-renderer@^0.4.0:
date-fns "^1.27.2" date-fns "^1.27.2"
figures "^1.7.0" figures "^1.7.0"
listr@^0.11.0: listr@^0.12.0:
version "0.11.0" version "0.12.0"
resolved "https://registry.yarnpkg.com/listr/-/listr-0.11.0.tgz#5e778bc23806ac3ab984ed75564458151f39b03e" resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a"
dependencies: dependencies:
chalk "^1.1.3" chalk "^1.1.3"
cli-truncate "^0.2.1" cli-truncate "^0.2.1"
@ -3395,6 +3397,7 @@ listr@^0.11.0:
log-symbols "^1.0.2" log-symbols "^1.0.2"
log-update "^1.0.2" log-update "^1.0.2"
ora "^0.2.3" ora "^0.2.3"
p-map "^1.1.1"
rxjs "^5.0.0-beta.11" rxjs "^5.0.0-beta.11"
stream-to-observable "^0.1.0" stream-to-observable "^0.1.0"
strip-ansi "^3.0.1" strip-ansi "^3.0.1"
@ -3523,7 +3526,7 @@ longest@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
loose-envify@^1.0.0, loose-envify@^1.1.0: loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
version "1.3.1" version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies: dependencies:
@ -3648,10 +3651,10 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3:
version "3.0.3" version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies: dependencies:
brace-expansion "^1.0.0" brace-expansion "^1.1.7"
minimist@0.0.8, minimist@~0.0.1: minimist@0.0.8, minimist@~0.0.1:
version "0.0.8" version "0.0.8"
@ -3663,7 +3666,7 @@ minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0:
mitt@1.1.1: mitt@1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.npmjs.org/mitt/-/mitt-1.1.1.tgz#14881478496dfa56750ea41af13a7ecb5b69a7c2" resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.1.tgz#14881478496dfa56750ea41af13a7ecb5b69a7c2"
mkdirp-then@1.2.0: mkdirp-then@1.2.0:
version "1.2.0" version "1.2.0"
@ -3692,7 +3695,7 @@ ms@0.7.3:
ms@1.0.0: ms@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz#59adcd22edc543f7b5381862d31387b1f4bc9473" resolved "https://registry.yarnpkg.com/ms/-/ms-1.0.0.tgz#59adcd22edc543f7b5381862d31387b1f4bc9473"
mute-stream@0.0.5: mute-stream@0.0.5:
version "0.0.5" version "0.0.5"
@ -3845,12 +3848,12 @@ npm-which@^3.0.1:
which "^1.2.10" which "^1.2.10"
npmlog@^4.0.2: npmlog@^4.0.2:
version "4.0.2" version "4.1.0"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5"
dependencies: dependencies:
are-we-there-yet "~1.1.2" are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0" console-control-strings "~1.1.0"
gauge "~2.7.1" gauge "~2.7.3"
set-blocking "~2.0.0" set-blocking "~2.0.0"
nth-check@~1.0.1: nth-check@~1.0.1:
@ -3867,9 +3870,9 @@ number-is-nan@^1.0.0:
version "1.3.9" version "1.3.9"
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
nyc@10.3.0: nyc@10.3.2:
version "10.3.0" version "10.3.2"
resolved "https://registry.npmjs.org/nyc/-/nyc-10.3.0.tgz#a7051ac03f89d17e719a586a66a84ce4bdfde857" resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.3.2.tgz#f27f4d91f2a9db36c24f574ff5c6efff0233de46"
dependencies: dependencies:
archy "^1.0.0" archy "^1.0.0"
arrify "^1.0.1" arrify "^1.0.1"
@ -4009,6 +4012,10 @@ p-locate@^2.0.0:
dependencies: dependencies:
p-limit "^1.1.0" p-limit "^1.1.0"
p-map@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a"
pako@~0.2.0: pako@~0.2.0:
version "0.2.9" version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@ -4183,8 +4190,8 @@ process-nextick-args@~1.0.6:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
process@^0.11.0: process@^0.11.0:
version "0.11.9" version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
process@~0.5.1: process@~0.5.1:
version "0.5.2" version "0.5.2"
@ -4200,11 +4207,12 @@ promise@^7.0.1, promise@^7.1.1:
dependencies: dependencies:
asap "~2.0.3" asap "~2.0.3"
prop-types@15.5.7, prop-types@^15.5.2, prop-types@^15.5.4, prop-types@~15.5.0: prop-types@15.5.9, prop-types@^15.5.2, prop-types@^15.5.4, prop-types@~15.5.0:
version "15.5.7" version "15.5.9"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.7.tgz#231c4f29cdd82e355011d4889386ca9059544dd1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.9.tgz#d478eef0e761396942f70c78e772f76e8be747c9"
dependencies: dependencies:
fbjs "^0.8.9" fbjs "^0.8.9"
loose-envify "^1.3.1"
proxy-addr@~1.1.3: proxy-addr@~1.1.3:
version "1.1.4" version "1.1.4"
@ -4400,8 +4408,8 @@ regenerate@^1.2.1:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
regenerator-runtime@^0.10.0: regenerator-runtime@^0.10.0:
version "0.10.3" version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
regenerator-transform@0.9.11: regenerator-transform@0.9.11:
version "0.9.11" version "0.9.11"
@ -4591,8 +4599,8 @@ rx-lite@^3.1.2:
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
rxjs@^5.0.0-beta.11: rxjs@^5.0.0-beta.11:
version "5.3.0" version "5.4.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.0.tgz#a7db14ab157f9d7aac6a56e655e7a3860d39bf26"
dependencies: dependencies:
symbol-observable "^1.0.1" symbol-observable "^1.0.1"
@ -4640,7 +4648,7 @@ send@0.15.1:
send@0.15.2: send@0.15.2:
version "0.15.2" version "0.15.2"
resolved "https://registry.npmjs.org/send/-/send-0.15.2.tgz#f91fab4403bcf87e716f70ceb5db2f578bdc17d6" resolved "https://registry.yarnpkg.com/send/-/send-0.15.2.tgz#f91fab4403bcf87e716f70ceb5db2f578bdc17d6"
dependencies: dependencies:
debug "2.6.4" debug "2.6.4"
depd "~1.1.0" depd "~1.1.0"
@ -4736,12 +4744,12 @@ sntp@1.x.x:
hoek "2.x.x" hoek "2.x.x"
source-list-map@^1.1.1: source-list-map@^1.1.1:
version "1.1.1" version "1.1.2"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.1.tgz#1a33ac210ca144d1e561f906ebccab5669ff4cb4" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1"
source-map-support@0.4.15, source-map-support@^0.4.2: source-map-support@0.4.15, source-map-support@^0.4.2:
version "0.4.15" version "0.4.15"
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
dependencies: dependencies:
source-map "^0.5.6" source-map "^0.5.6"
@ -4786,7 +4794,11 @@ spdx-license-ids@^1.0.2:
version "1.2.2" version "1.2.2"
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
sprintf-js@^1.0.3, sprintf-js@~1.0.2: sprintf-js@^1.0.3:
version "1.1.0"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.0.tgz#cffcaf702daf65ea39bb4e0fa2b299cec1a1be46"
sprintf-js@~1.0.2:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@ -4809,9 +4821,9 @@ stackframe@^0.3.1:
version "0.3.1" version "0.3.1"
resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4"
stackframe@^1.0.2: stackframe@^1.0.3:
version "1.0.2" version "1.0.3"
resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.2.tgz#162245509c687d328b14f671dab8fdb755b1e1e8" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.3.tgz#fe64ab20b170e4ce49044b126c119dfa0e5dc7cc"
staged-git-files@0.0.4: staged-git-files@0.0.4:
version "0.0.4" version "0.0.4"
@ -4851,8 +4863,8 @@ stream-browserify@^2.0.1:
readable-stream "^2.0.2" readable-stream "^2.0.2"
stream-http@^2.3.1: stream-http@^2.3.1:
version "2.7.0" version "2.7.1"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.0.tgz#cec1f4e3b494bc4a81b451808970f8b20b4ed5f6" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a"
dependencies: dependencies:
builtin-status-codes "^3.0.0" builtin-status-codes "^3.0.0"
inherits "^2.0.1" inherits "^2.0.1"
@ -5015,7 +5027,7 @@ test-exclude@^3.3.0:
test-exclude@^4.1.0: test-exclude@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91"
dependencies: dependencies:
arrify "^1.0.1" arrify "^1.0.1"
micromatch "^2.3.11" micromatch "^2.3.11"
@ -5062,8 +5074,8 @@ to-arraybuffer@^1.0.0:
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
to-fast-properties@^1.0.1: to-fast-properties@^1.0.1:
version "1.0.2" version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
touch@1.0.0: touch@1.0.0:
version "1.0.0" version "1.0.0"
@ -5129,8 +5141,8 @@ ua-parser-js@^0.7.9:
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb"
uglify-js@^2.6, uglify-js@^2.8.5: uglify-js@^2.6, uglify-js@^2.8.5:
version "2.8.22" version "2.8.23"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.23.tgz#8230dd9783371232d62a7821e2cf9a817270a8a0"
dependencies: dependencies:
source-map "~0.5.1" source-map "~0.5.1"
yargs "~3.10.0" yargs "~3.10.0"
@ -5267,7 +5279,7 @@ webidl-conversions@^4.0.0:
webpack-dev-middleware@1.10.2: webpack-dev-middleware@1.10.2:
version "1.10.2" version "1.10.2"
resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz#2e252ce1dfb020dbda1ccb37df26f30ab014dbd1" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz#2e252ce1dfb020dbda1ccb37df26f30ab014dbd1"
dependencies: dependencies:
memory-fs "~0.4.1" memory-fs "~0.4.1"
mime "^1.3.4" mime "^1.3.4"
@ -5290,9 +5302,9 @@ webpack-sources@^0.2.3:
source-list-map "^1.1.1" source-list-map "^1.1.1"
source-map "~0.5.3" source-map "~0.5.3"
webpack@2.4.0: webpack@2.5.1:
version "2.4.0" version "2.5.1"
resolved "https://registry.npmjs.org/webpack/-/webpack-2.4.0.tgz#04cc247470996d07659b39563040a4bc00fe301e" resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.5.1.tgz#61742f0cf8af555b87460a9cd8bba2f1e3ee2fce"
dependencies: dependencies:
acorn "^5.0.0" acorn "^5.0.0"
acorn-dynamic-import "^2.0.0" acorn-dynamic-import "^2.0.0"
@ -5327,8 +5339,8 @@ whatwg-fetch@>=0.10.0:
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
whatwg-url@^4.3.0: whatwg-url@^4.3.0:
version "4.7.0" version "4.8.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.7.0.tgz#202035ac1955b087cdd20fa8b58ded3ab1cd2af5" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0"
dependencies: dependencies:
tr46 "~0.0.3" tr46 "~0.0.3"
webidl-conversions "^3.0.0" webidl-conversions "^3.0.0"
@ -5344,10 +5356,10 @@ which@^1.1.1, which@^1.2.10, which@^1.2.12, which@^1.2.4, which@^1.2.9:
isexe "^2.0.0" isexe "^2.0.0"
wide-align@^1.1.0: wide-align@^1.1.0:
version "1.1.0" version "1.1.1"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.1.tgz#d2ea8aa2db2e66467e8b60cc3e897de3bc4429e6"
dependencies: dependencies:
string-width "^1.0.1" string-width "^2.0.0"
window-size@0.1.0: window-size@0.1.0:
version "0.1.0" version "0.1.0"
@ -5380,8 +5392,8 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
write-file-atomic@^1.1.4: write-file-atomic@^1.1.4:
version "1.3.2" version "1.3.4"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.2.tgz#f80ac5e06d3a38996ab51b5d310db57102deb902" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
dependencies: dependencies:
graceful-fs "^4.1.11" graceful-fs "^4.1.11"
imurmurhash "^0.1.4" imurmurhash "^0.1.4"
@ -5389,7 +5401,7 @@ write-file-atomic@^1.1.4:
write-file-webpack-plugin@4.0.2: write-file-webpack-plugin@4.0.2:
version "4.0.2" version "4.0.2"
resolved "https://registry.npmjs.org/write-file-webpack-plugin/-/write-file-webpack-plugin-4.0.2.tgz#70c89a4d99a105e1aed778b21b5f75e7af4da58b" resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.0.2.tgz#70c89a4d99a105e1aed778b21b5f75e7af4da58b"
dependencies: dependencies:
chalk "^1.1.1" chalk "^1.1.1"
filesize "^3.2.1" filesize "^3.2.1"
@ -5451,7 +5463,7 @@ yargs@^6.0.0, yargs@^6.3.0:
yargs@^7.1.0: yargs@^7.1.0:
version "7.1.0" version "7.1.0"
resolved "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
dependencies: dependencies:
camelcase "^3.0.0" camelcase "^3.0.0"
cliui "^3.2.0" cliui "^3.2.0"