├── app
├── components
│ ├── templates
│ │ └── index.js
│ ├── atoms
│ │ ├── Tag
│ │ │ ├── index.js
│ │ │ └── Tag.js
│ │ ├── Button
│ │ │ ├── index.js
│ │ │ └── Button.js
│ │ ├── Input
│ │ │ ├── index.js
│ │ │ └── Input.js
│ │ ├── Heading
│ │ │ ├── index.js
│ │ │ └── Heading.js
│ │ └── index.js
│ ├── pages
│ │ ├── Root
│ │ │ ├── index.js
│ │ │ └── Root.js
│ │ ├── About
│ │ │ ├── index.js
│ │ │ └── About.js
│ │ ├── Github
│ │ │ ├── index.js
│ │ │ └── Github.js
│ │ ├── NotFound
│ │ │ ├── index.js
│ │ │ └── NotFound.js
│ │ └── index.js
│ ├── molecules
│ │ ├── Row
│ │ │ ├── index.js
│ │ │ └── Row.js
│ │ ├── Column
│ │ │ ├── index.js
│ │ │ └── Column.js
│ │ ├── Layout
│ │ │ ├── index.js
│ │ │ └── Layout.js
│ │ ├── GithubRepo
│ │ │ ├── index.js
│ │ │ └── GithubRepo.js
│ │ └── index.js
│ ├── organisms
│ │ ├── Footer
│ │ │ ├── index.js
│ │ │ └── Footer.js
│ │ ├── Header
│ │ │ ├── index.js
│ │ │ └── Header.js
│ │ ├── Container
│ │ │ ├── index.js
│ │ │ └── Container.js
│ │ └── index.js
│ └── Application.js
├── store
│ ├── home
│ │ ├── index.js
│ │ └── home.js
│ ├── github
│ │ ├── index.js
│ │ └── github.js
│ ├── reducers.js
│ └── utils.js
├── styles
│ ├── index.js
│ ├── base.js
│ ├── palette.js
│ ├── mixins.js
│ └── normalize.js
├── routes
│ └── index.js
├── data
│ └── github.js
└── utils
│ └── index.js
├── process.js
├── webpack
├── base.config.js
├── loaders.js
├── prod.config.js
└── dev.config.js
├── .babelrc
├── bin
└── start.js
├── ecosystem.config.js
├── src
├── createStore.js
├── client.js
└── server
│ ├── index.js
│ └── render.js
├── README.md
├── .eslintrc
├── .gitignore
├── package.json
└── npm-shrinkwrap.json
/app/components/templates/index.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/store/home/index.js:
--------------------------------------------------------------------------------
1 |
2 | export home from './home'
3 |
--------------------------------------------------------------------------------
/app/store/github/index.js:
--------------------------------------------------------------------------------
1 | export github from './github'
2 |
--------------------------------------------------------------------------------
/app/components/atoms/Tag/index.js:
--------------------------------------------------------------------------------
1 | export default from './Tag'
2 |
--------------------------------------------------------------------------------
/app/components/pages/Root/index.js:
--------------------------------------------------------------------------------
1 | export default from './Root'
2 |
--------------------------------------------------------------------------------
/app/components/atoms/Button/index.js:
--------------------------------------------------------------------------------
1 | export default from './Button'
2 |
--------------------------------------------------------------------------------
/app/components/atoms/Input/index.js:
--------------------------------------------------------------------------------
1 | export default from './Input'
2 |
--------------------------------------------------------------------------------
/app/components/molecules/Row/index.js:
--------------------------------------------------------------------------------
1 | export default from './Row'
2 |
--------------------------------------------------------------------------------
/app/components/pages/About/index.js:
--------------------------------------------------------------------------------
1 | export default from './About'
2 |
--------------------------------------------------------------------------------
/app/components/pages/Github/index.js:
--------------------------------------------------------------------------------
1 | export default from './Github'
2 |
--------------------------------------------------------------------------------
/app/components/atoms/Heading/index.js:
--------------------------------------------------------------------------------
1 | export { H1, H2 } from './Heading'
2 |
--------------------------------------------------------------------------------
/app/components/molecules/Column/index.js:
--------------------------------------------------------------------------------
1 | export default from './Column'
2 |
--------------------------------------------------------------------------------
/app/components/molecules/Layout/index.js:
--------------------------------------------------------------------------------
1 | export default from './Layout'
2 |
--------------------------------------------------------------------------------
/app/components/organisms/Footer/index.js:
--------------------------------------------------------------------------------
1 | export default from './Footer'
2 |
--------------------------------------------------------------------------------
/app/components/organisms/Header/index.js:
--------------------------------------------------------------------------------
1 | export default from './Header'
2 |
--------------------------------------------------------------------------------
/app/components/pages/NotFound/index.js:
--------------------------------------------------------------------------------
1 | export default from './NotFound'
2 |
--------------------------------------------------------------------------------
/app/components/molecules/GithubRepo/index.js:
--------------------------------------------------------------------------------
1 | export default from './GithubRepo'
2 |
--------------------------------------------------------------------------------
/app/components/organisms/Container/index.js:
--------------------------------------------------------------------------------
1 | export default from './Container'
2 |
--------------------------------------------------------------------------------
/app/components/organisms/index.js:
--------------------------------------------------------------------------------
1 | export Footer from './Footer'
2 | export Header from './Header'
3 | export Container from './Container'
4 |
--------------------------------------------------------------------------------
/app/components/atoms/index.js:
--------------------------------------------------------------------------------
1 | export Button from './Button'
2 | export Input from './Input'
3 | export { H1, H2 } from './Heading'
4 | export Tag from './Tag'
5 |
--------------------------------------------------------------------------------
/app/components/pages/index.js:
--------------------------------------------------------------------------------
1 | export NotFound from './NotFound'
2 | export About from './About'
3 | export Github from './Github'
4 | export Root from './Root'
5 |
--------------------------------------------------------------------------------
/app/components/molecules/index.js:
--------------------------------------------------------------------------------
1 | export Layout from './Layout'
2 | export Row from './Row'
3 | export Column from './Column'
4 |
5 | export GithubRepo from './GithubRepo'
6 |
--------------------------------------------------------------------------------
/app/store/reducers.js:
--------------------------------------------------------------------------------
1 | import { combineReducers } from 'redux'
2 | import * as github from './github'
3 |
4 | export default combineReducers({
5 | default: () => ({}),
6 | ...github,
7 | })
8 |
--------------------------------------------------------------------------------
/process.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | apps: [
3 | {
4 | name: 'rurarar',
5 | script: './bin/start.js',
6 | env: {
7 | NODE_ENV: 'production',
8 | },
9 | },
10 | ],
11 | }
12 |
--------------------------------------------------------------------------------
/webpack/base.config.js:
--------------------------------------------------------------------------------
1 | const { join, resolve } = require('path')
2 |
3 | const root = join(__dirname, '..')
4 |
5 | module.exports = {
6 | entry: '../src/client',
7 | outputPath: '/dist',
8 | context: resolve(root, 'app'),
9 | }
10 |
--------------------------------------------------------------------------------
/app/styles/index.js:
--------------------------------------------------------------------------------
1 | import { injectGlobal } from 'styled-components'
2 |
3 | import normalize from './normalize'
4 | import baseStyles from './base'
5 |
6 |
7 | export default () => injectGlobal`
8 | ${normalize}
9 | ${baseStyles}
10 | `
11 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "es2015",
4 | "es2016",
5 | "es2017",
6 | "stage-0",
7 | "react"
8 | ],
9 | "plugins": [
10 | "transform-react-inline-elements",
11 | "transform-react-constant-elements",
12 | "styled-components"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/app/components/pages/About/About.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import { Link } from 'react-router'
3 |
4 | import { Row } from 'components/molecules'
5 |
6 |
7 | const About = () => (
8 |
9 | Simple about file
10 | Go to home
11 |
12 | )
13 |
14 | export default About
15 |
--------------------------------------------------------------------------------
/app/styles/base.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 |
3 | import { getColor } from './palette'
4 |
5 |
6 | export default css`
7 | body {
8 | background-color: ${getColor('Light Blue')};
9 | margin: 0;
10 | padding: 0;
11 | }
12 | a {
13 | color: ${getColor('Light Blue', 700)};
14 | text-decoration: 'none';
15 | },
16 | a:hover {
17 | color: ${getColor('Light Blue', 900)};
18 | }
19 | `
20 |
--------------------------------------------------------------------------------
/app/components/pages/Root/Root.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import { Link } from 'react-router'
3 |
4 | import { Layout, Column } from 'components/molecules'
5 |
6 |
7 | const Index = () => (
8 |
9 |
10 | Index file
11 | To about
12 | Github API Usage
13 |
14 |
15 | )
16 |
17 | export default Index
18 |
--------------------------------------------------------------------------------
/app/components/Application.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 |
3 | import { Column } from 'components/molecules'
4 | import { Header, Footer, Container } from 'components/organisms'
5 |
6 |
7 | const Home = ({ children }) => (
8 |
9 |
10 |
11 | {children}
12 |
13 |
14 |
15 | )
16 |
17 | Home.propTypes = {
18 | children: PropTypes.node,
19 | sheet: PropTypes.object,
20 | }
21 |
22 | export default Home
23 |
--------------------------------------------------------------------------------
/app/components/pages/NotFound/NotFound.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import styled from 'styled-components'
3 |
4 | import { namesMapping } from 'styles/mixins'
5 |
6 |
7 | const NotFoundWrapper = styled.div`
8 | display: flex;
9 | padding: ${namesMapping.L}
10 | justifyContent: center;
11 | font-size: 32px;
12 | align-items: center;
13 | `
14 |
15 | const NotFound = () => (
16 |
17 | Page not found!
18 |
19 | )
20 |
21 | export default NotFound
22 |
--------------------------------------------------------------------------------
/app/components/molecules/Layout/Layout.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { PropTypes } from 'react'
3 |
4 | import Tag from 'components/atoms/Tag'
5 | import { Types, allMixins } from 'styles/mixins'
6 |
7 |
8 | const Layout = styled(Tag)`
9 | display: flex;
10 | ${allMixins}
11 | ${({ direction }) => direction && css`flex-direction: ${direction};`}
12 | `
13 |
14 | Layout.propTypes = {
15 | ...Types,
16 | direction: PropTypes.oneOf(['column', 'row']),
17 | }
18 |
19 | export default Layout
20 |
--------------------------------------------------------------------------------
/app/components/atoms/Tag/Tag.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 |
3 | import { blacklist } from 'utils'
4 |
5 | const removeMixinProps = blacklist(['marginBetween', 'padding', 'justifyContent', 'alignItems'])
6 |
7 | const Tag = ({ tag: TagName, children, ...props }) => (
8 | {children}
9 | )
10 |
11 | Tag.propTypes = {
12 | tag: PropTypes.string,
13 | children: PropTypes.node,
14 | }
15 |
16 | Tag.defaultProps = {
17 | tag: 'div',
18 | }
19 |
20 | export default Tag
21 |
--------------------------------------------------------------------------------
/app/components/atoms/Heading/Heading.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 |
3 | const heading = css`
4 | display: flex;
5 | flex-flow: row nowrap;
6 | white-space: nowrap;
7 | font-weight: 600;
8 | `
9 |
10 | export const H1 = styled.h1`
11 | ${heading}
12 | font-size: 34px;
13 | margin: 0 12px;
14 | font-weight: 300;
15 | line-height: 2.6;
16 | `
17 |
18 | export const H2 = styled.h2`
19 | ${heading}
20 | font-size: 28px;
21 | margin: 0 12px;
22 | font-weight: 300;
23 | line-height: 2.2;
24 | `
25 |
--------------------------------------------------------------------------------
/webpack/loaders.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require('path')
2 | const { readFileSync } = require('fs')
3 |
4 | const babel = JSON.parse(readFileSync(resolve(__dirname, '..', '.babelrc')))
5 |
6 | if (process.env.NODE_ENV !== 'production') {
7 | babel.presets.push('react-hmre')
8 | }
9 |
10 | exports.rules = [
11 | {
12 | test: /\.jsx?$/,
13 | exclude: /node_modules/,
14 | use: [
15 | {
16 | loader: 'babel-loader',
17 | options: Object.assign({}, babel, { cacheDirectory: true, highlightCode: false }),
18 | },
19 | ],
20 | },
21 | ]
22 |
--------------------------------------------------------------------------------
/app/routes/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Route, IndexRoute } from 'react-router'
3 |
4 | import Application from 'components/Application'
5 | import { Root, About, Github, NotFoundRoute } from 'components/pages'
6 |
7 |
8 | export default function createRouting() {
9 | return (
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | )
18 | }
19 |
--------------------------------------------------------------------------------
/app/data/github.js:
--------------------------------------------------------------------------------
1 | import Axios from 'axios'
2 |
3 |
4 | export default class Github {
5 | constructor() {
6 | this.req = Axios.create({
7 | baseURL: 'https://api.github.com/',
8 | headers: {
9 | Accept: 'application/vnd.github.v3+json',
10 | },
11 | })
12 | }
13 |
14 | searchRepo(query) {
15 | return this.req.get(`/search/repositories?q=${query}`)
16 | .then(({ data }) => data)
17 | }
18 |
19 | getTopRepo() {
20 | return this.req.get('/repositories')
21 | .then(({ data }) => data)
22 | .then(list => list.slice(0, 10))
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/components/molecules/Row/Row.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { PropTypes } from 'react'
3 |
4 | import Tag from 'components/atoms/Tag'
5 | import { Types, allMixins, sizes } from 'styles/mixins'
6 |
7 |
8 | const Row = styled(Tag)`
9 | display: flex;
10 | flex-direction: row;
11 | ${allMixins};
12 | ${({ marginBetween }) => marginBetween &&
13 | css`& > :not(:first-child) { margin-left: ${(sizes[marginBetween] || marginBetween)} }`
14 | }
15 | `
16 |
17 | Row.propTypes = {
18 | ...Types,
19 | marginBetween: PropTypes.oneOf(Object.keys(sizes)),
20 | }
21 |
22 | export default Row
23 |
--------------------------------------------------------------------------------
/bin/start.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require('path')
2 | const { Module } = require('module')
3 |
4 | /* eslint-disable no-underscore-dangle */
5 | // hook: resolve modules from src/
6 | const NODE_ENV = process.env.NODE_ENV || 'development'
7 | process.env.NODE_PATH = resolve(__dirname, '..', 'app')
8 | Module._initPaths()
9 |
10 | global.__PRODUCTION__ = NODE_ENV === 'production'
11 | global.__DEVELOPMENT__ = NODE_ENV === 'development'
12 | global.__CLIENT__ = false
13 | global.__SERVER__ = true
14 |
15 | require('babel-polyfill')
16 | require('babel-register')({
17 | ignore: /node_modules/,
18 | })
19 |
20 | require('../src/server')
21 |
--------------------------------------------------------------------------------
/app/components/molecules/Column/Column.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { PropTypes } from 'react'
3 |
4 | import Tag from 'components/atoms/Tag'
5 | import { Types, allMixins, sizes } from 'styles/mixins'
6 |
7 |
8 | const Column = styled(Tag)`
9 | display: flex;
10 | flex-direction: column;
11 | ${allMixins};
12 | ${({ marginBetween }) => marginBetween &&
13 | css`& > :not(:first-child) { margin-top: ${(sizes[marginBetween] || marginBetween)} }`
14 | }
15 | `
16 |
17 | Column.propTypes = {
18 | ...Types,
19 | marginBetween: PropTypes.oneOf(Object.keys(sizes)),
20 | }
21 |
22 | export default Column
23 |
--------------------------------------------------------------------------------
/app/components/atoms/Input/Input.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { PropTypes } from 'react'
3 | import { getText } from 'styles/palette'
4 |
5 |
6 | const Input = styled.input`
7 | display: inline-flex;
8 | flex-flow: row nowrap;
9 | background-color: white;
10 | border: 1px solid rgba(0,0,0,.4);
11 | border-radius: 2px;
12 | color: ${getText('White')};
13 | padding: 0 16px;
14 | white-space: nowrap;
15 | font-weight: 400;
16 | line-height: 2.6;
17 |
18 | &:focus {
19 | outline: rgba(0,0,0,.8) auto 3px;
20 | }
21 | `
22 |
23 | Input.propTypes = {
24 | onChange: PropTypes.func,
25 | value: PropTypes.string,
26 | }
27 |
28 | export default Input
29 |
--------------------------------------------------------------------------------
/app/components/organisms/Footer/Footer.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import styled from 'styled-components'
3 |
4 | import { Column } from 'components/molecules'
5 | import { getColor } from 'styles/palette'
6 |
7 |
8 | const FooterContainer = styled(Column)`
9 | background-color: ${getColor('Light Blue')};
10 | line-height: 80px;
11 | color: ${getColor('White', 'Hint')};
12 | `
13 |
14 | const Footer = ({ className }) => (
15 |
16 | RuRaRaR
17 |
18 | )
19 |
20 | Footer.propTypes = {
21 | className: PropTypes.string,
22 | }
23 |
24 | export default Footer
25 |
--------------------------------------------------------------------------------
/ecosystem.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | apps: [
3 | {
4 | name: 'rurarar',
5 | script: './bin/start.js',
6 | env: {
7 | NODE_ENV: 'production',
8 | PORT: 9012,
9 | },
10 | env_production: {
11 | NODE_ENV: 'production',
12 | PORT: 9012,
13 | },
14 | },
15 | ],
16 | deploy: {
17 | production: {
18 | user: "www",
19 | host: "lestad.top",
20 | ref: "origin/master",
21 | repo: "git@github.com:lestad/rurarar.git",
22 | path: "/home/www/top.lestad/rurarar",
23 | 'post-deploy': 'npm install && npm run build && npm prune --production && pm2 startOrRestart ecosystem.config.js --env production',
24 | },
25 | },
26 | }
27 |
--------------------------------------------------------------------------------
/app/components/organisms/Container/Container.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import styled from 'styled-components'
3 |
4 | import { Column, Row } from 'components/molecules'
5 |
6 |
7 | const Content = styled(Row)`
8 | min-height: 84vh;
9 | background: white;
10 | justify-content: center;
11 | `
12 |
13 | const BaseContainer = styled(Column)`
14 | max-width: 800px;
15 | width: 100%;
16 | `
17 |
18 | const Container = ({ className, children }) => (
19 |
20 |
21 | {children}
22 |
23 |
24 | )
25 |
26 | Container.propTypes = {
27 | className: PropTypes.string,
28 | children: PropTypes.node,
29 | }
30 |
31 | export default Container
32 |
--------------------------------------------------------------------------------
/app/store/home/home.js:
--------------------------------------------------------------------------------
1 |
2 | import { createActions, createReducer } from 'store/utils'
3 |
4 | const A = createActions(['setNumber', 'showNumber', 'hideNumber'], 'home')
5 |
6 | const initialState = {
7 | number: 0,
8 | show: false,
9 | }
10 |
11 | export default createReducer(initialState, {
12 | [A.setNumber.type]: (state, { number }) => ({ ...state, number }),
13 | [A.showNumber.type]: state => ({ ...state, show: true }),
14 | [A.hideNumber.type]: state => ({ ...state, show: false }),
15 | })
16 |
17 |
18 | export function setNumber(number) {
19 | return A.setNumber({ number })
20 | }
21 |
22 | export function showNumber() {
23 | return A.showNumber()
24 | }
25 |
26 | export function hideNumber() {
27 | return A.hideNumber()
28 | }
29 |
--------------------------------------------------------------------------------
/src/createStore.js:
--------------------------------------------------------------------------------
1 | import { createStore, applyMiddleware, compose } from 'redux'
2 | import thunk from 'redux-thunk'
3 |
4 | import Github from 'data/github'
5 | import reducers from 'store/reducers'
6 |
7 |
8 | /* eslint-disable no-underscore-dangle */
9 | /* global __DEVELOPMENT__ */
10 |
11 | export default initialState => {
12 | const github = new Github()
13 |
14 | const middlewares = [
15 | thunk.withExtraArgument({ github }),
16 | ]
17 |
18 | const composeWithDevTools = __DEVELOPMENT__
19 | && typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
20 | ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
21 | : compose
22 |
23 | return createStore(
24 | reducers,
25 | initialState,
26 | composeWithDevTools(applyMiddleware(...middlewares)),
27 | )
28 | }
29 |
--------------------------------------------------------------------------------
/app/store/utils.js:
--------------------------------------------------------------------------------
1 |
2 | export const createTypes = (actions, namespace = 'default') =>
3 | actions.reduce((hash, actionName) => ({ ...hash, [actionName]: `${namespace}/${actionName}` }), {})
4 |
5 | export const createActions = (actions, namespace = 'default') =>
6 | actions.reduce(
7 | (hash, actionName) => {
8 | const action = (payload, meta = {}) => ({ type: `${namespace}/${actionName}`, payload, meta })
9 |
10 | action.type = `${namespace}/${actionName}`
11 |
12 | return ({ ...hash, [actionName]: action })
13 | },
14 | {},
15 | )
16 |
17 | export const createReducer = (initialState, reducers) =>
18 | (state = initialState, { type, payload, meta }) => {
19 | const handler = reducers[type]
20 |
21 | if (handler) {
22 | state = handler(state, payload, meta) // eslint-disable-line no-param-reassign
23 | }
24 |
25 | return state
26 | }
27 |
--------------------------------------------------------------------------------
/app/components/atoms/Button/Button.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import { getColor, getText, shadowLevels, transitions, flatValues } from 'styles/palette'
4 |
5 |
6 | const Button = styled.button`
7 | display: inline-flex;
8 | flex-flow: row nowrap;
9 | background-color: ${getColor('Light Blue')};
10 | border: none;
11 | border-radius: 2px;
12 | color: ${getText('Black')};
13 | box-shadow: ${shadowLevels.button};
14 | padding: 0 16px;
15 | white-space: nowrap;
16 | cursor: pointer;
17 | font-weight: 600;
18 | line-height: 2.6;
19 | transition: ${flatValues({
20 | 'box-shadow': transitions.quick,
21 | 'background-color': transitions.quick,
22 | })};
23 |
24 | &:hover {
25 | box-shadow: ${shadowLevels.buttonHover};
26 | background-color: ${getColor('Light Blue', 600)};
27 | }
28 |
29 | &:focus {
30 | outline: rgba(0,0,0,.8) auto 3px;
31 | }
32 | `
33 |
34 | export default Button
35 |
--------------------------------------------------------------------------------
/app/styles/palette.js:
--------------------------------------------------------------------------------
1 | import Material from 'google-material-color'
2 | import { map, keys, join, pipe } from 'ramda'
3 |
4 |
5 | export function getColor(color, shade = 500) {
6 | return Material.get(color, shade)
7 | }
8 |
9 | export const shadowLevels = {
10 | button: '0 0 2px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.24)',
11 | buttonHover: '0 0 4px rgba(0,0,0,.14), 0 4px 8px rgba(0,0,0,.28)',
12 | appBar: '0 0 4px rgba(0,0,0,.14), 0 4px 8px rgba(0,0,0,.28)',
13 | }
14 |
15 | export const transitions = {
16 | quick: '.2s cubic-bezier(.4,0,.2,1)',
17 | }
18 |
19 | export function getText(...args) {
20 | return Material.getText(...args)
21 | }
22 |
23 | /**
24 | * Convert { a: '123', b: '456' } to 'a 123, b 456'
25 | *
26 | * @param {Object} object [description]
27 | * @return {String} [description]
28 | */
29 | export const flatValues = object => pipe(
30 | keys,
31 | map(key => `${key} ${object[key]}`),
32 | join(', '),
33 | )(object)
34 |
--------------------------------------------------------------------------------
/app/components/molecules/GithubRepo/GithubRepo.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import React, { PropTypes } from 'react'
3 |
4 | import { getText } from 'styles/palette'
5 | import { Row } from 'components/molecules'
6 |
7 |
8 | const WrapperGithubRepo = styled.div`
9 | display: inline-flex;
10 | flex-flow: row nowrap;
11 | background-color: white,
12 | border: 1px solid rgba(0,0,0,.4);
13 | border-radius: 2px;
14 | color: ${getText('White')};
15 | padding: 8px;
16 | font-weight: 400;
17 | margin-bottom: 20px;
18 | `
19 |
20 | const GithubRepo = ({ repo }) => (
21 |
22 |
23 | {repo.owner.login}
24 | /
25 | {repo.name}
26 |
27 |
28 | )
29 |
30 | GithubRepo.propTypes = {
31 | repo: PropTypes.object.isRequired,
32 | }
33 |
34 | export default GithubRepo
35 |
--------------------------------------------------------------------------------
/app/utils/index.js:
--------------------------------------------------------------------------------
1 | export const compose = (...fns) => {
2 | const [tailFn, ...restFns] = fns.reverse()
3 |
4 | return (...args) =>
5 | restFns.reduce(
6 | (value, fn) => fn(value),
7 | tailFn(...args),
8 | )
9 | }
10 |
11 | export const pipe = (...fns) => compose(...fns.reverse())
12 |
13 | export const curry = fn =>
14 | (...args) =>
15 | args.length < fn.length
16 | ? (...rest) => curry(fn)(...args, ...rest)
17 | : fn(...args)
18 |
19 | export const thrush = (...val) => fn => fn(...val)
20 | export const mapThrush = curry((fnArr, value) => fnArr.map(thrush(value)))
21 | export const map = curry((fn, arr) => arr.map(fn))
22 | export const tap = curry((fn, value) => (fn(value), value)) // eslint-disable-line no-sequences
23 | export const reduce = curry((fn, initial, arr) => arr.reduce(fn, initial))
24 | export const filter = curry((fn, arr) => arr.filter(fn))
25 | export const reject = curry((fn, arr) => arr.filter((e, i) => !fn(e, i)))
26 |
27 | export const blacklist = curry((list, obj) => pipe(
28 | Object.keys,
29 | reject(key => list.includes(key)),
30 | reduce((h, c) => ({ ...h, [c]: obj[c] }), {}),
31 | )(obj))
32 |
--------------------------------------------------------------------------------
/app/styles/mixins.js:
--------------------------------------------------------------------------------
1 | import { PropTypes } from 'react'
2 | import { css } from 'styled-components'
3 |
4 |
5 | export const sizes = {
6 | XS: '4px',
7 | S: '8px',
8 | M: '14px',
9 | L: '24px',
10 | }
11 |
12 | export const namesMapping = {
13 | justifyContent: 'justify-content',
14 | alignItems: 'align-items',
15 |
16 | flexStart: 'flex-start',
17 | flexEnd: 'flex-end',
18 | spaceAround: 'space-around',
19 | spaceBetween: 'space-between',
20 |
21 | ...sizes,
22 | }
23 |
24 | export const mapStyle = propName => props => {
25 | if (props[propName]) {
26 | const value = props[propName]
27 | return css`${namesMapping[propName] || propName}: ${namesMapping[value] || value}`
28 | }
29 |
30 | return ''
31 | }
32 |
33 | export const allMixins = css`
34 | ${mapStyle('justifyContent')}
35 | ${mapStyle('alignItems')}
36 | ${mapStyle('padding')}
37 | `
38 |
39 | export const Types = {
40 | justifyContent: PropTypes.oneOf(['flexStart', 'flexEnd', 'center', 'spaceAround', 'spaceBetween']),
41 | alignItems: PropTypes.oneOf(['flexStart', 'flexEnd', 'center', 'baseline', 'stretch']),
42 | padding: PropTypes.oneOf(['XS', 'S', 'M', 'L']),
43 | }
44 |
--------------------------------------------------------------------------------
/webpack/prod.config.js:
--------------------------------------------------------------------------------
1 | const { join } = require('path')
2 | const {
3 | DefinePlugin,
4 | LoaderOptionsPlugin,
5 | optimize: { UglifyJsPlugin },
6 | } = require('webpack')
7 |
8 | const config = require('./base.config')
9 | const { rules } = require('./loaders')
10 |
11 | module.exports = {
12 | target: 'web',
13 | context: config.context,
14 | entry: {
15 | main: config.entry,
16 | },
17 | output: {
18 | path: join(__dirname, '..', 'dist') + '/',
19 | filename: 'bundle.js',
20 | publicPath: '/dist/',
21 | },
22 | module: {
23 | rules,
24 | },
25 | resolve: {
26 | modules: [
27 | join(__dirname, '..', 'app'),
28 | 'node_modules',
29 | ],
30 | },
31 | plugins: [
32 | new LoaderOptionsPlugin({
33 | minimize: true,
34 | options: {
35 | context: config.context,
36 | },
37 | }),
38 | new DefinePlugin({
39 | 'process.env': {
40 | NODE_ENV: JSON.stringify('production'),
41 | },
42 | __PRODUCTION__: true,
43 | __DEVELOPMENT__: false,
44 | __CLIENT__: true,
45 | __SERVER__: false,
46 | }),
47 | new UglifyJsPlugin({ compress: { warnings: false } }),
48 | ],
49 | }
50 |
--------------------------------------------------------------------------------
/webpack/dev.config.js:
--------------------------------------------------------------------------------
1 | import { join } from 'path'
2 | import { HotModuleReplacementPlugin, optimize, DefinePlugin, LoaderOptionsPlugin } from 'webpack'
3 |
4 | import config from './base.config'
5 | import { rules } from './loaders'
6 |
7 | const { OccurrenceOrderPlugin } = optimize
8 |
9 |
10 | export default {
11 | target: 'web',
12 | devtool: 'source-map',
13 | context: config.context,
14 | entry: {
15 | main: [
16 | 'webpack-hot-middleware/client',
17 | config.entry,
18 | ],
19 | },
20 | cache: true,
21 | output: {
22 | path: join(__dirname, '..', 'dist') + '/',
23 | pathinfo: true,
24 | filename: 'bundle.js',
25 | publicPath: '/dist/',
26 | },
27 | module: {
28 | rules,
29 | },
30 | resolve: {
31 | modules: [
32 | join(__dirname, '..', 'app'),
33 | 'node_modules',
34 | ],
35 | },
36 | plugins: [
37 | new LoaderOptionsPlugin({
38 | debug: true,
39 | options: {
40 | context: config.context,
41 | },
42 | }),
43 | new DefinePlugin({
44 | 'process.env': {
45 | NODE_ENV: JSON.stringify('development'),
46 | },
47 | __PRODUCTION__: false,
48 | __DEVELOPMENT__: true,
49 | __CLIENT__: true,
50 | __SERVER__: false,
51 | }),
52 | new OccurrenceOrderPlugin(true),
53 | new HotModuleReplacementPlugin(),
54 | ],
55 | }
56 |
--------------------------------------------------------------------------------
/app/components/organisms/Header/Header.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import styled from 'styled-components'
3 | import { Link } from 'react-router'
4 |
5 | import { getColor, shadowLevels } from 'styles/palette'
6 |
7 |
8 | const HeaderWrapper = styled.header`
9 | display: flex;
10 | flex-flow: column nowrap;
11 | justify-content: center;
12 | align-items: center;
13 | background: ${getColor('Light Blue')};
14 | line-height: 64px;
15 | color: white;
16 | font-family: 'Roboto', sans-serif;
17 | font-weight: 400;
18 | font-size: 18px;
19 | box-shadow: ${shadowLevels.appBar};
20 | user-select: none;
21 | cursor: default;
22 | z-index: 10;
23 | `
24 |
25 | const HomeLink = styled(Link)`
26 | display: flex;
27 | color: white;
28 | text-decoration: none;
29 | `
30 |
31 | const FullTitle = styled.div`
32 | display: flex;
33 |
34 | @media (max-width: 550px) {
35 | display: none;
36 | }
37 | `
38 |
39 | const ShortTitle = styled.div`
40 | display: none;
41 |
42 | @media (max-width: 550px) {
43 | display: flex;
44 | }
45 | `
46 |
47 | const Header = () => (
48 |
49 |
50 | React Universal Recomposed Application with Redux And Redial
51 | RURARAR
52 |
53 |
54 | )
55 |
56 | export default Header
57 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # RURARAR
2 |
3 | ## Readme
4 |
5 | React Universal Recomposed Application with Redux And Redial
6 |
7 | ## Features
8 |
9 | - [React](https://github.com/facebook/react), [ReactRouter](https://github.com/ReactTraining/react-router)
10 | - [Redux](https://github.com/reactjs/redux), [Thunk](https://github.com/gaearon/redux-thunk)
11 | - [Redial](https://github.com/markdalgleish/redial)
12 | - [Recompose](https://github.com/acdlite/recompose)
13 | - [Server Side Rendering](src/server/render.js)
14 | - Based on [Atomic Design](http://bradfrost.com/blog/post/atomic-web-design/) methodology
15 | - Styles: [Styled Components](https://github.com/styled-components/styled-components)
16 | - Also: [normalize](https://github.com/lestad/styled-normalize) and [Google Material Colors](https://github.com/danlevan/google-material-color)
17 | - Dependencies lock with [npm-shrinkwrap](npm-shrinkwrap.json) and [yarn.lock](yarn.lock)
18 |
19 |
20 | ## Requirements
21 |
22 | - node `>=6`
23 |
24 | ## Installing
25 |
26 | ```bash
27 | git clone https://github.com/LestaD/rurarar.git projectname
28 | cd projectname
29 | npm install
30 |
31 | # for production after build bundle.js:
32 | npm install --production
33 | ```
34 |
35 | ## Scripts
36 |
37 | #### Run in development mode with SS-reloading
38 |
39 | ```bash
40 | npm run dev
41 | ```
42 |
43 | #### Build client bundle
44 |
45 | ```bash
46 | # Builds in production mode
47 | npm run build
48 |
49 | # after
50 | ls dist/
51 | ```
52 |
53 | #### Run only server-side
54 |
55 | Bundle should be built before run
56 |
57 | ```bash
58 | # in production mode
59 | npm start
60 | ```
61 |
--------------------------------------------------------------------------------
/app/store/github/github.js:
--------------------------------------------------------------------------------
1 |
2 | import { createActions, createReducer } from 'store/utils'
3 |
4 | const A = createActions(['setRepoList', 'setQuery', 'setTotalFoundCount', 'cleanSearch', 'setLoading'], 'github')
5 |
6 | const initialState = {
7 | query: '',
8 | repoList: [],
9 | totalFoundCount: 0,
10 | loading: false,
11 | }
12 |
13 | export default createReducer(initialState, {
14 | [A.setRepoList.type]: (state, { repositories }) => ({ ...state, repoList: repositories, loading: false }),
15 | [A.setQuery.type]: (state, { query }) => ({ ...state, query }),
16 | [A.setTotalFoundCount.type]: (state, count) => ({ ...state, totalFoundCount: count }),
17 | [A.cleanSearch.type]: state => ({ ...state, repoList: [], totalFoundCount: 0 }),
18 | [A.setLoading.type]: (state, loading) => ({ ...state, loading }),
19 | })
20 |
21 |
22 | export function loadTopRepo() {
23 | return async (dispatch, getState, { github }) => {
24 | dispatch(A.cleanSearch())
25 | dispatch(A.setLoading(true))
26 |
27 | const repositories = await github.getTopRepo()
28 |
29 | return dispatch(A.setRepoList({ repositories }))
30 | }
31 | }
32 |
33 | export function search() {
34 | return async (dispatch, getState, { github }) => {
35 | const query = getState().github.query
36 |
37 | if (!query || query.length < 3) return null
38 | dispatch(A.cleanSearch())
39 | dispatch(A.setLoading(true))
40 |
41 | const { total_count, items } = await github.searchRepo(query)
42 |
43 | dispatch(A.setTotalFoundCount(total_count))
44 | return dispatch(A.setRepoList({ repositories: items }))
45 | }
46 | }
47 |
48 | export function setQuery(query) {
49 | return A.setQuery({ query })
50 | }
51 |
--------------------------------------------------------------------------------
/app/components/pages/Github/Github.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react'
2 | import { compose, withHandlers } from 'recompose'
3 | import { connect } from 'react-redux'
4 | import { provideHooks } from 'redial'
5 |
6 | import { H1, Button, Input } from 'components/atoms'
7 | import { Column, Row, GithubRepo } from 'components/molecules'
8 | import { loadTopRepo, setQuery, search } from 'store/github/github'
9 |
10 |
11 | const redial = {
12 | fetch: ({ dispatch }) => dispatch(loadTopRepo()),
13 | }
14 |
15 | const mapStateToProps = ({ github }) => ({
16 | list: github.repoList,
17 | query: github.query,
18 | foundCount: github.totalFoundCount,
19 | loading: github.loading,
20 | })
21 |
22 | const enhance = compose(
23 | provideHooks(redial),
24 | connect(mapStateToProps),
25 | withHandlers({
26 | updateQuery: ({ dispatch }) => ({ target: { value } }) => dispatch(setQuery(value)),
27 | startSearch: ({ dispatch }) => () => dispatch(search()),
28 | onInputKey: ({ dispatch }) => event => event.key === 'Enter' && dispatch(search()),
29 | }),
30 | )
31 |
32 | const Github = ({ list, updateQuery, query, startSearch, loading, onInputKey }) => (
33 |
34 |
35 | Github API usage
36 |
37 |
38 |
39 |
40 |
41 |
42 | {
43 | list.length === 0 && !loading &&
44 | Nothing found
45 | }
46 | {
47 | loading &&
48 | Loading...
49 | }
50 | {list.map(item => )}
51 |
52 |
53 | )
54 |
55 | Github.propTypes = {
56 | list: PropTypes.array,
57 | query: PropTypes.string,
58 | loading: PropTypes.bool,
59 | foundCount: PropTypes.number,
60 | updateQuery: PropTypes.func,
61 | startSearch: PropTypes.func,
62 | onInputKey: PropTypes.func,
63 | }
64 |
65 | export default enhance(Github)
66 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "airbnb",
3 | "plugins": ["react", "import"],
4 | "env": {
5 | "browser": true,
6 | "node": true,
7 | "es6": true
8 | },
9 | "parserOptions": {
10 | "ecmaVersion": 7,
11 | "ecmaFeatures": {
12 | "jsx": true,
13 | "experimentalObjectRestSpread": true
14 | },
15 | "sourceType": "module"
16 | },
17 | "rules": {
18 | "quotes": [0, "single", { "avoidEscape": true }],
19 | "semi": [2, "never"],
20 | "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "varsIgnorePattern": "PropTypes" }],
21 | "react/jsx-uses-react": "error",
22 | "react/jsx-uses-vars": 2,
23 | "react/react-in-jsx-scope": 2,
24 | "react/jsx-filename-extension": [1, { "extensions": [".js"] }],
25 | "react/jsx-first-prop-new-line": [1, "multiline"],
26 | "jsx-quotes": [2, "prefer-double"],
27 | "import/no-unresolved": 0,
28 | "global-require": 0,
29 | "quote-props": [2, "as-needed"],
30 | "max-len": [1, 120],
31 | "no-unused-expressions": [2, { "allowShortCircuit": true, "allowTernary": true }],
32 | "no-confusing-arrow": 0,
33 | "no-use-before-define": [2, { "functions": true }],
34 | "no-param-reassign": ["error", { "props": false }],
35 | "consistent-return": "error",
36 | "import/no-extraneous-dependencies": 0,
37 | "import/prefer-default-export": 0,
38 | "no-restricted-syntax": ["error", "WithStatement"],
39 | "no-continue": 0,
40 | "arrow-parens": [2, "as-needed"],
41 | "generator-star-spacing": ["error", { "after": true, "before": false }],
42 | "react/jsx-no-duplicate-props": ["error"],
43 | "react/jsx-no-bind": ["error", { "ignoreRefs": true }],
44 | "react/jsx-space-before-closing": [1, "always"],
45 | "react/no-unused-prop-types": 0,
46 | "no-multiple-empty-lines": [1, { "max": 2 }],
47 | "no-mixed-operators": 0,
48 | "import/extensions": ["error", { "js": "never", "json": "always" }],
49 | "class-methods-use-this": 0,
50 | "react/forbid-prop-types": 0,
51 | "brace-style": ["error", "stroustrup", { "allowSingleLine": true }]
52 | },
53 | "parser": "babel-eslint",
54 | "settings": {
55 | "import/resolve": {
56 | "moduleDirectory": ["node_modules", "src"]
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/src/client.js:
--------------------------------------------------------------------------------
1 |
2 | import 'babel-polyfill'
3 | import React from 'react'
4 | import ReactDOM from 'react-dom'
5 | import { Router, match, browserHistory } from 'react-router'
6 | import { Provider } from 'react-redux'
7 | import { trigger } from 'redial'
8 |
9 | import baseStyles from 'styles'
10 | import createStore from './createStore'
11 |
12 | /* global __DEVELOPMENT__ */
13 |
14 | const target = document.getElementById('wbpp')
15 | const store = createStore(window.INITIAL_STATE || {})
16 |
17 | function render() {
18 | const { pathname, search, hash } = window.location
19 |
20 | const createRouting = require('routes').default
21 | const routes = createRouting()
22 | baseStyles()
23 |
24 | match({ routes, location: `${pathname}${search}${hash}` }, () => {
25 | ReactDOM.render(
26 |
27 |
28 | ,
29 | target,
30 | () => {
31 | if (__DEVELOPMENT__) {
32 | const ServerRenderedStyles = document.getElementById('ssrs')
33 | ServerRenderedStyles && ServerRenderedStyles.parentNode.removeChild(ServerRenderedStyles)
34 | }
35 | },
36 | )
37 | })
38 |
39 | return browserHistory.listen(location => {
40 | match({ routes, location }, (error, redirectLocation, renderProps) => {
41 | if (error) { console.error(error) } // eslint-disable-line no-console
42 |
43 | const { components } = renderProps
44 |
45 | const getLocals = {
46 | path: renderProps.location.pathname,
47 | query: renderProps.location.query,
48 | params: renderProps.params,
49 |
50 | dispatch: store.dispatch,
51 | }
52 |
53 | if (window.INITIAL_STATE) {
54 | delete window.INITIAL_STATE
55 | }
56 | else {
57 | trigger('fetch', components, getLocals)
58 | }
59 |
60 | trigger('defer', components, getLocals)
61 | })
62 | })
63 | }
64 |
65 | if (target) {
66 | let unusubscribeHistory = render()
67 |
68 | if (module.hot) {
69 | module.hot.accept(['routes/index.js'], () => {
70 | unusubscribeHistory && unusubscribeHistory()
71 |
72 | setTimeout(() => {
73 | unusubscribeHistory = render()
74 | }, 1)
75 | })
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Created by https://www.gitignore.io/api/osx,linux,windows,node
3 |
4 | ### OSX ###
5 | *.DS_Store
6 | .AppleDouble
7 | .LSOverride
8 |
9 | # Icon must end with two \r
10 | Icon
11 |
12 | # Thumbnails
13 | ._*
14 |
15 | # Files that might appear in the root of a volume
16 | .DocumentRevisions-V100
17 | .fseventsd
18 | .Spotlight-V100
19 | .TemporaryItems
20 | .Trashes
21 | .VolumeIcon.icns
22 | .com.apple.timemachine.donotpresent
23 |
24 | # Directories potentially created on remote AFP share
25 | .AppleDB
26 | .AppleDesktop
27 | Network Trash Folder
28 | Temporary Items
29 | .apdisk
30 |
31 |
32 | ### Linux ###
33 | *~
34 |
35 | # temporary files which can be created if a process still has a handle open of a deleted file
36 | .fuse_hidden*
37 |
38 | # KDE directory preferences
39 | .directory
40 |
41 | # Linux trash folder which might appear on any partition or disk
42 | .Trash-*
43 |
44 | # .nfs files are created when an open file is removed but is still being accessed
45 | .nfs*
46 |
47 |
48 | ### Windows ###
49 | # Windows image file caches
50 | Thumbs.db
51 | ehthumbs.db
52 |
53 | # Folder config file
54 | Desktop.ini
55 |
56 | # Recycle Bin used on file shares
57 | $RECYCLE.BIN/
58 |
59 | # Windows Installer files
60 | *.cab
61 | *.msi
62 | *.msm
63 | *.msp
64 |
65 | # Windows shortcuts
66 | *.lnk
67 |
68 |
69 | ### Node ###
70 | # Logs
71 | logs
72 | *.log
73 | npm-debug.log*
74 |
75 | # Runtime data
76 | pids
77 | *.pid
78 | *.seed
79 | *.pid.lock
80 |
81 | # Directory for instrumented libs generated by jscoverage/JSCover
82 | lib-cov
83 |
84 | # Coverage directory used by tools like istanbul
85 | coverage
86 |
87 | # nyc test coverage
88 | .nyc_output
89 |
90 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
91 | .grunt
92 |
93 | # node-waf configuration
94 | .lock-wscript
95 |
96 | # Compiled binary addons (http://nodejs.org/api/addons.html)
97 | build/Release
98 |
99 | # Dependency directories
100 | node_modules
101 | jspm_packages
102 |
103 | # Optional npm cache directory
104 | .npm
105 |
106 | # Optional eslint cache
107 | .eslintcache
108 |
109 | # Optional REPL history
110 | .node_repl_history
111 |
112 | # Output of 'npm pack'
113 | *.tgz
114 |
115 |
116 |
117 | # Application
118 | dist
119 | .idea
120 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rurarar",
3 | "version": "0.1.0",
4 | "description": "React Universal Recomposed Application with Redux And Redial",
5 | "repository": {
6 | "url": "git@github.com:LestaD/rurarar.git",
7 | "type": "git"
8 | },
9 | "scripts": {
10 | "start": "NODE_ENV=production npm run run",
11 | "run": "node ./bin/start",
12 | "dev": "DEBUG=APP:* DEBUG_COLORS=1 NODE_ENV=development nodemon -x \"npm run run\" --ignore ./",
13 | "build": "NODE_ENV=production webpack --config webpack/prod.config.js",
14 | "lint": "eslint src"
15 | },
16 | "author": "Sergey Sova (https://lestad.top)",
17 | "license": "MIT",
18 | "dependencies": {
19 | "axios": "^0.15.3",
20 | "babel-core": "^6.17.0",
21 | "babel-plugin-styled-components": "0.0.2",
22 | "babel-plugin-transform-react-constant-elements": "^6.9.1",
23 | "babel-plugin-transform-react-inline-elements": "^6.8.0",
24 | "babel-polyfill": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.20.0.tgz",
25 | "babel-preset-es2015": "^6.16.0",
26 | "babel-preset-es2016": "^6.16.0",
27 | "babel-preset-es2017": "^6.16.0",
28 | "babel-preset-react": "^6.16.0",
29 | "babel-preset-stage-0": "^6.16.0",
30 | "babel-register": "^6.16.3",
31 | "classnames": "^2.2.5",
32 | "debug": "^2.2.0",
33 | "express": "^4.14.0",
34 | "google-material-color": "^1.3.1",
35 | "morgan": "^1.7.0",
36 | "ramda": "^0.23.0",
37 | "react": "^15.3.2",
38 | "react-dom": "^15.3.2",
39 | "react-redux": "^5.0.1",
40 | "react-router": "^3.0.0",
41 | "recompose": "^0.21.0",
42 | "redial": "^0.5.0",
43 | "redux": "^3.6.0",
44 | "redux-thunk": "^2.1.0",
45 | "styled-components": "https://registry.npmjs.org/styled-components/-/styled-components-1.2.1.tgz"
46 | },
47 | "devDependencies": {
48 | "babel-eslint": "^7.1.1",
49 | "babel-loader": "^6.2.5",
50 | "babel-polyfill": "^6.16.0",
51 | "babel-preset-react-hmre": "^1.1.1",
52 | "chokidar": "^1.6.1",
53 | "eslint": "^3.12.2",
54 | "eslint-config-airbnb": "^13.0.0",
55 | "eslint-plugin-import": "^2.2.0",
56 | "eslint-plugin-jsx-a11y": "^2.2.3",
57 | "eslint-plugin-react": "^6.8.0",
58 | "nodemon": "^1.11.0",
59 | "webpack": "^2.2.0-rc.3",
60 | "webpack-dev-middleware": "^1.9.0",
61 | "webpack-hot-middleware": "2.14.0"
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/server/index.js:
--------------------------------------------------------------------------------
1 | import { join } from 'path'
2 | import Express from 'express'
3 | import debug from 'debug'
4 | import morgan from 'morgan'
5 | import { tap, curryN, keys, pipe, filter, reject, map } from 'ramda'
6 |
7 |
8 | /* global __DEVELOPMENT__ */
9 |
10 | const PORT = process.env.PORT || 4500
11 | const LOG = debug('APP:SERVER')
12 | const app = Express()
13 |
14 | app.use(morgan('combined'))
15 |
16 | if (__DEVELOPMENT__) {
17 | LOG('Enabled development mode.')
18 |
19 | const regexpTest = curryN(2, (regexp, item) => regexp.test(item))
20 | const clearDependencies = regexp => pipe(
21 | keys,
22 | reject(regexpTest(/node_modules/)),
23 | filter(regexpTest(regexp)),
24 | map(tap(e => LOG('+:', regexp, e))),
25 | map(tap(id => delete require.cache[id])),
26 | )(require.cache)
27 |
28 | const config = require('../../webpack/dev.config').default
29 | const { watch } = require('chokidar')
30 |
31 | const webpack = require('webpack')
32 | const webpackDevMiddleware = require('webpack-dev-middleware')
33 | const webpackHotMiddleware = require('webpack-hot-middleware')
34 |
35 | const watcher = watch(join(__dirname, '..', '..', 'app'))
36 | let compiler
37 |
38 | try {
39 | compiler = webpack(config)
40 | }
41 | catch (e) {
42 | LOG('WEBPACK ERROR:', e.message)
43 | throw e
44 | }
45 |
46 | const middleware = webpackDevMiddleware(compiler, {
47 | publicPath: config.output.publicPath,
48 | hot: true,
49 | stats: {
50 | colors: true,
51 | hash: false,
52 | timings: true,
53 | chunks: true,
54 | chunkModules: false,
55 | modules: false,
56 | },
57 | historyApiFallback: true,
58 | })
59 |
60 | app.use(middleware)
61 | app.use(webpackHotMiddleware(compiler))
62 |
63 | watcher.on('ready', () => {
64 | watcher.on('all', (e, path) => {
65 | LOG('Clearing module cache:', e, path)
66 | LOG('Cleared:', clearDependencies(/[/\\](app|src)[/\\]/))
67 | delete require.cache[require.resolve('./render')]
68 | })
69 | })
70 |
71 | compiler.plugin('done', () => {
72 | LOG('Clearing react module cache')
73 | // LOG('Cleared:', clearDependencies(/[/\\]app[/\\]/))
74 | LOG('Cleared:', clearDependencies(/[/\\](app|src)[/\\]/))
75 | delete require.cache[require.resolve('./render')]
76 | })
77 | } // if (__DEVELOPMENT__)
78 |
79 |
80 | app.use('/dist', Express.static('dist'))
81 | app.get('*', (req, res) => require('./render').default(req, res))
82 |
83 | app.listen(PORT, err =>
84 | err
85 | ? LOG('ERROR', err)
86 | : LOG(`Listen ${PORT} port...`),
87 | )
88 |
--------------------------------------------------------------------------------
/src/server/render.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { trigger } from 'redial'
3 | import { Provider } from 'react-redux'
4 | import { renderToString } from 'react-dom/server'
5 | import { match, RouterContext } from 'react-router'
6 |
7 | import createRouting from 'routes'
8 | import createStore from '../createStore'
9 |
10 |
11 | /* eslint-disable react/jsx-filename-extension */
12 | /* global __DEVELOPMENT__ */
13 |
14 | function renderPage(html, state, styles) {
15 | return `
16 |
17 |
18 |
19 | RURARAR
20 |
21 |
22 |
23 |
24 | ${html}
25 |
26 |
27 |
28 |
29 | `
30 | }
31 |
32 | export default function handleRender(req, res) {
33 | const routes = createRouting()
34 | const store = createStore({})
35 | const styleSheet = require('styled-components/lib/models/StyleSheet')
36 | styleSheet.sheet && styleSheet.flush()
37 |
38 | match({ routes, location: req.url }, (error, redirectLocation, renderProps) => {
39 | if (error) {
40 | res.status(500).send(error.message)
41 | }
42 | else if (redirectLocation) {
43 | res.redirect(302, redirectLocation.pathname + redirectLocation.search)
44 | }
45 | else if (renderProps) {
46 | const locals = {
47 | path: renderProps.location.pathname,
48 | query: renderProps.location.query,
49 | params: renderProps.params,
50 |
51 | dispatch: store.dispatch,
52 | }
53 |
54 | trigger('fetch', renderProps.components, locals)
55 | .then(() => {
56 | const state = store.getState()
57 | const result = renderToString(
58 |
59 |
60 | ,
61 | )
62 | const styles = styleSheet.rules().map(rule => rule.cssText).join('\n')
63 |
64 | res.status(200).send(renderPage(result, state, styles))
65 | })
66 | .catch(err => {
67 | if (__DEVELOPMENT__) {
68 | res.status(500).send(`${err.toString()}${err.stack}`)
69 | }
70 | else {
71 | res.status(500).send('Server error!')
72 | }
73 | })
74 | }
75 | else {
76 | res.status(404).send('File Not Found')
77 | }
78 | })
79 | }
80 |
--------------------------------------------------------------------------------
/app/styles/normalize.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 |
3 | export default css`
4 | html {
5 | font-family: sans-serif;
6 | line-height: 1.15;
7 | -ms-text-size-adjust: 100%;
8 | -webkit-text-size-adjust: 100%;
9 | }
10 |
11 | body {
12 | margin: 0;
13 | }
14 |
15 | article,
16 | aside,
17 | footer,
18 | header,
19 | nav,
20 | section {
21 | display: block;
22 | }
23 |
24 | h1 {
25 | font-size: 2em;
26 | margin: 0.67em 0;
27 | }
28 |
29 | figcaption,
30 | figure,
31 | main {
32 | display: block;
33 | }
34 |
35 | figure {
36 | margin: 1em 40px;
37 | }
38 |
39 | hr {
40 | box-sizing: content-box;
41 | height: 0;
42 | overflow: visible;
43 | }
44 |
45 | pre {
46 | font-family: monospace, monospace;
47 | font-size: 1em;
48 | }
49 |
50 | a {
51 | background-color: transparent;
52 | -webkit-text-decoration-skip: objects;
53 | }
54 |
55 | a:active,
56 | a:hover {
57 | outline-width: 0;
58 | }
59 |
60 | abbr[title] {
61 | border-bottom: none;
62 | text-decoration: underline;
63 | text-decoration: underline dotted;
64 | }
65 |
66 | b,
67 | strong {
68 | font-weight: inherit;
69 | }
70 |
71 | b,
72 | strong {
73 | font-weight: bolder;
74 | }
75 |
76 | code,
77 | kbd,
78 | samp {
79 | font-family: monospace, monospace;
80 | font-size: 1em;
81 | }
82 |
83 | dfn {
84 | font-style: italic;
85 | }
86 |
87 | mark {
88 | background-color: #ff0;
89 | color: #000;
90 | }
91 |
92 | small {
93 | font-size: 80%;
94 | }
95 |
96 | sub,
97 | sup {
98 | font-size: 75%;
99 | line-height: 0;
100 | position: relative;
101 | vertical-align: baseline;
102 | }
103 |
104 | sub {
105 | bottom: -0.25em;
106 | }
107 |
108 | sup {
109 | top: -0.5em;
110 | }
111 |
112 | audio,
113 | video {
114 | display: inline-block;
115 | }
116 |
117 | audio:not([controls]) {
118 | display: none;
119 | height: 0;
120 | }
121 |
122 | img {
123 | border-style: none;
124 | }
125 |
126 | svg:not(:root) {
127 | overflow: hidden;
128 | }
129 |
130 | button,
131 | input,
132 | optgroup,
133 | select,
134 | textarea {
135 | font-family: sans-serif;
136 | font-size: 100%;
137 | line-height: 1.15;
138 | margin: 0;
139 | }
140 |
141 | button,
142 | input {
143 | overflow: visible;
144 | }
145 |
146 | button,
147 | select {
148 | text-transform: none;
149 | }
150 |
151 | button,
152 | html [type="button"],
153 | [type="reset"],
154 | [type="submit"] {
155 | -webkit-appearance: button;
156 | }
157 |
158 | button::-moz-focus-inner,
159 | [type="button"]::-moz-focus-inner,
160 | [type="reset"]::-moz-focus-inner,
161 | [type="submit"]::-moz-focus-inner {
162 | border-style: none;
163 | padding: 0;
164 | }
165 |
166 | button:-moz-focusring,
167 | [type="button"]:-moz-focusring,
168 | [type="reset"]:-moz-focusring,
169 | [type="submit"]:-moz-focusring {
170 | outline: 1px dotted ButtonText;
171 | }
172 |
173 | fieldset {
174 | border: 1px solid #c0c0c0;
175 | margin: 0 2px;
176 | padding: 0.35em 0.625em 0.75em;
177 | }
178 |
179 | legend {
180 | box-sizing: border-box;
181 | color: inherit;
182 | display: table;
183 | max-width: 100%;
184 | padding: 0;
185 | white-space: normal;
186 | }
187 |
188 | progress {
189 | display: inline-block;
190 | vertical-align: baseline;
191 | }
192 |
193 | textarea {
194 | overflow: auto;
195 | }
196 |
197 | [type="checkbox"],
198 | [type="radio"] {
199 | box-sizing: border-box;
200 | padding: 0;
201 | }
202 |
203 | [type="number"]::-webkit-inner-spin-button,
204 | [type="number"]::-webkit-outer-spin-button {
205 | height: auto;
206 | }
207 |
208 | [type="search"] {
209 | -webkit-appearance: textfield;
210 | outline-offset: -2px;
211 | }
212 |
213 | [type="search"]::-webkit-search-cancel-button,
214 | [type="search"]::-webkit-search-decoration {
215 | -webkit-appearance: none;
216 | }
217 |
218 | ::-webkit-file-upload-button {
219 | -webkit-appearance: button;
220 | font: inherit;
221 | }
222 |
223 | details,
224 | menu {
225 | display: block;
226 | }
227 |
228 | summary {
229 | display: list-item;
230 | }
231 |
232 | canvas {
233 | display: inline-block;
234 | }
235 |
236 | template {
237 | display: none;
238 | }
239 |
240 | [hidden] {
241 | display: none;
242 | }
243 | `
244 |
--------------------------------------------------------------------------------
/npm-shrinkwrap.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rurarar",
3 | "version": "0.1.0",
4 | "dependencies": {
5 | "abbrev": {
6 | "version": "1.0.9",
7 | "from": "abbrev@>=1.0.0 <2.0.0",
8 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
9 | "dev": true
10 | },
11 | "accepts": {
12 | "version": "1.3.3",
13 | "from": "accepts@>=1.3.3 <1.4.0",
14 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz"
15 | },
16 | "acorn": {
17 | "version": "4.0.4",
18 | "from": "acorn@>=4.0.1 <5.0.0",
19 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
20 | "dev": true
21 | },
22 | "acorn-dynamic-import": {
23 | "version": "2.0.1",
24 | "from": "acorn-dynamic-import@>=2.0.0 <3.0.0",
25 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.1.tgz",
26 | "dev": true
27 | },
28 | "acorn-jsx": {
29 | "version": "3.0.1",
30 | "from": "acorn-jsx@>=3.0.0 <4.0.0",
31 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
32 | "dev": true,
33 | "dependencies": {
34 | "acorn": {
35 | "version": "3.3.0",
36 | "from": "acorn@>=3.0.4 <4.0.0",
37 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
38 | "dev": true
39 | }
40 | }
41 | },
42 | "ajv": {
43 | "version": "4.10.3",
44 | "from": "ajv@>=4.7.0 <5.0.0",
45 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.10.3.tgz",
46 | "dev": true
47 | },
48 | "ajv-keywords": {
49 | "version": "1.5.0",
50 | "from": "ajv-keywords@>=1.0.0 <2.0.0",
51 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.0.tgz",
52 | "dev": true
53 | },
54 | "align-text": {
55 | "version": "0.1.4",
56 | "from": "align-text@>=0.1.3 <0.2.0",
57 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
58 | "dev": true
59 | },
60 | "ansi-escapes": {
61 | "version": "1.4.0",
62 | "from": "ansi-escapes@>=1.1.0 <2.0.0",
63 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
64 | "dev": true
65 | },
66 | "ansi-html": {
67 | "version": "0.0.6",
68 | "from": "ansi-html@0.0.6",
69 | "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.6.tgz",
70 | "dev": true
71 | },
72 | "ansi-regex": {
73 | "version": "2.0.0",
74 | "from": "ansi-regex@>=2.0.0 <3.0.0",
75 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
76 | },
77 | "ansi-styles": {
78 | "version": "2.2.1",
79 | "from": "ansi-styles@>=2.2.1 <3.0.0",
80 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
81 | },
82 | "anymatch": {
83 | "version": "1.3.0",
84 | "from": "anymatch@>=1.3.0 <2.0.0",
85 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
86 | "dev": true
87 | },
88 | "argparse": {
89 | "version": "1.0.9",
90 | "from": "argparse@>=1.0.7 <2.0.0",
91 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
92 | "dev": true
93 | },
94 | "arr-diff": {
95 | "version": "2.0.0",
96 | "from": "arr-diff@>=2.0.0 <3.0.0",
97 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
98 | "dev": true
99 | },
100 | "arr-flatten": {
101 | "version": "1.0.1",
102 | "from": "arr-flatten@>=1.0.1 <2.0.0",
103 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
104 | "dev": true
105 | },
106 | "array-flatten": {
107 | "version": "1.1.1",
108 | "from": "array-flatten@1.1.1",
109 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
110 | },
111 | "array-union": {
112 | "version": "1.0.2",
113 | "from": "array-union@>=1.0.1 <2.0.0",
114 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
115 | "dev": true
116 | },
117 | "array-uniq": {
118 | "version": "1.0.3",
119 | "from": "array-uniq@>=1.0.1 <2.0.0",
120 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
121 | "dev": true
122 | },
123 | "array-unique": {
124 | "version": "0.2.1",
125 | "from": "array-unique@>=0.2.1 <0.3.0",
126 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
127 | "dev": true
128 | },
129 | "arrify": {
130 | "version": "1.0.1",
131 | "from": "arrify@>=1.0.0 <2.0.0",
132 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
133 | "dev": true
134 | },
135 | "asap": {
136 | "version": "2.0.5",
137 | "from": "asap@>=2.0.3 <2.1.0",
138 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz"
139 | },
140 | "asn1.js": {
141 | "version": "4.9.1",
142 | "from": "asn1.js@>=4.0.0 <5.0.0",
143 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
144 | "dev": true
145 | },
146 | "assert": {
147 | "version": "1.4.1",
148 | "from": "assert@>=1.1.1 <2.0.0",
149 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
150 | "dev": true
151 | },
152 | "async": {
153 | "version": "2.1.4",
154 | "from": "async@>=2.1.2 <3.0.0",
155 | "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz",
156 | "dev": true
157 | },
158 | "async-each": {
159 | "version": "1.0.1",
160 | "from": "async-each@>=1.0.0 <2.0.0",
161 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
162 | "dev": true
163 | },
164 | "axios": {
165 | "version": "0.15.3",
166 | "from": "axios@>=0.15.3 <0.16.0",
167 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz"
168 | },
169 | "babel-code-frame": {
170 | "version": "6.20.0",
171 | "from": "babel-code-frame@>=6.20.0 <7.0.0",
172 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.20.0.tgz"
173 | },
174 | "babel-core": {
175 | "version": "6.21.0",
176 | "from": "babel-core@>=6.17.0 <7.0.0",
177 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.21.0.tgz"
178 | },
179 | "babel-eslint": {
180 | "version": "7.1.1",
181 | "from": "babel-eslint@>=7.1.1 <8.0.0",
182 | "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.1.1.tgz",
183 | "dev": true
184 | },
185 | "babel-generator": {
186 | "version": "6.21.0",
187 | "from": "babel-generator@>=6.21.0 <7.0.0",
188 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.21.0.tgz"
189 | },
190 | "babel-helper-bindify-decorators": {
191 | "version": "6.18.0",
192 | "from": "babel-helper-bindify-decorators@>=6.18.0 <7.0.0",
193 | "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz"
194 | },
195 | "babel-helper-builder-binary-assignment-operator-visitor": {
196 | "version": "6.18.0",
197 | "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.8.0 <7.0.0",
198 | "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz"
199 | },
200 | "babel-helper-builder-react-jsx": {
201 | "version": "6.21.1",
202 | "from": "babel-helper-builder-react-jsx@>=6.8.0 <7.0.0",
203 | "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.21.1.tgz"
204 | },
205 | "babel-helper-call-delegate": {
206 | "version": "6.18.0",
207 | "from": "babel-helper-call-delegate@>=6.18.0 <7.0.0",
208 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz"
209 | },
210 | "babel-helper-define-map": {
211 | "version": "6.18.0",
212 | "from": "babel-helper-define-map@>=6.18.0 <7.0.0",
213 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz"
214 | },
215 | "babel-helper-explode-assignable-expression": {
216 | "version": "6.18.0",
217 | "from": "babel-helper-explode-assignable-expression@>=6.18.0 <7.0.0",
218 | "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz"
219 | },
220 | "babel-helper-explode-class": {
221 | "version": "6.18.0",
222 | "from": "babel-helper-explode-class@>=6.8.0 <7.0.0",
223 | "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz"
224 | },
225 | "babel-helper-function-name": {
226 | "version": "6.18.0",
227 | "from": "babel-helper-function-name@>=6.18.0 <7.0.0",
228 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz"
229 | },
230 | "babel-helper-get-function-arity": {
231 | "version": "6.18.0",
232 | "from": "babel-helper-get-function-arity@>=6.18.0 <7.0.0",
233 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz"
234 | },
235 | "babel-helper-hoist-variables": {
236 | "version": "6.18.0",
237 | "from": "babel-helper-hoist-variables@>=6.18.0 <7.0.0",
238 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz"
239 | },
240 | "babel-helper-optimise-call-expression": {
241 | "version": "6.18.0",
242 | "from": "babel-helper-optimise-call-expression@>=6.18.0 <7.0.0",
243 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz"
244 | },
245 | "babel-helper-regex": {
246 | "version": "6.18.0",
247 | "from": "babel-helper-regex@>=6.8.0 <7.0.0",
248 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz"
249 | },
250 | "babel-helper-remap-async-to-generator": {
251 | "version": "6.20.3",
252 | "from": "babel-helper-remap-async-to-generator@>=6.16.0 <7.0.0",
253 | "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.20.3.tgz"
254 | },
255 | "babel-helper-replace-supers": {
256 | "version": "6.18.0",
257 | "from": "babel-helper-replace-supers@>=6.18.0 <7.0.0",
258 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz"
259 | },
260 | "babel-helpers": {
261 | "version": "6.16.0",
262 | "from": "babel-helpers@>=6.16.0 <7.0.0",
263 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz"
264 | },
265 | "babel-loader": {
266 | "version": "6.2.10",
267 | "from": "babel-loader@>=6.2.5 <7.0.0",
268 | "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.10.tgz",
269 | "dev": true
270 | },
271 | "babel-messages": {
272 | "version": "6.8.0",
273 | "from": "babel-messages@>=6.8.0 <7.0.0",
274 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz"
275 | },
276 | "babel-plugin-check-es2015-constants": {
277 | "version": "6.8.0",
278 | "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0",
279 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz"
280 | },
281 | "babel-plugin-react-transform": {
282 | "version": "2.0.2",
283 | "from": "babel-plugin-react-transform@>=2.0.2 <3.0.0",
284 | "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz",
285 | "dev": true
286 | },
287 | "babel-plugin-styled-components": {
288 | "version": "0.0.2",
289 | "from": "babel-plugin-styled-components@latest",
290 | "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-0.0.2.tgz"
291 | },
292 | "babel-plugin-syntax-async-functions": {
293 | "version": "6.13.0",
294 | "from": "babel-plugin-syntax-async-functions@>=6.8.0 <7.0.0",
295 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz"
296 | },
297 | "babel-plugin-syntax-async-generators": {
298 | "version": "6.13.0",
299 | "from": "babel-plugin-syntax-async-generators@>=6.5.0 <7.0.0",
300 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz"
301 | },
302 | "babel-plugin-syntax-class-constructor-call": {
303 | "version": "6.18.0",
304 | "from": "babel-plugin-syntax-class-constructor-call@>=6.18.0 <7.0.0",
305 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz"
306 | },
307 | "babel-plugin-syntax-class-properties": {
308 | "version": "6.13.0",
309 | "from": "babel-plugin-syntax-class-properties@>=6.8.0 <7.0.0",
310 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz"
311 | },
312 | "babel-plugin-syntax-decorators": {
313 | "version": "6.13.0",
314 | "from": "babel-plugin-syntax-decorators@>=6.1.18 <7.0.0",
315 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz"
316 | },
317 | "babel-plugin-syntax-do-expressions": {
318 | "version": "6.13.0",
319 | "from": "babel-plugin-syntax-do-expressions@>=6.8.0 <7.0.0",
320 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz"
321 | },
322 | "babel-plugin-syntax-dynamic-import": {
323 | "version": "6.18.0",
324 | "from": "babel-plugin-syntax-dynamic-import@>=6.18.0 <7.0.0",
325 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz"
326 | },
327 | "babel-plugin-syntax-exponentiation-operator": {
328 | "version": "6.13.0",
329 | "from": "babel-plugin-syntax-exponentiation-operator@>=6.8.0 <7.0.0",
330 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz"
331 | },
332 | "babel-plugin-syntax-export-extensions": {
333 | "version": "6.13.0",
334 | "from": "babel-plugin-syntax-export-extensions@>=6.8.0 <7.0.0",
335 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz"
336 | },
337 | "babel-plugin-syntax-flow": {
338 | "version": "6.18.0",
339 | "from": "babel-plugin-syntax-flow@>=6.3.13 <7.0.0",
340 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz"
341 | },
342 | "babel-plugin-syntax-function-bind": {
343 | "version": "6.13.0",
344 | "from": "babel-plugin-syntax-function-bind@>=6.8.0 <7.0.0",
345 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz"
346 | },
347 | "babel-plugin-syntax-jsx": {
348 | "version": "6.18.0",
349 | "from": "babel-plugin-syntax-jsx@>=6.3.13 <7.0.0",
350 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz"
351 | },
352 | "babel-plugin-syntax-object-rest-spread": {
353 | "version": "6.13.0",
354 | "from": "babel-plugin-syntax-object-rest-spread@>=6.8.0 <7.0.0",
355 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz"
356 | },
357 | "babel-plugin-syntax-trailing-function-commas": {
358 | "version": "6.20.0",
359 | "from": "babel-plugin-syntax-trailing-function-commas@>=6.8.0 <7.0.0",
360 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.20.0.tgz"
361 | },
362 | "babel-plugin-transform-async-generator-functions": {
363 | "version": "6.17.0",
364 | "from": "babel-plugin-transform-async-generator-functions@>=6.17.0 <7.0.0",
365 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz"
366 | },
367 | "babel-plugin-transform-async-to-generator": {
368 | "version": "6.16.0",
369 | "from": "babel-plugin-transform-async-to-generator@>=6.16.0 <7.0.0",
370 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz"
371 | },
372 | "babel-plugin-transform-class-constructor-call": {
373 | "version": "6.18.0",
374 | "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0",
375 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz"
376 | },
377 | "babel-plugin-transform-class-properties": {
378 | "version": "6.19.0",
379 | "from": "babel-plugin-transform-class-properties@>=6.18.0 <7.0.0",
380 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz"
381 | },
382 | "babel-plugin-transform-decorators": {
383 | "version": "6.13.0",
384 | "from": "babel-plugin-transform-decorators@>=6.13.0 <7.0.0",
385 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz"
386 | },
387 | "babel-plugin-transform-do-expressions": {
388 | "version": "6.8.0",
389 | "from": "babel-plugin-transform-do-expressions@>=6.3.13 <7.0.0",
390 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.8.0.tgz"
391 | },
392 | "babel-plugin-transform-es2015-arrow-functions": {
393 | "version": "6.8.0",
394 | "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0",
395 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz"
396 | },
397 | "babel-plugin-transform-es2015-block-scoped-functions": {
398 | "version": "6.8.0",
399 | "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0",
400 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz"
401 | },
402 | "babel-plugin-transform-es2015-block-scoping": {
403 | "version": "6.21.0",
404 | "from": "babel-plugin-transform-es2015-block-scoping@>=6.18.0 <7.0.0",
405 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.21.0.tgz"
406 | },
407 | "babel-plugin-transform-es2015-classes": {
408 | "version": "6.18.0",
409 | "from": "babel-plugin-transform-es2015-classes@>=6.18.0 <7.0.0",
410 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz"
411 | },
412 | "babel-plugin-transform-es2015-computed-properties": {
413 | "version": "6.8.0",
414 | "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0",
415 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz"
416 | },
417 | "babel-plugin-transform-es2015-destructuring": {
418 | "version": "6.19.0",
419 | "from": "babel-plugin-transform-es2015-destructuring@>=6.18.0 <7.0.0",
420 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz"
421 | },
422 | "babel-plugin-transform-es2015-duplicate-keys": {
423 | "version": "6.8.0",
424 | "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0",
425 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz"
426 | },
427 | "babel-plugin-transform-es2015-for-of": {
428 | "version": "6.18.0",
429 | "from": "babel-plugin-transform-es2015-for-of@>=6.18.0 <7.0.0",
430 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz"
431 | },
432 | "babel-plugin-transform-es2015-function-name": {
433 | "version": "6.9.0",
434 | "from": "babel-plugin-transform-es2015-function-name@>=6.9.0 <7.0.0",
435 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz"
436 | },
437 | "babel-plugin-transform-es2015-literals": {
438 | "version": "6.8.0",
439 | "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0",
440 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz"
441 | },
442 | "babel-plugin-transform-es2015-modules-amd": {
443 | "version": "6.18.0",
444 | "from": "babel-plugin-transform-es2015-modules-amd@>=6.18.0 <7.0.0",
445 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz"
446 | },
447 | "babel-plugin-transform-es2015-modules-commonjs": {
448 | "version": "6.18.0",
449 | "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.18.0 <7.0.0",
450 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz"
451 | },
452 | "babel-plugin-transform-es2015-modules-systemjs": {
453 | "version": "6.19.0",
454 | "from": "babel-plugin-transform-es2015-modules-systemjs@>=6.18.0 <7.0.0",
455 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz"
456 | },
457 | "babel-plugin-transform-es2015-modules-umd": {
458 | "version": "6.18.0",
459 | "from": "babel-plugin-transform-es2015-modules-umd@>=6.18.0 <7.0.0",
460 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz"
461 | },
462 | "babel-plugin-transform-es2015-object-super": {
463 | "version": "6.8.0",
464 | "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0",
465 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz"
466 | },
467 | "babel-plugin-transform-es2015-parameters": {
468 | "version": "6.21.0",
469 | "from": "babel-plugin-transform-es2015-parameters@>=6.18.0 <7.0.0",
470 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz"
471 | },
472 | "babel-plugin-transform-es2015-shorthand-properties": {
473 | "version": "6.18.0",
474 | "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.18.0 <7.0.0",
475 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz"
476 | },
477 | "babel-plugin-transform-es2015-spread": {
478 | "version": "6.8.0",
479 | "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0",
480 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz"
481 | },
482 | "babel-plugin-transform-es2015-sticky-regex": {
483 | "version": "6.8.0",
484 | "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0",
485 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz"
486 | },
487 | "babel-plugin-transform-es2015-template-literals": {
488 | "version": "6.8.0",
489 | "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0",
490 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz"
491 | },
492 | "babel-plugin-transform-es2015-typeof-symbol": {
493 | "version": "6.18.0",
494 | "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.18.0 <7.0.0",
495 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz"
496 | },
497 | "babel-plugin-transform-es2015-unicode-regex": {
498 | "version": "6.11.0",
499 | "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0",
500 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz"
501 | },
502 | "babel-plugin-transform-exponentiation-operator": {
503 | "version": "6.8.0",
504 | "from": "babel-plugin-transform-exponentiation-operator@>=6.3.13 <7.0.0",
505 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz"
506 | },
507 | "babel-plugin-transform-export-extensions": {
508 | "version": "6.8.0",
509 | "from": "babel-plugin-transform-export-extensions@>=6.3.13 <7.0.0",
510 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz"
511 | },
512 | "babel-plugin-transform-flow-strip-types": {
513 | "version": "6.21.0",
514 | "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0",
515 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.21.0.tgz"
516 | },
517 | "babel-plugin-transform-function-bind": {
518 | "version": "6.8.0",
519 | "from": "babel-plugin-transform-function-bind@>=6.3.13 <7.0.0",
520 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.8.0.tgz"
521 | },
522 | "babel-plugin-transform-object-rest-spread": {
523 | "version": "6.20.2",
524 | "from": "babel-plugin-transform-object-rest-spread@>=6.16.0 <7.0.0",
525 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.20.2.tgz"
526 | },
527 | "babel-plugin-transform-react-constant-elements": {
528 | "version": "6.9.1",
529 | "from": "babel-plugin-transform-react-constant-elements@>=6.9.1 <7.0.0",
530 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.9.1.tgz"
531 | },
532 | "babel-plugin-transform-react-display-name": {
533 | "version": "6.8.0",
534 | "from": "babel-plugin-transform-react-display-name@>=6.3.13 <7.0.0",
535 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.8.0.tgz"
536 | },
537 | "babel-plugin-transform-react-inline-elements": {
538 | "version": "6.8.0",
539 | "from": "babel-plugin-transform-react-inline-elements@>=6.8.0 <7.0.0",
540 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-inline-elements/-/babel-plugin-transform-react-inline-elements-6.8.0.tgz"
541 | },
542 | "babel-plugin-transform-react-jsx": {
543 | "version": "6.8.0",
544 | "from": "babel-plugin-transform-react-jsx@>=6.3.13 <7.0.0",
545 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz"
546 | },
547 | "babel-plugin-transform-react-jsx-self": {
548 | "version": "6.11.0",
549 | "from": "babel-plugin-transform-react-jsx-self@>=6.11.0 <7.0.0",
550 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz"
551 | },
552 | "babel-plugin-transform-react-jsx-source": {
553 | "version": "6.9.0",
554 | "from": "babel-plugin-transform-react-jsx-source@>=6.3.13 <7.0.0",
555 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz"
556 | },
557 | "babel-plugin-transform-regenerator": {
558 | "version": "6.21.0",
559 | "from": "babel-plugin-transform-regenerator@>=6.16.0 <7.0.0",
560 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz"
561 | },
562 | "babel-plugin-transform-strict-mode": {
563 | "version": "6.18.0",
564 | "from": "babel-plugin-transform-strict-mode@>=6.18.0 <7.0.0",
565 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz"
566 | },
567 | "babel-polyfill": {
568 | "version": "6.20.0",
569 | "from": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.20.0.tgz",
570 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.20.0.tgz"
571 | },
572 | "babel-preset-es2015": {
573 | "version": "6.18.0",
574 | "from": "babel-preset-es2015@>=6.16.0 <7.0.0",
575 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz"
576 | },
577 | "babel-preset-es2016": {
578 | "version": "6.16.0",
579 | "from": "babel-preset-es2016@>=6.16.0 <7.0.0",
580 | "resolved": "https://registry.npmjs.org/babel-preset-es2016/-/babel-preset-es2016-6.16.0.tgz"
581 | },
582 | "babel-preset-es2017": {
583 | "version": "6.16.0",
584 | "from": "babel-preset-es2017@>=6.16.0 <7.0.0",
585 | "resolved": "https://registry.npmjs.org/babel-preset-es2017/-/babel-preset-es2017-6.16.0.tgz"
586 | },
587 | "babel-preset-react": {
588 | "version": "6.16.0",
589 | "from": "babel-preset-react@>=6.16.0 <7.0.0",
590 | "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.16.0.tgz"
591 | },
592 | "babel-preset-react-hmre": {
593 | "version": "1.1.1",
594 | "from": "babel-preset-react-hmre@>=1.1.1 <2.0.0",
595 | "resolved": "https://registry.npmjs.org/babel-preset-react-hmre/-/babel-preset-react-hmre-1.1.1.tgz",
596 | "dev": true
597 | },
598 | "babel-preset-stage-0": {
599 | "version": "6.16.0",
600 | "from": "babel-preset-stage-0@>=6.16.0 <7.0.0",
601 | "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.16.0.tgz"
602 | },
603 | "babel-preset-stage-1": {
604 | "version": "6.16.0",
605 | "from": "babel-preset-stage-1@>=6.16.0 <7.0.0",
606 | "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz"
607 | },
608 | "babel-preset-stage-2": {
609 | "version": "6.18.0",
610 | "from": "babel-preset-stage-2@>=6.16.0 <7.0.0",
611 | "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz"
612 | },
613 | "babel-preset-stage-3": {
614 | "version": "6.17.0",
615 | "from": "babel-preset-stage-3@>=6.17.0 <7.0.0",
616 | "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz"
617 | },
618 | "babel-register": {
619 | "version": "6.18.0",
620 | "from": "babel-register@>=6.16.3 <7.0.0",
621 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz"
622 | },
623 | "babel-runtime": {
624 | "version": "6.20.0",
625 | "from": "babel-runtime@>=6.20.0 <7.0.0",
626 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.20.0.tgz"
627 | },
628 | "babel-template": {
629 | "version": "6.16.0",
630 | "from": "babel-template@>=6.16.0 <7.0.0",
631 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz"
632 | },
633 | "babel-traverse": {
634 | "version": "6.21.0",
635 | "from": "babel-traverse@>=6.21.0 <7.0.0",
636 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.21.0.tgz"
637 | },
638 | "babel-types": {
639 | "version": "6.21.0",
640 | "from": "babel-types@>=6.21.0 <7.0.0",
641 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.21.0.tgz"
642 | },
643 | "babylon": {
644 | "version": "6.14.1",
645 | "from": "babylon@>=6.11.0 <7.0.0",
646 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.14.1.tgz"
647 | },
648 | "balanced-match": {
649 | "version": "0.4.2",
650 | "from": "balanced-match@>=0.4.1 <0.5.0",
651 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
652 | },
653 | "base64-js": {
654 | "version": "1.2.0",
655 | "from": "base64-js@>=1.0.2 <2.0.0",
656 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz"
657 | },
658 | "basic-auth": {
659 | "version": "1.0.4",
660 | "from": "basic-auth@>=1.0.3 <1.1.0",
661 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz"
662 | },
663 | "big.js": {
664 | "version": "3.1.3",
665 | "from": "big.js@>=3.1.3 <4.0.0",
666 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz",
667 | "dev": true
668 | },
669 | "binary-extensions": {
670 | "version": "1.8.0",
671 | "from": "binary-extensions@>=1.0.0 <2.0.0",
672 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz",
673 | "dev": true
674 | },
675 | "bn.js": {
676 | "version": "4.11.6",
677 | "from": "bn.js@>=4.1.1 <5.0.0",
678 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
679 | "dev": true
680 | },
681 | "bowser": {
682 | "version": "1.6.0",
683 | "from": "bowser@>=1.0.0 <2.0.0",
684 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.6.0.tgz"
685 | },
686 | "brace-expansion": {
687 | "version": "1.1.6",
688 | "from": "brace-expansion@>=1.0.0 <2.0.0",
689 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
690 | },
691 | "braces": {
692 | "version": "1.8.5",
693 | "from": "braces@>=1.8.2 <2.0.0",
694 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
695 | "dev": true
696 | },
697 | "brorand": {
698 | "version": "1.0.6",
699 | "from": "brorand@>=1.0.1 <2.0.0",
700 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.0.6.tgz",
701 | "dev": true
702 | },
703 | "browserify-aes": {
704 | "version": "1.0.6",
705 | "from": "browserify-aes@>=1.0.4 <2.0.0",
706 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
707 | "dev": true
708 | },
709 | "browserify-cipher": {
710 | "version": "1.0.0",
711 | "from": "browserify-cipher@>=1.0.0 <2.0.0",
712 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
713 | "dev": true
714 | },
715 | "browserify-des": {
716 | "version": "1.0.0",
717 | "from": "browserify-des@>=1.0.0 <2.0.0",
718 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
719 | "dev": true
720 | },
721 | "browserify-rsa": {
722 | "version": "4.0.1",
723 | "from": "browserify-rsa@>=4.0.0 <5.0.0",
724 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
725 | "dev": true
726 | },
727 | "browserify-sign": {
728 | "version": "4.0.0",
729 | "from": "browserify-sign@>=4.0.0 <5.0.0",
730 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz",
731 | "dev": true
732 | },
733 | "browserify-zlib": {
734 | "version": "0.1.4",
735 | "from": "browserify-zlib@>=0.1.4 <0.2.0",
736 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
737 | "dev": true
738 | },
739 | "buffer": {
740 | "version": "4.9.1",
741 | "from": "buffer@>=4.3.0 <5.0.0",
742 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
743 | "dev": true
744 | },
745 | "buffer-shims": {
746 | "version": "1.0.0",
747 | "from": "buffer-shims@>=1.0.0 <2.0.0",
748 | "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
749 | "dev": true
750 | },
751 | "buffer-xor": {
752 | "version": "1.0.3",
753 | "from": "buffer-xor@>=1.0.2 <2.0.0",
754 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
755 | "dev": true
756 | },
757 | "builtin-modules": {
758 | "version": "1.1.1",
759 | "from": "builtin-modules@>=1.1.1 <2.0.0",
760 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
761 | "dev": true
762 | },
763 | "builtin-status-codes": {
764 | "version": "2.0.0",
765 | "from": "builtin-status-codes@>=2.0.0 <3.0.0",
766 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-2.0.0.tgz",
767 | "dev": true
768 | },
769 | "caller-path": {
770 | "version": "0.1.0",
771 | "from": "caller-path@>=0.1.0 <0.2.0",
772 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
773 | "dev": true
774 | },
775 | "callsites": {
776 | "version": "0.2.0",
777 | "from": "callsites@>=0.2.0 <0.3.0",
778 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
779 | "dev": true
780 | },
781 | "camelcase": {
782 | "version": "1.2.1",
783 | "from": "camelcase@>=1.0.2 <2.0.0",
784 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
785 | "dev": true
786 | },
787 | "center-align": {
788 | "version": "0.1.3",
789 | "from": "center-align@>=0.1.1 <0.2.0",
790 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
791 | "dev": true
792 | },
793 | "chalk": {
794 | "version": "1.1.3",
795 | "from": "chalk@>=1.1.0 <2.0.0",
796 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
797 | },
798 | "change-emitter": {
799 | "version": "0.1.2",
800 | "from": "change-emitter@>=0.1.2 <0.2.0",
801 | "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.2.tgz"
802 | },
803 | "chokidar": {
804 | "version": "1.6.1",
805 | "from": "chokidar@>=1.6.1 <2.0.0",
806 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz",
807 | "dev": true
808 | },
809 | "cipher-base": {
810 | "version": "1.0.3",
811 | "from": "cipher-base@>=1.0.0 <2.0.0",
812 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
813 | "dev": true
814 | },
815 | "circular-json": {
816 | "version": "0.3.1",
817 | "from": "circular-json@>=0.3.1 <0.4.0",
818 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
819 | "dev": true
820 | },
821 | "classnames": {
822 | "version": "2.2.5",
823 | "from": "classnames@>=2.2.5 <3.0.0",
824 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz"
825 | },
826 | "cli-cursor": {
827 | "version": "1.0.2",
828 | "from": "cli-cursor@>=1.0.1 <2.0.0",
829 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
830 | "dev": true
831 | },
832 | "cli-width": {
833 | "version": "2.1.0",
834 | "from": "cli-width@>=2.0.0 <3.0.0",
835 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
836 | "dev": true
837 | },
838 | "cliui": {
839 | "version": "2.1.0",
840 | "from": "cliui@>=2.1.0 <3.0.0",
841 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
842 | "dev": true,
843 | "dependencies": {
844 | "wordwrap": {
845 | "version": "0.0.2",
846 | "from": "wordwrap@0.0.2",
847 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
848 | "dev": true
849 | }
850 | }
851 | },
852 | "co": {
853 | "version": "4.6.0",
854 | "from": "co@>=4.6.0 <5.0.0",
855 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
856 | "dev": true
857 | },
858 | "code-point-at": {
859 | "version": "1.1.0",
860 | "from": "code-point-at@>=1.0.0 <2.0.0",
861 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
862 | "dev": true
863 | },
864 | "colors": {
865 | "version": "0.5.1",
866 | "from": "colors@>=0.5.0 <0.6.0",
867 | "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz"
868 | },
869 | "commondir": {
870 | "version": "1.0.1",
871 | "from": "commondir@>=1.0.1 <2.0.0",
872 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
873 | "dev": true
874 | },
875 | "concat-map": {
876 | "version": "0.0.1",
877 | "from": "concat-map@0.0.1",
878 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
879 | },
880 | "concat-stream": {
881 | "version": "1.6.0",
882 | "from": "concat-stream@>=1.4.6 <2.0.0",
883 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
884 | "dev": true
885 | },
886 | "configstore": {
887 | "version": "1.4.0",
888 | "from": "configstore@>=1.0.0 <2.0.0",
889 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
890 | "dev": true
891 | },
892 | "console-browserify": {
893 | "version": "1.1.0",
894 | "from": "console-browserify@>=1.1.0 <2.0.0",
895 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
896 | "dev": true
897 | },
898 | "constants-browserify": {
899 | "version": "1.0.0",
900 | "from": "constants-browserify@>=1.0.0 <2.0.0",
901 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
902 | "dev": true
903 | },
904 | "contains-path": {
905 | "version": "0.1.0",
906 | "from": "contains-path@>=0.1.0 <0.2.0",
907 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
908 | "dev": true
909 | },
910 | "content-disposition": {
911 | "version": "0.5.1",
912 | "from": "content-disposition@0.5.1",
913 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz"
914 | },
915 | "content-type": {
916 | "version": "1.0.2",
917 | "from": "content-type@>=1.0.2 <1.1.0",
918 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz"
919 | },
920 | "convert-source-map": {
921 | "version": "1.3.0",
922 | "from": "convert-source-map@>=1.1.0 <2.0.0",
923 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz"
924 | },
925 | "cookie": {
926 | "version": "0.3.1",
927 | "from": "cookie@0.3.1",
928 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
929 | },
930 | "cookie-signature": {
931 | "version": "1.0.6",
932 | "from": "cookie-signature@1.0.6",
933 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
934 | },
935 | "core-js": {
936 | "version": "2.4.1",
937 | "from": "core-js@>=2.4.0 <3.0.0",
938 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
939 | },
940 | "core-util-is": {
941 | "version": "1.0.2",
942 | "from": "core-util-is@>=1.0.0 <1.1.0",
943 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
944 | "dev": true
945 | },
946 | "create-ecdh": {
947 | "version": "4.0.0",
948 | "from": "create-ecdh@>=4.0.0 <5.0.0",
949 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
950 | "dev": true
951 | },
952 | "create-hash": {
953 | "version": "1.1.2",
954 | "from": "create-hash@>=1.1.0 <2.0.0",
955 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
956 | "dev": true
957 | },
958 | "create-hmac": {
959 | "version": "1.1.4",
960 | "from": "create-hmac@>=1.1.0 <2.0.0",
961 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
962 | "dev": true
963 | },
964 | "crypto-browserify": {
965 | "version": "3.11.0",
966 | "from": "crypto-browserify@>=3.11.0 <4.0.0",
967 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
968 | "dev": true
969 | },
970 | "css-color-list": {
971 | "version": "0.0.1",
972 | "from": "css-color-list@0.0.1",
973 | "resolved": "https://registry.npmjs.org/css-color-list/-/css-color-list-0.0.1.tgz"
974 | },
975 | "css-color-names": {
976 | "version": "0.0.1",
977 | "from": "css-color-names@0.0.1",
978 | "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.1.tgz"
979 | },
980 | "css-to-react-native": {
981 | "version": "1.0.6",
982 | "from": "css-to-react-native@>=1.0.6 <2.0.0",
983 | "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-1.0.6.tgz"
984 | },
985 | "d": {
986 | "version": "0.1.1",
987 | "from": "d@>=0.1.1 <0.2.0",
988 | "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
989 | "dev": true
990 | },
991 | "damerau-levenshtein": {
992 | "version": "1.0.3",
993 | "from": "damerau-levenshtein@>=1.0.0 <2.0.0",
994 | "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz",
995 | "dev": true
996 | },
997 | "date-now": {
998 | "version": "0.1.4",
999 | "from": "date-now@>=0.1.4 <0.2.0",
1000 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
1001 | "dev": true
1002 | },
1003 | "debug": {
1004 | "version": "2.6.0",
1005 | "from": "debug@>=2.2.0 <3.0.0",
1006 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz"
1007 | },
1008 | "decamelize": {
1009 | "version": "1.2.0",
1010 | "from": "decamelize@>=1.0.0 <2.0.0",
1011 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
1012 | "dev": true
1013 | },
1014 | "deep-extend": {
1015 | "version": "0.4.1",
1016 | "from": "deep-extend@>=0.4.0 <0.5.0",
1017 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
1018 | "dev": true
1019 | },
1020 | "deep-is": {
1021 | "version": "0.1.3",
1022 | "from": "deep-is@>=0.1.3 <0.2.0",
1023 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
1024 | "dev": true
1025 | },
1026 | "del": {
1027 | "version": "2.2.2",
1028 | "from": "del@>=2.0.2 <3.0.0",
1029 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
1030 | "dev": true
1031 | },
1032 | "depd": {
1033 | "version": "1.1.0",
1034 | "from": "depd@>=1.1.0 <1.2.0",
1035 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz"
1036 | },
1037 | "des.js": {
1038 | "version": "1.0.0",
1039 | "from": "des.js@>=1.0.0 <2.0.0",
1040 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
1041 | "dev": true
1042 | },
1043 | "destroy": {
1044 | "version": "1.0.4",
1045 | "from": "destroy@>=1.0.4 <1.1.0",
1046 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
1047 | },
1048 | "detect-indent": {
1049 | "version": "4.0.0",
1050 | "from": "detect-indent@>=4.0.0 <5.0.0",
1051 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz"
1052 | },
1053 | "diffie-hellman": {
1054 | "version": "5.0.2",
1055 | "from": "diffie-hellman@>=5.0.0 <6.0.0",
1056 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
1057 | "dev": true
1058 | },
1059 | "discontinuous-range": {
1060 | "version": "1.0.0",
1061 | "from": "discontinuous-range@1.0.0",
1062 | "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz"
1063 | },
1064 | "doctrine": {
1065 | "version": "1.5.0",
1066 | "from": "doctrine@>=1.2.2 <2.0.0",
1067 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
1068 | "dev": true
1069 | },
1070 | "dom-walk": {
1071 | "version": "0.1.1",
1072 | "from": "dom-walk@>=0.1.0 <0.2.0",
1073 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
1074 | "dev": true
1075 | },
1076 | "domain-browser": {
1077 | "version": "1.1.7",
1078 | "from": "domain-browser@>=1.1.1 <2.0.0",
1079 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
1080 | "dev": true
1081 | },
1082 | "duplexer": {
1083 | "version": "0.1.1",
1084 | "from": "duplexer@>=0.1.1 <0.2.0",
1085 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
1086 | "dev": true
1087 | },
1088 | "duplexify": {
1089 | "version": "3.5.0",
1090 | "from": "duplexify@>=3.2.0 <4.0.0",
1091 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
1092 | "dev": true
1093 | },
1094 | "ee-first": {
1095 | "version": "1.1.1",
1096 | "from": "ee-first@1.1.1",
1097 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
1098 | },
1099 | "elliptic": {
1100 | "version": "6.3.2",
1101 | "from": "elliptic@>=6.0.0 <7.0.0",
1102 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz",
1103 | "dev": true
1104 | },
1105 | "emojis-list": {
1106 | "version": "2.1.0",
1107 | "from": "emojis-list@>=2.0.0 <3.0.0",
1108 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
1109 | "dev": true
1110 | },
1111 | "encodeurl": {
1112 | "version": "1.0.1",
1113 | "from": "encodeurl@>=1.0.1 <1.1.0",
1114 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz"
1115 | },
1116 | "encoding": {
1117 | "version": "0.1.12",
1118 | "from": "encoding@>=0.1.11 <0.2.0",
1119 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"
1120 | },
1121 | "end-of-stream": {
1122 | "version": "1.0.0",
1123 | "from": "end-of-stream@1.0.0",
1124 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
1125 | "dev": true,
1126 | "dependencies": {
1127 | "once": {
1128 | "version": "1.3.3",
1129 | "from": "once@>=1.3.0 <1.4.0",
1130 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
1131 | "dev": true
1132 | }
1133 | }
1134 | },
1135 | "enhanced-resolve": {
1136 | "version": "3.0.2",
1137 | "from": "enhanced-resolve@>=3.0.0 <4.0.0",
1138 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.0.2.tgz",
1139 | "dev": true,
1140 | "dependencies": {
1141 | "memory-fs": {
1142 | "version": "0.4.1",
1143 | "from": "memory-fs@>=0.4.0 <0.5.0",
1144 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
1145 | "dev": true
1146 | }
1147 | }
1148 | },
1149 | "errno": {
1150 | "version": "0.1.4",
1151 | "from": "errno@>=0.1.3 <0.2.0",
1152 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
1153 | "dev": true
1154 | },
1155 | "error-ex": {
1156 | "version": "1.3.0",
1157 | "from": "error-ex@>=1.2.0 <2.0.0",
1158 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
1159 | "dev": true
1160 | },
1161 | "error-stack-parser": {
1162 | "version": "1.3.6",
1163 | "from": "error-stack-parser@>=1.3.6 <2.0.0",
1164 | "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz",
1165 | "dev": true
1166 | },
1167 | "es5-ext": {
1168 | "version": "0.10.12",
1169 | "from": "es5-ext@>=0.10.11 <0.11.0",
1170 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
1171 | "dev": true
1172 | },
1173 | "es6-iterator": {
1174 | "version": "2.0.0",
1175 | "from": "es6-iterator@>=2.0.0 <3.0.0",
1176 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
1177 | "dev": true
1178 | },
1179 | "es6-map": {
1180 | "version": "0.1.4",
1181 | "from": "es6-map@>=0.1.3 <0.2.0",
1182 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz",
1183 | "dev": true
1184 | },
1185 | "es6-promise": {
1186 | "version": "3.3.1",
1187 | "from": "es6-promise@>=3.0.2 <4.0.0",
1188 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
1189 | "dev": true
1190 | },
1191 | "es6-set": {
1192 | "version": "0.1.4",
1193 | "from": "es6-set@>=0.1.3 <0.2.0",
1194 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz",
1195 | "dev": true
1196 | },
1197 | "es6-symbol": {
1198 | "version": "3.1.0",
1199 | "from": "es6-symbol@>=3.1.0 <3.2.0",
1200 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz",
1201 | "dev": true
1202 | },
1203 | "es6-weak-map": {
1204 | "version": "2.0.1",
1205 | "from": "es6-weak-map@>=2.0.1 <3.0.0",
1206 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz",
1207 | "dev": true
1208 | },
1209 | "escape-html": {
1210 | "version": "1.0.3",
1211 | "from": "escape-html@>=1.0.3 <1.1.0",
1212 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
1213 | },
1214 | "escape-string-regexp": {
1215 | "version": "1.0.5",
1216 | "from": "escape-string-regexp@>=1.0.2 <2.0.0",
1217 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
1218 | },
1219 | "escope": {
1220 | "version": "3.6.0",
1221 | "from": "escope@>=3.6.0 <4.0.0",
1222 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
1223 | "dev": true
1224 | },
1225 | "eslint": {
1226 | "version": "3.12.2",
1227 | "from": "eslint@>=3.12.2 <4.0.0",
1228 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.12.2.tgz",
1229 | "dev": true
1230 | },
1231 | "eslint-config-airbnb": {
1232 | "version": "13.0.0",
1233 | "from": "eslint-config-airbnb@>=13.0.0 <14.0.0",
1234 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-13.0.0.tgz",
1235 | "dev": true
1236 | },
1237 | "eslint-config-airbnb-base": {
1238 | "version": "10.0.1",
1239 | "from": "eslint-config-airbnb-base@>=10.0.0 <11.0.0",
1240 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz",
1241 | "dev": true
1242 | },
1243 | "eslint-import-resolver-node": {
1244 | "version": "0.2.3",
1245 | "from": "eslint-import-resolver-node@>=0.2.0 <0.3.0",
1246 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz",
1247 | "dev": true
1248 | },
1249 | "eslint-module-utils": {
1250 | "version": "2.0.0",
1251 | "from": "eslint-module-utils@>=2.0.0 <3.0.0",
1252 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz",
1253 | "dev": true,
1254 | "dependencies": {
1255 | "debug": {
1256 | "version": "2.2.0",
1257 | "from": "debug@2.2.0",
1258 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
1259 | "dev": true
1260 | },
1261 | "ms": {
1262 | "version": "0.7.1",
1263 | "from": "ms@0.7.1",
1264 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
1265 | "dev": true
1266 | }
1267 | }
1268 | },
1269 | "eslint-plugin-import": {
1270 | "version": "2.2.0",
1271 | "from": "eslint-plugin-import@>=2.2.0 <3.0.0",
1272 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz",
1273 | "dev": true
1274 | },
1275 | "eslint-plugin-jsx-a11y": {
1276 | "version": "2.2.3",
1277 | "from": "eslint-plugin-jsx-a11y@>=2.2.3 <3.0.0",
1278 | "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-2.2.3.tgz",
1279 | "dev": true
1280 | },
1281 | "eslint-plugin-react": {
1282 | "version": "6.8.0",
1283 | "from": "eslint-plugin-react@>=6.8.0 <7.0.0",
1284 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.8.0.tgz",
1285 | "dev": true
1286 | },
1287 | "espree": {
1288 | "version": "3.3.2",
1289 | "from": "espree@>=3.3.1 <4.0.0",
1290 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.3.2.tgz",
1291 | "dev": true
1292 | },
1293 | "esprima": {
1294 | "version": "2.7.3",
1295 | "from": "esprima@>=2.6.0 <3.0.0",
1296 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
1297 | "dev": true
1298 | },
1299 | "esrecurse": {
1300 | "version": "4.1.0",
1301 | "from": "esrecurse@>=4.1.0 <5.0.0",
1302 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz",
1303 | "dev": true,
1304 | "dependencies": {
1305 | "estraverse": {
1306 | "version": "4.1.1",
1307 | "from": "estraverse@>=4.1.0 <4.2.0",
1308 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
1309 | "dev": true
1310 | }
1311 | }
1312 | },
1313 | "estraverse": {
1314 | "version": "4.2.0",
1315 | "from": "estraverse@>=4.2.0 <5.0.0",
1316 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
1317 | "dev": true
1318 | },
1319 | "esutils": {
1320 | "version": "2.0.2",
1321 | "from": "esutils@>=2.0.2 <3.0.0",
1322 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
1323 | },
1324 | "etag": {
1325 | "version": "1.7.0",
1326 | "from": "etag@>=1.7.0 <1.8.0",
1327 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz"
1328 | },
1329 | "event-emitter": {
1330 | "version": "0.3.4",
1331 | "from": "event-emitter@>=0.3.4 <0.4.0",
1332 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz",
1333 | "dev": true
1334 | },
1335 | "event-stream": {
1336 | "version": "3.3.4",
1337 | "from": "event-stream@>=3.3.0 <3.4.0",
1338 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
1339 | "dev": true
1340 | },
1341 | "events": {
1342 | "version": "1.1.1",
1343 | "from": "events@>=1.0.0 <2.0.0",
1344 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
1345 | "dev": true
1346 | },
1347 | "evp_bytestokey": {
1348 | "version": "1.0.0",
1349 | "from": "evp_bytestokey@>=1.0.0 <2.0.0",
1350 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
1351 | "dev": true
1352 | },
1353 | "exit-hook": {
1354 | "version": "1.1.1",
1355 | "from": "exit-hook@>=1.0.0 <2.0.0",
1356 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
1357 | "dev": true
1358 | },
1359 | "expand-brackets": {
1360 | "version": "0.1.5",
1361 | "from": "expand-brackets@>=0.1.4 <0.2.0",
1362 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
1363 | "dev": true
1364 | },
1365 | "expand-range": {
1366 | "version": "1.8.2",
1367 | "from": "expand-range@>=1.8.1 <2.0.0",
1368 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
1369 | "dev": true
1370 | },
1371 | "express": {
1372 | "version": "4.14.0",
1373 | "from": "express@>=4.14.0 <5.0.0",
1374 | "resolved": "https://registry.npmjs.org/express/-/express-4.14.0.tgz",
1375 | "dependencies": {
1376 | "debug": {
1377 | "version": "2.2.0",
1378 | "from": "debug@>=2.2.0 <2.3.0",
1379 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
1380 | },
1381 | "ms": {
1382 | "version": "0.7.1",
1383 | "from": "ms@0.7.1",
1384 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
1385 | }
1386 | }
1387 | },
1388 | "extglob": {
1389 | "version": "0.3.2",
1390 | "from": "extglob@>=0.3.1 <0.4.0",
1391 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
1392 | "dev": true
1393 | },
1394 | "fast-levenshtein": {
1395 | "version": "2.0.6",
1396 | "from": "fast-levenshtein@>=2.0.4 <2.1.0",
1397 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1398 | "dev": true
1399 | },
1400 | "fbjs": {
1401 | "version": "0.8.8",
1402 | "from": "fbjs@>=0.8.4 <0.9.0",
1403 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.8.tgz",
1404 | "dependencies": {
1405 | "core-js": {
1406 | "version": "1.2.7",
1407 | "from": "core-js@>=1.0.0 <2.0.0",
1408 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz"
1409 | }
1410 | }
1411 | },
1412 | "figures": {
1413 | "version": "1.7.0",
1414 | "from": "figures@>=1.3.5 <2.0.0",
1415 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
1416 | "dev": true
1417 | },
1418 | "file-entry-cache": {
1419 | "version": "2.0.0",
1420 | "from": "file-entry-cache@>=2.0.0 <3.0.0",
1421 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
1422 | "dev": true
1423 | },
1424 | "filename-regex": {
1425 | "version": "2.0.0",
1426 | "from": "filename-regex@>=2.0.0 <3.0.0",
1427 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
1428 | "dev": true
1429 | },
1430 | "fill-range": {
1431 | "version": "2.2.3",
1432 | "from": "fill-range@>=2.1.0 <3.0.0",
1433 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
1434 | "dev": true
1435 | },
1436 | "finalhandler": {
1437 | "version": "0.5.0",
1438 | "from": "finalhandler@0.5.0",
1439 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz",
1440 | "dependencies": {
1441 | "debug": {
1442 | "version": "2.2.0",
1443 | "from": "debug@>=2.2.0 <2.3.0",
1444 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
1445 | },
1446 | "ms": {
1447 | "version": "0.7.1",
1448 | "from": "ms@0.7.1",
1449 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
1450 | }
1451 | }
1452 | },
1453 | "find-cache-dir": {
1454 | "version": "0.1.1",
1455 | "from": "find-cache-dir@>=0.1.1 <0.2.0",
1456 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
1457 | "dev": true
1458 | },
1459 | "find-up": {
1460 | "version": "1.1.2",
1461 | "from": "find-up@>=1.0.0 <2.0.0",
1462 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1463 | "dev": true
1464 | },
1465 | "flat-cache": {
1466 | "version": "1.2.2",
1467 | "from": "flat-cache@>=1.2.1 <2.0.0",
1468 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
1469 | "dev": true
1470 | },
1471 | "follow-redirects": {
1472 | "version": "1.0.0",
1473 | "from": "follow-redirects@1.0.0",
1474 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz"
1475 | },
1476 | "for-in": {
1477 | "version": "0.1.6",
1478 | "from": "for-in@>=0.1.5 <0.2.0",
1479 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz",
1480 | "dev": true
1481 | },
1482 | "for-own": {
1483 | "version": "0.1.4",
1484 | "from": "for-own@>=0.1.4 <0.2.0",
1485 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
1486 | "dev": true
1487 | },
1488 | "forwarded": {
1489 | "version": "0.1.0",
1490 | "from": "forwarded@>=0.1.0 <0.2.0",
1491 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz"
1492 | },
1493 | "fresh": {
1494 | "version": "0.3.0",
1495 | "from": "fresh@0.3.0",
1496 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz"
1497 | },
1498 | "from": {
1499 | "version": "0.1.3",
1500 | "from": "from@>=0.0.0 <1.0.0",
1501 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.3.tgz",
1502 | "dev": true
1503 | },
1504 | "fs.realpath": {
1505 | "version": "1.0.0",
1506 | "from": "fs.realpath@>=1.0.0 <2.0.0",
1507 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1508 | "dev": true
1509 | },
1510 | "function-bind": {
1511 | "version": "1.1.0",
1512 | "from": "function-bind@>=1.0.2 <2.0.0",
1513 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
1514 | "dev": true
1515 | },
1516 | "generate-function": {
1517 | "version": "2.0.0",
1518 | "from": "generate-function@>=2.0.0 <3.0.0",
1519 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
1520 | "dev": true
1521 | },
1522 | "generate-object-property": {
1523 | "version": "1.2.0",
1524 | "from": "generate-object-property@>=1.1.0 <2.0.0",
1525 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
1526 | "dev": true
1527 | },
1528 | "get-caller-file": {
1529 | "version": "1.0.2",
1530 | "from": "get-caller-file@>=1.0.1 <2.0.0",
1531 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
1532 | "dev": true
1533 | },
1534 | "glamor": {
1535 | "version": "2.20.20",
1536 | "from": "glamor@>=2.15.5 <3.0.0",
1537 | "resolved": "https://registry.npmjs.org/glamor/-/glamor-2.20.20.tgz"
1538 | },
1539 | "glob": {
1540 | "version": "7.1.1",
1541 | "from": "glob@>=7.0.3 <8.0.0",
1542 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
1543 | "dev": true
1544 | },
1545 | "glob-base": {
1546 | "version": "0.3.0",
1547 | "from": "glob-base@>=0.3.0 <0.4.0",
1548 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1549 | "dev": true
1550 | },
1551 | "glob-parent": {
1552 | "version": "2.0.0",
1553 | "from": "glob-parent@>=2.0.0 <3.0.0",
1554 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1555 | "dev": true
1556 | },
1557 | "global": {
1558 | "version": "4.3.1",
1559 | "from": "global@>=4.3.0 <5.0.0",
1560 | "resolved": "https://registry.npmjs.org/global/-/global-4.3.1.tgz",
1561 | "dev": true
1562 | },
1563 | "globals": {
1564 | "version": "9.14.0",
1565 | "from": "globals@>=9.0.0 <10.0.0",
1566 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz"
1567 | },
1568 | "globby": {
1569 | "version": "5.0.0",
1570 | "from": "globby@>=5.0.0 <6.0.0",
1571 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
1572 | "dev": true
1573 | },
1574 | "google-material-color": {
1575 | "version": "1.3.1",
1576 | "from": "google-material-color@>=1.3.1 <2.0.0",
1577 | "resolved": "https://registry.npmjs.org/google-material-color/-/google-material-color-1.3.1.tgz",
1578 | "dependencies": {
1579 | "lodash": {
1580 | "version": "2.4.2",
1581 | "from": "lodash@>=2.4.1 <3.0.0",
1582 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
1583 | }
1584 | }
1585 | },
1586 | "got": {
1587 | "version": "3.3.1",
1588 | "from": "got@>=3.2.0 <4.0.0",
1589 | "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
1590 | "dev": true,
1591 | "dependencies": {
1592 | "object-assign": {
1593 | "version": "3.0.0",
1594 | "from": "object-assign@>=3.0.0 <4.0.0",
1595 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
1596 | "dev": true
1597 | }
1598 | }
1599 | },
1600 | "graceful-fs": {
1601 | "version": "4.1.11",
1602 | "from": "graceful-fs@>=4.1.2 <5.0.0",
1603 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1604 | "dev": true
1605 | },
1606 | "has": {
1607 | "version": "1.0.1",
1608 | "from": "has@>=1.0.1 <2.0.0",
1609 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
1610 | "dev": true
1611 | },
1612 | "has-ansi": {
1613 | "version": "2.0.0",
1614 | "from": "has-ansi@>=2.0.0 <3.0.0",
1615 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
1616 | },
1617 | "has-flag": {
1618 | "version": "1.0.0",
1619 | "from": "has-flag@>=1.0.0 <2.0.0",
1620 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
1621 | },
1622 | "hash.js": {
1623 | "version": "1.0.3",
1624 | "from": "hash.js@>=1.0.0 <2.0.0",
1625 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
1626 | "dev": true
1627 | },
1628 | "history": {
1629 | "version": "3.2.1",
1630 | "from": "history@>=3.0.0 <4.0.0",
1631 | "resolved": "https://registry.npmjs.org/history/-/history-3.2.1.tgz"
1632 | },
1633 | "hoist-non-react-statics": {
1634 | "version": "1.2.0",
1635 | "from": "hoist-non-react-statics@>=1.2.0 <2.0.0",
1636 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz"
1637 | },
1638 | "home-or-tmp": {
1639 | "version": "2.0.0",
1640 | "from": "home-or-tmp@>=2.0.0 <3.0.0",
1641 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz"
1642 | },
1643 | "hosted-git-info": {
1644 | "version": "2.1.5",
1645 | "from": "hosted-git-info@>=2.1.4 <3.0.0",
1646 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
1647 | "dev": true
1648 | },
1649 | "html-entities": {
1650 | "version": "1.2.0",
1651 | "from": "html-entities@>=1.2.0 <2.0.0",
1652 | "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.0.tgz",
1653 | "dev": true
1654 | },
1655 | "http-errors": {
1656 | "version": "1.5.1",
1657 | "from": "http-errors@>=1.5.0 <1.6.0",
1658 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz"
1659 | },
1660 | "https-browserify": {
1661 | "version": "0.0.1",
1662 | "from": "https-browserify@0.0.1",
1663 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
1664 | "dev": true
1665 | },
1666 | "hyphenate-style-name": {
1667 | "version": "1.0.2",
1668 | "from": "hyphenate-style-name@>=1.0.1 <2.0.0",
1669 | "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz"
1670 | },
1671 | "iconv-lite": {
1672 | "version": "0.4.15",
1673 | "from": "iconv-lite@>=0.4.13 <0.5.0",
1674 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
1675 | },
1676 | "ieee754": {
1677 | "version": "1.1.8",
1678 | "from": "ieee754@>=1.1.4 <2.0.0",
1679 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz"
1680 | },
1681 | "ignore": {
1682 | "version": "3.2.0",
1683 | "from": "ignore@>=3.2.0 <4.0.0",
1684 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.0.tgz",
1685 | "dev": true
1686 | },
1687 | "ignore-by-default": {
1688 | "version": "1.0.1",
1689 | "from": "ignore-by-default@>=1.0.0 <2.0.0",
1690 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
1691 | "dev": true
1692 | },
1693 | "imurmurhash": {
1694 | "version": "0.1.4",
1695 | "from": "imurmurhash@>=0.1.4 <0.2.0",
1696 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1697 | "dev": true
1698 | },
1699 | "indexof": {
1700 | "version": "0.0.1",
1701 | "from": "indexof@0.0.1",
1702 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
1703 | "dev": true
1704 | },
1705 | "infinity-agent": {
1706 | "version": "2.0.3",
1707 | "from": "infinity-agent@>=2.0.0 <3.0.0",
1708 | "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
1709 | "dev": true
1710 | },
1711 | "inflight": {
1712 | "version": "1.0.6",
1713 | "from": "inflight@>=1.0.4 <2.0.0",
1714 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1715 | "dev": true
1716 | },
1717 | "inherits": {
1718 | "version": "2.0.3",
1719 | "from": "inherits@2.0.3",
1720 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
1721 | },
1722 | "ini": {
1723 | "version": "1.3.4",
1724 | "from": "ini@>=1.3.0 <1.4.0",
1725 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
1726 | "dev": true
1727 | },
1728 | "inline-style-prefixer": {
1729 | "version": "2.0.5",
1730 | "from": "inline-style-prefixer@>=2.0.5 <3.0.0",
1731 | "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz"
1732 | },
1733 | "inquirer": {
1734 | "version": "0.12.0",
1735 | "from": "inquirer@>=0.12.0 <0.13.0",
1736 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
1737 | "dev": true
1738 | },
1739 | "interpret": {
1740 | "version": "1.0.1",
1741 | "from": "interpret@>=1.0.0 <2.0.0",
1742 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
1743 | "dev": true
1744 | },
1745 | "invariant": {
1746 | "version": "2.2.2",
1747 | "from": "invariant@>=2.2.0 <3.0.0",
1748 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz"
1749 | },
1750 | "invert-kv": {
1751 | "version": "1.0.0",
1752 | "from": "invert-kv@>=1.0.0 <2.0.0",
1753 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
1754 | "dev": true
1755 | },
1756 | "ipaddr.js": {
1757 | "version": "1.1.1",
1758 | "from": "ipaddr.js@1.1.1",
1759 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.1.1.tgz"
1760 | },
1761 | "is-arrayish": {
1762 | "version": "0.2.1",
1763 | "from": "is-arrayish@>=0.2.1 <0.3.0",
1764 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1765 | "dev": true
1766 | },
1767 | "is-binary-path": {
1768 | "version": "1.0.1",
1769 | "from": "is-binary-path@>=1.0.0 <2.0.0",
1770 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
1771 | "dev": true
1772 | },
1773 | "is-buffer": {
1774 | "version": "1.1.4",
1775 | "from": "is-buffer@>=1.0.2 <2.0.0",
1776 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
1777 | "dev": true
1778 | },
1779 | "is-builtin-module": {
1780 | "version": "1.0.0",
1781 | "from": "is-builtin-module@>=1.0.0 <2.0.0",
1782 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
1783 | "dev": true
1784 | },
1785 | "is-dotfile": {
1786 | "version": "1.0.2",
1787 | "from": "is-dotfile@>=1.0.0 <2.0.0",
1788 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
1789 | "dev": true
1790 | },
1791 | "is-equal-shallow": {
1792 | "version": "0.1.3",
1793 | "from": "is-equal-shallow@>=0.1.3 <0.2.0",
1794 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
1795 | "dev": true
1796 | },
1797 | "is-extendable": {
1798 | "version": "0.1.1",
1799 | "from": "is-extendable@>=0.1.1 <0.2.0",
1800 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1801 | "dev": true
1802 | },
1803 | "is-extglob": {
1804 | "version": "1.0.0",
1805 | "from": "is-extglob@>=1.0.0 <2.0.0",
1806 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1807 | "dev": true
1808 | },
1809 | "is-finite": {
1810 | "version": "1.0.2",
1811 | "from": "is-finite@>=1.0.0 <2.0.0",
1812 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
1813 | },
1814 | "is-fullwidth-code-point": {
1815 | "version": "1.0.0",
1816 | "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
1817 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1818 | "dev": true
1819 | },
1820 | "is-function": {
1821 | "version": "1.0.1",
1822 | "from": "is-function@>=1.0.1 <2.0.0",
1823 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz"
1824 | },
1825 | "is-glob": {
1826 | "version": "2.0.1",
1827 | "from": "is-glob@>=2.0.0 <3.0.0",
1828 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1829 | "dev": true
1830 | },
1831 | "is-my-json-valid": {
1832 | "version": "2.15.0",
1833 | "from": "is-my-json-valid@>=2.10.0 <3.0.0",
1834 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
1835 | "dev": true
1836 | },
1837 | "is-npm": {
1838 | "version": "1.0.0",
1839 | "from": "is-npm@>=1.0.0 <2.0.0",
1840 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
1841 | "dev": true
1842 | },
1843 | "is-number": {
1844 | "version": "2.1.0",
1845 | "from": "is-number@>=2.1.0 <3.0.0",
1846 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1847 | "dev": true
1848 | },
1849 | "is-path-cwd": {
1850 | "version": "1.0.0",
1851 | "from": "is-path-cwd@>=1.0.0 <2.0.0",
1852 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
1853 | "dev": true
1854 | },
1855 | "is-path-in-cwd": {
1856 | "version": "1.0.0",
1857 | "from": "is-path-in-cwd@>=1.0.0 <2.0.0",
1858 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
1859 | "dev": true
1860 | },
1861 | "is-path-inside": {
1862 | "version": "1.0.0",
1863 | "from": "is-path-inside@>=1.0.0 <2.0.0",
1864 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
1865 | "dev": true
1866 | },
1867 | "is-plain-object": {
1868 | "version": "2.0.1",
1869 | "from": "is-plain-object@>=2.0.1 <3.0.0",
1870 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.1.tgz",
1871 | "dependencies": {
1872 | "isobject": {
1873 | "version": "1.0.2",
1874 | "from": "isobject@>=1.0.0 <2.0.0",
1875 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz"
1876 | }
1877 | }
1878 | },
1879 | "is-posix-bracket": {
1880 | "version": "0.1.1",
1881 | "from": "is-posix-bracket@>=0.1.0 <0.2.0",
1882 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
1883 | "dev": true
1884 | },
1885 | "is-primitive": {
1886 | "version": "2.0.0",
1887 | "from": "is-primitive@>=2.0.0 <3.0.0",
1888 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
1889 | "dev": true
1890 | },
1891 | "is-property": {
1892 | "version": "1.0.2",
1893 | "from": "is-property@>=1.0.0 <2.0.0",
1894 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
1895 | "dev": true
1896 | },
1897 | "is-redirect": {
1898 | "version": "1.0.0",
1899 | "from": "is-redirect@>=1.0.0 <2.0.0",
1900 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
1901 | "dev": true
1902 | },
1903 | "is-resolvable": {
1904 | "version": "1.0.0",
1905 | "from": "is-resolvable@>=1.0.0 <2.0.0",
1906 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
1907 | "dev": true
1908 | },
1909 | "is-stream": {
1910 | "version": "1.1.0",
1911 | "from": "is-stream@>=1.0.1 <2.0.0",
1912 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
1913 | },
1914 | "is-utf8": {
1915 | "version": "0.2.1",
1916 | "from": "is-utf8@>=0.2.0 <0.3.0",
1917 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1918 | "dev": true
1919 | },
1920 | "isarray": {
1921 | "version": "1.0.0",
1922 | "from": "isarray@1.0.0",
1923 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1924 | "dev": true
1925 | },
1926 | "isobject": {
1927 | "version": "2.1.0",
1928 | "from": "isobject@>=2.0.0 <3.0.0",
1929 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1930 | "dev": true
1931 | },
1932 | "isomorphic-fetch": {
1933 | "version": "2.2.1",
1934 | "from": "isomorphic-fetch@>=2.1.1 <3.0.0",
1935 | "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz"
1936 | },
1937 | "js-tokens": {
1938 | "version": "2.0.0",
1939 | "from": "js-tokens@>=2.0.0 <3.0.0",
1940 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz"
1941 | },
1942 | "js-yaml": {
1943 | "version": "3.7.0",
1944 | "from": "js-yaml@>=3.5.1 <4.0.0",
1945 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
1946 | "dev": true
1947 | },
1948 | "jsesc": {
1949 | "version": "1.3.0",
1950 | "from": "jsesc@>=1.3.0 <2.0.0",
1951 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz"
1952 | },
1953 | "json-loader": {
1954 | "version": "0.5.4",
1955 | "from": "json-loader@>=0.5.4 <0.6.0",
1956 | "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz",
1957 | "dev": true
1958 | },
1959 | "json-stable-stringify": {
1960 | "version": "1.0.1",
1961 | "from": "json-stable-stringify@>=1.0.0 <2.0.0",
1962 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
1963 | "dev": true
1964 | },
1965 | "json5": {
1966 | "version": "0.5.1",
1967 | "from": "json5@>=0.5.0 <0.6.0",
1968 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"
1969 | },
1970 | "jsonify": {
1971 | "version": "0.0.0",
1972 | "from": "jsonify@>=0.0.0 <0.1.0",
1973 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
1974 | "dev": true
1975 | },
1976 | "jsonpointer": {
1977 | "version": "4.0.1",
1978 | "from": "jsonpointer@>=4.0.0 <5.0.0",
1979 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
1980 | "dev": true
1981 | },
1982 | "jsx-ast-utils": {
1983 | "version": "1.3.5",
1984 | "from": "jsx-ast-utils@>=1.0.0 <2.0.0",
1985 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.3.5.tgz",
1986 | "dev": true
1987 | },
1988 | "kind-of": {
1989 | "version": "3.1.0",
1990 | "from": "kind-of@>=3.0.2 <4.0.0",
1991 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
1992 | "dev": true
1993 | },
1994 | "latest-version": {
1995 | "version": "1.0.1",
1996 | "from": "latest-version@>=1.0.0 <2.0.0",
1997 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
1998 | "dev": true
1999 | },
2000 | "lazy-cache": {
2001 | "version": "1.0.4",
2002 | "from": "lazy-cache@>=1.0.3 <2.0.0",
2003 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
2004 | "dev": true
2005 | },
2006 | "lcid": {
2007 | "version": "1.0.0",
2008 | "from": "lcid@>=1.0.0 <2.0.0",
2009 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2010 | "dev": true
2011 | },
2012 | "levn": {
2013 | "version": "0.3.0",
2014 | "from": "levn@>=0.3.0 <0.4.0",
2015 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
2016 | "dev": true
2017 | },
2018 | "load-json-file": {
2019 | "version": "1.1.0",
2020 | "from": "load-json-file@>=1.0.0 <2.0.0",
2021 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2022 | "dev": true,
2023 | "dependencies": {
2024 | "strip-bom": {
2025 | "version": "2.0.0",
2026 | "from": "strip-bom@>=2.0.0 <3.0.0",
2027 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
2028 | "dev": true
2029 | }
2030 | }
2031 | },
2032 | "loader-runner": {
2033 | "version": "2.2.0",
2034 | "from": "loader-runner@>=2.2.0 <3.0.0",
2035 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.2.0.tgz",
2036 | "dev": true
2037 | },
2038 | "loader-utils": {
2039 | "version": "0.2.16",
2040 | "from": "loader-utils@>=0.2.11 <0.3.0",
2041 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz",
2042 | "dev": true
2043 | },
2044 | "lodash": {
2045 | "version": "4.17.3",
2046 | "from": "lodash@>=4.2.0 <5.0.0",
2047 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.3.tgz"
2048 | },
2049 | "lodash-es": {
2050 | "version": "4.17.3",
2051 | "from": "lodash-es@>=4.2.0 <5.0.0",
2052 | "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.3.tgz"
2053 | },
2054 | "lodash._baseassign": {
2055 | "version": "3.2.0",
2056 | "from": "lodash._baseassign@>=3.0.0 <4.0.0",
2057 | "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
2058 | "dev": true
2059 | },
2060 | "lodash._basecopy": {
2061 | "version": "3.0.1",
2062 | "from": "lodash._basecopy@>=3.0.0 <4.0.0",
2063 | "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
2064 | "dev": true
2065 | },
2066 | "lodash._bindcallback": {
2067 | "version": "3.0.1",
2068 | "from": "lodash._bindcallback@>=3.0.0 <4.0.0",
2069 | "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
2070 | "dev": true
2071 | },
2072 | "lodash._createassigner": {
2073 | "version": "3.1.1",
2074 | "from": "lodash._createassigner@>=3.0.0 <4.0.0",
2075 | "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz",
2076 | "dev": true
2077 | },
2078 | "lodash._getnative": {
2079 | "version": "3.9.1",
2080 | "from": "lodash._getnative@>=3.0.0 <4.0.0",
2081 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
2082 | "dev": true
2083 | },
2084 | "lodash._isiterateecall": {
2085 | "version": "3.0.9",
2086 | "from": "lodash._isiterateecall@>=3.0.0 <4.0.0",
2087 | "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
2088 | "dev": true
2089 | },
2090 | "lodash.assign": {
2091 | "version": "3.2.0",
2092 | "from": "lodash.assign@>=3.0.0 <4.0.0",
2093 | "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz",
2094 | "dev": true
2095 | },
2096 | "lodash.cond": {
2097 | "version": "4.5.2",
2098 | "from": "lodash.cond@>=4.3.0 <5.0.0",
2099 | "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
2100 | "dev": true
2101 | },
2102 | "lodash.defaults": {
2103 | "version": "3.1.2",
2104 | "from": "lodash.defaults@>=3.1.2 <4.0.0",
2105 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz",
2106 | "dev": true
2107 | },
2108 | "lodash.isarguments": {
2109 | "version": "3.1.0",
2110 | "from": "lodash.isarguments@>=3.0.0 <4.0.0",
2111 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
2112 | "dev": true
2113 | },
2114 | "lodash.isarray": {
2115 | "version": "3.0.4",
2116 | "from": "lodash.isarray@>=3.0.0 <4.0.0",
2117 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
2118 | "dev": true
2119 | },
2120 | "lodash.keys": {
2121 | "version": "3.1.2",
2122 | "from": "lodash.keys@>=3.0.0 <4.0.0",
2123 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
2124 | "dev": true
2125 | },
2126 | "lodash.pickby": {
2127 | "version": "4.6.0",
2128 | "from": "lodash.pickby@>=4.6.0 <5.0.0",
2129 | "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
2130 | "dev": true
2131 | },
2132 | "lodash.restparam": {
2133 | "version": "3.6.1",
2134 | "from": "lodash.restparam@>=3.0.0 <4.0.0",
2135 | "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
2136 | "dev": true
2137 | },
2138 | "longest": {
2139 | "version": "1.0.1",
2140 | "from": "longest@>=1.0.1 <2.0.0",
2141 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
2142 | "dev": true
2143 | },
2144 | "loose-envify": {
2145 | "version": "1.3.0",
2146 | "from": "loose-envify@>=1.0.0 <2.0.0",
2147 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.0.tgz"
2148 | },
2149 | "lowercase-keys": {
2150 | "version": "1.0.0",
2151 | "from": "lowercase-keys@>=1.0.0 <2.0.0",
2152 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
2153 | "dev": true
2154 | },
2155 | "map-stream": {
2156 | "version": "0.1.0",
2157 | "from": "map-stream@>=0.1.0 <0.2.0",
2158 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
2159 | "dev": true
2160 | },
2161 | "media-typer": {
2162 | "version": "0.3.0",
2163 | "from": "media-typer@0.3.0",
2164 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
2165 | },
2166 | "memory-fs": {
2167 | "version": "0.3.0",
2168 | "from": "memory-fs@>=0.3.0 <0.4.0",
2169 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
2170 | "dev": true
2171 | },
2172 | "merge-descriptors": {
2173 | "version": "1.0.1",
2174 | "from": "merge-descriptors@1.0.1",
2175 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
2176 | },
2177 | "methods": {
2178 | "version": "1.1.2",
2179 | "from": "methods@>=1.1.2 <1.2.0",
2180 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
2181 | },
2182 | "micromatch": {
2183 | "version": "2.3.11",
2184 | "from": "micromatch@>=2.1.5 <3.0.0",
2185 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
2186 | "dev": true
2187 | },
2188 | "miller-rabin": {
2189 | "version": "4.0.0",
2190 | "from": "miller-rabin@>=4.0.0 <5.0.0",
2191 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
2192 | "dev": true
2193 | },
2194 | "mime": {
2195 | "version": "1.3.4",
2196 | "from": "mime@1.3.4",
2197 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
2198 | },
2199 | "mime-db": {
2200 | "version": "1.25.0",
2201 | "from": "mime-db@>=1.25.0 <1.26.0",
2202 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz"
2203 | },
2204 | "mime-types": {
2205 | "version": "2.1.13",
2206 | "from": "mime-types@>=2.1.11 <2.2.0",
2207 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz"
2208 | },
2209 | "min-document": {
2210 | "version": "2.19.0",
2211 | "from": "min-document@>=2.19.0 <3.0.0",
2212 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
2213 | "dev": true
2214 | },
2215 | "minimalistic-assert": {
2216 | "version": "1.0.0",
2217 | "from": "minimalistic-assert@>=1.0.0 <2.0.0",
2218 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
2219 | "dev": true
2220 | },
2221 | "minimatch": {
2222 | "version": "3.0.3",
2223 | "from": "minimatch@>=3.0.2 <4.0.0",
2224 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
2225 | },
2226 | "minimist": {
2227 | "version": "0.0.8",
2228 | "from": "minimist@0.0.8",
2229 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
2230 | },
2231 | "mkdirp": {
2232 | "version": "0.5.1",
2233 | "from": "mkdirp@>=0.5.1 <0.6.0",
2234 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
2235 | },
2236 | "morgan": {
2237 | "version": "1.7.0",
2238 | "from": "morgan@>=1.7.0 <2.0.0",
2239 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.7.0.tgz",
2240 | "dependencies": {
2241 | "debug": {
2242 | "version": "2.2.0",
2243 | "from": "debug@>=2.2.0 <2.3.0",
2244 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
2245 | },
2246 | "ms": {
2247 | "version": "0.7.1",
2248 | "from": "ms@0.7.1",
2249 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
2250 | }
2251 | }
2252 | },
2253 | "ms": {
2254 | "version": "0.7.2",
2255 | "from": "ms@0.7.2",
2256 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
2257 | },
2258 | "mute-stream": {
2259 | "version": "0.0.5",
2260 | "from": "mute-stream@0.0.5",
2261 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
2262 | "dev": true
2263 | },
2264 | "natural-compare": {
2265 | "version": "1.4.0",
2266 | "from": "natural-compare@>=1.4.0 <2.0.0",
2267 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2268 | "dev": true
2269 | },
2270 | "nearley": {
2271 | "version": "2.7.10",
2272 | "from": "nearley@>=2.7.7 <3.0.0",
2273 | "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.7.10.tgz"
2274 | },
2275 | "negotiator": {
2276 | "version": "0.6.1",
2277 | "from": "negotiator@0.6.1",
2278 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
2279 | },
2280 | "nested-error-stacks": {
2281 | "version": "1.0.2",
2282 | "from": "nested-error-stacks@>=1.0.0 <2.0.0",
2283 | "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
2284 | "dev": true
2285 | },
2286 | "node-fetch": {
2287 | "version": "1.6.3",
2288 | "from": "node-fetch@>=1.0.1 <2.0.0",
2289 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz"
2290 | },
2291 | "node-libs-browser": {
2292 | "version": "2.0.0",
2293 | "from": "node-libs-browser@>=2.0.0 <3.0.0",
2294 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz",
2295 | "dev": true,
2296 | "dependencies": {
2297 | "process": {
2298 | "version": "0.11.9",
2299 | "from": "process@>=0.11.0 <0.12.0",
2300 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
2301 | "dev": true
2302 | }
2303 | }
2304 | },
2305 | "nodemon": {
2306 | "version": "1.11.0",
2307 | "from": "nodemon@>=1.11.0 <2.0.0",
2308 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.11.0.tgz",
2309 | "dev": true
2310 | },
2311 | "nomnom": {
2312 | "version": "1.6.2",
2313 | "from": "nomnom@>=1.6.2 <1.7.0",
2314 | "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz"
2315 | },
2316 | "nopt": {
2317 | "version": "1.0.10",
2318 | "from": "nopt@>=1.0.10 <1.1.0",
2319 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
2320 | "dev": true
2321 | },
2322 | "normalize-package-data": {
2323 | "version": "2.3.5",
2324 | "from": "normalize-package-data@>=2.3.2 <3.0.0",
2325 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
2326 | "dev": true
2327 | },
2328 | "normalize-path": {
2329 | "version": "2.0.1",
2330 | "from": "normalize-path@>=2.0.1 <3.0.0",
2331 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
2332 | "dev": true
2333 | },
2334 | "number-is-nan": {
2335 | "version": "1.0.1",
2336 | "from": "number-is-nan@>=1.0.0 <2.0.0",
2337 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
2338 | },
2339 | "object-assign": {
2340 | "version": "4.1.0",
2341 | "from": "object-assign@>=4.1.0 <5.0.0",
2342 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz"
2343 | },
2344 | "object.omit": {
2345 | "version": "2.0.1",
2346 | "from": "object.omit@>=2.0.0 <3.0.0",
2347 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
2348 | "dev": true
2349 | },
2350 | "on-finished": {
2351 | "version": "2.3.0",
2352 | "from": "on-finished@>=2.3.0 <2.4.0",
2353 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
2354 | },
2355 | "on-headers": {
2356 | "version": "1.0.1",
2357 | "from": "on-headers@>=1.0.1 <1.1.0",
2358 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz"
2359 | },
2360 | "once": {
2361 | "version": "1.4.0",
2362 | "from": "once@>=1.3.0 <2.0.0",
2363 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2364 | "dev": true
2365 | },
2366 | "onetime": {
2367 | "version": "1.1.0",
2368 | "from": "onetime@>=1.0.0 <2.0.0",
2369 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
2370 | "dev": true
2371 | },
2372 | "optionator": {
2373 | "version": "0.8.2",
2374 | "from": "optionator@>=0.8.2 <0.9.0",
2375 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
2376 | "dev": true
2377 | },
2378 | "os-browserify": {
2379 | "version": "0.2.1",
2380 | "from": "os-browserify@>=0.2.0 <0.3.0",
2381 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
2382 | "dev": true
2383 | },
2384 | "os-homedir": {
2385 | "version": "1.0.2",
2386 | "from": "os-homedir@>=1.0.0 <2.0.0",
2387 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
2388 | },
2389 | "os-locale": {
2390 | "version": "1.4.0",
2391 | "from": "os-locale@>=1.4.0 <2.0.0",
2392 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
2393 | "dev": true
2394 | },
2395 | "os-tmpdir": {
2396 | "version": "1.0.2",
2397 | "from": "os-tmpdir@>=1.0.1 <2.0.0",
2398 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
2399 | },
2400 | "osenv": {
2401 | "version": "0.1.4",
2402 | "from": "osenv@>=0.1.0 <0.2.0",
2403 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
2404 | "dev": true
2405 | },
2406 | "package-json": {
2407 | "version": "1.2.0",
2408 | "from": "package-json@>=1.0.0 <2.0.0",
2409 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz",
2410 | "dev": true
2411 | },
2412 | "pako": {
2413 | "version": "0.2.9",
2414 | "from": "pako@>=0.2.0 <0.3.0",
2415 | "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
2416 | "dev": true
2417 | },
2418 | "parse-asn1": {
2419 | "version": "5.0.0",
2420 | "from": "parse-asn1@>=5.0.0 <6.0.0",
2421 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz",
2422 | "dev": true
2423 | },
2424 | "parse-glob": {
2425 | "version": "3.0.4",
2426 | "from": "parse-glob@>=3.0.4 <4.0.0",
2427 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
2428 | "dev": true
2429 | },
2430 | "parse-json": {
2431 | "version": "2.2.0",
2432 | "from": "parse-json@>=2.2.0 <3.0.0",
2433 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
2434 | "dev": true
2435 | },
2436 | "parseurl": {
2437 | "version": "1.3.1",
2438 | "from": "parseurl@>=1.3.1 <1.4.0",
2439 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"
2440 | },
2441 | "path-browserify": {
2442 | "version": "0.0.0",
2443 | "from": "path-browserify@0.0.0",
2444 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
2445 | "dev": true
2446 | },
2447 | "path-exists": {
2448 | "version": "2.1.0",
2449 | "from": "path-exists@>=2.0.0 <3.0.0",
2450 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
2451 | "dev": true
2452 | },
2453 | "path-is-absolute": {
2454 | "version": "1.0.1",
2455 | "from": "path-is-absolute@>=1.0.0 <2.0.0",
2456 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
2457 | },
2458 | "path-is-inside": {
2459 | "version": "1.0.2",
2460 | "from": "path-is-inside@>=1.0.1 <2.0.0",
2461 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
2462 | "dev": true
2463 | },
2464 | "path-to-regexp": {
2465 | "version": "0.1.7",
2466 | "from": "path-to-regexp@0.1.7",
2467 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
2468 | },
2469 | "path-type": {
2470 | "version": "1.1.0",
2471 | "from": "path-type@>=1.0.0 <2.0.0",
2472 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
2473 | "dev": true
2474 | },
2475 | "pause-stream": {
2476 | "version": "0.0.11",
2477 | "from": "pause-stream@0.0.11",
2478 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
2479 | "dev": true
2480 | },
2481 | "pbkdf2": {
2482 | "version": "3.0.9",
2483 | "from": "pbkdf2@>=3.0.3 <4.0.0",
2484 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz",
2485 | "dev": true
2486 | },
2487 | "pify": {
2488 | "version": "2.3.0",
2489 | "from": "pify@>=2.0.0 <3.0.0",
2490 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2491 | "dev": true
2492 | },
2493 | "pinkie": {
2494 | "version": "2.0.4",
2495 | "from": "pinkie@>=2.0.0 <3.0.0",
2496 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
2497 | "dev": true
2498 | },
2499 | "pinkie-promise": {
2500 | "version": "2.0.1",
2501 | "from": "pinkie-promise@>=2.0.0 <3.0.0",
2502 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
2503 | "dev": true
2504 | },
2505 | "pkg-dir": {
2506 | "version": "1.0.0",
2507 | "from": "pkg-dir@>=1.0.0 <2.0.0",
2508 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
2509 | "dev": true
2510 | },
2511 | "pkg-up": {
2512 | "version": "1.0.0",
2513 | "from": "pkg-up@>=1.0.0 <2.0.0",
2514 | "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz",
2515 | "dev": true
2516 | },
2517 | "pluralize": {
2518 | "version": "1.2.1",
2519 | "from": "pluralize@>=1.2.1 <2.0.0",
2520 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
2521 | "dev": true
2522 | },
2523 | "prelude-ls": {
2524 | "version": "1.1.2",
2525 | "from": "prelude-ls@>=1.1.2 <1.2.0",
2526 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2527 | "dev": true
2528 | },
2529 | "prepend-http": {
2530 | "version": "1.0.4",
2531 | "from": "prepend-http@>=1.0.0 <2.0.0",
2532 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
2533 | "dev": true
2534 | },
2535 | "preserve": {
2536 | "version": "0.2.0",
2537 | "from": "preserve@>=0.2.0 <0.3.0",
2538 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
2539 | "dev": true
2540 | },
2541 | "private": {
2542 | "version": "0.1.6",
2543 | "from": "private@>=0.1.6 <0.2.0",
2544 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz"
2545 | },
2546 | "process": {
2547 | "version": "0.5.2",
2548 | "from": "process@>=0.5.1 <0.6.0",
2549 | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
2550 | "dev": true
2551 | },
2552 | "process-nextick-args": {
2553 | "version": "1.0.7",
2554 | "from": "process-nextick-args@>=1.0.6 <1.1.0",
2555 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
2556 | "dev": true
2557 | },
2558 | "progress": {
2559 | "version": "1.1.8",
2560 | "from": "progress@>=1.1.8 <2.0.0",
2561 | "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
2562 | "dev": true
2563 | },
2564 | "promise": {
2565 | "version": "7.1.1",
2566 | "from": "promise@>=7.1.1 <8.0.0",
2567 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz"
2568 | },
2569 | "proxy-addr": {
2570 | "version": "1.1.2",
2571 | "from": "proxy-addr@>=1.1.2 <1.2.0",
2572 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.2.tgz"
2573 | },
2574 | "prr": {
2575 | "version": "0.0.0",
2576 | "from": "prr@>=0.0.0 <0.1.0",
2577 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
2578 | "dev": true
2579 | },
2580 | "ps-tree": {
2581 | "version": "1.1.0",
2582 | "from": "ps-tree@>=1.0.1 <2.0.0",
2583 | "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
2584 | "dev": true
2585 | },
2586 | "public-encrypt": {
2587 | "version": "4.0.0",
2588 | "from": "public-encrypt@>=4.0.0 <5.0.0",
2589 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
2590 | "dev": true
2591 | },
2592 | "punycode": {
2593 | "version": "1.4.1",
2594 | "from": "punycode@>=1.2.4 <2.0.0",
2595 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
2596 | "dev": true
2597 | },
2598 | "qs": {
2599 | "version": "6.2.0",
2600 | "from": "qs@6.2.0",
2601 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz"
2602 | },
2603 | "query-string": {
2604 | "version": "4.2.3",
2605 | "from": "query-string@>=4.2.2 <5.0.0",
2606 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.2.3.tgz"
2607 | },
2608 | "querystring": {
2609 | "version": "0.2.0",
2610 | "from": "querystring@0.2.0",
2611 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
2612 | "dev": true
2613 | },
2614 | "querystring-es3": {
2615 | "version": "0.2.1",
2616 | "from": "querystring-es3@>=0.2.0 <0.3.0",
2617 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
2618 | "dev": true
2619 | },
2620 | "railroad-diagrams": {
2621 | "version": "1.0.0",
2622 | "from": "railroad-diagrams@>=1.0.0 <2.0.0",
2623 | "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz"
2624 | },
2625 | "ramda": {
2626 | "version": "0.23.0",
2627 | "from": "ramda@latest",
2628 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.23.0.tgz"
2629 | },
2630 | "randexp": {
2631 | "version": "0.4.4",
2632 | "from": "randexp@>=0.4.2 <0.5.0",
2633 | "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.4.tgz"
2634 | },
2635 | "randomatic": {
2636 | "version": "1.1.6",
2637 | "from": "randomatic@>=1.1.3 <2.0.0",
2638 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
2639 | "dev": true
2640 | },
2641 | "randombytes": {
2642 | "version": "2.0.3",
2643 | "from": "randombytes@>=2.0.0 <3.0.0",
2644 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
2645 | "dev": true
2646 | },
2647 | "range-parser": {
2648 | "version": "1.2.0",
2649 | "from": "range-parser@>=1.2.0 <1.3.0",
2650 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
2651 | },
2652 | "rc": {
2653 | "version": "1.1.6",
2654 | "from": "rc@>=1.0.1 <2.0.0",
2655 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz",
2656 | "dev": true,
2657 | "dependencies": {
2658 | "minimist": {
2659 | "version": "1.2.0",
2660 | "from": "minimist@>=1.2.0 <2.0.0",
2661 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2662 | "dev": true
2663 | }
2664 | }
2665 | },
2666 | "react": {
2667 | "version": "15.4.1",
2668 | "from": "react@>=15.3.2 <16.0.0",
2669 | "resolved": "https://registry.npmjs.org/react/-/react-15.4.1.tgz"
2670 | },
2671 | "react-deep-force-update": {
2672 | "version": "1.0.1",
2673 | "from": "react-deep-force-update@>=1.0.0 <2.0.0",
2674 | "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz",
2675 | "dev": true
2676 | },
2677 | "react-dom": {
2678 | "version": "15.4.1",
2679 | "from": "react-dom@>=15.3.2 <16.0.0",
2680 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.4.1.tgz"
2681 | },
2682 | "react-proxy": {
2683 | "version": "1.1.8",
2684 | "from": "react-proxy@>=1.1.7 <2.0.0",
2685 | "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz",
2686 | "dev": true
2687 | },
2688 | "react-redux": {
2689 | "version": "5.0.1",
2690 | "from": "react-redux@>=5.0.1 <6.0.0",
2691 | "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.1.tgz"
2692 | },
2693 | "react-router": {
2694 | "version": "3.0.0",
2695 | "from": "react-router@>=3.0.0 <4.0.0",
2696 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.0.0.tgz"
2697 | },
2698 | "react-transform-catch-errors": {
2699 | "version": "1.0.2",
2700 | "from": "react-transform-catch-errors@>=1.0.2 <2.0.0",
2701 | "resolved": "https://registry.npmjs.org/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz",
2702 | "dev": true
2703 | },
2704 | "react-transform-hmr": {
2705 | "version": "1.0.4",
2706 | "from": "react-transform-hmr@>=1.0.3 <2.0.0",
2707 | "resolved": "https://registry.npmjs.org/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz",
2708 | "dev": true
2709 | },
2710 | "read-all-stream": {
2711 | "version": "3.1.0",
2712 | "from": "read-all-stream@>=3.0.0 <4.0.0",
2713 | "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
2714 | "dev": true
2715 | },
2716 | "read-pkg": {
2717 | "version": "1.1.0",
2718 | "from": "read-pkg@>=1.0.0 <2.0.0",
2719 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
2720 | "dev": true
2721 | },
2722 | "read-pkg-up": {
2723 | "version": "1.0.1",
2724 | "from": "read-pkg-up@>=1.0.1 <2.0.0",
2725 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
2726 | "dev": true
2727 | },
2728 | "readable-stream": {
2729 | "version": "2.2.2",
2730 | "from": "readable-stream@>=2.0.2 <3.0.0",
2731 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
2732 | "dev": true
2733 | },
2734 | "readdirp": {
2735 | "version": "2.1.0",
2736 | "from": "readdirp@>=2.0.0 <3.0.0",
2737 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
2738 | "dev": true
2739 | },
2740 | "readline2": {
2741 | "version": "1.0.1",
2742 | "from": "readline2@>=1.0.1 <2.0.0",
2743 | "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
2744 | "dev": true
2745 | },
2746 | "rechoir": {
2747 | "version": "0.6.2",
2748 | "from": "rechoir@>=0.6.2 <0.7.0",
2749 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
2750 | "dev": true
2751 | },
2752 | "recompose": {
2753 | "version": "0.21.2",
2754 | "from": "recompose@>=0.21.0 <0.22.0",
2755 | "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.21.2.tgz"
2756 | },
2757 | "redbox-react": {
2758 | "version": "1.3.3",
2759 | "from": "redbox-react@>=1.2.2 <2.0.0",
2760 | "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.3.3.tgz",
2761 | "dev": true
2762 | },
2763 | "redial": {
2764 | "version": "0.5.0",
2765 | "from": "redial@>=0.5.0 <0.6.0",
2766 | "resolved": "https://registry.npmjs.org/redial/-/redial-0.5.0.tgz"
2767 | },
2768 | "redux": {
2769 | "version": "3.6.0",
2770 | "from": "redux@>=3.6.0 <4.0.0",
2771 | "resolved": "https://registry.npmjs.org/redux/-/redux-3.6.0.tgz"
2772 | },
2773 | "redux-thunk": {
2774 | "version": "2.1.0",
2775 | "from": "redux-thunk@>=2.1.0 <3.0.0",
2776 | "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.1.0.tgz"
2777 | },
2778 | "regenerate": {
2779 | "version": "1.3.2",
2780 | "from": "regenerate@>=1.2.1 <2.0.0",
2781 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz"
2782 | },
2783 | "regenerator-runtime": {
2784 | "version": "0.10.1",
2785 | "from": "regenerator-runtime@>=0.10.0 <0.11.0",
2786 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz"
2787 | },
2788 | "regenerator-transform": {
2789 | "version": "0.9.8",
2790 | "from": "regenerator-transform@0.9.8",
2791 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz"
2792 | },
2793 | "regex-cache": {
2794 | "version": "0.4.3",
2795 | "from": "regex-cache@>=0.4.2 <0.5.0",
2796 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
2797 | "dev": true
2798 | },
2799 | "regexpu-core": {
2800 | "version": "2.0.0",
2801 | "from": "regexpu-core@>=2.0.0 <3.0.0",
2802 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz"
2803 | },
2804 | "registry-url": {
2805 | "version": "3.1.0",
2806 | "from": "registry-url@>=3.0.0 <4.0.0",
2807 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
2808 | "dev": true
2809 | },
2810 | "regjsgen": {
2811 | "version": "0.2.0",
2812 | "from": "regjsgen@>=0.2.0 <0.3.0",
2813 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz"
2814 | },
2815 | "regjsparser": {
2816 | "version": "0.1.5",
2817 | "from": "regjsparser@>=0.1.4 <0.2.0",
2818 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
2819 | "dependencies": {
2820 | "jsesc": {
2821 | "version": "0.5.0",
2822 | "from": "jsesc@>=0.5.0 <0.6.0",
2823 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
2824 | }
2825 | }
2826 | },
2827 | "repeat-element": {
2828 | "version": "1.1.2",
2829 | "from": "repeat-element@>=1.1.2 <2.0.0",
2830 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
2831 | "dev": true
2832 | },
2833 | "repeat-string": {
2834 | "version": "1.6.1",
2835 | "from": "repeat-string@>=1.5.2 <2.0.0",
2836 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
2837 | "dev": true
2838 | },
2839 | "repeating": {
2840 | "version": "2.0.1",
2841 | "from": "repeating@>=2.0.0 <3.0.0",
2842 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
2843 | },
2844 | "require-directory": {
2845 | "version": "2.1.1",
2846 | "from": "require-directory@>=2.1.1 <3.0.0",
2847 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2848 | "dev": true
2849 | },
2850 | "require-main-filename": {
2851 | "version": "1.0.1",
2852 | "from": "require-main-filename@>=1.0.1 <2.0.0",
2853 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
2854 | "dev": true
2855 | },
2856 | "require-uncached": {
2857 | "version": "1.0.3",
2858 | "from": "require-uncached@>=1.0.2 <2.0.0",
2859 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
2860 | "dev": true
2861 | },
2862 | "resolve": {
2863 | "version": "1.2.0",
2864 | "from": "resolve@>=1.1.6 <2.0.0",
2865 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
2866 | "dev": true
2867 | },
2868 | "resolve-from": {
2869 | "version": "1.0.1",
2870 | "from": "resolve-from@>=1.0.0 <2.0.0",
2871 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
2872 | "dev": true
2873 | },
2874 | "restore-cursor": {
2875 | "version": "1.0.1",
2876 | "from": "restore-cursor@>=1.0.1 <2.0.0",
2877 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
2878 | "dev": true
2879 | },
2880 | "ret": {
2881 | "version": "0.1.13",
2882 | "from": "ret@>=0.1.10 <0.2.0",
2883 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.13.tgz"
2884 | },
2885 | "right-align": {
2886 | "version": "0.1.3",
2887 | "from": "right-align@>=0.1.1 <0.2.0",
2888 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
2889 | "dev": true
2890 | },
2891 | "rimraf": {
2892 | "version": "2.5.4",
2893 | "from": "rimraf@>=2.2.8 <3.0.0",
2894 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
2895 | "dev": true
2896 | },
2897 | "ripemd160": {
2898 | "version": "1.0.1",
2899 | "from": "ripemd160@>=1.0.0 <2.0.0",
2900 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz",
2901 | "dev": true
2902 | },
2903 | "run-async": {
2904 | "version": "0.1.0",
2905 | "from": "run-async@>=0.1.0 <0.2.0",
2906 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
2907 | "dev": true
2908 | },
2909 | "rx-lite": {
2910 | "version": "3.1.2",
2911 | "from": "rx-lite@>=3.1.2 <4.0.0",
2912 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
2913 | "dev": true
2914 | },
2915 | "semver": {
2916 | "version": "5.3.0",
2917 | "from": "semver@>=5.0.3 <6.0.0",
2918 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
2919 | "dev": true
2920 | },
2921 | "semver-diff": {
2922 | "version": "2.1.0",
2923 | "from": "semver-diff@>=2.0.0 <3.0.0",
2924 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
2925 | "dev": true
2926 | },
2927 | "send": {
2928 | "version": "0.14.1",
2929 | "from": "send@0.14.1",
2930 | "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz",
2931 | "dependencies": {
2932 | "debug": {
2933 | "version": "2.2.0",
2934 | "from": "debug@>=2.2.0 <2.3.0",
2935 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
2936 | },
2937 | "ms": {
2938 | "version": "0.7.1",
2939 | "from": "ms@0.7.1",
2940 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
2941 | }
2942 | }
2943 | },
2944 | "serve-static": {
2945 | "version": "1.11.1",
2946 | "from": "serve-static@>=1.11.1 <1.12.0",
2947 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz"
2948 | },
2949 | "set-blocking": {
2950 | "version": "2.0.0",
2951 | "from": "set-blocking@>=2.0.0 <3.0.0",
2952 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
2953 | "dev": true
2954 | },
2955 | "set-immediate-shim": {
2956 | "version": "1.0.1",
2957 | "from": "set-immediate-shim@>=1.0.1 <2.0.0",
2958 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
2959 | "dev": true
2960 | },
2961 | "setimmediate": {
2962 | "version": "1.0.5",
2963 | "from": "setimmediate@>=1.0.5 <2.0.0",
2964 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
2965 | },
2966 | "setprototypeof": {
2967 | "version": "1.0.2",
2968 | "from": "setprototypeof@1.0.2",
2969 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz"
2970 | },
2971 | "sha.js": {
2972 | "version": "2.4.8",
2973 | "from": "sha.js@>=2.3.6 <3.0.0",
2974 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
2975 | "dev": true
2976 | },
2977 | "shelljs": {
2978 | "version": "0.7.5",
2979 | "from": "shelljs@>=0.7.5 <0.8.0",
2980 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.5.tgz",
2981 | "dev": true
2982 | },
2983 | "slash": {
2984 | "version": "1.0.0",
2985 | "from": "slash@>=1.0.0 <2.0.0",
2986 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz"
2987 | },
2988 | "slice-ansi": {
2989 | "version": "0.0.4",
2990 | "from": "slice-ansi@0.0.4",
2991 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
2992 | "dev": true
2993 | },
2994 | "slide": {
2995 | "version": "1.1.6",
2996 | "from": "slide@>=1.1.5 <2.0.0",
2997 | "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
2998 | "dev": true
2999 | },
3000 | "source-list-map": {
3001 | "version": "0.1.7",
3002 | "from": "source-list-map@>=0.1.0 <0.2.0",
3003 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.7.tgz",
3004 | "dev": true
3005 | },
3006 | "source-map": {
3007 | "version": "0.5.6",
3008 | "from": "source-map@>=0.5.0 <0.6.0",
3009 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
3010 | },
3011 | "source-map-support": {
3012 | "version": "0.4.8",
3013 | "from": "source-map-support@>=0.4.2 <0.5.0",
3014 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.8.tgz"
3015 | },
3016 | "spdx-correct": {
3017 | "version": "1.0.2",
3018 | "from": "spdx-correct@>=1.0.0 <1.1.0",
3019 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
3020 | "dev": true
3021 | },
3022 | "spdx-expression-parse": {
3023 | "version": "1.0.4",
3024 | "from": "spdx-expression-parse@>=1.0.0 <1.1.0",
3025 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
3026 | "dev": true
3027 | },
3028 | "spdx-license-ids": {
3029 | "version": "1.2.2",
3030 | "from": "spdx-license-ids@>=1.0.2 <2.0.0",
3031 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
3032 | "dev": true
3033 | },
3034 | "split": {
3035 | "version": "0.3.3",
3036 | "from": "split@>=0.3.0 <0.4.0",
3037 | "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
3038 | "dev": true
3039 | },
3040 | "sprintf-js": {
3041 | "version": "1.0.3",
3042 | "from": "sprintf-js@>=1.0.2 <1.1.0",
3043 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3044 | "dev": true
3045 | },
3046 | "stackframe": {
3047 | "version": "0.3.1",
3048 | "from": "stackframe@>=0.3.1 <0.4.0",
3049 | "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz",
3050 | "dev": true
3051 | },
3052 | "statuses": {
3053 | "version": "1.3.1",
3054 | "from": "statuses@>=1.3.0 <1.4.0",
3055 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
3056 | },
3057 | "stream-browserify": {
3058 | "version": "2.0.1",
3059 | "from": "stream-browserify@>=2.0.1 <3.0.0",
3060 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
3061 | "dev": true
3062 | },
3063 | "stream-combiner": {
3064 | "version": "0.0.4",
3065 | "from": "stream-combiner@>=0.0.4 <0.1.0",
3066 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
3067 | "dev": true
3068 | },
3069 | "stream-http": {
3070 | "version": "2.5.0",
3071 | "from": "stream-http@>=2.3.1 <3.0.0",
3072 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.5.0.tgz",
3073 | "dev": true
3074 | },
3075 | "stream-shift": {
3076 | "version": "1.0.0",
3077 | "from": "stream-shift@>=1.0.0 <2.0.0",
3078 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
3079 | "dev": true
3080 | },
3081 | "strict-uri-encode": {
3082 | "version": "1.1.0",
3083 | "from": "strict-uri-encode@>=1.0.0 <2.0.0",
3084 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"
3085 | },
3086 | "string_decoder": {
3087 | "version": "0.10.31",
3088 | "from": "string_decoder@>=0.10.0 <0.11.0",
3089 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3090 | "dev": true
3091 | },
3092 | "string-length": {
3093 | "version": "1.0.1",
3094 | "from": "string-length@>=1.0.0 <2.0.0",
3095 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
3096 | "dev": true
3097 | },
3098 | "string-width": {
3099 | "version": "1.0.2",
3100 | "from": "string-width@>=1.0.1 <2.0.0",
3101 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
3102 | "dev": true
3103 | },
3104 | "strip-ansi": {
3105 | "version": "3.0.1",
3106 | "from": "strip-ansi@>=3.0.0 <4.0.0",
3107 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
3108 | },
3109 | "strip-bom": {
3110 | "version": "3.0.0",
3111 | "from": "strip-bom@>=3.0.0 <4.0.0",
3112 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
3113 | "dev": true
3114 | },
3115 | "strip-json-comments": {
3116 | "version": "1.0.4",
3117 | "from": "strip-json-comments@>=1.0.1 <1.1.0",
3118 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
3119 | "dev": true
3120 | },
3121 | "styled-components": {
3122 | "version": "1.2.1",
3123 | "from": "https://registry.npmjs.org/styled-components/-/styled-components-1.2.1.tgz",
3124 | "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-1.2.1.tgz",
3125 | "dependencies": {
3126 | "buffer": {
3127 | "version": "5.0.2",
3128 | "from": "buffer@>=5.0.0 <6.0.0",
3129 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.2.tgz"
3130 | },
3131 | "supports-color": {
3132 | "version": "3.1.2",
3133 | "from": "supports-color@>=3.1.2 <4.0.0",
3134 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
3135 | }
3136 | }
3137 | },
3138 | "supports-color": {
3139 | "version": "2.0.0",
3140 | "from": "supports-color@>=2.0.0 <3.0.0",
3141 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
3142 | },
3143 | "symbol-observable": {
3144 | "version": "1.0.4",
3145 | "from": "symbol-observable@>=1.0.4 <2.0.0",
3146 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz"
3147 | },
3148 | "table": {
3149 | "version": "3.8.3",
3150 | "from": "table@>=3.7.8 <4.0.0",
3151 | "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
3152 | "dev": true,
3153 | "dependencies": {
3154 | "is-fullwidth-code-point": {
3155 | "version": "2.0.0",
3156 | "from": "is-fullwidth-code-point@>=2.0.0 <3.0.0",
3157 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
3158 | "dev": true
3159 | },
3160 | "string-width": {
3161 | "version": "2.0.0",
3162 | "from": "string-width@>=2.0.0 <3.0.0",
3163 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz",
3164 | "dev": true
3165 | }
3166 | }
3167 | },
3168 | "tapable": {
3169 | "version": "0.2.5",
3170 | "from": "tapable@>=0.2.5 <0.3.0",
3171 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.5.tgz",
3172 | "dev": true
3173 | },
3174 | "text-table": {
3175 | "version": "0.2.0",
3176 | "from": "text-table@>=0.2.0 <0.3.0",
3177 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3178 | "dev": true
3179 | },
3180 | "through": {
3181 | "version": "2.3.8",
3182 | "from": "through@>=2.3.6 <3.0.0",
3183 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
3184 | "dev": true
3185 | },
3186 | "timed-out": {
3187 | "version": "2.0.0",
3188 | "from": "timed-out@>=2.0.0 <3.0.0",
3189 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
3190 | "dev": true
3191 | },
3192 | "timers-browserify": {
3193 | "version": "2.0.2",
3194 | "from": "timers-browserify@>=2.0.2 <3.0.0",
3195 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz",
3196 | "dev": true
3197 | },
3198 | "to-arraybuffer": {
3199 | "version": "1.0.1",
3200 | "from": "to-arraybuffer@>=1.0.0 <2.0.0",
3201 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
3202 | "dev": true
3203 | },
3204 | "to-fast-properties": {
3205 | "version": "1.0.2",
3206 | "from": "to-fast-properties@>=1.0.1 <2.0.0",
3207 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz"
3208 | },
3209 | "touch": {
3210 | "version": "1.0.0",
3211 | "from": "touch@1.0.0",
3212 | "resolved": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz",
3213 | "dev": true
3214 | },
3215 | "tryit": {
3216 | "version": "1.0.3",
3217 | "from": "tryit@>=1.0.1 <2.0.0",
3218 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
3219 | "dev": true
3220 | },
3221 | "tty-browserify": {
3222 | "version": "0.0.0",
3223 | "from": "tty-browserify@0.0.0",
3224 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
3225 | "dev": true
3226 | },
3227 | "type-check": {
3228 | "version": "0.3.2",
3229 | "from": "type-check@>=0.3.2 <0.4.0",
3230 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
3231 | "dev": true
3232 | },
3233 | "type-is": {
3234 | "version": "1.6.14",
3235 | "from": "type-is@>=1.6.13 <1.7.0",
3236 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz"
3237 | },
3238 | "typedarray": {
3239 | "version": "0.0.6",
3240 | "from": "typedarray@>=0.0.6 <0.0.7",
3241 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
3242 | "dev": true
3243 | },
3244 | "ua-parser-js": {
3245 | "version": "0.7.12",
3246 | "from": "ua-parser-js@>=0.7.9 <0.8.0",
3247 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz"
3248 | },
3249 | "uglify-js": {
3250 | "version": "2.7.5",
3251 | "from": "uglify-js@>=2.7.5 <3.0.0",
3252 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
3253 | "dev": true,
3254 | "dependencies": {
3255 | "async": {
3256 | "version": "0.2.10",
3257 | "from": "async@>=0.2.6 <0.3.0",
3258 | "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
3259 | "dev": true
3260 | },
3261 | "yargs": {
3262 | "version": "3.10.0",
3263 | "from": "yargs@>=3.10.0 <3.11.0",
3264 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
3265 | "dev": true
3266 | }
3267 | }
3268 | },
3269 | "uglify-to-browserify": {
3270 | "version": "1.0.2",
3271 | "from": "uglify-to-browserify@>=1.0.0 <1.1.0",
3272 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
3273 | "dev": true
3274 | },
3275 | "undefsafe": {
3276 | "version": "0.0.3",
3277 | "from": "undefsafe@0.0.3",
3278 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz",
3279 | "dev": true
3280 | },
3281 | "underscore": {
3282 | "version": "1.4.4",
3283 | "from": "underscore@>=1.4.4 <1.5.0",
3284 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz"
3285 | },
3286 | "unpipe": {
3287 | "version": "1.0.0",
3288 | "from": "unpipe@>=1.0.0 <1.1.0",
3289 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
3290 | },
3291 | "update-notifier": {
3292 | "version": "0.5.0",
3293 | "from": "update-notifier@0.5.0",
3294 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz",
3295 | "dev": true,
3296 | "dependencies": {
3297 | "repeating": {
3298 | "version": "1.1.3",
3299 | "from": "repeating@>=1.1.2 <2.0.0",
3300 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz",
3301 | "dev": true
3302 | }
3303 | }
3304 | },
3305 | "url": {
3306 | "version": "0.11.0",
3307 | "from": "url@>=0.11.0 <0.12.0",
3308 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
3309 | "dev": true,
3310 | "dependencies": {
3311 | "punycode": {
3312 | "version": "1.3.2",
3313 | "from": "punycode@1.3.2",
3314 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
3315 | "dev": true
3316 | }
3317 | }
3318 | },
3319 | "user-home": {
3320 | "version": "2.0.0",
3321 | "from": "user-home@>=2.0.0 <3.0.0",
3322 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
3323 | "dev": true
3324 | },
3325 | "util": {
3326 | "version": "0.10.3",
3327 | "from": "util@>=0.10.3 <0.11.0",
3328 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
3329 | "dev": true,
3330 | "dependencies": {
3331 | "inherits": {
3332 | "version": "2.0.1",
3333 | "from": "inherits@2.0.1",
3334 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
3335 | "dev": true
3336 | }
3337 | }
3338 | },
3339 | "util-deprecate": {
3340 | "version": "1.0.2",
3341 | "from": "util-deprecate@>=1.0.1 <1.1.0",
3342 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3343 | "dev": true
3344 | },
3345 | "utils-merge": {
3346 | "version": "1.0.0",
3347 | "from": "utils-merge@1.0.0",
3348 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"
3349 | },
3350 | "uuid": {
3351 | "version": "2.0.3",
3352 | "from": "uuid@>=2.0.1 <3.0.0",
3353 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
3354 | "dev": true
3355 | },
3356 | "validate-npm-package-license": {
3357 | "version": "3.0.1",
3358 | "from": "validate-npm-package-license@>=3.0.1 <4.0.0",
3359 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
3360 | "dev": true
3361 | },
3362 | "vary": {
3363 | "version": "1.1.0",
3364 | "from": "vary@>=1.1.0 <1.2.0",
3365 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz"
3366 | },
3367 | "vm-browserify": {
3368 | "version": "0.0.4",
3369 | "from": "vm-browserify@0.0.4",
3370 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
3371 | "dev": true
3372 | },
3373 | "warning": {
3374 | "version": "3.0.0",
3375 | "from": "warning@3.0.0",
3376 | "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
3377 | },
3378 | "watchpack": {
3379 | "version": "1.1.0",
3380 | "from": "watchpack@>=1.0.0 <2.0.0",
3381 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.1.0.tgz",
3382 | "dev": true,
3383 | "dependencies": {
3384 | "async": {
3385 | "version": "2.0.0-rc.4",
3386 | "from": "async@2.0.0-rc.4",
3387 | "resolved": "https://registry.npmjs.org/async/-/async-2.0.0-rc.4.tgz",
3388 | "dev": true
3389 | }
3390 | }
3391 | },
3392 | "webpack": {
3393 | "version": "2.2.0-rc.3",
3394 | "from": "webpack@>=2.2.0-rc.3 <3.0.0",
3395 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.2.0-rc.3.tgz",
3396 | "dev": true,
3397 | "dependencies": {
3398 | "supports-color": {
3399 | "version": "3.1.2",
3400 | "from": "supports-color@>=3.1.0 <4.0.0",
3401 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
3402 | "dev": true
3403 | }
3404 | }
3405 | },
3406 | "webpack-dev-middleware": {
3407 | "version": "1.9.0",
3408 | "from": "webpack-dev-middleware@>=1.9.0 <2.0.0",
3409 | "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.9.0.tgz",
3410 | "dev": true,
3411 | "dependencies": {
3412 | "memory-fs": {
3413 | "version": "0.4.1",
3414 | "from": "memory-fs@>=0.4.1 <0.5.0",
3415 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
3416 | "dev": true
3417 | }
3418 | }
3419 | },
3420 | "webpack-hot-middleware": {
3421 | "version": "2.14.0",
3422 | "from": "webpack-hot-middleware@2.14.0",
3423 | "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.14.0.tgz",
3424 | "dev": true
3425 | },
3426 | "webpack-sources": {
3427 | "version": "0.1.3",
3428 | "from": "webpack-sources@>=0.1.0 <0.2.0",
3429 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.3.tgz",
3430 | "dev": true
3431 | },
3432 | "whatwg-fetch": {
3433 | "version": "2.0.1",
3434 | "from": "whatwg-fetch@>=0.10.0",
3435 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz"
3436 | },
3437 | "which-module": {
3438 | "version": "1.0.0",
3439 | "from": "which-module@>=1.0.0 <2.0.0",
3440 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
3441 | "dev": true
3442 | },
3443 | "window-size": {
3444 | "version": "0.1.0",
3445 | "from": "window-size@0.1.0",
3446 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
3447 | "dev": true
3448 | },
3449 | "wordwrap": {
3450 | "version": "1.0.0",
3451 | "from": "wordwrap@>=1.0.0 <1.1.0",
3452 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
3453 | "dev": true
3454 | },
3455 | "wrap-ansi": {
3456 | "version": "2.1.0",
3457 | "from": "wrap-ansi@>=2.0.0 <3.0.0",
3458 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
3459 | "dev": true
3460 | },
3461 | "wrappy": {
3462 | "version": "1.0.2",
3463 | "from": "wrappy@>=1.0.0 <2.0.0",
3464 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3465 | "dev": true
3466 | },
3467 | "write": {
3468 | "version": "0.2.1",
3469 | "from": "write@>=0.2.1 <0.3.0",
3470 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
3471 | "dev": true
3472 | },
3473 | "write-file-atomic": {
3474 | "version": "1.2.0",
3475 | "from": "write-file-atomic@>=1.1.2 <2.0.0",
3476 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.2.0.tgz",
3477 | "dev": true
3478 | },
3479 | "xdg-basedir": {
3480 | "version": "2.0.0",
3481 | "from": "xdg-basedir@>=2.0.0 <3.0.0",
3482 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
3483 | "dev": true
3484 | },
3485 | "xtend": {
3486 | "version": "4.0.1",
3487 | "from": "xtend@>=4.0.0 <5.0.0",
3488 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
3489 | "dev": true
3490 | },
3491 | "y18n": {
3492 | "version": "3.2.1",
3493 | "from": "y18n@>=3.2.1 <4.0.0",
3494 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
3495 | "dev": true
3496 | },
3497 | "yargs": {
3498 | "version": "6.5.0",
3499 | "from": "yargs@>=6.0.0 <7.0.0",
3500 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.5.0.tgz",
3501 | "dev": true,
3502 | "dependencies": {
3503 | "camelcase": {
3504 | "version": "3.0.0",
3505 | "from": "camelcase@>=3.0.0 <4.0.0",
3506 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
3507 | "dev": true
3508 | },
3509 | "cliui": {
3510 | "version": "3.2.0",
3511 | "from": "cliui@>=3.2.0 <4.0.0",
3512 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
3513 | "dev": true
3514 | },
3515 | "window-size": {
3516 | "version": "0.2.0",
3517 | "from": "window-size@>=0.2.0 <0.3.0",
3518 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
3519 | "dev": true
3520 | }
3521 | }
3522 | },
3523 | "yargs-parser": {
3524 | "version": "4.2.0",
3525 | "from": "yargs-parser@>=4.2.0 <5.0.0",
3526 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.0.tgz",
3527 | "dev": true,
3528 | "dependencies": {
3529 | "camelcase": {
3530 | "version": "3.0.0",
3531 | "from": "camelcase@>=3.0.0 <4.0.0",
3532 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
3533 | "dev": true
3534 | }
3535 | }
3536 | }
3537 | }
3538 | }
3539 |
--------------------------------------------------------------------------------