forked from acouzens/open5gs
We select styled-components for frontend
Login view is added
This commit is contained in:
parent
4c62e54f8f
commit
bd3ebc5c6f
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"presets": [
|
||||
"next/babel"
|
||||
],
|
||||
"plugins": [
|
||||
["styled-components", { "ssr": true, "displayName": true, "preprocess": false } ]
|
||||
]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
export default ({ children }) => (
|
||||
export default ({children}) => (
|
||||
<main>
|
||||
{ children }
|
||||
{children}
|
||||
</main>
|
||||
)
|
|
@ -0,0 +1,29 @@
|
|||
import styled from 'styled-components';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
const Black = styled.div`
|
||||
// Layout
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
|
||||
// Layer
|
||||
z-index: 5;
|
||||
|
||||
// Color
|
||||
background: rgba(0,0,0,0.3);
|
||||
`;
|
||||
|
||||
const Dimmed = ({visible}) => (
|
||||
<div>
|
||||
{visible && <Black/>}
|
||||
</div>
|
||||
);
|
||||
|
||||
Dimmed.propTypes = {
|
||||
visible: PropTypes.bool
|
||||
};
|
||||
|
||||
export default Dimmed;
|
|
@ -1,12 +1,13 @@
|
|||
import Link from 'next/link';
|
||||
import Head from 'next/head';
|
||||
|
||||
export default ({ title }) => (
|
||||
export default ({title}) => (
|
||||
<div>
|
||||
<Head>
|
||||
<title>{ title}</title>
|
||||
<title>{title}</title>
|
||||
<meta charSet='utf-8' />
|
||||
<meta name='viewport' content='initial-scale=1.0, width=device-witdth' />
|
||||
<link rel='stylesheet' type='text/css' href='/static/index.css' />
|
||||
</Head>
|
||||
</div>
|
||||
)
|
||||
)
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
import styled from 'styled-components';
|
||||
import oc from 'open-color';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
const Input = styled.input`
|
||||
// Layout
|
||||
width: 100%;
|
||||
padding: 0.5rem;
|
||||
|
||||
// Color
|
||||
border: 1px solid ${oc.gray[2]};
|
||||
|
||||
// Misc
|
||||
font-size: 1.5rem;
|
||||
line-height: 2rem;
|
||||
transition: all .25s;
|
||||
|
||||
// During keyboard input
|
||||
&:focus {
|
||||
outline: none;
|
||||
border: 1px solid ${oc.pink[3]};
|
||||
color: ${oc.pink[6]};
|
||||
}
|
||||
|
||||
// Interval Between Component
|
||||
& + & {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
`;
|
||||
|
||||
Input.propTypes = {
|
||||
name: PropTypes.string,
|
||||
value: PropTypes.string,
|
||||
placeholder: PropTypes.string,
|
||||
onChange: PropTypes.func
|
||||
};
|
||||
|
||||
export default Input
|
|
@ -1,10 +1,202 @@
|
|||
import Link from 'next/link';
|
||||
import Session from '../lib/session';
|
||||
|
||||
export default () => (
|
||||
<div>
|
||||
<h1>Unauthorized</h1>
|
||||
<p>You are not authorized to view this page.</p>
|
||||
<p><Link prefetch href='/login'><a>Please log in</a></Link></p>
|
||||
<p><Link prefetch href='/'><a>Back to homepage</a></Link></p>
|
||||
</div>
|
||||
)
|
||||
import { Component } from 'react';
|
||||
import Link from 'next/link';
|
||||
import Router from 'next/router';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import styled from 'styled-components';
|
||||
import oc from 'open-color';
|
||||
import { media, transitions} from '../lib/style-utils';
|
||||
|
||||
import Header from './Header';
|
||||
import Thumbnail from './Thumbnail';
|
||||
import Input from './Input';
|
||||
import Dimmed from './Dimmed';
|
||||
|
||||
const Wrapper = styled.div`
|
||||
// Layout
|
||||
position: fixed;
|
||||
|
||||
// Adjust screen
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
// Layer
|
||||
z-index: 10;
|
||||
|
||||
// Width
|
||||
width: ${ props => props.width };
|
||||
|
||||
${media.mobile`
|
||||
width: calc(100% - 2rem);
|
||||
`}
|
||||
`;
|
||||
|
||||
Wrapper.propTypes = {
|
||||
width: PropTypes.string
|
||||
}
|
||||
|
||||
const ThumbnailWrapper = styled.div`
|
||||
// Layout
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
// Color
|
||||
background: white;
|
||||
`;
|
||||
|
||||
const Form = styled.div`
|
||||
// Layout
|
||||
padding: 1rem;
|
||||
|
||||
// Color
|
||||
background: ${oc.gray[0]};
|
||||
`;
|
||||
|
||||
const ButtonWrapper = styled.div`
|
||||
// Layout
|
||||
display: flex;
|
||||
`;
|
||||
|
||||
const Button = styled.div`
|
||||
// Layout
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
flex: 1;
|
||||
display: inline-block;
|
||||
|
||||
// Misc
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
font-size: 1.2rem;
|
||||
transition: all .3s;
|
||||
|
||||
// Color
|
||||
color: white;
|
||||
background: ${props => oc[props.color][7]};
|
||||
|
||||
// Mouse Over
|
||||
&:hover {
|
||||
background: ${props => oc[props.color][6]};
|
||||
}
|
||||
|
||||
// Clicked
|
||||
&:active {
|
||||
background: ${props => oc[props.color][8]};
|
||||
}
|
||||
`;
|
||||
|
||||
Button.propTypes = {
|
||||
color: PropTypes.string
|
||||
};
|
||||
|
||||
class Login extends Component {
|
||||
state = {
|
||||
errors: {},
|
||||
account: {
|
||||
username: '',
|
||||
password: ''
|
||||
},
|
||||
session: {}
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
width: PropTypes.string
|
||||
}
|
||||
|
||||
static defaultProps = {
|
||||
width: '400px'
|
||||
}
|
||||
|
||||
static async getInitialProps({req}) {
|
||||
const session = new Session({req})
|
||||
return {session: await session.getSession(true)}
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
const session = new Session()
|
||||
this.setState({
|
||||
session: await session.getSession(true)
|
||||
});
|
||||
}
|
||||
|
||||
onAction = (e) => {
|
||||
const {
|
||||
username,
|
||||
password
|
||||
} = this.state.account;
|
||||
|
||||
const session = new Session()
|
||||
session.signin(username, password)
|
||||
.then(() => {
|
||||
Router.push('/');
|
||||
})
|
||||
.catch(err => {
|
||||
// @FIXME Handle error
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
|
||||
handleChange = (e) => {
|
||||
this.setState({
|
||||
account: {
|
||||
...this.state.account,
|
||||
[e.target.name]: e.target.value
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
render() {
|
||||
const {
|
||||
handleChange,
|
||||
onAction
|
||||
} = this;
|
||||
|
||||
const {
|
||||
username,
|
||||
password
|
||||
} = this.state.account;
|
||||
|
||||
const {width} = this.props;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Header title='Login'>
|
||||
</Header>
|
||||
<Wrapper width={width}>
|
||||
<ThumbnailWrapper>
|
||||
<Thumbnail size='8rem' color={oc['blue'][6]} />
|
||||
</ThumbnailWrapper>
|
||||
<Form>
|
||||
<Input
|
||||
name="username"
|
||||
placeholder="Username"
|
||||
value={username}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
<Input
|
||||
name="password"
|
||||
placeholder="Password"
|
||||
value={password}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</Form>
|
||||
<ButtonWrapper>
|
||||
<Button color='teal'
|
||||
onClick={onAction}>
|
||||
Log In
|
||||
</Button>
|
||||
</ButtonWrapper>
|
||||
</Wrapper>
|
||||
<Dimmed visible={true} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Login;
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
import PropTypes from 'prop-types';
|
||||
|
||||
import styled from 'styled-components';
|
||||
import Person from 'react-icons/lib/md/person';
|
||||
import oc from 'open-color';
|
||||
|
||||
const Wrapper = styled.div`
|
||||
// Layout
|
||||
width: ${props => props.size};
|
||||
height: ${props => props.size};
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
// Misc
|
||||
border-radius: calc(${props => props.size} * 0.5 ); // to be circle, this value is more than 1/2
|
||||
font-size: calc(${props => props.size} * 0.75);
|
||||
|
||||
background: ${props => props.color};
|
||||
color: white;
|
||||
|
||||
`;
|
||||
|
||||
Wrapper.propTypes = {
|
||||
size: PropTypes.string,
|
||||
color: PropTypes.string
|
||||
};
|
||||
|
||||
const Thumbnail = ({size, color}) => (
|
||||
<Wrapper size={size} color={color}>
|
||||
<Person />
|
||||
</Wrapper>
|
||||
)
|
||||
|
||||
Thumbnail.propTypes = {
|
||||
size: PropTypes.string,
|
||||
color: PropTypes.string
|
||||
};
|
||||
|
||||
Thumbnail.defaultProps = {
|
||||
size: '4rem',
|
||||
color: '#000'
|
||||
};
|
||||
|
||||
export default Thumbnail;
|
|
@ -0,0 +1,55 @@
|
|||
import {css, keyframes} from 'styled-components';
|
||||
|
||||
export const media = {
|
||||
mobile: (...args) => css`
|
||||
@media (max-width: 768px) {
|
||||
${css(...args)}
|
||||
}
|
||||
`
|
||||
};
|
||||
|
||||
export const transitions = {
|
||||
slideDown: keyframes`
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(-100vh);
|
||||
}
|
||||
75% {
|
||||
opacity: 1;
|
||||
transform: translateY(50px);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(0px);
|
||||
}
|
||||
`,
|
||||
slideUp: keyframes`
|
||||
0% {
|
||||
transform: translateY(0px);
|
||||
opacity: 1;
|
||||
}
|
||||
25% {
|
||||
opacity: 1;
|
||||
transform: translateY(50px);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translateY(-100vh);
|
||||
}
|
||||
`,
|
||||
stretchOut: keyframes`
|
||||
0% {
|
||||
transform: scale(0,0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1,1);
|
||||
}
|
||||
`,
|
||||
shrinkIn: keyframes`
|
||||
0% {
|
||||
transform: scale(1, 1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0,0);
|
||||
}
|
||||
`
|
||||
}
|
|
@ -3,11 +3,11 @@ import Session from './session';
|
|||
|
||||
export default (Component) => class extends React.Component {
|
||||
static async getInitialProps (ctx) {
|
||||
const session = new Session({ req: ctx.req });
|
||||
const session = new Session({req: ctx.req});
|
||||
|
||||
let initialProps = {};
|
||||
if (Component.getInitialProps) {
|
||||
initialProps = Component.getInitialProps({ ...ctx, session });
|
||||
initialProps = Component.getInitialProps({...ctx, session});
|
||||
}
|
||||
|
||||
const sessionData = await session.getSession();
|
||||
|
@ -16,10 +16,10 @@ export default (Component) => class extends React.Component {
|
|||
isLoggedIn = true;
|
||||
}
|
||||
|
||||
return { session: sessionData, isLoggedIn, ...initialProps };
|
||||
return {session: sessionData, isLoggedIn, ...initialProps};
|
||||
}
|
||||
|
||||
render () {
|
||||
return <Component { ...this.props } />
|
||||
return <Component {...this.props} />
|
||||
}
|
||||
}
|
|
@ -7,19 +7,24 @@
|
|||
"author": "NextEPC Group",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"babel-plugin-styled-components": "^1.1.4",
|
||||
"babel-preset-stage-0": "^6.24.1",
|
||||
"body-parser": "^1.17.1",
|
||||
"connect-session-sequelize": "^4.1.0",
|
||||
"express": "^4.15.2",
|
||||
"express-session": "^1.15.2",
|
||||
"lusca": "^1.4.1",
|
||||
"next": "^2.3.1",
|
||||
"open-color": "^1.5.1",
|
||||
"passport": "^0.3.2",
|
||||
"passport-local": "^1.0.0",
|
||||
"prop-types": "^15.5.10",
|
||||
"react": "^15.5.4",
|
||||
"react-dom": "^15.5.4",
|
||||
"react-icons": "^2.2.5",
|
||||
"sequelize": "^3.30.4",
|
||||
"sqlite3": "^3.1.8"
|
||||
"sqlite3": "^3.1.8",
|
||||
"styled-components": "2.0.0-19"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "node server/index.js",
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
import Document, { Head, Main, NextScript } from 'next/document'
|
||||
import { ServerStyleSheet } from 'styled-components'
|
||||
|
||||
export default class MyDocument extends Document {
|
||||
render () {
|
||||
const sheet = new ServerStyleSheet()
|
||||
const main = sheet.collectStyles(<Main />)
|
||||
const styleTags = sheet.getStyleElement()
|
||||
return (
|
||||
<html>
|
||||
<Head>
|
||||
<title>My page</title>
|
||||
{styleTags}
|
||||
</Head>
|
||||
<body>
|
||||
<div className='root'>
|
||||
{main}
|
||||
</div>
|
||||
<NextScript />
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
import PropTypes from 'prop-types';
|
||||
|
||||
import Package from '../package';
|
||||
import withSession from '../lib/with-session';
|
||||
|
||||
|
@ -8,18 +10,18 @@ import LogoutButton from '../components/logout-button';
|
|||
|
||||
const Restricted = (Component) => {
|
||||
const checkAuth = (props) => {
|
||||
return props.isLoggedIn ? <Component {...props} /> : <Login />
|
||||
return props.isLoggedIn ? <Component {...props} /> : <Login/>
|
||||
}
|
||||
|
||||
return withSession(checkAuth);
|
||||
}
|
||||
|
||||
export default Restricted(({ session }) => {
|
||||
const Index = Restricted(({session}) => {
|
||||
const title = 'NextEPC ' + Package.version;
|
||||
|
||||
return (
|
||||
<App>
|
||||
<Header title={ title }>
|
||||
<Header title={title}>
|
||||
</Header>
|
||||
<div>
|
||||
<p>Welcome back {session.user.username}</p>
|
||||
|
@ -29,26 +31,8 @@ export default Restricted(({ session }) => {
|
|||
)
|
||||
})
|
||||
|
||||
Index.propTypes = {
|
||||
session: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
/**
|
||||
* The index page uses a layout page that pulls in header and footer components
|
||||
import Link from 'next/link'
|
||||
import React from 'react'
|
||||
import Page from '../components/page'
|
||||
import Layout from '../components/layout'
|
||||
|
||||
export default class extends Page {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Layout session={this.props.session}>
|
||||
<h2>Under construction</h2>
|
||||
<ul>
|
||||
<li><Link prefetch href="/login"><a>Login</a></Link> - prefetch</li>
|
||||
<li><Link prefetch href="/about"><a>About</a></Link> - About</li>
|
||||
</ul>
|
||||
</Layout>
|
||||
)
|
||||
}
|
||||
}
|
||||
*/
|
||||
export default Index;
|
|
@ -1,108 +0,0 @@
|
|||
import React from 'react'
|
||||
import Router from 'next/router'
|
||||
import Session from '../lib/session'
|
||||
|
||||
export default class extends React.Component {
|
||||
|
||||
static async getInitialProps({req}) {
|
||||
// On the sign in page we always force get the latest session data from the
|
||||
// server by passing 'true' to getSession. This page is the destination
|
||||
// page after logging or linking/unlinking accounts so avoids any weird
|
||||
// edge cases.
|
||||
const session = new Session({req})
|
||||
return {session: await session.getSession(true)}
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
// Get latest session data after rendering on client
|
||||
// Any page that is specified as the oauth callback should do this
|
||||
const session = new Session()
|
||||
this.state = {
|
||||
username: this.state.username,
|
||||
password: this.state.password,
|
||||
session: await session.getSession(true)
|
||||
}
|
||||
}
|
||||
|
||||
constructor(props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
username: '',
|
||||
password: '',
|
||||
session: this.props.session
|
||||
}
|
||||
this.handleSubmit = this.handleSubmit.bind(this)
|
||||
this.handleUsernameChange = this.handleUsernameChange.bind(this)
|
||||
this.handlePasswordChange = this.handlePasswordChange.bind(this)
|
||||
}
|
||||
|
||||
handleUsernameChange(event) {
|
||||
this.setState({
|
||||
username: event.target.value.trim(),
|
||||
password: this.state.password,
|
||||
session: this.state.session
|
||||
})
|
||||
}
|
||||
|
||||
handlePasswordChange(event) {
|
||||
this.setState({
|
||||
username: this.state.username,
|
||||
password: event.target.value.trim(),
|
||||
session: this.state.session
|
||||
})
|
||||
}
|
||||
|
||||
async handleSubmit(event) {
|
||||
event.preventDefault()
|
||||
|
||||
const session = new Session()
|
||||
session.signin(this.state.username, this.state.password)
|
||||
.then(() => {
|
||||
this.props.url.push('/');
|
||||
})
|
||||
.catch(err => {
|
||||
// @FIXME Handle error
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
let signinForm = <div/>
|
||||
if (this.state.session.user) {
|
||||
signinForm = (
|
||||
<div>
|
||||
<h3>You are signed in</h3>
|
||||
<p>Name: <strong>{this.state.session.user.name}</strong></p>
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
signinForm = (
|
||||
<div>
|
||||
<form id="signin" method="post" action="/api/auth/login" onSubmit={this.handleSubmit}>
|
||||
<input name="_csrf" type="hidden" value={this.state.session.csrfToken}/>
|
||||
<h3>Sign in with email</h3>
|
||||
<p>
|
||||
<label htmlFor="username">Username</label><br/>
|
||||
<input name="username" type="text" placeholder="j.smith@example.com" id="username" value={this.state.username} onChange={this.handleUsernameChange}/>
|
||||
</p>
|
||||
<p>
|
||||
<label htmlFor="password">Password</label><br/>
|
||||
<input name="password" type="text" id="password" value={this.state.password} onChange={this.handlePasswordChange}/>
|
||||
</p>
|
||||
<p>
|
||||
<button id="submitButton" type="submit">Sign in</button>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Authentication</h2>
|
||||
{signinForm}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #f1f3f5;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
}
|
242
webui/yarn.lock
242
webui/yarn.lock
|
@ -241,6 +241,14 @@ babel-generator@6.24.1, babel-generator@^6.24.0, babel-generator@^6.24.1:
|
|||
source-map "^0.5.0"
|
||||
trim-right "^1.0.1"
|
||||
|
||||
babel-helper-bindify-decorators@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330"
|
||||
dependencies:
|
||||
babel-runtime "^6.22.0"
|
||||
babel-traverse "^6.24.1"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
|
||||
|
@ -283,6 +291,15 @@ babel-helper-explode-assignable-expression@^6.24.1:
|
|||
babel-traverse "^6.24.1"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-helper-explode-class@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb"
|
||||
dependencies:
|
||||
babel-helper-bindify-decorators "^6.24.1"
|
||||
babel-runtime "^6.22.0"
|
||||
babel-traverse "^6.24.1"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-helper-function-name@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
|
||||
|
@ -382,22 +399,56 @@ babel-plugin-react-require@3.0.0:
|
|||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.0.0.tgz#2e4e7b4496b93a654a1c80042276de4e4eeb20e3"
|
||||
|
||||
babel-plugin-styled-components@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.1.4.tgz#b0e6d5bb01059bc7ab9118d3d686f6472ee8e91f"
|
||||
dependencies:
|
||||
stylis "2.0.0"
|
||||
|
||||
babel-plugin-syntax-async-functions@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
|
||||
|
||||
babel-plugin-syntax-async-generators@^6.5.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
|
||||
|
||||
babel-plugin-syntax-class-constructor-call@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
|
||||
|
||||
babel-plugin-syntax-class-properties@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
|
||||
|
||||
babel-plugin-syntax-decorators@^6.13.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
|
||||
|
||||
babel-plugin-syntax-do-expressions@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d"
|
||||
|
||||
babel-plugin-syntax-dynamic-import@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
|
||||
|
||||
babel-plugin-syntax-exponentiation-operator@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
|
||||
|
||||
babel-plugin-syntax-export-extensions@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
|
||||
|
||||
babel-plugin-syntax-flow@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
|
||||
|
||||
babel-plugin-syntax-function-bind@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
|
||||
|
||||
babel-plugin-syntax-jsx@6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
|
||||
|
@ -410,7 +461,15 @@ babel-plugin-syntax-trailing-function-commas@^6.22.0:
|
|||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
|
||||
|
||||
babel-plugin-transform-async-to-generator@^6.22.0:
|
||||
babel-plugin-transform-async-generator-functions@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
|
||||
dependencies:
|
||||
babel-helper-remap-async-to-generator "^6.24.1"
|
||||
babel-plugin-syntax-async-generators "^6.5.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
|
||||
dependencies:
|
||||
|
@ -418,7 +477,15 @@ babel-plugin-transform-async-to-generator@^6.22.0:
|
|||
babel-plugin-syntax-async-functions "^6.8.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-class-properties@6.24.1:
|
||||
babel-plugin-transform-class-constructor-call@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9"
|
||||
dependencies:
|
||||
babel-plugin-syntax-class-constructor-call "^6.18.0"
|
||||
babel-runtime "^6.22.0"
|
||||
babel-template "^6.24.1"
|
||||
|
||||
babel-plugin-transform-class-properties@6.24.1, babel-plugin-transform-class-properties@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
|
||||
dependencies:
|
||||
|
@ -427,6 +494,23 @@ babel-plugin-transform-class-properties@6.24.1:
|
|||
babel-runtime "^6.22.0"
|
||||
babel-template "^6.24.1"
|
||||
|
||||
babel-plugin-transform-decorators@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d"
|
||||
dependencies:
|
||||
babel-helper-explode-class "^6.24.1"
|
||||
babel-plugin-syntax-decorators "^6.13.0"
|
||||
babel-runtime "^6.22.0"
|
||||
babel-template "^6.24.1"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-plugin-transform-do-expressions@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb"
|
||||
dependencies:
|
||||
babel-plugin-syntax-do-expressions "^6.8.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-es2015-arrow-functions@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
|
||||
|
@ -595,7 +679,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0:
|
|||
babel-runtime "^6.22.0"
|
||||
regexpu-core "^2.0.0"
|
||||
|
||||
babel-plugin-transform-exponentiation-operator@^6.22.0:
|
||||
babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
|
||||
dependencies:
|
||||
|
@ -603,6 +687,13 @@ babel-plugin-transform-exponentiation-operator@^6.22.0:
|
|||
babel-plugin-syntax-exponentiation-operator "^6.8.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-export-extensions@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653"
|
||||
dependencies:
|
||||
babel-plugin-syntax-export-extensions "^6.8.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-flow-strip-types@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
|
||||
|
@ -610,7 +701,14 @@ babel-plugin-transform-flow-strip-types@^6.22.0:
|
|||
babel-plugin-syntax-flow "^6.18.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-object-rest-spread@6.22.0:
|
||||
babel-plugin-transform-function-bind@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97"
|
||||
dependencies:
|
||||
babel-plugin-syntax-function-bind "^6.8.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-object-rest-spread@6.22.0, babel-plugin-transform-object-rest-spread@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc"
|
||||
dependencies:
|
||||
|
@ -721,6 +819,41 @@ babel-preset-react@6.24.1:
|
|||
babel-plugin-transform-react-jsx-source "^6.22.0"
|
||||
babel-preset-flow "^6.23.0"
|
||||
|
||||
babel-preset-stage-0@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a"
|
||||
dependencies:
|
||||
babel-plugin-transform-do-expressions "^6.22.0"
|
||||
babel-plugin-transform-function-bind "^6.22.0"
|
||||
babel-preset-stage-1 "^6.24.1"
|
||||
|
||||
babel-preset-stage-1@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
|
||||
dependencies:
|
||||
babel-plugin-transform-class-constructor-call "^6.24.1"
|
||||
babel-plugin-transform-export-extensions "^6.22.0"
|
||||
babel-preset-stage-2 "^6.24.1"
|
||||
|
||||
babel-preset-stage-2@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1"
|
||||
dependencies:
|
||||
babel-plugin-syntax-dynamic-import "^6.18.0"
|
||||
babel-plugin-transform-class-properties "^6.24.1"
|
||||
babel-plugin-transform-decorators "^6.24.1"
|
||||
babel-preset-stage-3 "^6.24.1"
|
||||
|
||||
babel-preset-stage-3@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395"
|
||||
dependencies:
|
||||
babel-plugin-syntax-trailing-function-commas "^6.22.0"
|
||||
babel-plugin-transform-async-generator-functions "^6.24.1"
|
||||
babel-plugin-transform-async-to-generator "^6.24.1"
|
||||
babel-plugin-transform-exponentiation-operator "^6.24.1"
|
||||
babel-plugin-transform-object-rest-spread "^6.22.0"
|
||||
|
||||
babel-register@^6.24.0, babel-register@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
|
||||
|
@ -852,6 +985,10 @@ boom@2.x.x:
|
|||
dependencies:
|
||||
hoek "2.x.x"
|
||||
|
||||
bowser@^1.0.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.0.tgz#169de4018711f994242bff9a8009e77a1f35e003"
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.7"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
|
||||
|
@ -945,6 +1082,13 @@ buffer@^4.3.0:
|
|||
ieee754 "^1.1.4"
|
||||
isarray "^1.0.0"
|
||||
|
||||
buffer@^5.0.3:
|
||||
version "5.0.6"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588"
|
||||
dependencies:
|
||||
base64-js "^1.0.2"
|
||||
ieee754 "^1.1.4"
|
||||
|
||||
builtin-modules@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||
|
@ -1177,6 +1321,18 @@ crypto-browserify@^3.11.0:
|
|||
public-encrypt "^4.0.0"
|
||||
randombytes "^2.0.0"
|
||||
|
||||
css-color-keywords@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
|
||||
|
||||
css-to-react-native@^2.0.3:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.4.tgz#cf4cc407558b3474d4ba8be1a2cd3b6ce713101b"
|
||||
dependencies:
|
||||
css-color-keywords "^1.0.0"
|
||||
fbjs "^0.8.5"
|
||||
postcss-value-parser "^3.3.0"
|
||||
|
||||
dashdash@^1.12.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||
|
@ -1474,7 +1630,7 @@ extsprintf@1.0.2:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
|
||||
|
||||
fbjs@^0.8.9:
|
||||
fbjs@^0.8.5, fbjs@^0.8.9:
|
||||
version "0.8.12"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04"
|
||||
dependencies:
|
||||
|
@ -1773,6 +1929,10 @@ hoek@2.x.x:
|
|||
version "2.16.3"
|
||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
||||
|
||||
hoist-non-react-statics@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
|
||||
|
||||
home-or-tmp@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
||||
|
@ -1824,6 +1984,10 @@ https-browserify@0.0.1:
|
|||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
|
||||
|
||||
hyphenate-style-name@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b"
|
||||
|
||||
iconv-lite@0.4.15, iconv-lite@~0.4.13:
|
||||
version "0.4.15"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
|
||||
|
@ -1859,6 +2023,13 @@ ini@~1.3.0:
|
|||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
|
||||
|
||||
inline-style-prefixer@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7"
|
||||
dependencies:
|
||||
bowser "^1.0.0"
|
||||
hyphenate-style-name "^1.0.1"
|
||||
|
||||
interpret@^1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
|
||||
|
@ -1935,6 +2106,10 @@ is-fullwidth-code-point@^1.0.0:
|
|||
dependencies:
|
||||
number-is-nan "^1.0.0"
|
||||
|
||||
is-function@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
|
||||
|
||||
is-glob@^2.0.0, is-glob@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
|
||||
|
@ -1963,6 +2138,12 @@ is-path-inside@^1.0.0:
|
|||
dependencies:
|
||||
path-is-inside "^1.0.1"
|
||||
|
||||
is-plain-object@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f"
|
||||
dependencies:
|
||||
isobject "^1.0.0"
|
||||
|
||||
is-posix-bracket@^0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
|
||||
|
@ -2013,6 +2194,10 @@ isexe@^2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
|
||||
isobject@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a"
|
||||
|
||||
isobject@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
|
||||
|
@ -2518,6 +2703,10 @@ once@^1.3.0, once@^1.3.3:
|
|||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
open-color@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/open-color/-/open-color-1.5.1.tgz#f9ffb29add7e62f75577545fa8b38d265f347049"
|
||||
|
||||
os-browserify@^0.2.0:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f"
|
||||
|
@ -2698,6 +2887,10 @@ pkg-up@2.0.0:
|
|||
dependencies:
|
||||
find-up "^2.1.0"
|
||||
|
||||
postcss-value-parser@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
|
||||
|
||||
preserve@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
||||
|
@ -2730,6 +2923,12 @@ prop-types@15.5.7:
|
|||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
|
||||
prop-types@15.5.8:
|
||||
version "15.5.8"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394"
|
||||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
|
||||
prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@~15.5.7:
|
||||
version "15.5.10"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
|
||||
|
@ -2842,6 +3041,18 @@ react-hot-loader@3.0.0-beta.6:
|
|||
redbox-react "^1.2.5"
|
||||
source-map "^0.4.4"
|
||||
|
||||
react-icon-base@2.0.7:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.yarnpkg.com/react-icon-base/-/react-icon-base-2.0.7.tgz#0bd18736bd6ce79ca6d69ce8387a07fb8d4ceffe"
|
||||
dependencies:
|
||||
prop-types "15.5.8"
|
||||
|
||||
react-icons@^2.2.5:
|
||||
version "2.2.5"
|
||||
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-2.2.5.tgz#f942501c21a4cc0456ce2bbee5032c93f6051dcf"
|
||||
dependencies:
|
||||
react-icon-base "2.0.7"
|
||||
|
||||
react-proxy@^3.0.0-alpha.0:
|
||||
version "3.0.0-alpha.1"
|
||||
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07"
|
||||
|
@ -3291,6 +3502,21 @@ strip-json-comments@~2.0.1:
|
|||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||
|
||||
styled-components@2.0.0-19:
|
||||
version "2.0.0-19"
|
||||
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-19.tgz#76f666dd40dd7c4194b76e176fd916b9aac96c94"
|
||||
dependencies:
|
||||
buffer "^5.0.3"
|
||||
css-to-react-native "^2.0.3"
|
||||
fbjs "^0.8.9"
|
||||
hoist-non-react-statics "^1.2.0"
|
||||
inline-style-prefixer "^2.0.5"
|
||||
is-function "^1.0.1"
|
||||
is-plain-object "^2.0.1"
|
||||
prop-types "^15.5.4"
|
||||
stylis "^2.0.0"
|
||||
supports-color "^3.2.3"
|
||||
|
||||
styled-jsx@0.5.7:
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-0.5.7.tgz#2cb02263ffa719b1435a864fdd6c62802ae86669"
|
||||
|
@ -3304,11 +3530,15 @@ styled-jsx@0.5.7:
|
|||
source-map "0.5.6"
|
||||
string-hash "1.1.1"
|
||||
|
||||
stylis@2.0.0, stylis@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.0.tgz#6785a6546bd73478799a67d49d67086953b50ad5"
|
||||
|
||||
supports-color@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||
|
||||
supports-color@^3.1.0:
|
||||
supports-color@^3.1.0, supports-color@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
|
||||
dependencies:
|
||||
|
|
Loading…
Reference in New Issue