mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Merge branch 'master' into v3-beta
This commit is contained in:
commit
850a931e88
|
@ -30,7 +30,16 @@ export default () => {
|
|||
return
|
||||
}
|
||||
|
||||
const { err } = Router.components[route] || {}
|
||||
const { err, Component } = Router.components[route] || {}
|
||||
|
||||
if (!Component) {
|
||||
// This only happens when we create a new page without a default export.
|
||||
// If you removed a default export from a exising viewing page, this has no effect.
|
||||
console.log(`Hard reloading due to no default component in page: ${route}`)
|
||||
window.location.reload()
|
||||
return
|
||||
}
|
||||
|
||||
if (err) {
|
||||
// reload to recover from runtime errors
|
||||
Router.reload(route)
|
||||
|
|
|
@ -19,7 +19,7 @@ export default ({ children, title = 'This is the default title' }) => (
|
|||
{ children }
|
||||
|
||||
<footer>
|
||||
I`m here to stay
|
||||
{'I`m here to stay'}
|
||||
</footer>
|
||||
</div>
|
||||
)
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
"next/babel"
|
||||
],
|
||||
"plugins": [
|
||||
["wrap-in-js", {
|
||||
"extensions": ["css$"]
|
||||
["import", {
|
||||
"libraryName": "antd"
|
||||
}]
|
||||
]
|
||||
}
|
29
examples/with-ant-design/README.md
Normal file
29
examples/with-ant-design/README.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
[![Deploy to now](https://deploy.now.sh/static/button.svg)](https://deploy.now.sh/?repo=https://github.com/zeit/next.js/tree/master/examples/with-ant-design)
|
||||
|
||||
# Ant Design example
|
||||
|
||||
## How to use
|
||||
|
||||
Download the example [or clone the repo](https://github.com/zeit/next.js):
|
||||
|
||||
```bash
|
||||
curl https://codeload.github.com/zeit/next.js/tar.gz/master | tar -xz --strip=2 next.js-master/examples/with-ant-design
|
||||
cd with-ant-design
|
||||
```
|
||||
|
||||
Install it and run:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Deploy it to the cloud with [now](https://zeit.co/now) ([download](https://zeit.co/download))
|
||||
|
||||
```bash
|
||||
now
|
||||
```
|
||||
|
||||
## The idea behind the example
|
||||
|
||||
This example shows how to use Next.js along with [Ant Design of React](http://ant.design). This is intended to show the integration of this UI toolkit with the Framework.
|
18
examples/with-ant-design/package.json
Normal file
18
examples/with-ant-design/package.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "with-ant-design",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"dev": "next",
|
||||
"build": "next build",
|
||||
"start": "next start"
|
||||
},
|
||||
"dependencies": {
|
||||
"antd": "^2.10.2",
|
||||
"babel-plugin-import": "^1.1.1",
|
||||
"next": "latest",
|
||||
"react": "^15.5.4",
|
||||
"react-dom": "^15.5.4"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
74
examples/with-ant-design/pages/index.js
Normal file
74
examples/with-ant-design/pages/index.js
Normal file
|
@ -0,0 +1,74 @@
|
|||
import Head from 'next/head'
|
||||
import { Form, Select, InputNumber, DatePicker, Switch, Slider, Button, LocaleProvider } from 'antd'
|
||||
import enUS from 'antd/lib/locale-provider/en_US'
|
||||
|
||||
const FormItem = Form.Item
|
||||
const Option = Select.Option
|
||||
|
||||
export default () => (
|
||||
<LocaleProvider locale={enUS}>
|
||||
<div style={{ marginTop: 100 }}>
|
||||
<Head>
|
||||
<link rel='stylesheet' href='//cdnjs.cloudflare.com/ajax/libs/antd/2.9.3/antd.min.css' />
|
||||
</Head>
|
||||
<Form layout='horizontal'>
|
||||
<FormItem
|
||||
label='Input Number'
|
||||
labelCol={{ span: 8 }}
|
||||
wrapperCol={{ span: 8 }}
|
||||
>
|
||||
<InputNumber size='large' min={1} max={10} style={{ width: 100 }} defaultValue={3} name='inputNumber' />
|
||||
<a href='#'>Link</a>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label='Switch'
|
||||
labelCol={{ span: 8 }}
|
||||
wrapperCol={{ span: 8 }}
|
||||
>
|
||||
<Switch defaultChecked name='switch' />
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label='Slider'
|
||||
labelCol={{ span: 8 }}
|
||||
wrapperCol={{ span: 8 }}
|
||||
>
|
||||
<Slider defaultValue={70} />
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label='Select'
|
||||
labelCol={{ span: 8 }}
|
||||
wrapperCol={{ span: 8 }}
|
||||
>
|
||||
<Select size='large' defaultValue='lucy' style={{ width: 192 }} name='select'>
|
||||
<Option value='jack'>jack</Option>
|
||||
<Option value='lucy'>lucy</Option>
|
||||
<Option value='disabled' disabled>disabled</Option>
|
||||
<Option value='yiminghe'>yiminghe</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
label='DatePicker'
|
||||
labelCol={{ span: 8 }}
|
||||
wrapperCol={{ span: 8 }}
|
||||
>
|
||||
<DatePicker name='startDate' />
|
||||
</FormItem>
|
||||
<FormItem
|
||||
style={{ marginTop: 48 }}
|
||||
wrapperCol={{ span: 8, offset: 8 }}
|
||||
>
|
||||
<Button size='large' type='primary' htmlType='submit'>
|
||||
OK
|
||||
</Button>
|
||||
<Button size='large' style={{ marginLeft: 8 }}>
|
||||
Cancel
|
||||
</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</div>
|
||||
</LocaleProvider>
|
||||
)
|
13
examples/with-antd-mobile/.babelrc
Normal file
13
examples/with-antd-mobile/.babelrc
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"presets": [
|
||||
"next/babel"
|
||||
],
|
||||
"plugins": [
|
||||
[
|
||||
"import",
|
||||
{
|
||||
"libraryName": "antd-mobile"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
28
examples/with-antd-mobile/README.md
Normal file
28
examples/with-antd-mobile/README.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
[![Deploy to now](https://deploy.now.sh/static/button.svg)](https://deploy.now.sh/?repo=https://github.com/zeit/next.js/tree/master/examples/with-material-ui)
|
||||
# Ant Design Mobile example
|
||||
|
||||
## How to use
|
||||
|
||||
Download the example [or clone the repo](https://github.com/zeit/next.js):
|
||||
|
||||
```bash
|
||||
curl https://codeload.github.com/zeit/next.js/tar.gz/master | tar -xz --strip=2 next.js-master/examples/with-antd-mobile
|
||||
cd with-antd-mobile
|
||||
```
|
||||
|
||||
Install it and run:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Deploy it to the cloud with [now](https://zeit.co/now) ([download](https://zeit.co/download))
|
||||
|
||||
```bash
|
||||
now
|
||||
```
|
||||
|
||||
## The idea behind the example
|
||||
|
||||
This example features how you use [antd-mobile](https://github.com/ant-design/ant-design-mobile) (Ant Design Mobile FrontEnd Framwork) with Next.js.
|
16
examples/with-antd-mobile/components/Layout.js
Normal file
16
examples/with-antd-mobile/components/Layout.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
import React, { Component } from 'react'
|
||||
import { LocaleProvider } from 'antd-mobile'
|
||||
import enUS from 'antd-mobile/lib/locale-provider/en_US'
|
||||
|
||||
export default class Layout extends Component {
|
||||
render () {
|
||||
const { language, children } = this.props
|
||||
const locale = language.substr(0, 2) === 'en' ? enUS : undefined
|
||||
|
||||
return (
|
||||
<LocaleProvider locale={locale}>
|
||||
{children}
|
||||
</LocaleProvider>
|
||||
)
|
||||
}
|
||||
}
|
44
examples/with-antd-mobile/components/MenuBar.js
Normal file
44
examples/with-antd-mobile/components/MenuBar.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import React, { Component } from 'react'
|
||||
import Router from 'next/router'
|
||||
import { TabBar, Icon } from 'antd-mobile'
|
||||
|
||||
export default class MenuBar extends Component {
|
||||
render () {
|
||||
const {
|
||||
pathname,
|
||||
children
|
||||
} = this.props
|
||||
|
||||
return (
|
||||
<TabBar>
|
||||
{tabBarData.map(({ title, icon, selectedIcon, link, dot, component: Component }) => (
|
||||
<TabBar.Item
|
||||
key={link}
|
||||
title={title}
|
||||
icon={<Icon type={icon} />}
|
||||
selectedIcon={<Icon type={selectedIcon} />}
|
||||
selected={pathname === link}
|
||||
onPress={() => Router.push(link)}
|
||||
>
|
||||
{children}
|
||||
</TabBar.Item>
|
||||
))}
|
||||
</TabBar>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const tabBarData = [
|
||||
{
|
||||
title: 'Home',
|
||||
icon: 'koubei-o',
|
||||
selectedIcon: 'koubei',
|
||||
link: '/home'
|
||||
},
|
||||
{
|
||||
title: 'Trick',
|
||||
icon: 'check-circle-o',
|
||||
selectedIcon: 'check-circle',
|
||||
link: '/trick'
|
||||
}
|
||||
]
|
54
examples/with-antd-mobile/next.config.js
Normal file
54
examples/with-antd-mobile/next.config.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const requireHacker = require('require-hacker')
|
||||
|
||||
function setupRequireHacker () {
|
||||
requireHacker.resolver((filename, module) => {
|
||||
if (filename.endsWith('/style/css')) {
|
||||
return requireHacker.resolve(`${filename}.web.js`, module)
|
||||
}
|
||||
})
|
||||
|
||||
requireHacker.hook('js', filename => {
|
||||
if (
|
||||
filename.endsWith('.web.js') ||
|
||||
!filename.includes('/node_modules/') ||
|
||||
['antd-mobile', 'rc-swipeout', 'rmc-picker'].every(p => !filename.includes(p))
|
||||
) return
|
||||
|
||||
const webjs = filename.replace(/\.js$/, '.web.js')
|
||||
if (!fs.existsSync(webjs)) return
|
||||
|
||||
return fs.readFileSync(webjs, { encoding: 'utf8' })
|
||||
})
|
||||
|
||||
requireHacker.hook('css', () => '')
|
||||
|
||||
requireHacker.hook('svg', filename => {
|
||||
return requireHacker.to_javascript_module_source(fs.readFileSync(filename, { encoding: 'utf8' }))
|
||||
})
|
||||
}
|
||||
|
||||
setupRequireHacker()
|
||||
|
||||
function moduleDir (m) {
|
||||
return path.dirname(require.resolve(`${m}/package.json`))
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
webpack: (config, { dev }) => {
|
||||
config.resolve.extensions = ['.web.js', '.js', '.json']
|
||||
|
||||
config.module.rules.push(
|
||||
{
|
||||
test: /\.(svg)$/i,
|
||||
loader: 'svg-sprite-loader',
|
||||
include: [
|
||||
moduleDir('antd-mobile')
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
return config
|
||||
}
|
||||
}
|
16
examples/with-antd-mobile/package.json
Normal file
16
examples/with-antd-mobile/package.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"antd-mobile": "^1.1.2",
|
||||
"babel-plugin-import": "^1.1.1",
|
||||
"next": "latest",
|
||||
"react": "^15.5.4",
|
||||
"react-dom": "^15.5.4",
|
||||
"require-hacker": "^3.0.0",
|
||||
"svg-sprite-loader": "~0.3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "next",
|
||||
"build": "next build",
|
||||
"start": "next start"
|
||||
}
|
||||
}
|
18
examples/with-antd-mobile/pages/_document.js
Normal file
18
examples/with-antd-mobile/pages/_document.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
import Document, { Head, Main, NextScript } from 'next/document'
|
||||
|
||||
export default class extends Document {
|
||||
render () {
|
||||
return (
|
||||
<html>
|
||||
<Head>
|
||||
<script src='/static/hd.min.js' />
|
||||
<link rel='stylesheet' type='text/css' href='//unpkg.com/antd-mobile/dist/antd-mobile.min.css' />
|
||||
</Head>
|
||||
<body style={{margin: 0}}>
|
||||
<Main />
|
||||
<NextScript />
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
}
|
54
examples/with-antd-mobile/pages/home.js
Normal file
54
examples/with-antd-mobile/pages/home.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
import React, {Component} from 'react'
|
||||
import {
|
||||
WhiteSpace, WingBlank,
|
||||
NavBar, Icon, Pagination, Steps
|
||||
} from 'antd-mobile'
|
||||
import Layout from '../components/Layout'
|
||||
import MenuBar from '../components/MenuBar'
|
||||
|
||||
export default class Home extends Component {
|
||||
static getInitialProps ({ req }) {
|
||||
const language = req ? req.headers['accept-language'] : navigator.language
|
||||
|
||||
return {
|
||||
language
|
||||
}
|
||||
}
|
||||
|
||||
render () {
|
||||
const {
|
||||
language,
|
||||
url: { pathname }
|
||||
} = this.props
|
||||
|
||||
return (
|
||||
<Layout language={language}>
|
||||
<MenuBar
|
||||
pathname={pathname}
|
||||
>
|
||||
<NavBar
|
||||
leftContent='back'
|
||||
mode='light'
|
||||
onLeftClick={() => console.log('onLeftClick')}
|
||||
rightContent={[
|
||||
<Icon key='0' type='search' style={{ marginRight: '0.32rem' }} />,
|
||||
<Icon key='1' type='ellipsis' />
|
||||
]}
|
||||
>
|
||||
NavBar
|
||||
</NavBar>
|
||||
<WhiteSpace />
|
||||
<Pagination total={5} current={0} />
|
||||
<WhiteSpace />
|
||||
<WingBlank>
|
||||
<Steps current={1}>
|
||||
<Steps.Step title='Finished' description='Most components has supported' />
|
||||
<Steps.Step title='In Progress' description='Switch Modal and Menu' />
|
||||
<Steps.Step title='Waiting' description='1.2.0' />
|
||||
</Steps>
|
||||
</WingBlank>
|
||||
</MenuBar>
|
||||
</Layout>
|
||||
)
|
||||
}
|
||||
}
|
9
examples/with-antd-mobile/pages/index.js
Normal file
9
examples/with-antd-mobile/pages/index.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { Component } from 'react'
|
||||
|
||||
export default class Index extends Component {
|
||||
static async getInitialProps ({ res }) {
|
||||
res.setHeader('Location', '/home')
|
||||
res.statusCode = 302
|
||||
res.end()
|
||||
}
|
||||
}
|
122
examples/with-antd-mobile/pages/trick.js
Normal file
122
examples/with-antd-mobile/pages/trick.js
Normal file
|
@ -0,0 +1,122 @@
|
|||
import React, { Component } from 'react'
|
||||
import {
|
||||
WhiteSpace,
|
||||
List, Switch, Modal, Button, Menu
|
||||
} from 'antd-mobile'
|
||||
import Layout from '../components/Layout'
|
||||
import MenuBar from '../components/MenuBar'
|
||||
|
||||
export default class Trick extends Component {
|
||||
static getInitialProps ({ req }) {
|
||||
const language = req ? req.headers['accept-language'] : navigator.language
|
||||
const userAgent = req ? req.headers['user-agent'] : navigator.userAgent
|
||||
const android = /android/i.test(userAgent)
|
||||
const platform = android ? 'android' : 'ios'
|
||||
|
||||
return {
|
||||
language,
|
||||
platform
|
||||
}
|
||||
}
|
||||
|
||||
constructor (props) {
|
||||
super(props)
|
||||
|
||||
this.menuData = [
|
||||
{
|
||||
label: 'Menu 1',
|
||||
value: '1',
|
||||
children: [
|
||||
{
|
||||
label: 'Submenu 1-1',
|
||||
value: '11'
|
||||
},
|
||||
{
|
||||
label: 'Submenu 1-2',
|
||||
value: '12'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Menu 2',
|
||||
value: '2',
|
||||
children: [
|
||||
{
|
||||
label: 'Submenu 2-1',
|
||||
value: '21'
|
||||
},
|
||||
{
|
||||
label: 'Submenu 2-2',
|
||||
value: '22'
|
||||
},
|
||||
{
|
||||
label: 'Submenu 2-3',
|
||||
value: '23'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
this.state = {
|
||||
switchChecked: true,
|
||||
modalOpened: false
|
||||
}
|
||||
}
|
||||
|
||||
render () {
|
||||
const {
|
||||
language,
|
||||
platform,
|
||||
url: { pathname }
|
||||
} = this.props
|
||||
|
||||
const {
|
||||
switchChecked,
|
||||
modalOpened
|
||||
} = this.state
|
||||
|
||||
return (
|
||||
<Layout language={language}>
|
||||
<MenuBar
|
||||
pathname={pathname}
|
||||
>
|
||||
<WhiteSpace />
|
||||
<List renderHeader={() => 'Switch and Modal platform prop is required in SSR mode'}>
|
||||
<List.Item
|
||||
extra={
|
||||
<Switch
|
||||
platform={platform}
|
||||
checked={switchChecked}
|
||||
onChange={val => this.setState({ switchChecked: val })}
|
||||
/>
|
||||
}
|
||||
>
|
||||
Switch {platform}
|
||||
</List.Item>
|
||||
<Button onClick={() => this.setState({ modalOpened: true })}>
|
||||
Open {platform} modal
|
||||
</Button>
|
||||
</List>
|
||||
<Modal
|
||||
title='Modal'
|
||||
platform={platform}
|
||||
visible={modalOpened}
|
||||
transparent
|
||||
closable
|
||||
footer={[{ text: 'OK', onPress: () => this.setState({ modalOpened: false }) }]}
|
||||
onClose={() => this.setState({ modalOpened: false })}
|
||||
>
|
||||
I am a modal.<br />
|
||||
Must set platform prop
|
||||
</Modal>
|
||||
<List renderHeader={() => 'Menu height prop is required in SSR mode'}>
|
||||
<Menu
|
||||
height={500}
|
||||
data={this.menuData}
|
||||
/>
|
||||
</List>
|
||||
</MenuBar>
|
||||
</Layout>
|
||||
)
|
||||
}
|
||||
}
|
2
examples/with-antd-mobile/static/hd.min.js
vendored
Normal file
2
examples/with-antd-mobile/static/hd.min.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
!function(e){function t(a){if(i[a])return i[a].exports;var n=i[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=window;t["default"]=i.flex=function(e,t){var a=e||100,n=t||1,r=i.document,o=navigator.userAgent,d=o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),l=o.match(/U3\/((\d+|\.){5,})/i),c=l&&parseInt(l[1].split(".").join(""),10)>=80,p=navigator.appVersion.match(/(iphone|ipad|ipod)/gi),s=i.devicePixelRatio||1;p||d&&d[1]>534||c||(s=1);var u=1/s,m=r.querySelector('meta[name="viewport"]');m||(m=r.createElement("meta"),m.setAttribute("name","viewport"),r.head.appendChild(m)),m.setAttribute("content","width=device-width,user-scalable=no,initial-scale="+u+",maximum-scale="+u+",minimum-scale="+u),r.documentElement.style.fontSize=a/2*s*n+"px"},e.exports=t["default"]}]);
|
||||
flex(100, 1);
|
|
@ -4,6 +4,7 @@
|
|||
[
|
||||
"css-modules-transform", {
|
||||
"extensions": [".css", ".sass"],
|
||||
"append": [ "postcss-cssnext" ],
|
||||
"extractCss": "./static/css/bundle.css",
|
||||
"preprocessCss": "./pre-processor.js"
|
||||
}
|
||||
|
|
3
examples/with-external-scoped-css/global.sass
Normal file
3
examples/with-external-scoped-css/global.sass
Normal file
|
@ -0,0 +1,3 @@
|
|||
@mixin opacity($opacity)
|
||||
opacity: $opacity
|
||||
filter: alpha(opacity=($opacity * 100))
|
|
@ -16,6 +16,8 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"babel-plugin-css-modules-transform": "^1.2.1",
|
||||
"node-sass": "^4.5.0"
|
||||
"node-sass": "^4.5.0",
|
||||
"postcss": "^5.2.16",
|
||||
"postcss-cssnext": "^2.10.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
@import "../global"
|
||||
|
||||
.example
|
||||
@include opacity(0.5)
|
||||
font-size: 36px
|
||||
width: 300px
|
||||
margin: 100px auto
|
||||
display: flex
|
||||
|
|
|
@ -10,7 +10,7 @@ if (typeof window !== 'undefined') {
|
|||
}
|
||||
|
||||
export default () => {
|
||||
css.global('html, body', { padding: '3rem 1rem', margin: 0, background: 'papayawhip', 'min-height': '100%', 'font-family': 'Helvetica, Arial, sans-serif', 'font-size': '24px' })
|
||||
css.global('html, body', { padding: '3rem 1rem', margin: 0, background: 'papayawhip', minHeight: '100%', fontFamily: 'Helvetica, Arial, sans-serif', fontSize: '24px' })
|
||||
|
||||
const basicStyles = {
|
||||
backgroundColor: 'white',
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
import { translate } from 'react-i18next'
|
||||
export default translate(['common'])((props) => (<h1>{props.t('hello')}</h1>))
|
||||
export default translate(['common'])((props) => (<h1>{props.t('hello')}, {props.t('morning')}</h1>))
|
||||
|
|
|
@ -4,9 +4,12 @@ import startI18n from '../tools/startI18n'
|
|||
import { getTranslation } from '../tools/translationHelpers'
|
||||
import Title from '../components/Title'
|
||||
|
||||
// get language from query parameter or url path
|
||||
const lang = 'id'
|
||||
|
||||
export default class Homepage extends Component {
|
||||
static async getInitialProps () {
|
||||
const translations = await getTranslation('pt', 'common', 'http://localhost:3000/static/locales/')
|
||||
const translations = await getTranslation(lang, 'common', 'http://localhost:3000/static/locales/')
|
||||
|
||||
return { translations }
|
||||
}
|
||||
|
@ -14,7 +17,7 @@ export default class Homepage extends Component {
|
|||
constructor (props) {
|
||||
super(props)
|
||||
|
||||
this.i18n = startI18n(props.translations)
|
||||
this.i18n = startI18n(props.translations, lang)
|
||||
}
|
||||
|
||||
render (props) {
|
||||
|
|
3
examples/with-i18next/static/locales/id/common.json
Normal file
3
examples/with-i18next/static/locales/id/common.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"hello": "halo"
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
{
|
||||
"hello": "e ae tche"
|
||||
"hello": "e ae tche",
|
||||
"morning": "manha"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
import i18n from 'i18next'
|
||||
|
||||
const startI18n = file => i18n.init({
|
||||
const startI18n = (file, lang) => i18n.init({
|
||||
lng: lang, // active language http://i18next.com/translate/
|
||||
fallbackLng: 'pt',
|
||||
resources: file,
|
||||
ns: ['common'],
|
||||
|
|
|
@ -29,26 +29,6 @@ now
|
|||
|
||||
Scoped CSS is neat and keeps your JS clean. PostCSS is amazing for extended features, such as nesting. CSS Modules keep your class names “local”.
|
||||
|
||||
# Known bugs
|
||||
# Known issues
|
||||
|
||||
There's a bug, possibly within `next.js`, making composition between files unuseable. Consider the following:
|
||||
|
||||
*`styles.css`*
|
||||
```css
|
||||
.paragraph {
|
||||
composes: font-sans from '../global.css';
|
||||
}
|
||||
```
|
||||
|
||||
*`global.css`*
|
||||
```css
|
||||
.font-sans {
|
||||
font-family: georgia; /* ;) */
|
||||
}
|
||||
```
|
||||
|
||||
The following error is thrown:
|
||||
|
||||
```
|
||||
Module build failed: Error: Cannot find module '-!./../node_modules/css-loader/index.js??ref--6-4!./../node_modules/postcss-loader/index.js!../global.css'
|
||||
```
|
||||
Composed CSS files are not watched by next.js, and thus, if you change one, nothing will happen. You'll need to edit a JS file or the CSS file you're composing for it to hot reload.
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
const trash = require('trash')
|
||||
|
||||
module.exports = {
|
||||
webpack: (config) => {
|
||||
config.module.rules.push(
|
||||
|
@ -10,27 +12,21 @@ module.exports = {
|
|||
name: 'dist/[path][name].[ext]'
|
||||
}
|
||||
},
|
||||
'raw-loader',
|
||||
'val-loader',
|
||||
{
|
||||
loader: 'skeleton-loader',
|
||||
options: {
|
||||
procedure: (content) => (
|
||||
`${content} \n` + ['module.exports = {',
|
||||
'stylesheet: module.exports.toString(),',
|
||||
'classNames: exports.locals',
|
||||
procedure: function (content) {
|
||||
const fileName = `${this._module.userRequest}.json`
|
||||
const classNames = JSON.stringify(require(fileName))
|
||||
|
||||
trash(fileName)
|
||||
|
||||
return ['module.exports = {',
|
||||
`classNames: ${classNames},`,
|
||||
`stylesheet: \`${content}\``,
|
||||
'}'
|
||||
].join('')
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
modules: true,
|
||||
minimize: true,
|
||||
importLoaders: 1,
|
||||
localIdentName: '[local]-[hash:base64:5]'
|
||||
}
|
||||
}
|
||||
},
|
||||
'postcss-loader'
|
||||
|
|
|
@ -10,18 +10,17 @@
|
|||
"author": "Thomas Lindstrøm <t@hom.as>",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"babel-plugin-wrap-in-js": "^1.1.1",
|
||||
"css-loader": "^0.26.1",
|
||||
"cssnano": "^3.10.0",
|
||||
"next": "latest",
|
||||
"postcss-cssnext": "^2.9.0",
|
||||
"postcss-loader": "^1.3.0",
|
||||
"raw-loader": "^0.5.1",
|
||||
"postcss-modules": "^0.6.4",
|
||||
"react": "^15.4.2",
|
||||
"react-dom": "^15.4.2",
|
||||
"skeleton-loader": "0.0.7",
|
||||
"val-loader": "^0.5.0"
|
||||
"skeleton-loader": "^1.1.2",
|
||||
"trash": "^4.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"now": "^3.1.0"
|
||||
"now": "^4.10.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
.font-color {
|
||||
color: blue;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
.paragraph {
|
||||
composes: font-color from './global.css';
|
||||
font-size: 20px;
|
||||
color: red;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
module.exports = {
|
||||
plugins: [
|
||||
require('postcss-cssnext')()
|
||||
require('postcss-cssnext')(),
|
||||
require('postcss-modules')({
|
||||
generateScopedName: '[local]-[hash:base64:5]'
|
||||
}),
|
||||
require('cssnano')()
|
||||
]
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ const isWindows = /^win/.test(process.platform)
|
|||
|
||||
export async function compile(fly) {
|
||||
await fly.parallel(['bin', 'server', 'lib', 'client'])
|
||||
await fly.start('unrestrict')
|
||||
}
|
||||
|
||||
export async function bin(fly, opts) {
|
||||
|
@ -27,14 +26,6 @@ export async function client(fly, opts) {
|
|||
notify('Compiled client files')
|
||||
}
|
||||
|
||||
export async function unrestrict(fly) {
|
||||
await fly.source('dist/lib/eval-script.js').babel({
|
||||
babelrc: false,
|
||||
plugins: ['babel-plugin-transform-remove-strict-mode']
|
||||
}).target('dist/lib')
|
||||
notify('Completed removing strict mode for eval script')
|
||||
}
|
||||
|
||||
export async function copy(fly) {
|
||||
await fly.source('pages/**/*.js').target('dist/pages')
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "next",
|
||||
"version": "3.0.0-beta6",
|
||||
"version": "3.0.0-beta7",
|
||||
"description": "Minimalistic framework for server-rendered React applications",
|
||||
"main": "./dist/server/next.js",
|
||||
"license": "MIT",
|
||||
|
@ -82,12 +82,11 @@
|
|||
"path-match": "1.2.4",
|
||||
"pkg-up": "2.0.0",
|
||||
"prop-types": "15.5.10",
|
||||
"react-hot-loader": "3.0.0-beta.6",
|
||||
"recursive-copy": "^2.0.6",
|
||||
"send": "0.15.3",
|
||||
"react-hot-loader": "3.0.0-beta.7",
|
||||
"source-map-support": "0.4.15",
|
||||
"strip-ansi": "3.0.1",
|
||||
"styled-jsx": "0.5.7",
|
||||
"styled-jsx": "1.0.2",
|
||||
"touch": "1.0.0",
|
||||
"unfetch": "2.1.2",
|
||||
"url": "0.11.0",
|
||||
|
|
|
@ -583,6 +583,7 @@ Supported options:
|
|||
- `dev` (`bool`) whether to launch Next.js in dev mode - default `false`
|
||||
- `dir` (`string`) where the Next project is located - default `'.'`
|
||||
- `quiet` (`bool`) Hide error messages containing server information - default `false`
|
||||
- `conf` (`object`) the same object you would use in `next.config.js` - default `{}`
|
||||
|
||||
Then, change your `start` script to `NODE_ENV=production node server.js`.
|
||||
|
||||
|
@ -863,7 +864,7 @@ Then run `now` and enjoy!
|
|||
|
||||
Next.js can be deployed to other hosting solutions too. Please have a look at the ['Deployment'](https://github.com/zeit/next.js/wiki/Deployment) section of the wiki.
|
||||
|
||||
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 (you can set a custom folder in ['Custom 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)
|
||||
|
||||
## Static HTML export
|
||||
|
||||
|
|
|
@ -314,7 +314,7 @@ export default async function createCompiler (dir, { dev = false, quiet = false,
|
|||
}
|
||||
|
||||
if (config.webpack) {
|
||||
console.log('> Using "webpack" config function defined in next.config.js.')
|
||||
console.log(`> Using "webpack" config function defined in ${config.configOrigin}.`)
|
||||
webpackConfig = await config.webpack(webpackConfig, { dev })
|
||||
}
|
||||
return webpack(webpackConfig)
|
||||
|
|
|
@ -8,17 +8,23 @@ const defaultConfig = {
|
|||
webpackDevMiddleware: null,
|
||||
poweredByHeader: true,
|
||||
distDir: '.next',
|
||||
assetPrefix: ''
|
||||
assetPrefix: '',
|
||||
configOrigin: 'default',
|
||||
useFileSystemPublicRoutes: true
|
||||
}
|
||||
|
||||
export default function getConfig (dir) {
|
||||
export default function getConfig (dir, customConfig) {
|
||||
if (!cache.has(dir)) {
|
||||
cache.set(dir, loadConfig(dir))
|
||||
cache.set(dir, loadConfig(dir, customConfig))
|
||||
}
|
||||
return cache.get(dir)
|
||||
}
|
||||
|
||||
function loadConfig (dir) {
|
||||
function loadConfig (dir, customConfig) {
|
||||
if (customConfig && typeof customConfig === 'object') {
|
||||
customConfig.configOrigin = 'server'
|
||||
return withDefaults(customConfig)
|
||||
}
|
||||
const path = join(dir, 'next.config.js')
|
||||
|
||||
let userConfig = {}
|
||||
|
@ -27,7 +33,12 @@ function loadConfig (dir) {
|
|||
if (userHasConfig) {
|
||||
const userConfigModule = require(path)
|
||||
userConfig = userConfigModule.default || userConfigModule
|
||||
userConfig.configOrigin = 'next.config.js'
|
||||
}
|
||||
|
||||
return Object.assign({}, defaultConfig, userConfig)
|
||||
return withDefaults(userConfig)
|
||||
}
|
||||
|
||||
function withDefaults (config) {
|
||||
return Object.assign({}, defaultConfig, config)
|
||||
}
|
||||
|
|
|
@ -36,8 +36,8 @@ export class Head extends Component {
|
|||
|
||||
getChunkPreloadLink (filename) {
|
||||
const { __NEXT_DATA__ } = this.context._documentProps
|
||||
let { buildStats, assetPrefix } = __NEXT_DATA__
|
||||
const hash = buildStats ? buildStats[filename].hash : '-'
|
||||
let { buildStats, assetPrefix, buildId } = __NEXT_DATA__
|
||||
const hash = buildStats ? buildStats[filename].hash : buildId
|
||||
|
||||
return (
|
||||
<link
|
||||
|
@ -118,8 +118,8 @@ export class NextScript extends Component {
|
|||
|
||||
getChunkScript (filename, additionalProps = {}) {
|
||||
const { __NEXT_DATA__ } = this.context._documentProps
|
||||
let { buildStats, assetPrefix } = __NEXT_DATA__
|
||||
const hash = buildStats ? buildStats[filename].hash : '-'
|
||||
let { buildStats, assetPrefix, buildId } = __NEXT_DATA__
|
||||
const hash = buildStats ? buildStats[filename].hash : buildId
|
||||
|
||||
return (
|
||||
<script
|
||||
|
|
|
@ -8,7 +8,7 @@ import clean from './build/clean'
|
|||
import getConfig from './config'
|
||||
|
||||
export default class HotReloader {
|
||||
constructor (dir, { quiet } = {}) {
|
||||
constructor (dir, { quiet, conf } = {}) {
|
||||
this.dir = dir
|
||||
this.quiet = quiet
|
||||
this.middlewares = []
|
||||
|
@ -22,7 +22,7 @@ export default class HotReloader {
|
|||
this.prevFailedChunkNames = null
|
||||
this.prevChunkHashes = null
|
||||
|
||||
this.config = getConfig(dir)
|
||||
this.config = getConfig(dir, conf)
|
||||
}
|
||||
|
||||
async run (req, res) {
|
||||
|
@ -148,7 +148,7 @@ export default class HotReloader {
|
|||
}
|
||||
|
||||
if (this.config.webpackDevMiddleware) {
|
||||
console.log('> Using "webpackDevMiddleware" config function defined in next.config.js.')
|
||||
console.log(`> Using "webpackDevMiddleware" config function defined in ${this.config.configOrigin}.`)
|
||||
webpackDevMiddlewareConfig = this.config.webpackDevMiddleware(webpackDevMiddlewareConfig)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { resolve, join } from 'path'
|
||||
import { resolve, join, sep } from 'path'
|
||||
import { parse as parseUrl } from 'url'
|
||||
import { parse as parseQs } from 'querystring'
|
||||
import fs from 'fs'
|
||||
|
@ -24,14 +24,14 @@ const internalPrefixes = [
|
|||
]
|
||||
|
||||
export default class Server {
|
||||
constructor ({ dir = '.', dev = false, staticMarkup = false, quiet = false } = {}) {
|
||||
constructor ({ dir = '.', dev = false, staticMarkup = false, quiet = false, conf = null } = {}) {
|
||||
this.dir = resolve(dir)
|
||||
this.dev = dev
|
||||
this.quiet = quiet
|
||||
this.router = new Router()
|
||||
this.hotReloader = dev ? new HotReloader(this.dir, { quiet }) : null
|
||||
this.hotReloader = dev ? new HotReloader(this.dir, { quiet, conf }) : null
|
||||
this.http = null
|
||||
this.config = getConfig(this.dir)
|
||||
this.config = getConfig(this.dir, conf)
|
||||
this.dist = this.config.distDir
|
||||
this.buildStats = !dev ? require(join(this.dir, this.dist, 'build-stats.json')) : null
|
||||
this.buildId = !dev ? this.readBuildId() : '-'
|
||||
|
@ -113,24 +113,32 @@ export default class Server {
|
|||
},
|
||||
|
||||
'/_next/:hash/manifest.js': async (req, res, params) => {
|
||||
if (!this.dev) return this.send404(res)
|
||||
|
||||
this.handleBuildHash('manifest.js', params.hash, res)
|
||||
const p = join(this.dir, `${this.dist}/manifest.js`)
|
||||
await this.serveStatic(req, res, p)
|
||||
},
|
||||
|
||||
'/_next/:hash/main.js': async (req, res, params) => {
|
||||
if (!this.dev) return this.send404(res)
|
||||
|
||||
this.handleBuildHash('main.js', params.hash, res)
|
||||
const p = join(this.dir, `${this.dist}/main.js`)
|
||||
await this.serveStatic(req, res, p)
|
||||
},
|
||||
|
||||
'/_next/:hash/commons.js': async (req, res, params) => {
|
||||
if (!this.dev) return this.send404(res)
|
||||
|
||||
this.handleBuildHash('commons.js', params.hash, res)
|
||||
const p = join(this.dir, `${this.dist}/commons.js`)
|
||||
await this.serveStatic(req, res, p)
|
||||
},
|
||||
|
||||
'/_next/:hash/app.js': async (req, res, params) => {
|
||||
if (this.dev) return this.send404(res)
|
||||
|
||||
this.handleBuildHash('app.js', params.hash, res)
|
||||
const p = join(this.dir, `${this.dist}/app.js`)
|
||||
await this.serveStatic(req, res, p)
|
||||
|
@ -184,9 +192,11 @@ export default class Server {
|
|||
'/static/:path+': async (req, res, params) => {
|
||||
const p = join(this.dir, 'static', ...(params.path || []))
|
||||
await this.serveStatic(req, res, p)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
'/:path*': async (req, res, params, parsedUrl) => {
|
||||
if (this.config.useFileSystemPublicRoutes) {
|
||||
routes['/:path*'] = async (req, res, params, parsedUrl) => {
|
||||
const { pathname, query } = parsedUrl
|
||||
await this.render(req, res, pathname, query)
|
||||
}
|
||||
|
@ -238,7 +248,7 @@ export default class Server {
|
|||
res.setHeader('X-Powered-By', `Next.js ${pkg.version}`)
|
||||
}
|
||||
const html = await this.renderToHTML(req, res, pathname, query)
|
||||
return sendHTML(req, res, html, req.method)
|
||||
return sendHTML(req, res, html, req.method, this.renderOpts)
|
||||
}
|
||||
|
||||
async renderToHTML (req, res, pathname, query) {
|
||||
|
@ -266,7 +276,7 @@ export default class Server {
|
|||
|
||||
async renderError (err, req, res, pathname, query) {
|
||||
const html = await this.renderErrorToHTML(err, req, res, pathname, query)
|
||||
return sendHTML(req, res, html, req.method)
|
||||
return sendHTML(req, res, html, req.method, this.renderOpts)
|
||||
}
|
||||
|
||||
async renderErrorToHTML (err, req, res, pathname, query) {
|
||||
|
@ -298,6 +308,10 @@ export default class Server {
|
|||
}
|
||||
|
||||
async serveStatic (req, res, path) {
|
||||
if (!this.isServeableUrl(path)) {
|
||||
return this.render404(req, res)
|
||||
}
|
||||
|
||||
try {
|
||||
return await serveStatic(req, res, path)
|
||||
} catch (err) {
|
||||
|
@ -309,6 +323,19 @@ export default class Server {
|
|||
}
|
||||
}
|
||||
|
||||
isServeableUrl (path) {
|
||||
const resolved = resolve(path)
|
||||
if (
|
||||
resolved.indexOf(join(this.dir, this.dist) + sep) !== 0 &&
|
||||
resolved.indexOf(join(this.dir, 'static') + sep) !== 0
|
||||
) {
|
||||
// Seems like the user is trying to traverse the filesystem.
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
isInternalUrl (req) {
|
||||
for (const prefix of internalPrefixes) {
|
||||
if (prefix.test(req.url)) {
|
||||
|
@ -348,10 +375,16 @@ export default class Server {
|
|||
|
||||
handleBuildHash (filename, hash, res) {
|
||||
if (this.dev) return
|
||||
|
||||
if (hash !== this.buildStats[filename].hash) {
|
||||
throw new Error(`Invalid Build File Hash(${hash}) for chunk: ${filename}`)
|
||||
}
|
||||
|
||||
res.setHeader('Cache-Control', 'max-age=365000000, immutable')
|
||||
}
|
||||
|
||||
send404 (res) {
|
||||
res.statusCode = 404
|
||||
res.end('404 - Not Found')
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ import { flushChunks } from '../lib/dynamic'
|
|||
|
||||
export async function render (req, res, pathname, query, opts) {
|
||||
const html = await renderToHTML(req, res, pathname, opts)
|
||||
sendHTML(req, res, html, req.method)
|
||||
sendHTML(req, res, html, req.method, opts)
|
||||
}
|
||||
|
||||
export function renderToHTML (req, res, pathname, query, opts) {
|
||||
|
@ -25,7 +25,7 @@ export function renderToHTML (req, res, pathname, query, opts) {
|
|||
|
||||
export async function renderError (err, req, res, pathname, query, opts) {
|
||||
const html = await renderErrorToHTML(err, req, res, query, opts)
|
||||
sendHTML(req, res, html, req.method)
|
||||
sendHTML(req, res, html, req.method, opts)
|
||||
}
|
||||
|
||||
export function renderErrorToHTML (err, req, res, pathname, query, opts = {}) {
|
||||
|
@ -90,15 +90,21 @@ async function doRender (req, res, pathname, query, {
|
|||
}
|
||||
|
||||
const docProps = await loadGetInitialProps(Document, { ...ctx, renderPage })
|
||||
// While developing, we should not cache any assets.
|
||||
// So, we use a different buildId for each page load.
|
||||
// With that we can ensure, we have unique URL for assets per every page load.
|
||||
// So, it'll prevent issues like this: https://git.io/vHLtb
|
||||
const devBuildId = Date.now()
|
||||
|
||||
if (res.finished) return
|
||||
|
||||
if (!Document.prototype || !Document.prototype.isReactComponent) throw new Error('_document.js is not exporting a React element')
|
||||
const doc = createElement(Document, {
|
||||
__NEXT_DATA__: {
|
||||
props,
|
||||
pathname,
|
||||
query,
|
||||
buildId,
|
||||
buildId: dev ? devBuildId : buildId,
|
||||
buildStats,
|
||||
assetPrefix,
|
||||
nextExport,
|
||||
|
@ -160,7 +166,7 @@ export async function renderScriptError (req, res, page, error, customFields, op
|
|||
`)
|
||||
}
|
||||
|
||||
export function sendHTML (req, res, html, method) {
|
||||
export function sendHTML (req, res, html, method, { dev }) {
|
||||
if (res.finished) return
|
||||
const etag = generateETag(html)
|
||||
|
||||
|
@ -170,6 +176,12 @@ export function sendHTML (req, res, html, method) {
|
|||
return
|
||||
}
|
||||
|
||||
if (dev) {
|
||||
// In dev, we should not cache pages for any reason.
|
||||
// That's why we do this.
|
||||
res.setHeader('Cache-Control', 'no-store, must-revalidate')
|
||||
}
|
||||
|
||||
res.setHeader('ETag', etag)
|
||||
res.setHeader('Content-Type', 'text/html')
|
||||
res.setHeader('Content-Length', Buffer.byteLength(html))
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/* global describe, test, expect */
|
||||
import fetch from 'node-fetch'
|
||||
|
||||
export default function (context) {
|
||||
describe('Misc', () => {
|
||||
|
@ -13,14 +12,5 @@ export default function (context) {
|
|||
const html = await context.app.renderToHTML({}, res, '/finish-response', {})
|
||||
expect(html).toBeFalsy()
|
||||
})
|
||||
|
||||
test('allow etag header support', async () => {
|
||||
const url = `http://localhost:${context.appPort}/stateless`
|
||||
const etag = (await fetch(url)).headers.get('ETag')
|
||||
|
||||
const headers = { 'If-None-Match': etag }
|
||||
const res2 = await fetch(url, { headers })
|
||||
expect(res2.status).toBe(304)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import {
|
|||
renderViaHTTP
|
||||
} from 'next-test-utils'
|
||||
import webdriver from 'next-webdriver'
|
||||
import fetch from 'node-fetch'
|
||||
|
||||
const appDir = join(__dirname, '../')
|
||||
let appPort
|
||||
|
@ -35,6 +36,15 @@ describe('Production Usage', () => {
|
|||
const html = await renderViaHTTP(appPort, '/')
|
||||
expect(html).toMatch(/Hello World/)
|
||||
})
|
||||
|
||||
it('should allow etag header support', async () => {
|
||||
const url = `http://localhost:${appPort}/`
|
||||
const etag = (await fetch(url)).headers.get('ETag')
|
||||
|
||||
const headers = { 'If-None-Match': etag }
|
||||
const res2 = await fetch(url, { headers })
|
||||
expect(res2.status).toBe(304)
|
||||
})
|
||||
})
|
||||
|
||||
describe('With navigation', () => {
|
||||
|
|
546
yarn.lock
546
yarn.lock
|
@ -40,8 +40,8 @@ acorn@^3.0.4:
|
|||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
|
||||
|
||||
acorn@^4.0.3, acorn@^4.0.4:
|
||||
version "4.0.11"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0"
|
||||
version "4.0.13"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
|
||||
|
||||
acorn@^5.0.0, acorn@^5.0.1:
|
||||
version "5.0.3"
|
||||
|
@ -255,8 +255,8 @@ async@^1.4.0:
|
|||
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
||||
|
||||
async@^2.0.0, async@^2.1.2, async@^2.1.4:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611"
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7"
|
||||
dependencies:
|
||||
lodash "^4.14.0"
|
||||
|
||||
|
@ -459,13 +459,21 @@ babel-helpers@^6.23.0, babel-helpers@^6.24.1:
|
|||
babel-runtime "^6.22.0"
|
||||
babel-template "^6.24.1"
|
||||
|
||||
babel-jest@20.0.1, babel-jest@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.1.tgz#9cbe9a15bbe3f1ca1b727dc8e45a4161771d3655"
|
||||
babel-jest@20.0.2:
|
||||
version "20.0.2"
|
||||
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.2.tgz#0894fb1f44dca32edc0ca6a90020d8e6a5991a59"
|
||||
dependencies:
|
||||
babel-core "^6.0.0"
|
||||
babel-plugin-istanbul "^4.0.0"
|
||||
babel-preset-jest "^20.0.1"
|
||||
babel-preset-jest "^20.0.2"
|
||||
|
||||
babel-jest@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671"
|
||||
dependencies:
|
||||
babel-core "^6.0.0"
|
||||
babel-plugin-istanbul "^4.0.0"
|
||||
babel-preset-jest "^20.0.3"
|
||||
|
||||
babel-loader@7.0.0:
|
||||
version "7.0.0"
|
||||
|
@ -495,9 +503,9 @@ babel-plugin-istanbul@4.1.3, babel-plugin-istanbul@^4.0.0:
|
|||
istanbul-lib-instrument "^1.7.1"
|
||||
test-exclude "^4.1.0"
|
||||
|
||||
babel-plugin-jest-hoist@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.1.tgz#1b9cc322cff704d3812d1bca8dccd12205eedfd5"
|
||||
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"
|
||||
|
||||
babel-plugin-module-resolver@2.6.2:
|
||||
version "2.6.2"
|
||||
|
@ -807,9 +815,9 @@ babel-plugin-transform-strict-mode@^6.24.1:
|
|||
babel-runtime "^6.22.0"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-preset-env@1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.3.3.tgz#5913407784e3d98de2aa814a3ef9059722b34e0b"
|
||||
babel-preset-env@1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.5.0.tgz#6e5452f7c8742afe3b9a917883ccf3f7a4f340c5"
|
||||
dependencies:
|
||||
babel-plugin-check-es2015-constants "^6.22.0"
|
||||
babel-plugin-syntax-trailing-function-commas "^6.22.0"
|
||||
|
@ -838,8 +846,9 @@ babel-preset-env@1.3.3:
|
|||
babel-plugin-transform-es2015-unicode-regex "^6.22.0"
|
||||
babel-plugin-transform-exponentiation-operator "^6.22.0"
|
||||
babel-plugin-transform-regenerator "^6.22.0"
|
||||
browserslist "^1.4.0"
|
||||
browserslist "^2.1.2"
|
||||
invariant "^2.2.2"
|
||||
semver "^5.3.0"
|
||||
|
||||
babel-preset-es2015@6.24.1:
|
||||
version "6.24.1"
|
||||
|
@ -876,11 +885,11 @@ babel-preset-flow@^6.23.0:
|
|||
dependencies:
|
||||
babel-plugin-transform-flow-strip-types "^6.22.0"
|
||||
|
||||
babel-preset-jest@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.1.tgz#8a9e23ce8a0f0c49835de53ed73ecf75dd6daa2e"
|
||||
babel-preset-jest@^20.0.2, 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"
|
||||
dependencies:
|
||||
babel-plugin-jest-hoist "^20.0.1"
|
||||
babel-plugin-jest-hoist "^20.0.3"
|
||||
|
||||
babel-preset-react@6.24.1:
|
||||
version "6.24.1"
|
||||
|
@ -950,6 +959,15 @@ babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1:
|
|||
invariant "^2.2.0"
|
||||
lodash "^4.2.0"
|
||||
|
||||
babel-types@6.23.0:
|
||||
version "6.23.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf"
|
||||
dependencies:
|
||||
babel-runtime "^6.22.0"
|
||||
esutils "^2.0.2"
|
||||
lodash "^4.2.0"
|
||||
to-fast-properties "^1.0.1"
|
||||
|
||||
babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.21.0, babel-types@^6.23.0, babel-types@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975"
|
||||
|
@ -964,8 +982,8 @@ babylon@6.14.1:
|
|||
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:
|
||||
version "6.17.1"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f"
|
||||
version "6.17.2"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.2.tgz#201d25ef5f892c41bae49488b08db0dd476e9f5c"
|
||||
|
||||
balanced-match@^0.4.1:
|
||||
version "0.4.2"
|
||||
|
@ -1102,12 +1120,12 @@ browserify-zlib@^0.1.4:
|
|||
dependencies:
|
||||
pako "~0.2.0"
|
||||
|
||||
browserslist@^1.4.0:
|
||||
version "1.7.7"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
|
||||
browserslist@^2.1.2:
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.1.4.tgz#cc526af4a1312b7d2e05653e56d0c8ab70c0e053"
|
||||
dependencies:
|
||||
caniuse-db "^1.0.30000639"
|
||||
electron-to-chromium "^1.2.7"
|
||||
caniuse-lite "^1.0.30000670"
|
||||
electron-to-chromium "^1.3.11"
|
||||
|
||||
bser@1.0.2:
|
||||
version "1.0.2"
|
||||
|
@ -1179,9 +1197,9 @@ camelcase@^3.0.0:
|
|||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
|
||||
|
||||
caniuse-db@^1.0.30000639:
|
||||
version "1.0.30000669"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000669.tgz#dbe8f25700ecda631dfb05cb71027762bd4b03e5"
|
||||
caniuse-lite@^1.0.30000670:
|
||||
version "1.0.30000676"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000676.tgz#1e962123f48073f0c51c4ea0651dd64d25786498"
|
||||
|
||||
case-sensitive-paths-webpack-plugin@2.0.0:
|
||||
version "2.0.0"
|
||||
|
@ -1534,6 +1552,12 @@ css-select@~1.2.0:
|
|||
domutils "1.5.1"
|
||||
nth-check "~1.0.1"
|
||||
|
||||
css-tree@1.0.0-alpha17:
|
||||
version "1.0.0-alpha17"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha17.tgz#7ab95ab72c533917af8be54313fec81841c5223a"
|
||||
dependencies:
|
||||
source-map "^0.5.3"
|
||||
|
||||
css-what@2.1:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
|
||||
|
@ -1561,8 +1585,8 @@ dashdash@^1.12.0:
|
|||
assert-plus "^1.0.0"
|
||||
|
||||
date-fns@^1.27.2:
|
||||
version "1.28.4"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.4.tgz#7938aec34ba31fc8bd134d2344bc2e0bbfd95165"
|
||||
version "1.28.5"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf"
|
||||
|
||||
date-now@^0.1.4:
|
||||
version "0.1.4"
|
||||
|
@ -1578,17 +1602,17 @@ debug@2.6.1:
|
|||
dependencies:
|
||||
ms "0.7.2"
|
||||
|
||||
debug@2.6.4:
|
||||
version "2.6.4"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
|
||||
debug@2.6.7:
|
||||
version "2.6.7"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e"
|
||||
dependencies:
|
||||
ms "0.7.3"
|
||||
ms "2.0.0"
|
||||
|
||||
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"
|
||||
version "2.6.8"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
|
||||
dependencies:
|
||||
ms "0.7.3"
|
||||
ms "2.0.0"
|
||||
|
||||
decamelize@^1.0.0, decamelize@^1.1.1:
|
||||
version "1.2.0"
|
||||
|
@ -1739,9 +1763,9 @@ ee-first@1.1.1:
|
|||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||
|
||||
electron-to-chromium@^1.2.7:
|
||||
version "1.3.10"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.10.tgz#63d62b785471f0d8dda85199d64579de8a449f08"
|
||||
electron-to-chromium@^1.3.11:
|
||||
version "1.3.13"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.13.tgz#1b3a5eace6e087bb5e257a100b0cbfe81b2891fc"
|
||||
|
||||
elegant-spinner@^1.0.1:
|
||||
version "1.0.1"
|
||||
|
@ -1820,7 +1844,7 @@ error-stack-parser@^2.0.0:
|
|||
dependencies:
|
||||
stackframe "^1.0.3"
|
||||
|
||||
es-abstract@^1.6.1, es-abstract@^1.7.0:
|
||||
es-abstract@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
|
||||
dependencies:
|
||||
|
@ -1838,8 +1862,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.16"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.16.tgz#1ef1b04f3d09db6a5d630226d62202f2e425e45a"
|
||||
version "0.10.22"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.22.tgz#1876c51f990769c112c781ea3ebe89f84fd39071"
|
||||
dependencies:
|
||||
es6-iterator "2"
|
||||
es6-symbol "~3.1"
|
||||
|
@ -2181,8 +2205,8 @@ fileset@^2.0.2:
|
|||
minimatch "^3.0.3"
|
||||
|
||||
filesize@^3.2.1:
|
||||
version "3.5.9"
|
||||
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.9.tgz#9e3dd8a9b124f5b2f1fb2ee9cd13a86c707bb222"
|
||||
version "3.5.10"
|
||||
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f"
|
||||
|
||||
fill-range@^2.1.0:
|
||||
version "2.2.3"
|
||||
|
@ -2195,10 +2219,10 @@ fill-range@^2.1.0:
|
|||
repeat-string "^1.5.2"
|
||||
|
||||
finalhandler@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.2.tgz#d0e36f9dbc557f2de14423df6261889e9d60c93a"
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89"
|
||||
dependencies:
|
||||
debug "2.6.4"
|
||||
debug "2.6.7"
|
||||
encodeurl "~1.0.1"
|
||||
escape-html "~1.0.3"
|
||||
on-finished "~2.3.0"
|
||||
|
@ -2493,8 +2517,8 @@ growly@^1.3.0:
|
|||
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
|
||||
|
||||
handlebars@^4.0.3:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.8.tgz#22b875cd3f0e6cbea30314f144e82bc7a72ff420"
|
||||
version "4.0.10"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f"
|
||||
dependencies:
|
||||
async "^1.4.0"
|
||||
optimist "^0.6.1"
|
||||
|
@ -2665,8 +2689,8 @@ ieee754@^1.1.4:
|
|||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
|
||||
|
||||
ignore@^3.0.9, ignore@^3.2.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.0.tgz#3812d22cbe9125f2c2b4915755a1b8abd745a001"
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
|
||||
|
||||
imurmurhash@^0.1.4:
|
||||
version "0.1.4"
|
||||
|
@ -2776,8 +2800,8 @@ is-date-object@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
|
||||
|
||||
is-dotfile@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
|
||||
|
||||
is-equal-shallow@^0.1.3:
|
||||
version "0.1.3"
|
||||
|
@ -2928,75 +2952,75 @@ isstream@~0.1.2:
|
|||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
|
||||
istanbul-api@^1.1.1:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.8.tgz#a844e55c6f9aeee292e7f42942196f60b23dc93e"
|
||||
version "1.1.9"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.9.tgz#2827920d380d4286d857d57a2968a841db8a7ec8"
|
||||
dependencies:
|
||||
async "^2.1.4"
|
||||
fileset "^2.0.2"
|
||||
istanbul-lib-coverage "^1.1.0"
|
||||
istanbul-lib-hook "^1.0.6"
|
||||
istanbul-lib-instrument "^1.7.1"
|
||||
istanbul-lib-report "^1.1.0"
|
||||
istanbul-lib-source-maps "^1.2.0"
|
||||
istanbul-reports "^1.1.0"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
istanbul-lib-hook "^1.0.7"
|
||||
istanbul-lib-instrument "^1.7.2"
|
||||
istanbul-lib-report "^1.1.1"
|
||||
istanbul-lib-source-maps "^1.2.1"
|
||||
istanbul-reports "^1.1.1"
|
||||
js-yaml "^3.7.0"
|
||||
mkdirp "^0.5.1"
|
||||
once "^1.4.0"
|
||||
|
||||
istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528"
|
||||
istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.0, istanbul-lib-coverage@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da"
|
||||
|
||||
istanbul-lib-hook@^1.0.6:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f"
|
||||
istanbul-lib-hook@^1.0.6, istanbul-lib-hook@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc"
|
||||
dependencies:
|
||||
append-transform "^0.4.0"
|
||||
|
||||
istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360"
|
||||
istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.1, istanbul-lib-instrument@^1.7.2:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.2.tgz#6014b03d3470fb77638d5802508c255c06312e56"
|
||||
dependencies:
|
||||
babel-generator "^6.18.0"
|
||||
babel-template "^6.16.0"
|
||||
babel-traverse "^6.18.0"
|
||||
babel-types "^6.18.0"
|
||||
babylon "^6.13.0"
|
||||
istanbul-lib-coverage "^1.1.0"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
semver "^5.3.0"
|
||||
|
||||
istanbul-lib-report@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770"
|
||||
istanbul-lib-report@^1.1.0, istanbul-lib-report@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9"
|
||||
dependencies:
|
||||
istanbul-lib-coverage "^1.1.0"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
mkdirp "^0.5.1"
|
||||
path-parse "^1.0.5"
|
||||
supports-color "^3.1.2"
|
||||
|
||||
istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e"
|
||||
istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.0, istanbul-lib-source-maps@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c"
|
||||
dependencies:
|
||||
debug "^2.6.3"
|
||||
istanbul-lib-coverage "^1.1.0"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
mkdirp "^0.5.1"
|
||||
rimraf "^2.6.1"
|
||||
source-map "^0.5.3"
|
||||
|
||||
istanbul-reports@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66"
|
||||
istanbul-reports@^1.1.0, istanbul-reports@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e"
|
||||
dependencies:
|
||||
handlebars "^4.0.3"
|
||||
|
||||
jest-changed-files@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.1.tgz#ba9bd42c3fddb1b7c4ae40065199b44a2335e152"
|
||||
jest-changed-files@^20.0.2:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8"
|
||||
|
||||
jest-cli@20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.1.tgz#86ca0bc2e47215ad8e7dc85455c0210f86648502"
|
||||
jest-cli@20.0.2:
|
||||
version "20.0.2"
|
||||
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.2.tgz#98316e8eb45b4aee817395f38c3d08b7e13ca5b2"
|
||||
dependencies:
|
||||
ansi-escapes "^1.4.0"
|
||||
callsites "^2.0.0"
|
||||
|
@ -3007,18 +3031,18 @@ jest-cli@20.0.1:
|
|||
istanbul-lib-coverage "^1.0.1"
|
||||
istanbul-lib-instrument "^1.4.2"
|
||||
istanbul-lib-source-maps "^1.1.0"
|
||||
jest-changed-files "^20.0.1"
|
||||
jest-config "^20.0.1"
|
||||
jest-docblock "^20.0.1"
|
||||
jest-environment-jsdom "^20.0.1"
|
||||
jest-haste-map "^20.0.1"
|
||||
jest-jasmine2 "^20.0.1"
|
||||
jest-message-util "^20.0.1"
|
||||
jest-regex-util "^20.0.1"
|
||||
jest-resolve-dependencies "^20.0.1"
|
||||
jest-runtime "^20.0.1"
|
||||
jest-snapshot "^20.0.1"
|
||||
jest-util "^20.0.1"
|
||||
jest-changed-files "^20.0.2"
|
||||
jest-config "^20.0.2"
|
||||
jest-docblock "^20.0.2"
|
||||
jest-environment-jsdom "^20.0.2"
|
||||
jest-haste-map "^20.0.2"
|
||||
jest-jasmine2 "^20.0.2"
|
||||
jest-message-util "^20.0.2"
|
||||
jest-regex-util "^20.0.2"
|
||||
jest-resolve-dependencies "^20.0.2"
|
||||
jest-runtime "^20.0.2"
|
||||
jest-snapshot "^20.0.2"
|
||||
jest-util "^20.0.2"
|
||||
micromatch "^2.3.11"
|
||||
node-notifier "^5.0.2"
|
||||
pify "^2.3.0"
|
||||
|
@ -3029,171 +3053,171 @@ jest-cli@20.0.1:
|
|||
worker-farm "^1.3.1"
|
||||
yargs "^7.0.2"
|
||||
|
||||
jest-config@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.1.tgz#c6934f585c3e1775c96133efb302f986c3909ad8"
|
||||
jest-config@^20.0.2, jest-config@^20.0.4:
|
||||
version "20.0.4"
|
||||
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
glob "^7.1.1"
|
||||
jest-environment-jsdom "^20.0.1"
|
||||
jest-environment-node "^20.0.1"
|
||||
jest-jasmine2 "^20.0.1"
|
||||
jest-matcher-utils "^20.0.1"
|
||||
jest-regex-util "^20.0.1"
|
||||
jest-resolve "^20.0.1"
|
||||
jest-validate "^20.0.1"
|
||||
pretty-format "^20.0.1"
|
||||
jest-environment-jsdom "^20.0.3"
|
||||
jest-environment-node "^20.0.3"
|
||||
jest-jasmine2 "^20.0.4"
|
||||
jest-matcher-utils "^20.0.3"
|
||||
jest-regex-util "^20.0.3"
|
||||
jest-resolve "^20.0.4"
|
||||
jest-validate "^20.0.3"
|
||||
pretty-format "^20.0.3"
|
||||
|
||||
jest-diff@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.1.tgz#2567c80c324243328321386f8871a28ec9d350ac"
|
||||
jest-diff@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
diff "^3.2.0"
|
||||
jest-matcher-utils "^20.0.1"
|
||||
pretty-format "^20.0.1"
|
||||
jest-matcher-utils "^20.0.3"
|
||||
pretty-format "^20.0.3"
|
||||
|
||||
jest-docblock@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.1.tgz#055e0bbcb76798198479901f92d2733bf619f854"
|
||||
jest-docblock@^20.0.2, jest-docblock@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
|
||||
|
||||
jest-environment-jsdom@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.1.tgz#2d29f81368987d387c70ce4f500c6aa560f9b4f7"
|
||||
jest-environment-jsdom@^20.0.2, jest-environment-jsdom@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99"
|
||||
dependencies:
|
||||
jest-mock "^20.0.1"
|
||||
jest-util "^20.0.1"
|
||||
jest-mock "^20.0.3"
|
||||
jest-util "^20.0.3"
|
||||
jsdom "^9.12.0"
|
||||
|
||||
jest-environment-node@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.1.tgz#75ab5358072ee1efebc54f43474357d7b3d674c7"
|
||||
jest-environment-node@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403"
|
||||
dependencies:
|
||||
jest-mock "^20.0.1"
|
||||
jest-util "^20.0.1"
|
||||
jest-mock "^20.0.3"
|
||||
jest-util "^20.0.3"
|
||||
|
||||
jest-haste-map@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.1.tgz#e6ba4db99ab512e7c081a5b0a0af731d0e193d56"
|
||||
jest-haste-map@^20.0.2, jest-haste-map@^20.0.4:
|
||||
version "20.0.4"
|
||||
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.4.tgz#653eb55c889ce3c021f7b94693f20a4159badf03"
|
||||
dependencies:
|
||||
fb-watchman "^2.0.0"
|
||||
graceful-fs "^4.1.11"
|
||||
jest-docblock "^20.0.1"
|
||||
jest-docblock "^20.0.3"
|
||||
micromatch "^2.3.11"
|
||||
sane "~1.6.0"
|
||||
worker-farm "^1.3.1"
|
||||
|
||||
jest-jasmine2@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.1.tgz#675772b1fd32ad74e92e8ae8282f8ea71d1de168"
|
||||
jest-jasmine2@^20.0.2, jest-jasmine2@^20.0.4:
|
||||
version "20.0.4"
|
||||
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
graceful-fs "^4.1.11"
|
||||
jest-diff "^20.0.1"
|
||||
jest-matcher-utils "^20.0.1"
|
||||
jest-matchers "^20.0.1"
|
||||
jest-message-util "^20.0.1"
|
||||
jest-snapshot "^20.0.1"
|
||||
jest-diff "^20.0.3"
|
||||
jest-matcher-utils "^20.0.3"
|
||||
jest-matchers "^20.0.3"
|
||||
jest-message-util "^20.0.3"
|
||||
jest-snapshot "^20.0.3"
|
||||
once "^1.4.0"
|
||||
p-map "^1.1.1"
|
||||
|
||||
jest-matcher-utils@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.1.tgz#31aef67f59535af3c2271a3a3685db604dbd1622"
|
||||
jest-matcher-utils@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
pretty-format "^20.0.1"
|
||||
pretty-format "^20.0.3"
|
||||
|
||||
jest-matchers@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.1.tgz#053b7654ce60129268f39992886e987a5201bb90"
|
||||
jest-matchers@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60"
|
||||
dependencies:
|
||||
jest-diff "^20.0.1"
|
||||
jest-matcher-utils "^20.0.1"
|
||||
jest-message-util "^20.0.1"
|
||||
jest-regex-util "^20.0.1"
|
||||
jest-diff "^20.0.3"
|
||||
jest-matcher-utils "^20.0.3"
|
||||
jest-message-util "^20.0.3"
|
||||
jest-regex-util "^20.0.3"
|
||||
|
||||
jest-message-util@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.1.tgz#ac21cb055a6a5786b7f127ac7e705df5ffb1c335"
|
||||
jest-message-util@^20.0.2, jest-message-util@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
micromatch "^2.3.11"
|
||||
slash "^1.0.0"
|
||||
|
||||
jest-mock@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.1.tgz#f4cca2e87e441b66fabe4ead6a6d61773ec0773a"
|
||||
jest-mock@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59"
|
||||
|
||||
jest-regex-util@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.1.tgz#ecbcca8fbe4e217bca7f6f42a9b831d051224dc4"
|
||||
jest-regex-util@^20.0.2, jest-regex-util@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762"
|
||||
|
||||
jest-resolve-dependencies@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.1.tgz#38fc012191775b0b277fabebb37aa8282e26846f"
|
||||
jest-resolve-dependencies@^20.0.2:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a"
|
||||
dependencies:
|
||||
jest-regex-util "^20.0.1"
|
||||
jest-regex-util "^20.0.3"
|
||||
|
||||
jest-resolve@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.1.tgz#cace553663f25c703dc977a4ce176e29eda92772"
|
||||
jest-resolve@^20.0.4:
|
||||
version "20.0.4"
|
||||
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5"
|
||||
dependencies:
|
||||
browser-resolve "^1.11.2"
|
||||
is-builtin-module "^1.0.0"
|
||||
resolve "^1.3.2"
|
||||
|
||||
jest-runtime@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.1.tgz#384f9298b8e8a177870c6d9ad0023db10ddcaedc"
|
||||
jest-runtime@^20.0.2:
|
||||
version "20.0.4"
|
||||
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8"
|
||||
dependencies:
|
||||
babel-core "^6.0.0"
|
||||
babel-jest "^20.0.1"
|
||||
babel-jest "^20.0.3"
|
||||
babel-plugin-istanbul "^4.0.0"
|
||||
chalk "^1.1.3"
|
||||
convert-source-map "^1.4.0"
|
||||
graceful-fs "^4.1.11"
|
||||
jest-config "^20.0.1"
|
||||
jest-haste-map "^20.0.1"
|
||||
jest-regex-util "^20.0.1"
|
||||
jest-resolve "^20.0.1"
|
||||
jest-util "^20.0.1"
|
||||
jest-config "^20.0.4"
|
||||
jest-haste-map "^20.0.4"
|
||||
jest-regex-util "^20.0.3"
|
||||
jest-resolve "^20.0.4"
|
||||
jest-util "^20.0.3"
|
||||
json-stable-stringify "^1.0.1"
|
||||
micromatch "^2.3.11"
|
||||
strip-bom "3.0.0"
|
||||
yargs "^7.0.2"
|
||||
|
||||
jest-snapshot@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.1.tgz#3704c599705042f20ec7c95ba76a4524c744dfac"
|
||||
jest-snapshot@^20.0.2, jest-snapshot@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
jest-diff "^20.0.1"
|
||||
jest-matcher-utils "^20.0.1"
|
||||
jest-util "^20.0.1"
|
||||
jest-diff "^20.0.3"
|
||||
jest-matcher-utils "^20.0.3"
|
||||
jest-util "^20.0.3"
|
||||
natural-compare "^1.4.0"
|
||||
pretty-format "^20.0.1"
|
||||
pretty-format "^20.0.3"
|
||||
|
||||
jest-util@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.1.tgz#a3e7afb67110b2c3ac77b82e9a51ca57f4ff72a1"
|
||||
jest-util@^20.0.2, jest-util@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
graceful-fs "^4.1.11"
|
||||
jest-message-util "^20.0.1"
|
||||
jest-mock "^20.0.1"
|
||||
jest-validate "^20.0.1"
|
||||
jest-message-util "^20.0.3"
|
||||
jest-mock "^20.0.3"
|
||||
jest-validate "^20.0.3"
|
||||
leven "^2.1.0"
|
||||
mkdirp "^0.5.1"
|
||||
|
||||
jest-validate@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.1.tgz#a236c29e3c29e9b92a1e5da211a732f0238da928"
|
||||
jest-validate@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
jest-matcher-utils "^20.0.1"
|
||||
jest-matcher-utils "^20.0.3"
|
||||
leven "^2.1.0"
|
||||
pretty-format "^20.0.1"
|
||||
pretty-format "^20.0.3"
|
||||
|
||||
jodid25519@^1.0.0:
|
||||
version "1.0.2"
|
||||
|
@ -3307,8 +3331,8 @@ kew@^0.7.0:
|
|||
resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
|
||||
|
||||
kind-of@^3.0.2:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
|
||||
dependencies:
|
||||
is-buffer "^1.1.5"
|
||||
|
||||
|
@ -3344,15 +3368,17 @@ levn@^0.3.0, levn@~0.3.0:
|
|||
type-check "~0.3.2"
|
||||
|
||||
lint-staged@^3.4.0:
|
||||
version "3.4.1"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.4.1.tgz#96cd1cf7a1ac92d81662643c37d1cca28b91b046"
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.6.0.tgz#cda8f0bef16e7928cc14b735186ae12cd662599c"
|
||||
dependencies:
|
||||
app-root-path "^2.0.0"
|
||||
cosmiconfig "^1.1.0"
|
||||
execa "^0.6.0"
|
||||
listr "^0.12.0"
|
||||
lodash.chunk "^4.2.0"
|
||||
minimatch "^3.0.0"
|
||||
npm-which "^3.0.1"
|
||||
p-map "^1.1.1"
|
||||
staged-git-files "0.0.4"
|
||||
|
||||
listr-silent-renderer@^1.1.1:
|
||||
|
@ -3457,6 +3483,10 @@ lodash.bind@^4.1.4:
|
|||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
|
||||
|
||||
lodash.chunk@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
|
||||
|
||||
lodash.defaults@^4.0.1:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
|
||||
|
@ -3632,10 +3662,14 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
|
|||
dependencies:
|
||||
mime-db "~1.27.0"
|
||||
|
||||
mime@1.3.4, mime@^1.3.4:
|
||||
mime@1.3.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
|
||||
|
||||
mime@^1.3.4:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
|
||||
|
||||
min-document@^2.19.0:
|
||||
version "2.19.0"
|
||||
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
|
||||
|
@ -3689,13 +3723,9 @@ ms@0.7.2:
|
|||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
|
||||
|
||||
ms@0.7.3:
|
||||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
|
||||
|
||||
ms@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-1.0.0.tgz#59adcd22edc543f7b5381862d31387b1f4bc9473"
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
||||
mute-stream@0.0.5:
|
||||
version "0.0.5"
|
||||
|
@ -3782,8 +3812,8 @@ node-notifier@5.1.2, node-notifier@^5.0.2:
|
|||
which "^1.2.12"
|
||||
|
||||
node-pre-gyp@^0.6.29:
|
||||
version "0.6.34"
|
||||
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7"
|
||||
version "0.6.36"
|
||||
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
|
||||
dependencies:
|
||||
mkdirp "^0.5.1"
|
||||
nopt "^4.0.1"
|
||||
|
@ -3867,8 +3897,8 @@ number-is-nan@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
|
||||
"nwmatcher@>= 1.3.9 < 2.0.0":
|
||||
version "1.3.9"
|
||||
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.0.tgz#b4389362170e7ef9798c3c7716d80ebc0106fccf"
|
||||
|
||||
nyc@10.3.2:
|
||||
version "10.3.2"
|
||||
|
@ -3914,15 +3944,6 @@ object-keys@^1.0.8:
|
|||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
|
||||
|
||||
object.entries@1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
|
||||
dependencies:
|
||||
define-properties "^1.1.2"
|
||||
es-abstract "^1.6.1"
|
||||
function-bind "^1.1.0"
|
||||
has "^1.0.1"
|
||||
|
||||
object.omit@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
|
||||
|
@ -4179,9 +4200,9 @@ preserve@^0.2.0:
|
|||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
||||
|
||||
pretty-format@^20.0.1:
|
||||
version "20.0.1"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.1.tgz#ba95329771907c189643dd251e244061ff642350"
|
||||
pretty-format@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14"
|
||||
dependencies:
|
||||
ansi-regex "^2.1.1"
|
||||
ansi-styles "^3.0.0"
|
||||
|
@ -4309,15 +4330,15 @@ react-dom@15.5.3:
|
|||
object-assign "^4.1.0"
|
||||
prop-types "~15.5.0"
|
||||
|
||||
react-hot-loader@3.0.0-beta.6:
|
||||
version "3.0.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.6.tgz#463fac0bfc8b63a8385258af20c91636abce75f4"
|
||||
react-hot-loader@3.0.0-beta.7:
|
||||
version "3.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz#d5847b8165d731c4d5b30d86d5d4716227a0fa83"
|
||||
dependencies:
|
||||
babel-template "^6.7.0"
|
||||
global "^4.3.0"
|
||||
react-deep-force-update "^2.0.1"
|
||||
react-proxy "^3.0.0-alpha.0"
|
||||
redbox-react "^1.2.5"
|
||||
redbox-react "^1.3.6"
|
||||
source-map "^0.4.4"
|
||||
|
||||
react-proxy@^3.0.0-alpha.0:
|
||||
|
@ -4400,13 +4421,14 @@ recursive-copy@^2.0.6:
|
|||
promise "^7.0.1"
|
||||
slash "^1.0.0"
|
||||
|
||||
redbox-react@^1.2.5:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.3.6.tgz#70314c57c066257eb70b0a24dc794b5cef4f1c4e"
|
||||
redbox-react@^1.3.6:
|
||||
version "1.3.7"
|
||||
resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.3.7.tgz#bb3a1a73c07ebe1d67b55860908ee2bc35386968"
|
||||
dependencies:
|
||||
error-stack-parser "^1.3.6"
|
||||
object-assign "^4.0.1"
|
||||
prop-types "^15.5.4"
|
||||
sourcemapped-stacktrace "^1.1.6"
|
||||
|
||||
regenerate@^1.2.1:
|
||||
version "1.3.2"
|
||||
|
@ -4654,24 +4676,6 @@ send@0.15.1:
|
|||
range-parser "~1.2.0"
|
||||
statuses "~1.3.1"
|
||||
|
||||
send@0.15.2:
|
||||
version "0.15.2"
|
||||
resolved "https://registry.yarnpkg.com/send/-/send-0.15.2.tgz#f91fab4403bcf87e716f70ceb5db2f578bdc17d6"
|
||||
dependencies:
|
||||
debug "2.6.4"
|
||||
depd "~1.1.0"
|
||||
destroy "~1.0.4"
|
||||
encodeurl "~1.0.1"
|
||||
escape-html "~1.0.3"
|
||||
etag "~1.8.0"
|
||||
fresh "0.5.0"
|
||||
http-errors "~1.6.1"
|
||||
mime "1.3.4"
|
||||
ms "1.0.0"
|
||||
on-finished "~2.3.0"
|
||||
range-parser "~1.2.0"
|
||||
statuses "~1.3.1"
|
||||
|
||||
serve-static@1.12.1:
|
||||
version "1.12.1"
|
||||
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.1.tgz#7443a965e3ced647aceb5639fa06bf4d1bbe0039"
|
||||
|
@ -4777,6 +4781,12 @@ source-map@~0.2.0:
|
|||
dependencies:
|
||||
amdefine ">=0.0.4"
|
||||
|
||||
sourcemapped-stacktrace@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.6.tgz#112d8749c942c3cd3b630dfac9514577b86a3a51"
|
||||
dependencies:
|
||||
source-map "0.5.6"
|
||||
|
||||
spawn-wrap@1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.2.4.tgz#920eb211a769c093eebfbd5b0e7a5d2e68ab2e40"
|
||||
|
@ -4803,8 +4813,8 @@ spdx-license-ids@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
|
||||
|
||||
sprintf-js@^1.0.3:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.0.tgz#cffcaf702daf65ea39bb4e0fa2b299cec1a1be46"
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"
|
||||
|
||||
sprintf-js@~1.0.2:
|
||||
version "1.0.3"
|
||||
|
@ -4914,10 +4924,10 @@ string_decoder@^0.10.25:
|
|||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
||||
|
||||
string_decoder@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667"
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98"
|
||||
dependencies:
|
||||
buffer-shims "~1.0.0"
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
stringstream@~0.0.4:
|
||||
version "0.0.5"
|
||||
|
@ -4947,18 +4957,24 @@ 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-jsx@0.5.7:
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-0.5.7.tgz#2cb02263ffa719b1435a864fdd6c62802ae86669"
|
||||
styled-jsx@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-1.0.2.tgz#84b4855e19ac49238e0b6bea3d3af3aaf296cb22"
|
||||
dependencies:
|
||||
babel-plugin-syntax-jsx "6.18.0"
|
||||
babel-traverse "6.21.0"
|
||||
babel-types "6.23.0"
|
||||
babylon "6.14.1"
|
||||
convert-source-map "1.3.0"
|
||||
css-tree "1.0.0-alpha17"
|
||||
escape-string-regexp "1.0.5"
|
||||
object.entries "1.0.4"
|
||||
source-map "0.5.6"
|
||||
string-hash "1.1.1"
|
||||
stylis "3.0.10"
|
||||
|
||||
stylis@3.0.10:
|
||||
version "3.0.10"
|
||||
resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.0.10.tgz#9f561e8a9799c2c317c596583bcaaa52a0d27663"
|
||||
|
||||
supports-color@^2.0.0:
|
||||
version "2.0.0"
|
||||
|
@ -5024,8 +5040,8 @@ tar@^2.2.1:
|
|||
inherits "2"
|
||||
|
||||
test-exclude@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91"
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26"
|
||||
dependencies:
|
||||
arrify "^1.0.1"
|
||||
micromatch "^2.3.11"
|
||||
|
@ -5044,8 +5060,8 @@ thenify-all@^1.0.0:
|
|||
thenify ">= 3.1.0 < 4"
|
||||
|
||||
"thenify@>= 3.1.0 < 4":
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.2.1.tgz#251fd1c80aff6e5cf57cb179ab1fcb724269bd11"
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
|
||||
dependencies:
|
||||
any-promise "^1.0.0"
|
||||
|
||||
|
@ -5139,8 +5155,8 @@ ua-parser-js@^0.7.9:
|
|||
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:
|
||||
version "2.8.24"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.24.tgz#48eb5175cf32e22ec11a47e638d7c8b4e0faf2dd"
|
||||
version "2.8.27"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.27.tgz#47787f912b0f242e5b984343be8e35e95f694c9c"
|
||||
dependencies:
|
||||
source-map "~0.5.1"
|
||||
yargs "~3.10.0"
|
||||
|
|
Loading…
Reference in a new issue